API

Setup 2 uPy Package

Create and validate MicroPython package.json files based on Python setup.py files

class setup2upypackage.setup2upypackage.Setup2uPyPackage(setup_file: Path, package_file: Optional[Path], package_changelog_file: Optional[Path], logger: Optional[Logger] = None)[source]

Bases: object

Handle MicroPython package JSON creation and validation

static _create_logger(logger_name: Optional[str] = None) Logger[source]

Create a logger

Parameters

logger_name (str, optional) – The logger name

Returns

Configured logger

Return type

logging.Logger

_create_url_elements(package_files: List[str], url: str) List[str][source]

Create URLs to all package elements.

Parameters
  • package_files (List[str]) – The package files

  • url (str) – The URL

Returns

List of URLs to download the package files

Return type

List[str]

_exclude_package_files(package_files: List[Tuple[str, str]], excludes: List[str] = ['boot.py', 'main.py']) List[Tuple[str, str]][source]

Exclude elements of a list if the first element matches an exclude str

Parameters
  • package_files (List[Tuple[str, str]]) – The package files

  • excludes (List[str]) – The list of excludes

Returns

List without elements matching the exclude list

Return type

List[Tuple[str, str]]

_parse_setup_file_content() dict[source]

Parse setup.py file content

see https://stackoverflow.com/a/61754034/13543363

Returns

Parsed setup.py file content

Return type

dict

create(output_path: Optional[Path] = None, pretty: bool = True) None[source]

Create package.json file in same directory as setup.py

Parameters
  • output_path (Optional[Path]) – The output path

  • pretty (bool) – Flag to use an indentation of 4

property data_files: List[str]

Get data files based on setup.py “data_files” entry.

Returns

Data files based on setup.py “data_files” entry

Return type

List[str]

property package_changelog_version: str

Get package changelog version

Returns

Package changelog version

Return type

str

property package_data: dict

Get mip compatible package data

Returns

mip compatible package.json data

Return type

dict

property package_deps: List[str]

Get dependencies of package based on setup.py “install_requires” entry

Returns

Package dependencies based on setup.py “install_requires”

Return type

List[str]

property package_files: List[str]

Get packages based on setup.py “packages” entry.

Returns

Packages based on setup.py “packages” entry

Return type

List[str]

property package_json_data: dict

Get package.json data

Returns

Existing package.json data

Return type

dict

property package_url: str

Get URL of package based on setup.py “url” entry.

Returns

Package URL based on setup.py “url” entry

Return type

str

property package_version: str

Get version of package based on setup.py “version” entry

Returns

Package version based on setup.py “version” entry

Return type

str

validate(ignore_version: bool = False, ignore_deps: bool = False, ignore_boot_main: bool = False) bool[source]

Validate existing package.json with setup.py based data

Parameters
  • ignore_version (bool) – Flag to ignore the version

  • ignore_deps (bool) – Flag to ignore the dependencies

  • ignore_boot_main (bool) – Flag to ignore the main and boot files

Returns

Result of validation, True on success, False otherwise

Return type

bool

property validation_diff: DeepDiff

Get difference of package.json and setup.py

Returns

The deep difference.

Return type

DeepDiff

exception setup2upypackage.setup2upypackage.Setup2uPyPackageError[source]

Bases: Exception

Base class for exceptions in this module.