diff --git a/.gitignore b/.gitignore index 68c1c72..5263a53 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ *.kate-swp -venv/ +/venv +/build __pycache__/ .coverage* *.xml +*.egg-info +dist diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..bec3ae8 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,27 @@ +[project] +name = "kupferbootstrap" +dependencies = [ + "appdirs>=1.4.4", + "click>=8.0.1", + "coloredlogs", + "enlighten", + "joblib>=1.0.1", + "munch", + "python-dateutil", + "PyYAML", + "requests", + "semver", + "toml", + "typing_extensions", +] +dynamic = ["version"] + +[project.scripts] +kupferbootstrap = "kupferbootstrap.main:main" + +[build-system] +requires = [ "setuptools>=41", "wheel", "setuptools-git-versioning<2", ] +build-backend = "setuptools.build_meta" + +[tool.setuptools-git-versioning] +enabled = true diff --git a/pytest.sh b/pytest.sh index d305774..544b319 100755 --- a/pytest.sh +++ b/pytest.sh @@ -1,4 +1,4 @@ #!/bin/bash sudo -v -python -m pytest -v --cov=. --cov-branch --cov-report=term "$@" ./*/test_*.py +python -m pytest -v --cov=. --cov-branch --cov-report=term "$@" src/kupferbootstrap diff --git a/requirements.txt b/requirements.txt index 248505c..d6e1198 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1 @@ -click>=8.0.1 -appdirs>=1.4.4 -joblib>=1.0.1 -toml -typing_extensions -coloredlogs -munch -setuptools # required by munch -requests -python-dateutil -enlighten -PyYAML -semver +-e . diff --git a/main.py b/src/kupferbootstrap/main.py similarity index 81% rename from main.py rename to src/kupferbootstrap/main.py index ffc62d5..28d4ff8 100755 --- a/main.py +++ b/src/kupferbootstrap/main.py @@ -7,20 +7,20 @@ from os import isatty from traceback import format_exc, format_exception_only, format_tb from typing import Optional -from logger import color_option, logging, quiet_option, setup_logging, verbose_option -from wrapper import get_wrapper_type, enforce_wrap, nowrapper_option -from progressbar import progress_bars_option +from .logger import color_option, logging, quiet_option, setup_logging, verbose_option +from .wrapper import get_wrapper_type, enforce_wrap, nowrapper_option +from .progressbar import progress_bars_option -from binfmt.cli import cmd_binfmt -from config.cli import config, config_option, cmd_config -from packages.cli import cmd_packages -from flavours.cli import cmd_flavours -from devices.cli import cmd_devices -from net.cli import cmd_net -from chroot.cli import cmd_chroot -from cache.cli import cmd_cache -from image.cli import cmd_image -from version.cli import cmd_version +from .binfmt.cli import cmd_binfmt +from .config.cli import config, config_option, cmd_config +from .packages.cli import cmd_packages +from .flavours.cli import cmd_flavours +from .devices.cli import cmd_devices +from .net.cli import cmd_net +from .chroot.cli import cmd_chroot +from .cache.cli import cmd_cache +from .image.cli import cmd_image +from .version.cli import cmd_version @click.group() diff --git a/version/__init__.py b/src/kupferbootstrap/version/__init__.py similarity index 100% rename from version/__init__.py rename to src/kupferbootstrap/version/__init__.py diff --git a/version/cli.py b/src/kupferbootstrap/version/cli.py similarity index 100% rename from version/cli.py rename to src/kupferbootstrap/version/cli.py diff --git a/version/compare.py b/src/kupferbootstrap/version/compare.py similarity index 100% rename from version/compare.py rename to src/kupferbootstrap/version/compare.py diff --git a/version/kbs.py b/src/kupferbootstrap/version/kbs.py similarity index 100% rename from version/kbs.py rename to src/kupferbootstrap/version/kbs.py diff --git a/version/test_kbs_version.py b/src/kupferbootstrap/version/test_kbs_version.py similarity index 100% rename from version/test_kbs_version.py rename to src/kupferbootstrap/version/test_kbs_version.py diff --git a/typecheck.sh b/typecheck.sh index 19b17c4..e085f59 100755 --- a/typecheck.sh +++ b/typecheck.sh @@ -1,2 +1,2 @@ #!/bin/bash -git ls-files \*.py | sort -u | xargs mypy --pretty --show-error-codes --check-untyped-defs --install-types --ignore-missing-imports "$@" +mypy --pretty --show-error-codes --check-untyped-defs --install-types --ignore-missing-imports -p kupferbootstrap "$@"