def export(self, importer, path): self.setup(importer) block = SourceBlock('extern "C" {') block.add_block(self.export_namespace(importer.root_namespace)) block.add_line("}") with open(path, 'w') as f: f.write(block.as_text())
def export(self, importer, path): self.setup(importer) block = SourceBlock() includes = self.get_includes() if includes: block.add_line('%s\n\n' % includes) block.add_block(self.export_namespace(importer.root_namespace)) with open(path, 'w') as f: f.write(block.as_text())
def export_module(mod, base_dir): is_pkg = isinstance(mod, Package) name = mod.name if not is_pkg else "__init__" blocks = [] block = SourceBlock() block.add_line("from __future__ import absolute_import") block.add_line("import ctypes") block.add_line("import functools") block.add_line("import wrappyr.runtime") blocks.append(block) if mod.libraries: block = SourceBlock() block.add_line("_libraries = {") for lib in mod.libraries.values(): block.add_line("'%s': ctypes.CDLL('%s')," % (lib.name, lib.path), 1) block.add_line("}") blocks.append(block) classes = sorted(mod.every_class(), key=cmp_to_key(sort_classes)) for cls in classes: blocks.append(export_class(cls)) functions = mod.every_function() for f in functions: blocks.append(export_function(f)) for cls in classes: blocks.append(export_class_setup(cls)) for f in functions: blocks.append(export_function_setup(f)) block = SourceBlock("").join(blocks) with open(os.path.join(base_dir, "%s.py" % name), "w") as f: f.write(block.as_text())