devpi-process 1.0.1__tar.gz → 1.1.0__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 (27) hide show
  1. devpi_process-1.1.0/.github/release.yaml +5 -0
  2. devpi_process-1.1.0/.github/workflows/check.yaml +50 -0
  3. devpi_process-1.1.0/.github/workflows/release.yaml +48 -0
  4. {devpi_process-1.0.1 → devpi_process-1.1.0}/.pre-commit-config.yaml +8 -8
  5. {devpi_process-1.0.1 → devpi_process-1.1.0}/PKG-INFO +12 -16
  6. {devpi_process-1.0.1 → devpi_process-1.1.0}/README.md +1 -3
  7. {devpi_process-1.0.1 → devpi_process-1.1.0}/pyproject.toml +10 -14
  8. {devpi_process-1.0.1 → devpi_process-1.1.0}/src/devpi_process/__init__.py +4 -3
  9. devpi_process-1.1.0/src/devpi_process/_version.py +34 -0
  10. devpi_process-1.1.0/tox.ini +68 -0
  11. devpi_process-1.0.1/.github/release.yml +0 -5
  12. devpi_process-1.0.1/.github/workflows/check.yml +0 -78
  13. devpi_process-1.0.1/.github/workflows/release.yml +0 -32
  14. devpi_process-1.0.1/src/devpi_process/_version.py +0 -16
  15. devpi_process-1.0.1/tox.ini +0 -74
  16. /devpi_process-1.0.1/.github/FUNDING.yml → /devpi_process-1.1.0/.github/FUNDING.yaml +0 -0
  17. {devpi_process-1.0.1 → devpi_process-1.1.0}/.github/SECURITY.md +0 -0
  18. /devpi_process-1.0.1/.github/dependabot.yml → /devpi_process-1.1.0/.github/dependabot.yaml +0 -0
  19. {devpi_process-1.0.1 → devpi_process-1.1.0}/.gitignore +0 -0
  20. {devpi_process-1.0.1 → devpi_process-1.1.0}/.markdownlint.yaml +0 -0
  21. {devpi_process-1.0.1 → devpi_process-1.1.0}/CHANGELOG.md +0 -0
  22. {devpi_process-1.0.1 → devpi_process-1.1.0}/CODE_OF_CONDUCT.md +0 -0
  23. {devpi_process-1.0.1 → devpi_process-1.1.0}/LICENSE.txt +0 -0
  24. {devpi_process-1.0.1 → devpi_process-1.1.0}/src/devpi_process/py.typed +0 -0
  25. {devpi_process-1.0.1 → devpi_process-1.1.0}/tests/demo_pkg_inline/build.py +0 -0
  26. {devpi_process-1.0.1 → devpi_process-1.1.0}/tests/demo_pkg_inline/pyproject.toml +0 -0
  27. {devpi_process-1.0.1 → devpi_process-1.1.0}/tests/test_devpi_process.py +0 -0
@@ -0,0 +1,5 @@
1
+ changelog:
2
+ exclude:
3
+ authors:
4
+ - dependabot[bot]
5
+ - pre-commit-ci[bot]
@@ -0,0 +1,50 @@
1
+ name: check
2
+ on:
3
+ workflow_dispatch:
4
+ push:
5
+ branches: ["main"]
6
+ tags-ignore: ["**"]
7
+ pull_request:
8
+ schedule:
9
+ - cron: "0 8 * * *"
10
+
11
+ concurrency:
12
+ group: check-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ test:
17
+ runs-on: ubuntu-latest
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ env:
22
+ - "3.14"
23
+ - "3.13"
24
+ - "3.12"
25
+ - "3.11"
26
+ - "3.10"
27
+ - type
28
+ - dev
29
+ - pkg_meta
30
+ steps:
31
+ - uses: actions/checkout@v5
32
+ with:
33
+ fetch-depth: 0
34
+ - name: Install the latest version of uv
35
+ uses: astral-sh/setup-uv@v7
36
+ with:
37
+ enable-cache: true
38
+ cache-dependency-glob: "pyproject.toml"
39
+ github-token: ${{ secrets.GITHUB_TOKEN }}
40
+ - name: Install tox
41
+ run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv
42
+ - name: Install Python
43
+ if: startsWith(matrix.env, '3.') && matrix.env != '3.14'
44
+ run: uv python install --python-preference only-managed ${{ matrix.env }}
45
+ - name: Setup test suite
46
+ run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.env }}
47
+ - name: Run test suite
48
+ run: tox run --skip-pkg-install -e ${{ matrix.env }}
49
+ env:
50
+ PYTEST_ADDOPTS: "-vv --durations=5"
@@ -0,0 +1,48 @@
1
+ name: Release to PyPI
2
+ on:
3
+ push:
4
+ tags: ["*"]
5
+
6
+ env:
7
+ dists-artifact-name: python-package-distributions
8
+
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v5
14
+ with:
15
+ fetch-depth: 0
16
+ - name: Install the latest version of uv
17
+ uses: astral-sh/setup-uv@v7
18
+ with:
19
+ enable-cache: true
20
+ cache-dependency-glob: "pyproject.toml"
21
+ github-token: ${{ secrets.GITHUB_TOKEN }}
22
+ - name: Build package
23
+ run: uv build --python 3.14 --python-preference only-managed --sdist --wheel . --out-dir dist
24
+ - name: Store the distribution packages
25
+ uses: actions/upload-artifact@v4
26
+ with:
27
+ name: ${{ env.dists-artifact-name }}
28
+ path: dist/*
29
+
30
+ release:
31
+ needs:
32
+ - build
33
+ runs-on: ubuntu-latest
34
+ environment:
35
+ name: release
36
+ url: https://pypi.org/project/devpi-process/${{ github.ref_name }}
37
+ permissions:
38
+ id-token: write
39
+ steps:
40
+ - name: Download all the dists
41
+ uses: actions/download-artifact@v5
42
+ with:
43
+ name: ${{ env.dists-artifact-name }}
44
+ path: dist/
45
+ - name: Publish to PyPI
46
+ uses: pypa/gh-action-pypi-publish@v1.13.0
47
+ with:
48
+ attestations: true
@@ -1,36 +1,36 @@
1
1
  repos:
2
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v4.6.0
3
+ rev: v6.0.0
4
4
  hooks:
5
5
  - id: end-of-file-fixer
6
6
  - id: trailing-whitespace
7
7
  - repo: https://github.com/python-jsonschema/check-jsonschema
8
- rev: 0.29.2
8
+ rev: 0.34.0
9
9
  hooks:
10
10
  - id: check-github-workflows
11
11
  args: ["--verbose"]
12
12
  - repo: https://github.com/codespell-project/codespell
13
- rev: v2.3.0
13
+ rev: v2.4.1
14
14
  hooks:
15
15
  - id: codespell
16
- additional_dependencies: ["tomli>=2.0.1"]
16
+ additional_dependencies: ["tomli>=2.2.1"]
17
17
  - repo: https://github.com/tox-dev/tox-ini-fmt
18
- rev: "1.3.2"
18
+ rev: "1.6.0"
19
19
  hooks:
20
20
  - id: tox-ini-fmt
21
21
  args: ["-p", "fix"]
22
22
  - repo: https://github.com/tox-dev/pyproject-fmt
23
- rev: "2.2.1"
23
+ rev: "v2.10.0"
24
24
  hooks:
25
25
  - id: pyproject-fmt
26
26
  - repo: https://github.com/astral-sh/ruff-pre-commit
27
- rev: "v0.6.4"
27
+ rev: "v0.14.0"
28
28
  hooks:
29
29
  - id: ruff-format
30
30
  - id: ruff
31
31
  args: ["--fix", "--unsafe-fixes", "--exit-non-zero-on-fix"]
32
32
  - repo: https://github.com/rbubley/mirrors-prettier
33
- rev: "v3.3.3"
33
+ rev: "v3.6.2"
34
34
  hooks:
35
35
  - id: prettier
36
36
  args: ["--print-width=120", "--prose-wrap=always"]
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: devpi-process
3
- Version: 1.0.1
3
+ Version: 1.1.0
4
4
  Summary: devpi process provides a programmatic API to create and use a devpi server process
5
5
  Project-URL: Homepage, https://github.com/tox-dev/devpi-process#readme
6
6
  Project-URL: Source, https://github.com/tox-dev/devpi-process
@@ -18,8 +18,6 @@ Classifier: Operating System :: MacOS :: MacOS X
18
18
  Classifier: Operating System :: Microsoft :: Windows
19
19
  Classifier: Operating System :: POSIX
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
- Classifier: Programming Language :: Python :: 3.9
23
21
  Classifier: Programming Language :: Python :: 3.10
24
22
  Classifier: Programming Language :: Python :: 3.11
25
23
  Classifier: Programming Language :: Python :: 3.12
@@ -27,15 +25,15 @@ Classifier: Programming Language :: Python :: 3.13
27
25
  Classifier: Topic :: Software Development :: Libraries
28
26
  Classifier: Topic :: Software Development :: Testing
29
27
  Classifier: Topic :: Utilities
30
- Requires-Python: >=3.8
31
- Requires-Dist: devpi-client>=7.1
32
- Requires-Dist: devpi-server>=6.12.1
33
- Requires-Dist: typing-extensions>=4.12.2; python_version < '3.11'
34
- Provides-Extra: test
35
- Requires-Dist: covdefaults>=2.3; extra == 'test'
36
- Requires-Dist: httpx>=0.27.2; extra == 'test'
37
- Requires-Dist: pytest-cov>=5; extra == 'test'
38
- Requires-Dist: pytest>=8.3.2; extra == 'test'
28
+ Requires-Python: >=3.10
29
+ Requires-Dist: devpi-client>=7.2
30
+ Requires-Dist: devpi-server>=6.17
31
+ Requires-Dist: typing-extensions>=4.15; python_version < '3.11'
32
+ Provides-Extra: testing
33
+ Requires-Dist: covdefaults>=2.3; extra == 'testing'
34
+ Requires-Dist: httpx>=0.28.1; extra == 'testing'
35
+ Requires-Dist: pytest-cov>=7; extra == 'testing'
36
+ Requires-Dist: pytest>=8.4.2; extra == 'testing'
39
37
  Description-Content-Type: text/markdown
40
38
 
41
39
  # devpi-process
@@ -45,9 +43,7 @@ Description-Content-Type: text/markdown
45
43
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
46
44
  [![Downloads](https://static.pepy.tech/badge/devpi-process/month)](https://pepy.tech/project/devpi-process)
47
45
  [![PyPI - License](https://img.shields.io/pypi/l/devpi-process?style=flat-square)](https://opensource.org/licenses/MIT)
48
- [![check](https://github.com/tox-dev/devpi-process/workflows/check/badge.svg)](https://github.com/tox-dev/devpi-process/actions?query=workflow%3Acheck)
49
- [![Code style:
50
- black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)
46
+ [![check](https://github.com/tox-dev/devpi-process/actions/workflows/check.yaml/badge.svg)](https://github.com/tox-dev/devpi-process/actions/workflows/check.yaml)
51
47
 
52
48
  Allows you to create [devpi](https://devpi.net/docs/devpi/devpi/stable/+d/index.html) server process with indexes, and
53
49
  upload artifacts to that programmatically.
@@ -5,9 +5,7 @@
5
5
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
6
6
  [![Downloads](https://static.pepy.tech/badge/devpi-process/month)](https://pepy.tech/project/devpi-process)
7
7
  [![PyPI - License](https://img.shields.io/pypi/l/devpi-process?style=flat-square)](https://opensource.org/licenses/MIT)
8
- [![check](https://github.com/tox-dev/devpi-process/workflows/check/badge.svg)](https://github.com/tox-dev/devpi-process/actions?query=workflow%3Acheck)
9
- [![Code style:
10
- black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)
8
+ [![check](https://github.com/tox-dev/devpi-process/actions/workflows/check.yaml/badge.svg)](https://github.com/tox-dev/devpi-process/actions/workflows/check.yaml)
11
9
 
12
10
  Allows you to create [devpi](https://devpi.net/docs/devpi/devpi/stable/+d/index.html) server process with indexes, and
13
11
  upload artifacts to that programmatically.
@@ -1,8 +1,8 @@
1
1
  [build-system]
2
2
  build-backend = "hatchling.build"
3
3
  requires = [
4
- "hatch-vcs>=0.4",
5
- "hatchling>=1.25",
4
+ "hatch-vcs>=0.5",
5
+ "hatchling>=1.27",
6
6
  ]
7
7
 
8
8
  [project]
@@ -23,7 +23,7 @@ maintainers = [
23
23
  authors = [
24
24
  { name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
25
25
  ]
26
- requires-python = ">=3.8"
26
+ requires-python = ">=3.10"
27
27
  classifiers = [
28
28
  "Development Status :: 5 - Production/Stable",
29
29
  "Framework :: tox",
@@ -33,8 +33,6 @@ classifiers = [
33
33
  "Operating System :: Microsoft :: Windows",
34
34
  "Operating System :: POSIX",
35
35
  "Programming Language :: Python :: 3 :: Only",
36
- "Programming Language :: Python :: 3.8",
37
- "Programming Language :: Python :: 3.9",
38
36
  "Programming Language :: Python :: 3.10",
39
37
  "Programming Language :: Python :: 3.11",
40
38
  "Programming Language :: Python :: 3.12",
@@ -47,15 +45,15 @@ dynamic = [
47
45
  "version",
48
46
  ]
49
47
  dependencies = [
50
- "devpi-client>=7.1",
51
- "devpi-server>=6.12.1",
52
- "typing-extensions>=4.12.2; python_version<'3.11'",
48
+ "devpi-client>=7.2",
49
+ "devpi-server>=6.17",
50
+ "typing-extensions>=4.15; python_version<'3.11'",
53
51
  ]
54
- optional-dependencies.test = [
52
+ optional-dependencies.testing = [
55
53
  "covdefaults>=2.3",
56
- "httpx>=0.27.2",
57
- "pytest>=8.3.2",
58
- "pytest-cov>=5",
54
+ "httpx>=0.28.1",
55
+ "pytest>=8.4.2",
56
+ "pytest-cov>=7",
59
57
  ]
60
58
  urls.Homepage = "https://github.com/tox-dev/devpi-process#readme"
61
59
  urls.Source = "https://github.com/tox-dev/devpi-process"
@@ -69,7 +67,6 @@ version.source = "vcs"
69
67
  line-length = 120
70
68
 
71
69
  [tool.ruff]
72
- target-version = "py38"
73
70
  line-length = 120
74
71
  format.preview = true
75
72
  format.docstring-code-line-length = 100
@@ -78,7 +75,6 @@ lint.select = [
78
75
  "ALL",
79
76
  ]
80
77
  lint.ignore = [
81
- "ANN101", # no type annotation for self
82
78
  "ANN401", # allow Any as type annotation
83
79
  "COM812", # Conflict with formatter
84
80
  "CPY", # No copyright statements
@@ -11,11 +11,12 @@ from contextlib import closing
11
11
  from pathlib import Path
12
12
  from subprocess import PIPE, Popen, run # noqa: S404
13
13
  from threading import Thread
14
- from typing import IO, TYPE_CHECKING, Iterator, Sequence, cast
14
+ from typing import IO, TYPE_CHECKING, cast
15
15
 
16
16
  from ._version import __version__
17
17
 
18
18
  if TYPE_CHECKING:
19
+ from collections.abc import Iterator, Sequence
19
20
  from types import TracebackType
20
21
 
21
22
  if sys.version_info >= (3, 11): # pragma: no cover (py311+)
@@ -149,7 +150,7 @@ class IndexServer:
149
150
 
150
151
  def _drain_stdout(self) -> Iterator[str]:
151
152
  process = cast("Popen[str]", self._process)
152
- stdout = cast(IO[str], process.stdout)
153
+ stdout = cast("IO[str]", process.stdout)
153
154
  while True:
154
155
  if process.poll() is not None: # pragma: no cover
155
156
  print(f"devpi server with pid {process.pid} at {self._server_dir} died") # noqa: T201
@@ -211,7 +212,7 @@ class IndexServer:
211
212
  def _find_free_port() -> int:
212
213
  with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as socket_handler:
213
214
  socket_handler.bind(("", 0))
214
- return cast(int, socket_handler.getsockname()[1])
215
+ return cast("int", socket_handler.getsockname()[1])
215
216
 
216
217
 
217
218
  __all__ = [
@@ -0,0 +1,34 @@
1
+ # file generated by setuptools-scm
2
+ # don't change, don't track in version control
3
+
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
12
+
13
+ TYPE_CHECKING = False
14
+ if TYPE_CHECKING:
15
+ from typing import Tuple
16
+ from typing import Union
17
+
18
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
20
+ else:
21
+ VERSION_TUPLE = object
22
+ COMMIT_ID = object
23
+
24
+ version: str
25
+ __version__: str
26
+ __version_tuple__: VERSION_TUPLE
27
+ version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
30
+
31
+ __version__ = version = '1.1.0'
32
+ __version_tuple__ = version_tuple = (1, 1, 0)
33
+
34
+ __commit_id__ = commit_id = None
@@ -0,0 +1,68 @@
1
+ [tox]
2
+ requires =
3
+ tox>=4.30.3
4
+ tox-uv>=1.28
5
+ env_list =
6
+ fix
7
+ 3.14
8
+ 3.13
9
+ 3.12
10
+ 3.11
11
+ 3.10
12
+ type
13
+ pkg_meta
14
+ skip_missing_interpreters = true
15
+
16
+ [testenv]
17
+ description = run the unit tests with pytest under {base_python}
18
+ package = wheel
19
+ wheel_build_env = .pkg
20
+ extras =
21
+ testing
22
+ pass_env =
23
+ DIFF_AGAINST
24
+ PYTEST_*
25
+ set_env =
26
+ COVERAGE_FILE = {work_dir}/.coverage.{env_name}
27
+ commands =
28
+ python -m pytest {tty:--color=yes} {posargs: \
29
+ --cov {env_site_packages_dir}{/}devpi_process --cov {tox_root}{/}tests \
30
+ --cov-config=pyproject.toml --no-cov-on-fail --cov-report term-missing:skip-covered --cov-context=test \
31
+ --cov-report html:{env_tmp_dir}{/}htmlcov --cov-report xml:{work_dir}{/}coverage.{env_name}.xml \
32
+ --junitxml {work_dir}{/}junit.{env_name}.xml \
33
+ tests}
34
+
35
+ [testenv:fix]
36
+ description = format the code base to adhere to our styles, and complain about what we cannot do automatically
37
+ skip_install = true
38
+ deps =
39
+ pre-commit-uv>=4.1.5
40
+ commands =
41
+ pre-commit run --all-files --show-diff-on-failure
42
+
43
+ [testenv:type]
44
+ description = run type check on code base
45
+ deps =
46
+ mypy==1.18.2
47
+ commands =
48
+ mypy src
49
+ mypy tests
50
+
51
+ [testenv:pkg_meta]
52
+ description = check that the long description is valid
53
+ skip_install = true
54
+ deps =
55
+ check-wheel-contents>=0.6.3
56
+ twine>=6.2
57
+ uv>=0.8.22
58
+ commands =
59
+ uv build --sdist --wheel --out-dir {env_tmp_dir} .
60
+ twine check {env_tmp_dir}{/}*
61
+ check-wheel-contents --no-config {env_tmp_dir}
62
+
63
+ [testenv:dev]
64
+ description = generate a DEV environment
65
+ package = editable
66
+ commands =
67
+ uv pip tree
68
+ python -c 'import sys; print(sys.executable)'
@@ -1,5 +0,0 @@
1
- changelog:
2
- exclude:
3
- authors:
4
- - dependabot
5
- - pre-commit-ci
@@ -1,78 +0,0 @@
1
- name: check
2
- on:
3
- workflow_dispatch:
4
- push:
5
- branches: ["main"]
6
- tags-ignore: ["**"]
7
- pull_request:
8
- schedule:
9
- - cron: "0 8 * * *"
10
-
11
- concurrency:
12
- group: check-${{ github.ref }}
13
- cancel-in-progress: true
14
-
15
- jobs:
16
- test:
17
- name: test ${{ matrix.py }}
18
- runs-on: ubuntu-latest
19
- strategy:
20
- fail-fast: false
21
- matrix:
22
- py:
23
- - "3.13"
24
- - "3.12"
25
- - "3.11"
26
- - "3.10"
27
- - "3.9"
28
- - "3.8"
29
- steps:
30
- - name: Install the latest version of uv
31
- uses: astral-sh/setup-uv@v2
32
- with:
33
- enable-cache: true
34
- github-token: ${{ secrets.GITHUB_TOKEN }}
35
- - name: setup python for tox
36
- uses: actions/setup-python@v5
37
- with:
38
- python-version: "3.12"
39
- - name: install tox
40
- run: uv pip install tox tox-uv --system
41
- - uses: actions/checkout@v4
42
- - name: setup python for test ${{ matrix.py }}
43
- uses: actions/setup-python@v5
44
- with:
45
- python-version: ${{ matrix.py }}
46
- allow-prereleases: true
47
- - name: setup test suite
48
- run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.py }}
49
- - name: run test suite
50
- run: tox run --skip-pkg-install -e ${{ matrix.py }}
51
-
52
- check:
53
- name: tox env ${{ matrix.tox_env }}
54
- runs-on: ubuntu-latest
55
- strategy:
56
- fail-fast: false
57
- matrix:
58
- tox_env:
59
- - type
60
- - dev
61
- - readme
62
- steps:
63
- - name: Install the latest version of uv
64
- uses: astral-sh/setup-uv@v2
65
- with:
66
- enable-cache: true
67
- github-token: ${{ secrets.GITHUB_TOKEN }}
68
- - uses: actions/checkout@v4
69
- - name: setup Python 3.12
70
- uses: actions/setup-python@v5
71
- with:
72
- python-version: "3.12"
73
- - name: install tox
74
- run: uv pip install tox tox-uv --system
75
- - name: Setup test suite
76
- run: tox -vv --notest --skip-missing-interpreters false -e ${{ matrix.tox_env }}
77
- - name: Run test suite
78
- run: tox --skip-pkg-install -e ${{ matrix.tox_env }}
@@ -1,32 +0,0 @@
1
- name: Release to PyPI
2
- on:
3
- push:
4
- tags: ["*"]
5
-
6
- jobs:
7
- release:
8
- runs-on: ubuntu-latest
9
- environment:
10
- name: release
11
- url: https://pypi.org/p/devpi-process
12
- permissions:
13
- id-token: write
14
- steps:
15
- - name: Setup python to build package
16
- uses: actions/setup-python@v5
17
- with:
18
- python-version: "3.12"
19
- - name: Install the latest version of uv
20
- uses: astral-sh/setup-uv@v2
21
- with:
22
- enable-cache: true
23
- github-token: ${{ secrets.GITHUB_TOKEN }}
24
- - name: Install build
25
- run: uv pip install build[uv] --system
26
- - uses: actions/checkout@v4
27
- with:
28
- fetch-depth: 0
29
- - name: Build package
30
- run: pyproject-build --installer uv --sdist --wheel . --outdir dist
31
- - name: Publish to PyPI
32
- uses: pypa/gh-action-pypi-publish@v1.10.1
@@ -1,16 +0,0 @@
1
- # file generated by setuptools_scm
2
- # don't change, don't track in version control
3
- TYPE_CHECKING = False
4
- if TYPE_CHECKING:
5
- from typing import Tuple, Union
6
- VERSION_TUPLE = Tuple[Union[int, str], ...]
7
- else:
8
- VERSION_TUPLE = object
9
-
10
- version: str
11
- __version__: str
12
- __version_tuple__: VERSION_TUPLE
13
- version_tuple: VERSION_TUPLE
14
-
15
- __version__ = version = '1.0.1'
16
- __version_tuple__ = version_tuple = (1, 0, 1)
@@ -1,74 +0,0 @@
1
- [tox]
2
- requires =
3
- tox>=4.2
4
- tox-uv>=1.11.3
5
- env_list =
6
- fix
7
- type
8
- readme
9
- 3.13
10
- 3.12
11
- 3.11
12
- 3.10
13
- 3.9
14
- 3.8
15
- skip_missing_interpreters = true
16
-
17
- [testenv]
18
- description = run the unit tests with pytest under {basepython}
19
- package = wheel
20
- wheel_build_env = .pkg
21
- extras =
22
- test
23
- set_env =
24
- COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
25
- COVERAGE_PROCESS_START = {toxinidir}/pyproject.toml
26
- _COVERAGE_SRC = {envsitepackagesdir}/devpi_process
27
- commands =
28
- pytest {tty:--color=yes} {posargs: \
29
- --junitxml {toxworkdir}{/}junit.{envname}.xml --cov {envsitepackagesdir}{/}devpi_process \
30
- --cov {toxinidir}{/}tests --cov-fail-under=100 \
31
- --cov-config=pyproject.toml --no-cov-on-fail --cov-report term-missing:skip-covered --cov-context=test \
32
- --cov-report html:{envtmpdir}{/}htmlcov --cov-report xml:{toxworkdir}{/}coverage.{envname}.xml \
33
- tests}
34
-
35
- [testenv:fix]
36
- description = run static analysis and style check using flake8
37
- skip_install = true
38
- deps =
39
- pre-commit-uv>=4.1
40
- pass_env =
41
- HOMEPATH
42
- PROGRAMDATA
43
- commands =
44
- pre-commit run --all-files --show-diff-on-failure
45
-
46
- [testenv:type]
47
- description = run type check on code base
48
- deps =
49
- mypy==1.11.2
50
- commands =
51
- mypy src
52
- mypy tests
53
-
54
- [testenv:readme]
55
- description = check that the long description is valid
56
- skip_install = true
57
- deps =
58
- build[uv]>=1.2.2
59
- check-wheel-contents>=0.6
60
- twine>=5.1.1
61
- commands =
62
- pyproject-build --installer uv --outdir {envtmpdir} --sdist --wheel .
63
- twine check {envtmpdir}{/}*
64
- check-wheel-contents --no-config {envtmpdir}
65
-
66
- [testenv:dev]
67
- description = generate a DEV environment
68
- package = editable
69
- extras =
70
- docs
71
- test
72
- commands =
73
- uv pip tree
74
- python -c 'import sys; print(sys.executable)'
File without changes
File without changes