def codefile(self, tmod, imp=False): cf = CodeFile( filename=tmod.rel(f"{self.name}.py"), source=self.gen(), module_name=self.name, ) if imp: module = self.imp(tmod) cf.associate(module) return cf
def __init__(self, tmod, basename): self.tmod = tmod self.basename = basename self.variants = { name.split(".py")[0].split(":")[1] for name in os.listdir( os.path.join(os.path.dirname(__file__), "snippets")) if name.startswith(basename) } module = tmod.imp(f"{basename}:main") main_cf = CodeFile(module.__file__, module.__name__) main_cf.associate(module) self.module = module self.main = main_cf self.read_codefiles()
def read_codefiles(self): files = { variant: self.module.__file__ if variant == "main" else self.tmod.transfer(f"{self.basename}:{variant}")[1] for variant in self.variants } self.files = NS(**files) self.cf = NS( **{ variant: CodeFile(file, self.module.__name__) for variant, file in files.items() })
def apple_code(scope="module"): cf = CodeFile(apple.__file__, apple.__name__) cf.associate(apple) return cf