コード例 #1
0
ファイル: cli.py プロジェクト: AaronGaribay/micropy-cli
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}]")
コード例 #2
0
ファイル: main.py プロジェクト: AaronGaribay/micropy-cli
    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
コード例 #3
0
ファイル: test_project.py プロジェクト: MathijsNL/micropy-cli
 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