diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce1943bd3bd90e6c5d7bd36c3784153e53fd160e..15fd75f8a773bc6d735bc3f4cd11782e655f4fb2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -112,6 +112,7 @@ jobs: echo "$HOME/.local/bin" >> $GITHUB_PATH - name: Install Dev Dependencies run: | + python -m pip install -U setuptools pdm install -v -dGtest pdm run pip install -U setuptools pdm info diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 77332130c99914c342f47750bf50a4a334c69417..4fca84dc315301c7ba9443133c3d5a63ce2046a0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,7 +27,7 @@ repos: rev: v0.971 hooks: - id: mypy - args: [pdm] + args: [src] pass_filenames: false additional_dependencies: - types-requests diff --git a/pyproject.toml b/pyproject.toml index cc2c254bc083f0062cce046521b5635e1167a6c2..96a61f1de7027bdf627bc4235e91ebd95d54218e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,8 +57,8 @@ pdm = "pdm.core:main" version = {source = "scm"} [tool.pdm.build] -includes = ["pdm"] excludes = ["./**/.git"] +package-dir = "src" source-includes = ["tests", "CHANGELOG.md", "LICENSE", "README.md"] # editables backend doesn't work well with namespace packages editable-backend = "path" diff --git a/pdm/__init__.py b/src/pdm/__init__.py similarity index 100% rename from pdm/__init__.py rename to src/pdm/__init__.py diff --git a/pdm/__main__.py b/src/pdm/__main__.py similarity index 100% rename from pdm/__main__.py rename to src/pdm/__main__.py diff --git a/pdm/__version__.py b/src/pdm/__version__.py similarity index 100% rename from pdm/__version__.py rename to src/pdm/__version__.py diff --git a/pdm/_types.py b/src/pdm/_types.py similarity index 100% rename from pdm/_types.py rename to src/pdm/_types.py diff --git a/pdm/builders/__init__.py b/src/pdm/builders/__init__.py similarity index 100% rename from pdm/builders/__init__.py rename to src/pdm/builders/__init__.py diff --git a/pdm/builders/base.py b/src/pdm/builders/base.py similarity index 100% rename from pdm/builders/base.py rename to src/pdm/builders/base.py diff --git a/pdm/builders/editable.py b/src/pdm/builders/editable.py similarity index 100% rename from pdm/builders/editable.py rename to src/pdm/builders/editable.py diff --git a/pdm/builders/sdist.py b/src/pdm/builders/sdist.py similarity index 100% rename from pdm/builders/sdist.py rename to src/pdm/builders/sdist.py diff --git a/pdm/builders/wheel.py b/src/pdm/builders/wheel.py similarity index 100% rename from pdm/builders/wheel.py rename to src/pdm/builders/wheel.py diff --git a/pdm/cli/__init__.py b/src/pdm/cli/__init__.py similarity index 100% rename from pdm/cli/__init__.py rename to src/pdm/cli/__init__.py diff --git a/pdm/cli/actions.py b/src/pdm/cli/actions.py similarity index 100% rename from pdm/cli/actions.py rename to src/pdm/cli/actions.py diff --git a/pdm/cli/commands/__init__.py b/src/pdm/cli/commands/__init__.py similarity index 100% rename from pdm/cli/commands/__init__.py rename to src/pdm/cli/commands/__init__.py diff --git a/pdm/cli/commands/add.py b/src/pdm/cli/commands/add.py similarity index 100% rename from pdm/cli/commands/add.py rename to src/pdm/cli/commands/add.py diff --git a/pdm/cli/commands/base.py b/src/pdm/cli/commands/base.py similarity index 100% rename from pdm/cli/commands/base.py rename to src/pdm/cli/commands/base.py diff --git a/pdm/cli/commands/build.py b/src/pdm/cli/commands/build.py similarity index 100% rename from pdm/cli/commands/build.py rename to src/pdm/cli/commands/build.py diff --git a/pdm/cli/commands/cache.py b/src/pdm/cli/commands/cache.py similarity index 100% rename from pdm/cli/commands/cache.py rename to src/pdm/cli/commands/cache.py diff --git a/pdm/cli/commands/completion.py b/src/pdm/cli/commands/completion.py similarity index 100% rename from pdm/cli/commands/completion.py rename to src/pdm/cli/commands/completion.py diff --git a/pdm/cli/commands/config.py b/src/pdm/cli/commands/config.py similarity index 100% rename from pdm/cli/commands/config.py rename to src/pdm/cli/commands/config.py diff --git a/pdm/cli/commands/export.py b/src/pdm/cli/commands/export.py similarity index 100% rename from pdm/cli/commands/export.py rename to src/pdm/cli/commands/export.py diff --git a/pdm/cli/commands/import_cmd.py b/src/pdm/cli/commands/import_cmd.py similarity index 100% rename from pdm/cli/commands/import_cmd.py rename to src/pdm/cli/commands/import_cmd.py diff --git a/pdm/cli/commands/info.py b/src/pdm/cli/commands/info.py similarity index 100% rename from pdm/cli/commands/info.py rename to src/pdm/cli/commands/info.py diff --git a/pdm/cli/commands/init.py b/src/pdm/cli/commands/init.py similarity index 100% rename from pdm/cli/commands/init.py rename to src/pdm/cli/commands/init.py diff --git a/pdm/cli/commands/install.py b/src/pdm/cli/commands/install.py similarity index 100% rename from pdm/cli/commands/install.py rename to src/pdm/cli/commands/install.py diff --git a/pdm/cli/commands/list.py b/src/pdm/cli/commands/list.py similarity index 100% rename from pdm/cli/commands/list.py rename to src/pdm/cli/commands/list.py diff --git a/pdm/cli/commands/lock.py b/src/pdm/cli/commands/lock.py similarity index 100% rename from pdm/cli/commands/lock.py rename to src/pdm/cli/commands/lock.py diff --git a/pdm/cli/commands/plugin.py b/src/pdm/cli/commands/plugin.py similarity index 100% rename from pdm/cli/commands/plugin.py rename to src/pdm/cli/commands/plugin.py diff --git a/pdm/cli/commands/publish/__init__.py b/src/pdm/cli/commands/publish/__init__.py similarity index 100% rename from pdm/cli/commands/publish/__init__.py rename to src/pdm/cli/commands/publish/__init__.py diff --git a/pdm/cli/commands/publish/package.py b/src/pdm/cli/commands/publish/package.py similarity index 100% rename from pdm/cli/commands/publish/package.py rename to src/pdm/cli/commands/publish/package.py diff --git a/pdm/cli/commands/publish/repository.py b/src/pdm/cli/commands/publish/repository.py similarity index 100% rename from pdm/cli/commands/publish/repository.py rename to src/pdm/cli/commands/publish/repository.py diff --git a/pdm/cli/commands/remove.py b/src/pdm/cli/commands/remove.py similarity index 100% rename from pdm/cli/commands/remove.py rename to src/pdm/cli/commands/remove.py diff --git a/pdm/cli/commands/run.py b/src/pdm/cli/commands/run.py similarity index 100% rename from pdm/cli/commands/run.py rename to src/pdm/cli/commands/run.py diff --git a/pdm/cli/commands/search.py b/src/pdm/cli/commands/search.py similarity index 100% rename from pdm/cli/commands/search.py rename to src/pdm/cli/commands/search.py diff --git a/pdm/cli/commands/show.py b/src/pdm/cli/commands/show.py similarity index 100% rename from pdm/cli/commands/show.py rename to src/pdm/cli/commands/show.py diff --git a/pdm/cli/commands/sync.py b/src/pdm/cli/commands/sync.py similarity index 100% rename from pdm/cli/commands/sync.py rename to src/pdm/cli/commands/sync.py diff --git a/pdm/cli/commands/update.py b/src/pdm/cli/commands/update.py similarity index 100% rename from pdm/cli/commands/update.py rename to src/pdm/cli/commands/update.py diff --git a/pdm/cli/commands/use.py b/src/pdm/cli/commands/use.py similarity index 100% rename from pdm/cli/commands/use.py rename to src/pdm/cli/commands/use.py diff --git a/pdm/cli/commands/venv/__init__.py b/src/pdm/cli/commands/venv/__init__.py similarity index 100% rename from pdm/cli/commands/venv/__init__.py rename to src/pdm/cli/commands/venv/__init__.py diff --git a/pdm/cli/commands/venv/activate.py b/src/pdm/cli/commands/venv/activate.py similarity index 100% rename from pdm/cli/commands/venv/activate.py rename to src/pdm/cli/commands/venv/activate.py diff --git a/pdm/cli/commands/venv/backends.py b/src/pdm/cli/commands/venv/backends.py similarity index 100% rename from pdm/cli/commands/venv/backends.py rename to src/pdm/cli/commands/venv/backends.py diff --git a/pdm/cli/commands/venv/create.py b/src/pdm/cli/commands/venv/create.py similarity index 100% rename from pdm/cli/commands/venv/create.py rename to src/pdm/cli/commands/venv/create.py diff --git a/pdm/cli/commands/venv/list.py b/src/pdm/cli/commands/venv/list.py similarity index 100% rename from pdm/cli/commands/venv/list.py rename to src/pdm/cli/commands/venv/list.py diff --git a/pdm/cli/commands/venv/purge.py b/src/pdm/cli/commands/venv/purge.py similarity index 100% rename from pdm/cli/commands/venv/purge.py rename to src/pdm/cli/commands/venv/purge.py diff --git a/pdm/cli/commands/venv/remove.py b/src/pdm/cli/commands/venv/remove.py similarity index 100% rename from pdm/cli/commands/venv/remove.py rename to src/pdm/cli/commands/venv/remove.py diff --git a/pdm/cli/commands/venv/utils.py b/src/pdm/cli/commands/venv/utils.py similarity index 100% rename from pdm/cli/commands/venv/utils.py rename to src/pdm/cli/commands/venv/utils.py diff --git a/pdm/cli/completions/__init__.py b/src/pdm/cli/completions/__init__.py similarity index 100% rename from pdm/cli/completions/__init__.py rename to src/pdm/cli/completions/__init__.py diff --git a/pdm/cli/completions/pdm.bash b/src/pdm/cli/completions/pdm.bash similarity index 100% rename from pdm/cli/completions/pdm.bash rename to src/pdm/cli/completions/pdm.bash diff --git a/pdm/cli/completions/pdm.fish b/src/pdm/cli/completions/pdm.fish similarity index 100% rename from pdm/cli/completions/pdm.fish rename to src/pdm/cli/completions/pdm.fish diff --git a/pdm/cli/completions/pdm.ps1 b/src/pdm/cli/completions/pdm.ps1 similarity index 100% rename from pdm/cli/completions/pdm.ps1 rename to src/pdm/cli/completions/pdm.ps1 diff --git a/pdm/cli/completions/pdm.zsh b/src/pdm/cli/completions/pdm.zsh similarity index 100% rename from pdm/cli/completions/pdm.zsh rename to src/pdm/cli/completions/pdm.zsh diff --git a/pdm/cli/hooks.py b/src/pdm/cli/hooks.py similarity index 100% rename from pdm/cli/hooks.py rename to src/pdm/cli/hooks.py diff --git a/pdm/cli/options.py b/src/pdm/cli/options.py similarity index 100% rename from pdm/cli/options.py rename to src/pdm/cli/options.py diff --git a/pdm/cli/utils.py b/src/pdm/cli/utils.py similarity index 100% rename from pdm/cli/utils.py rename to src/pdm/cli/utils.py diff --git a/pdm/compat.py b/src/pdm/compat.py similarity index 100% rename from pdm/compat.py rename to src/pdm/compat.py diff --git a/pdm/core.py b/src/pdm/core.py similarity index 100% rename from pdm/core.py rename to src/pdm/core.py diff --git a/pdm/exceptions.py b/src/pdm/exceptions.py similarity index 100% rename from pdm/exceptions.py rename to src/pdm/exceptions.py diff --git a/pdm/formats/__init__.py b/src/pdm/formats/__init__.py similarity index 100% rename from pdm/formats/__init__.py rename to src/pdm/formats/__init__.py diff --git a/pdm/formats/base.py b/src/pdm/formats/base.py similarity index 100% rename from pdm/formats/base.py rename to src/pdm/formats/base.py diff --git a/pdm/formats/flit.py b/src/pdm/formats/flit.py similarity index 100% rename from pdm/formats/flit.py rename to src/pdm/formats/flit.py diff --git a/pdm/formats/pipfile.py b/src/pdm/formats/pipfile.py similarity index 100% rename from pdm/formats/pipfile.py rename to src/pdm/formats/pipfile.py diff --git a/pdm/formats/poetry.py b/src/pdm/formats/poetry.py similarity index 100% rename from pdm/formats/poetry.py rename to src/pdm/formats/poetry.py diff --git a/pdm/formats/requirements.py b/src/pdm/formats/requirements.py similarity index 100% rename from pdm/formats/requirements.py rename to src/pdm/formats/requirements.py diff --git a/pdm/formats/setup_py.py b/src/pdm/formats/setup_py.py similarity index 100% rename from pdm/formats/setup_py.py rename to src/pdm/formats/setup_py.py diff --git a/pdm/installers/__init__.py b/src/pdm/installers/__init__.py similarity index 100% rename from pdm/installers/__init__.py rename to src/pdm/installers/__init__.py diff --git a/pdm/installers/installers.py b/src/pdm/installers/installers.py similarity index 100% rename from pdm/installers/installers.py rename to src/pdm/installers/installers.py diff --git a/pdm/installers/manager.py b/src/pdm/installers/manager.py similarity index 100% rename from pdm/installers/manager.py rename to src/pdm/installers/manager.py diff --git a/pdm/installers/packages.py b/src/pdm/installers/packages.py similarity index 100% rename from pdm/installers/packages.py rename to src/pdm/installers/packages.py diff --git a/pdm/installers/synchronizers.py b/src/pdm/installers/synchronizers.py similarity index 100% rename from pdm/installers/synchronizers.py rename to src/pdm/installers/synchronizers.py diff --git a/pdm/installers/uninstallers.py b/src/pdm/installers/uninstallers.py similarity index 100% rename from pdm/installers/uninstallers.py rename to src/pdm/installers/uninstallers.py diff --git a/pdm/models/__init__.py b/src/pdm/models/__init__.py similarity index 100% rename from pdm/models/__init__.py rename to src/pdm/models/__init__.py diff --git a/pdm/models/auth.py b/src/pdm/models/auth.py similarity index 100% rename from pdm/models/auth.py rename to src/pdm/models/auth.py diff --git a/pdm/models/caches.py b/src/pdm/models/caches.py similarity index 100% rename from pdm/models/caches.py rename to src/pdm/models/caches.py diff --git a/pdm/models/candidates.py b/src/pdm/models/candidates.py similarity index 100% rename from pdm/models/candidates.py rename to src/pdm/models/candidates.py diff --git a/pdm/models/environment.py b/src/pdm/models/environment.py similarity index 100% rename from pdm/models/environment.py rename to src/pdm/models/environment.py diff --git a/pdm/models/in_process/__init__.py b/src/pdm/models/in_process/__init__.py similarity index 100% rename from pdm/models/in_process/__init__.py rename to src/pdm/models/in_process/__init__.py diff --git a/pdm/models/in_process/get_abi_tag.py b/src/pdm/models/in_process/get_abi_tag.py similarity index 100% rename from pdm/models/in_process/get_abi_tag.py rename to src/pdm/models/in_process/get_abi_tag.py diff --git a/pdm/models/in_process/parse_setup.py b/src/pdm/models/in_process/parse_setup.py similarity index 100% rename from pdm/models/in_process/parse_setup.py rename to src/pdm/models/in_process/parse_setup.py diff --git a/pdm/models/in_process/pep508.py b/src/pdm/models/in_process/pep508.py similarity index 100% rename from pdm/models/in_process/pep508.py rename to src/pdm/models/in_process/pep508.py diff --git a/pdm/models/in_process/sysconfig_get_paths.py b/src/pdm/models/in_process/sysconfig_get_paths.py similarity index 100% rename from pdm/models/in_process/sysconfig_get_paths.py rename to src/pdm/models/in_process/sysconfig_get_paths.py diff --git a/pdm/models/markers.py b/src/pdm/models/markers.py similarity index 100% rename from pdm/models/markers.py rename to src/pdm/models/markers.py diff --git a/pdm/models/project_info.py b/src/pdm/models/project_info.py similarity index 100% rename from pdm/models/project_info.py rename to src/pdm/models/project_info.py diff --git a/pdm/models/python.py b/src/pdm/models/python.py similarity index 100% rename from pdm/models/python.py rename to src/pdm/models/python.py diff --git a/pdm/models/python_max_versions.json b/src/pdm/models/python_max_versions.json similarity index 100% rename from pdm/models/python_max_versions.json rename to src/pdm/models/python_max_versions.json diff --git a/pdm/models/repositories.py b/src/pdm/models/repositories.py similarity index 100% rename from pdm/models/repositories.py rename to src/pdm/models/repositories.py diff --git a/pdm/models/requirements.py b/src/pdm/models/requirements.py similarity index 100% rename from pdm/models/requirements.py rename to src/pdm/models/requirements.py diff --git a/pdm/models/search.py b/src/pdm/models/search.py similarity index 100% rename from pdm/models/search.py rename to src/pdm/models/search.py diff --git a/pdm/models/session.py b/src/pdm/models/session.py similarity index 100% rename from pdm/models/session.py rename to src/pdm/models/session.py diff --git a/pdm/models/setup.py b/src/pdm/models/setup.py similarity index 100% rename from pdm/models/setup.py rename to src/pdm/models/setup.py diff --git a/pdm/models/specifiers.py b/src/pdm/models/specifiers.py similarity index 100% rename from pdm/models/specifiers.py rename to src/pdm/models/specifiers.py diff --git a/pdm/models/versions.py b/src/pdm/models/versions.py similarity index 100% rename from pdm/models/versions.py rename to src/pdm/models/versions.py diff --git a/pdm/models/working_set.py b/src/pdm/models/working_set.py similarity index 100% rename from pdm/models/working_set.py rename to src/pdm/models/working_set.py diff --git a/pdm/pep582/sitecustomize.py b/src/pdm/pep582/sitecustomize.py similarity index 100% rename from pdm/pep582/sitecustomize.py rename to src/pdm/pep582/sitecustomize.py diff --git a/pdm/project/__init__.py b/src/pdm/project/__init__.py similarity index 100% rename from pdm/project/__init__.py rename to src/pdm/project/__init__.py diff --git a/pdm/project/config.py b/src/pdm/project/config.py similarity index 100% rename from pdm/project/config.py rename to src/pdm/project/config.py diff --git a/pdm/project/core.py b/src/pdm/project/core.py similarity index 100% rename from pdm/project/core.py rename to src/pdm/project/core.py diff --git a/pdm/project/metadata.py b/src/pdm/project/metadata.py similarity index 100% rename from pdm/project/metadata.py rename to src/pdm/project/metadata.py diff --git a/pdm/py.typed b/src/pdm/py.typed similarity index 100% rename from pdm/py.typed rename to src/pdm/py.typed diff --git a/pdm/resolver/__init__.py b/src/pdm/resolver/__init__.py similarity index 100% rename from pdm/resolver/__init__.py rename to src/pdm/resolver/__init__.py diff --git a/pdm/resolver/core.py b/src/pdm/resolver/core.py similarity index 100% rename from pdm/resolver/core.py rename to src/pdm/resolver/core.py diff --git a/pdm/resolver/providers.py b/src/pdm/resolver/providers.py similarity index 100% rename from pdm/resolver/providers.py rename to src/pdm/resolver/providers.py diff --git a/pdm/resolver/python.py b/src/pdm/resolver/python.py similarity index 100% rename from pdm/resolver/python.py rename to src/pdm/resolver/python.py diff --git a/pdm/resolver/reporters.py b/src/pdm/resolver/reporters.py similarity index 100% rename from pdm/resolver/reporters.py rename to src/pdm/resolver/reporters.py diff --git a/pdm/signals.py b/src/pdm/signals.py similarity index 100% rename from pdm/signals.py rename to src/pdm/signals.py diff --git a/pdm/termui.py b/src/pdm/termui.py similarity index 100% rename from pdm/termui.py rename to src/pdm/termui.py diff --git a/pdm/utils.py b/src/pdm/utils.py similarity index 100% rename from pdm/utils.py rename to src/pdm/utils.py diff --git a/tests/conftest.py b/tests/conftest.py index fcac6c39b34a72dc131f7be48effb183655e694e..5d866325e1f6fd93bb70348166fa287cf2ac94b5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -33,7 +33,7 @@ from pdm.models.requirements import ( from pdm.models.session import PDMSession from pdm.project.config import Config from pdm.project.core import Project -from pdm.utils import normalize_name, path_to_url +from pdm.utils import find_python_in_path, normalize_name, path_to_url from tests import FIXTURES os.environ.update(CI="1", PDM_CHECK_UPDATE="0") @@ -290,7 +290,7 @@ def project_no_init(tmp_path, mocker, core, index, monkeypatch): ) tmp_path.joinpath("caches").mkdir(parents=True) p.global_config["cache_dir"] = tmp_path.joinpath("caches").as_posix() - p.project_config["python.path"] = getattr(sys, "_base_executable", sys.executable) + p.project_config["python.path"] = find_python_in_path(sys.base_prefix).as_posix() monkeypatch.delenv("VIRTUAL_ENV", raising=False) monkeypatch.delenv("CONDA_PREFIX", raising=False) monkeypatch.delenv("PEP582_PACKAGES", raising=False)