MCPcopy Create free account
hub / github.com/KLayout/klayout / write

Method write

scripts/pyqrc.py:18–57  ·  view source on GitHub ↗
(self, file, index)

Source from the content-addressed store, hash-verified

16 self.alias = alias
17
18 def write(self, file, index):
19
20 f = open(self.path, "rb")
21 raw_data = f.read()
22 f.close()
23
24 data = zlib.compress(raw_data)
25 compressed = "true"
26
27 cb = "{"
28 bc = "}"
29 cls = "Resource" + str(index)
30 file.write(f"\n// Resource file {self.path} as {self.alias}\n")
31 file.write( "namespace {\n")
32 file.write( "\n")
33 file.write(f" struct {cls}\n")
34 file.write( " {\n")
35 file.write(f" {cls}() {cb}\n")
36 file.write(f" static bool compressed = {compressed};\n")
37 file.write(f" static const char *name = \"{self.alias}\";\n")
38 file.write( " static const unsigned char data[] = {")
39 n = 0
40 for b in data:
41 if n == 0:
42 file.write("\n ")
43 file.write("0x%02x," % b)
44 n += 1
45 if n == 16:
46 n = 0
47 file.write( "\n")
48 file.write( " };\n")
49 file.write( " m_id = tl::register_resource(name, compressed, data, sizeof(data) / sizeof(data[0]));\n")
50 file.write( " }\n")
51 file.write(f" ~{cls}() {cb}\n")
52 file.write( " tl::unregister_resource(m_id);\n")
53 file.write( " }\n")
54 file.write( " tl::resource_id_type m_id;\n")
55 file.write(f" {bc} resource_instance{index};\n")
56 file.write( "\n")
57 file.write( "}\n")
58
59
60class RCGenerator(object):

Callers 5

writeMethod · 0.45
pyqrc.pyFile · 0.45
produce_docMethod · 0.45
produce_indexMethod · 0.45

Calls 4

openFunction · 0.85
strFunction · 0.85
readMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected