def init(mpy, path, name=None, template=None): """Create new Micropython Project. \b When creating a new project, all files will be placed under the generated <PROJECT_NAME> folder. """ mpy.log.title("Creating New Project") if not path: path = Path.cwd() default_name = path.name prompt_name = prompt.text("Project Name", default=default_name).ask() name = prompt_name.strip() if not template: templates = modules.TemplatesModule.TEMPLATES.items() templ_choices = [Choice(str(val[1]), value=t) for t, val in templates] template = prompt.checkbox(f"Choose any Templates to Generate", choices=templ_choices).ask() stubs = [Choice(str(s), value=s) for s in mpy.stubs] if not stubs: mpy.log.error("You don't have any stubs!") mpy.log.title( "To add stubs to micropy, use $[micropy stubs add <STUB_NAME>]") sys.exit(1) stub_choices = prompt.checkbox(f"Which stubs would you like to use?", choices=stubs).ask() project = Project(path, name=name) project.add(modules.StubsModule(mpy.stubs, stubs=stub_choices)) project.add(modules.PackagesModule('requirements.txt')) project.add(modules.DevPackagesModule('dev-requirements.txt')) project.add( modules.TemplatesModule(templates=template, run_checks=mpy.RUN_CHECKS)) proj_relative = project.create() mpy.log.title(f"Created $w[{project.name}] at $w[./{proj_relative}]")
def resolve_project(self, path, verbose=True): """Returns project from path if it exists. Args: path (str): Path to test verbose (bool): Log to stdout. Defaults to True. Returns: Project if it exists """ path = Path(path).absolute() proj = Project(path) proj.add(modules.StubsModule(self.stubs)) proj.add(modules.PackagesModule('requirements.txt')) proj.add(modules.DevPackagesModule('dev-requirements.txt')) proj.add(modules.TemplatesModule(run_checks=self.RUN_CHECKS)) if proj.exists: if verbose: self.log.title(f"Loading Project") proj.load() if verbose: self.log.success("Ready!") return proj return proj
def stub_module(self, mocker, tmp_path, micropy_stubs): mp = micropy_stubs() parent_mock = mocker.Mock() parent_mock.data_path = tmp_path / '.micropy' stub_item = list(mp.stubs)[0] stub_mod = modules.StubsModule( mp.stubs, stubs=[stub_item], parent=parent_mock, log=mocker.Mock()) return stub_mod, mp