pyproject-api 1.4.0__tar.gz → 1.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/.github/workflows/check.yml +1 -1
  2. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/.pre-commit-config.yaml +12 -12
  3. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/PKG-INFO +8 -15
  4. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/docs/changelog.rst +6 -0
  5. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/docs/conf.py +1 -1
  6. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/pyproject.toml +36 -26
  7. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/_frontend.py +1 -1
  8. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/_version.py +2 -2
  9. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/demo_pkg_inline/build.py +12 -0
  10. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tox.ini +2 -2
  11. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/.github/dependabot.yml +0 -0
  12. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/.gitignore +0 -0
  13. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/.markdownlint.yaml +0 -0
  14. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/.readthedocs.yml +0 -0
  15. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/CODE_OF_CONDUCT.md +0 -0
  16. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/LICENSE +0 -0
  17. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/README.md +0 -0
  18. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/docs/index.rst +0 -0
  19. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/__init__.py +0 -0
  20. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/__main__.py +0 -0
  21. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/_backend.py +0 -0
  22. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/_backend.pyi +0 -0
  23. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/_util.py +0 -0
  24. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/_via_fresh_subprocess.py +0 -0
  25. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/src/pyproject_api/py.typed +0 -0
  26. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/_build_sdist.py +0 -0
  27. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/demo_pkg_inline/build.pyi +0 -0
  28. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/demo_pkg_inline/pyproject.toml +0 -0
  29. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/test_backend.py +0 -0
  30. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/test_frontend.py +0 -0
  31. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/test_frontend_setuptools.py +0 -0
  32. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/test_main.py +0 -0
  33. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/test_util.py +0 -0
  34. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/tests/test_version.py +0 -0
  35. {pyproject_api-1.4.0 → pyproject_api-1.5.1}/whitelist.txt +0 -0
@@ -109,7 +109,7 @@ jobs:
109
109
  - name: Build package
110
110
  run: pyproject-build -s -w . -o dist
111
111
  - name: Publish to PyPI
112
- uses: pypa/gh-action-pypi-publish@v1.6.4
112
+ uses: pypa/gh-action-pypi-publish@v1.6.5
113
113
  with:
114
114
  skip_existing: true
115
115
  user: __token__
@@ -18,25 +18,25 @@ repos:
18
18
  args: ["--py37-plus"]
19
19
  exclude: "^(src/pyproject_api/_backend.py|tests/demo_pkg_inline/build.py)$"
20
20
  - repo: https://github.com/PyCQA/isort
21
- rev: 5.11.4
21
+ rev: 5.12.0
22
22
  hooks:
23
23
  - id: isort
24
24
  - repo: https://github.com/psf/black
25
- rev: 22.12.0
25
+ rev: 23.1.0
26
26
  hooks:
27
27
  - id: black
28
28
  args: [--safe]
29
29
  - repo: https://github.com/asottile/blacken-docs
30
- rev: v1.12.1
30
+ rev: 1.13.0
31
31
  hooks:
32
32
  - id: blacken-docs
33
- additional_dependencies: [black==22.10]
33
+ additional_dependencies: [black==23.1]
34
34
  - repo: https://github.com/pre-commit/pygrep-hooks
35
- rev: v1.9.0
35
+ rev: v1.10.0
36
36
  hooks:
37
37
  - id: rst-backticks
38
38
  - repo: https://github.com/tox-dev/tox-ini-fmt
39
- rev: "0.5.2"
39
+ rev: "0.6.1"
40
40
  hooks:
41
41
  - id: tox-ini-fmt
42
42
  args: ["-p", "fix"]
@@ -45,16 +45,16 @@ repos:
45
45
  hooks:
46
46
  - id: flake8
47
47
  additional_dependencies:
48
- - flake8-bugbear==22.10.27
48
+ - flake8-bugbear==23.1.20
49
49
  - flake8-comprehensions==3.10.1
50
50
  - flake8-pytest-style==1.6
51
51
  - flake8-spellcheck==0.28
52
- - flake8-unused-arguments==0.0.12
52
+ - flake8-unused-arguments==0.0.13
53
53
  - flake8-noqa==1.3
54
- - pep8-naming==0.13.2
55
- - flake8-pyproject==1.2.1
54
+ - pep8-naming==0.13.3
55
+ - flake8-pyproject==1.2.2
56
56
  - repo: https://github.com/pre-commit/mirrors-prettier
57
- rev: "v3.0.0-alpha.4"
57
+ rev: "v2.7.1"
58
58
  hooks:
59
59
  - id: prettier
60
60
  additional_dependencies:
@@ -62,7 +62,7 @@ repos:
62
62
  - "@prettier/plugin-xml@2.2"
63
63
  args: ["--print-width=120", "--prose-wrap=always"]
64
64
  - repo: https://github.com/igorshubovych/markdownlint-cli
65
- rev: v0.32.2
65
+ rev: v0.33.0
66
66
  hooks:
67
67
  - id: markdownlint
68
68
  - repo: meta
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyproject_api
3
- Version: 1.4.0
3
+ Version: 1.5.1
4
4
  Summary: API to interact with the python pyproject.toml based projects
5
5
  Project-URL: Homepage, http://pyproject_api.readthedocs.org
6
6
  Project-URL: Source, https://github.com/tox-dev/pyproject-api
@@ -17,30 +17,23 @@ Classifier: License :: OSI Approved :: MIT License
17
17
  Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Operating System :: Microsoft :: Windows
19
19
  Classifier: Operating System :: POSIX
20
- Classifier: Programming Language :: Python :: 3
21
- Classifier: Programming Language :: Python :: 3 :: Only
22
- Classifier: Programming Language :: Python :: 3.7
23
- Classifier: Programming Language :: Python :: 3.8
24
- Classifier: Programming Language :: Python :: 3.9
25
- Classifier: Programming Language :: Python :: 3.10
26
- Classifier: Programming Language :: Python :: 3.11
27
20
  Classifier: Topic :: Software Development :: Libraries
28
21
  Classifier: Topic :: Software Development :: Testing
29
22
  Classifier: Topic :: Utilities
30
23
  Requires-Python: >=3.7
31
- Requires-Dist: packaging>=21.3
24
+ Requires-Dist: packaging>=23
32
25
  Requires-Dist: tomli>=2.0.1; python_version < '3.11'
33
26
  Provides-Extra: docs
34
- Requires-Dist: furo>=2022.9.29; extra == 'docs'
35
- Requires-Dist: sphinx-autodoc-typehints>=1.19.5; extra == 'docs'
36
- Requires-Dist: sphinx>=5.3; extra == 'docs'
27
+ Requires-Dist: furo>=2022.12.7; extra == 'docs'
28
+ Requires-Dist: sphinx-autodoc-typehints!=1.23.4,>=1.22; extra == 'docs'
29
+ Requires-Dist: sphinx>=6.1.3; extra == 'docs'
37
30
  Provides-Extra: testing
38
31
  Requires-Dist: covdefaults>=2.2.2; extra == 'testing'
39
- Requires-Dist: importlib-metadata>=5.1; python_version < '3.8' and extra == 'testing'
32
+ Requires-Dist: importlib-metadata>=6; python_version < '3.8' and extra == 'testing'
40
33
  Requires-Dist: pytest-cov>=4; extra == 'testing'
41
34
  Requires-Dist: pytest-mock>=3.10; extra == 'testing'
42
- Requires-Dist: pytest>=7.2; extra == 'testing'
43
- Requires-Dist: virtualenv>=20.17; extra == 'testing'
35
+ Requires-Dist: pytest>=7.2.1; extra == 'testing'
36
+ Requires-Dist: virtualenv>=20.17.1; extra == 'testing'
44
37
  Requires-Dist: wheel>=0.38.4; extra == 'testing'
45
38
  Description-Content-Type: text/markdown
46
39
 
@@ -1,6 +1,12 @@
1
1
  Release History
2
2
  ===============
3
3
 
4
+ v1.5.0 - (2023-01-17)
5
+ ---------------------
6
+ - When getting metadata from a built wheel, do not pass ``metadata_directory``
7
+ to ``build_wheel``, which forces the backend to generate the metadata - by :user:`masenf`.
8
+ (`#47 <https://github.com/tox-dev/pyproject-api/issues/47>`_)
9
+
4
10
  v1.4.0 - (2022-01-04)
5
11
  ---------------------
6
12
  - Add minimal CLI for debugging
@@ -20,7 +20,7 @@ extensions = [
20
20
  master_doc, source_suffix = "index", ".rst"
21
21
 
22
22
  html_theme = "furo"
23
- html_title, html_last_updated_fmt = "pyproject-api docs", datetime.now().isoformat()
23
+ html_title, html_last_updated_fmt = "pyproject-api docs", "%Y-%m-%dT%H:%M:%S"
24
24
  pygments_style, pygments_dark_style = "sphinx", "monokai"
25
25
 
26
26
  autoclass_content, autodoc_typehints = "both", "none"
@@ -1,32 +1,25 @@
1
1
  [build-system]
2
2
  build-backend = "hatchling.build"
3
- requires = ["hatchling>=1.11.1", "hatch-vcs>=0.2"]
3
+ requires = [
4
+ "hatch-vcs>=0.3",
5
+ "hatchling>=1.12.2",
6
+ ]
4
7
 
5
8
  [project]
6
9
  name = "pyproject_api"
7
10
  description = "API to interact with the python pyproject.toml based projects"
8
- readme.file = "README.md"
9
11
  readme.content-type = "text/markdown"
10
- keywords = ["virtual", "environments", "isolated", "testing"]
12
+ readme.file = "README.md"
13
+ keywords = [
14
+ "environments",
15
+ "isolated",
16
+ "testing",
17
+ "virtual",
18
+ ]
11
19
  license = "MIT"
12
- urls.Homepage = "http://pyproject_api.readthedocs.org"
13
- urls.Source = "https://github.com/tox-dev/pyproject-api"
14
- urls.Tracker = "https://github.com/tox-dev/pyproject-api/issues"
15
- authors = [{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" }]
16
20
  maintainers = [{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" }]
21
+ authors = [{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" }]
17
22
  requires-python = ">=3.7"
18
- dependencies = ["packaging>=21.3", 'tomli>=2.0.1; python_version < "3.11"']
19
- optional-dependencies.docs = ["furo>=2022.9.29", "sphinx>=5.3", "sphinx-autodoc-typehints>=1.19.5"]
20
- optional-dependencies.testing = [
21
- "covdefaults>=2.2.2",
22
- "pytest>=7.2",
23
- "pytest-cov>=4",
24
- "pytest-mock>=3.10",
25
- 'importlib-metadata>=5.1; python_version < "3.8"',
26
- "wheel>=0.38.4",
27
- "virtualenv>=20.17",
28
- ]
29
- dynamic = ["version"]
30
23
  classifiers = [
31
24
  "Development Status :: 5 - Production/Stable",
32
25
  "Framework :: tox",
@@ -35,17 +28,34 @@ classifiers = [
35
28
  "Operating System :: MacOS :: MacOS X",
36
29
  "Operating System :: Microsoft :: Windows",
37
30
  "Operating System :: POSIX",
38
- "Programming Language :: Python :: 3",
39
- "Programming Language :: Python :: 3 :: Only",
40
- "Programming Language :: Python :: 3.7",
41
- "Programming Language :: Python :: 3.8",
42
- "Programming Language :: Python :: 3.9",
43
- "Programming Language :: Python :: 3.10",
44
- "Programming Language :: Python :: 3.11",
45
31
  "Topic :: Software Development :: Libraries",
46
32
  "Topic :: Software Development :: Testing",
47
33
  "Topic :: Utilities",
48
34
  ]
35
+ dynamic = [
36
+ "version",
37
+ ]
38
+ dependencies = [
39
+ "packaging>=23",
40
+ 'tomli>=2.0.1; python_version < "3.11"',
41
+ ]
42
+ optional-dependencies.docs = [
43
+ "furo>=2022.12.7",
44
+ "sphinx>=6.1.3",
45
+ "sphinx-autodoc-typehints!=1.23.4,>=1.22",
46
+ ]
47
+ optional-dependencies.testing = [
48
+ "covdefaults>=2.2.2",
49
+ 'importlib-metadata>=6; python_version < "3.8"',
50
+ "pytest>=7.2.1",
51
+ "pytest-cov>=4",
52
+ "pytest-mock>=3.10",
53
+ "virtualenv>=20.17.1",
54
+ "wheel>=0.38.4",
55
+ ]
56
+ urls.Homepage = "http://pyproject_api.readthedocs.org"
57
+ urls.Source = "https://github.com/tox-dev/pyproject-api"
58
+ urls.Tracker = "https://github.com/tox-dev/pyproject-api/issues"
49
59
 
50
60
  [tool.hatch]
51
61
  build.hooks.vcs.version-file = "src/pyproject_api/_version.py"
@@ -453,7 +453,7 @@ class Frontend(ABC):
453
453
  wheel_result = getattr(self, cmd)(
454
454
  wheel_directory=wheel_directory,
455
455
  config_settings=config_settings,
456
- metadata_directory=metadata_directory,
456
+ metadata_directory=None, # let the backend populate the metadata
457
457
  )
458
458
  wheel = wheel_result.wheel
459
459
  if not wheel.exists():
@@ -1,4 +1,4 @@
1
1
  # file generated by setuptools_scm
2
2
  # don't change, don't track in version control
3
- __version__ = version = '1.4.0'
4
- __version_tuple__ = version_tuple = (1, 4, 0)
3
+ __version__ = version = '1.5.1'
4
+ __version_tuple__ = version_tuple = (1, 5, 1)
@@ -20,6 +20,8 @@ wheel = "{}/WHEEL".format(dist_info)
20
20
  record = "{}/RECORD".format(dist_info)
21
21
  content = {
22
22
  logic: "def do():\n print('greetings from {}')".format(name),
23
+ }
24
+ metadata = {
23
25
  metadata: """
24
26
  Metadata-Version: 2.1
25
27
  Name: {}
@@ -62,6 +64,16 @@ def build_wheel(wheel_directory, metadata_directory=None, config_settings=None):
62
64
  with ZipFile(path, "w") as zip_file_handler:
63
65
  for arc_name, data in content.items(): # pragma: no branch
64
66
  zip_file_handler.writestr(arc_name, dedent(data).strip())
67
+ if metadata_directory is not None:
68
+ for sub_directory, _, filenames in os.walk(metadata_directory):
69
+ for filename in filenames:
70
+ zip_file_handler.write(
71
+ os.path.join(metadata_directory, sub_directory, filename),
72
+ os.path.join(sub_directory, filename),
73
+ )
74
+ else:
75
+ for arc_name, data in metadata.items(): # pragma: no branch
76
+ zip_file_handler.writestr(arc_name, dedent(data).strip())
65
77
  print("created wheel {}".format(path))
66
78
  return base_name
67
79
 
@@ -39,7 +39,7 @@ passenv =
39
39
  PROGRAMDATA
40
40
  skip_install = true
41
41
  deps =
42
- pre-commit>=2.20
42
+ pre-commit>=3.0.4
43
43
  commands =
44
44
  pre-commit run --all-files --show-diff-on-failure {tty:--color=always} {posargs}
45
45
 
@@ -65,7 +65,7 @@ commands =
65
65
  description = check that the long description is valid
66
66
  skip_install = true
67
67
  deps =
68
- build[virtualenv]>=0.9
68
+ build[virtualenv]>=0.10
69
69
  check-wheel-contents>=0.4
70
70
  twine>=4.0.2
71
71
  commands =
File without changes
File without changes
File without changes