devpi-process 1.1.0__tar.gz → 1.2.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 (25) hide show
  1. devpi_process-1.2.0/.github/FUNDING.yaml +3 -0
  2. {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/dependabot.yaml +2 -0
  3. {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/workflows/check.yaml +8 -5
  4. {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/workflows/release.yaml +9 -9
  5. {devpi_process-1.1.0 → devpi_process-1.2.0}/.markdownlint.yaml +0 -1
  6. {devpi_process-1.1.0 → devpi_process-1.2.0}/.pre-commit-config.yaml +25 -13
  7. {devpi_process-1.1.0 → devpi_process-1.2.0}/PKG-INFO +3 -6
  8. {devpi_process-1.1.0 → devpi_process-1.2.0}/pyproject.toml +40 -20
  9. {devpi_process-1.1.0 → devpi_process-1.2.0}/src/devpi_process/__init__.py +9 -9
  10. devpi_process-1.2.0/src/devpi_process/_version.py +24 -0
  11. {devpi_process-1.1.0 → devpi_process-1.2.0}/tests/demo_pkg_inline/build.py +5 -5
  12. {devpi_process-1.1.0 → devpi_process-1.2.0}/tests/demo_pkg_inline/pyproject.toml +1 -2
  13. {devpi_process-1.1.0 → devpi_process-1.2.0}/tests/test_devpi_process.py +5 -3
  14. devpi_process-1.2.0/tox.toml +66 -0
  15. devpi_process-1.1.0/.github/FUNDING.yaml +0 -1
  16. devpi_process-1.1.0/src/devpi_process/_version.py +0 -34
  17. devpi_process-1.1.0/tox.ini +0 -68
  18. {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/SECURITY.md +0 -0
  19. {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/release.yaml +0 -0
  20. {devpi_process-1.1.0 → devpi_process-1.2.0}/.gitignore +0 -0
  21. {devpi_process-1.1.0 → devpi_process-1.2.0}/CHANGELOG.md +0 -0
  22. {devpi_process-1.1.0 → devpi_process-1.2.0}/CODE_OF_CONDUCT.md +0 -0
  23. {devpi_process-1.1.0 → devpi_process-1.2.0}/LICENSE.txt +0 -0
  24. {devpi_process-1.1.0 → devpi_process-1.2.0}/README.md +0 -0
  25. {devpi_process-1.1.0 → devpi_process-1.2.0}/src/devpi_process/py.typed +0 -0
@@ -0,0 +1,3 @@
1
+ github: gaborbernat
2
+ tidelift: "pypi/devpi-process"
3
+ thanks_dev: u/gh/gaborbernat
@@ -4,3 +4,5 @@ updates:
4
4
  directory: "/"
5
5
  schedule:
6
6
  interval: "daily"
7
+ cooldown:
8
+ default-days: 7
@@ -7,11 +7,11 @@ on:
7
7
  pull_request:
8
8
  schedule:
9
9
  - cron: "0 8 * * *"
10
-
11
10
  concurrency:
12
11
  group: check-${{ github.ref }}
13
12
  cancel-in-progress: true
14
-
13
+ permissions:
14
+ contents: read
15
15
  jobs:
16
16
  test:
17
17
  runs-on: ubuntu-latest
@@ -19,6 +19,8 @@ jobs:
19
19
  fail-fast: false
20
20
  matrix:
21
21
  env:
22
+ - "3.15"
23
+ - "3.15t"
22
24
  - "3.14"
23
25
  - "3.13"
24
26
  - "3.12"
@@ -28,13 +30,14 @@ jobs:
28
30
  - dev
29
31
  - pkg_meta
30
32
  steps:
31
- - uses: actions/checkout@v5
33
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
32
34
  with:
33
35
  fetch-depth: 0
36
+ persist-credentials: false
34
37
  - name: Install the latest version of uv
35
- uses: astral-sh/setup-uv@v7
38
+ uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
36
39
  with:
37
- enable-cache: true
40
+ enable-cache: false
38
41
  cache-dependency-glob: "pyproject.toml"
39
42
  github-token: ${{ secrets.GITHUB_TOKEN }}
40
43
  - name: Install tox
@@ -2,31 +2,31 @@ name: Release to PyPI
2
2
  on:
3
3
  push:
4
4
  tags: ["*"]
5
-
5
+ permissions:
6
+ contents: read
6
7
  env:
7
8
  dists-artifact-name: python-package-distributions
8
-
9
9
  jobs:
10
10
  build:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v5
13
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
14
14
  with:
15
15
  fetch-depth: 0
16
+ persist-credentials: false
16
17
  - name: Install the latest version of uv
17
- uses: astral-sh/setup-uv@v7
18
+ uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
18
19
  with:
19
- enable-cache: true
20
+ enable-cache: false
20
21
  cache-dependency-glob: "pyproject.toml"
21
22
  github-token: ${{ secrets.GITHUB_TOKEN }}
22
23
  - name: Build package
23
24
  run: uv build --python 3.14 --python-preference only-managed --sdist --wheel . --out-dir dist
24
25
  - name: Store the distribution packages
25
- uses: actions/upload-artifact@v4
26
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
26
27
  with:
27
28
  name: ${{ env.dists-artifact-name }}
28
29
  path: dist/*
29
-
30
30
  release:
31
31
  needs:
32
32
  - build
@@ -38,11 +38,11 @@ jobs:
38
38
  id-token: write
39
39
  steps:
40
40
  - name: Download all the dists
41
- uses: actions/download-artifact@v5
41
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
42
42
  with:
43
43
  name: ${{ env.dists-artifact-name }}
44
44
  path: dist/
45
45
  - name: Publish to PyPI
46
- uses: pypa/gh-action-pypi-publish@v1.13.0
46
+ uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
47
47
  with:
48
48
  attestations: true
@@ -3,6 +3,5 @@ MD013:
3
3
  headers: false
4
4
  line_length: 120
5
5
  tables: false
6
-
7
6
  MD046:
8
7
  style: fenced
@@ -5,35 +5,47 @@ repos:
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.34.0
8
+ rev: 0.37.4
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.4.1
13
+ rev: v2.4.3
14
14
  hooks:
15
15
  - id: codespell
16
16
  additional_dependencies: ["tomli>=2.2.1"]
17
- - repo: https://github.com/tox-dev/tox-ini-fmt
18
- rev: "1.6.0"
17
+ - repo: https://github.com/tox-dev/tox-toml-fmt
18
+ rev: "v1.9.3"
19
19
  hooks:
20
- - id: tox-ini-fmt
21
- args: ["-p", "fix"]
20
+ - id: tox-toml-fmt
22
21
  - repo: https://github.com/tox-dev/pyproject-fmt
23
- rev: "v2.10.0"
22
+ rev: "v2.25.3"
24
23
  hooks:
25
24
  - id: pyproject-fmt
26
25
  - repo: https://github.com/astral-sh/ruff-pre-commit
27
- rev: "v0.14.0"
26
+ rev: "v0.15.22"
28
27
  hooks:
29
28
  - id: ruff-format
30
29
  - id: ruff
31
30
  args: ["--fix", "--unsafe-fixes", "--exit-non-zero-on-fix"]
32
- - repo: https://github.com/rbubley/mirrors-prettier
33
- rev: "v3.6.2"
34
- hooks:
35
- - id: prettier
36
- args: ["--print-width=120", "--prose-wrap=always"]
31
+ - repo: https://github.com/google/yamlfmt
32
+ rev: "v0.21.0"
33
+ hooks:
34
+ - id: yamlfmt
35
+ - repo: local
36
+ hooks:
37
+ - id: mdformat
38
+ name: mdformat
39
+ entry: mdformat --wrap 120
40
+ language: python
41
+ types: [markdown]
42
+ additional_dependencies:
43
+ - mdformat-gfm>=1
44
+ - mdformat-ruff>=0.1.3
45
+ - repo: https://github.com/zizmorcore/zizmor-pre-commit
46
+ rev: v1.27.0
47
+ hooks:
48
+ - id: zizmor
37
49
  - repo: meta
38
50
  hooks:
39
51
  - id: check-hooks-apply
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devpi-process
3
- Version: 1.1.0
3
+ Version: 1.2.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
@@ -22,6 +22,8 @@ Classifier: Programming Language :: Python :: 3.10
22
22
  Classifier: Programming Language :: Python :: 3.11
23
23
  Classifier: Programming Language :: Python :: 3.12
24
24
  Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
+ Classifier: Programming Language :: Python :: 3.15
25
27
  Classifier: Topic :: Software Development :: Libraries
26
28
  Classifier: Topic :: Software Development :: Testing
27
29
  Classifier: Topic :: Utilities
@@ -29,11 +31,6 @@ Requires-Python: >=3.10
29
31
  Requires-Dist: devpi-client>=7.2
30
32
  Requires-Dist: devpi-server>=6.17
31
33
  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'
37
34
  Description-Content-Type: text/markdown
38
35
 
39
36
  # devpi-process
@@ -2,7 +2,7 @@
2
2
  build-backend = "hatchling.build"
3
3
  requires = [
4
4
  "hatch-vcs>=0.5",
5
- "hatchling>=1.27",
5
+ "hatchling>=1.28",
6
6
  ]
7
7
 
8
8
  [project]
@@ -37,6 +37,8 @@ classifiers = [
37
37
  "Programming Language :: Python :: 3.11",
38
38
  "Programming Language :: Python :: 3.12",
39
39
  "Programming Language :: Python :: 3.13",
40
+ "Programming Language :: Python :: 3.14",
41
+ "Programming Language :: Python :: 3.15",
40
42
  "Topic :: Software Development :: Libraries",
41
43
  "Topic :: Software Development :: Testing",
42
44
  "Topic :: Utilities",
@@ -49,19 +51,39 @@ dependencies = [
49
51
  "devpi-server>=6.17",
50
52
  "typing-extensions>=4.15; python_version<'3.11'",
51
53
  ]
52
- optional-dependencies.testing = [
54
+ urls.Homepage = "https://github.com/tox-dev/devpi-process#readme"
55
+ urls.Source = "https://github.com/tox-dev/devpi-process"
56
+ urls.Tracker = "https://github.com/tox-dev/devpi-process/issues"
57
+
58
+ [dependency-groups]
59
+ dev = [
60
+ { include-group = "lint" },
61
+ { include-group = "pkg-meta" },
62
+ { include-group = "test" },
63
+ { include-group = "type" },
64
+ ]
65
+ test = [
53
66
  "covdefaults>=2.3",
54
67
  "httpx>=0.28.1",
55
68
  "pytest>=8.4.2",
56
69
  "pytest-cov>=7",
57
70
  ]
58
- urls.Homepage = "https://github.com/tox-dev/devpi-process#readme"
59
- urls.Source = "https://github.com/tox-dev/devpi-process"
60
- urls.Tracker = "https://github.com/tox-dev/devpi-process/issues"
71
+ type = [
72
+ "ty>=0.0.19",
73
+ { include-group = "test" },
74
+ ]
75
+ lint = [
76
+ "pre-commit-uv>=4.2",
77
+ ]
78
+ pkg-meta = [
79
+ "check-wheel-contents>=0.6.3",
80
+ "twine>=6.2",
81
+ "uv>=0.10.2",
82
+ ]
61
83
 
62
84
  [tool.hatch]
63
- build.hooks.vcs.version-file = "src/devpi_process/_version.py"
64
85
  version.source = "vcs"
86
+ build.hooks.vcs.version-file = "src/devpi_process/_version.py"
65
87
 
66
88
  [tool.black]
67
89
  line-length = 120
@@ -82,6 +104,7 @@ lint.ignore = [
82
104
  "D212", # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
83
105
  "DOC", # not supported
84
106
  "ISC001", # Conflict with formatter
107
+ "RUF067", # `__init__` module should only contain docstrings and re-exports
85
108
  "S104", # Possible binding to all interface
86
109
  ]
87
110
  lint.per-file-ignores."tests/**/*.py" = [
@@ -105,11 +128,16 @@ write-changes = true
105
128
  count = true
106
129
 
107
130
  [tool.pyproject-fmt]
108
- max_supported_python = "3.13"
131
+ max_supported_python = "3.15"
132
+
133
+ [tool.ty]
134
+ environment.python-version = "3.14"
109
135
 
110
136
  [tool.coverage]
111
- html.show_contexts = true
112
- html.skip_covered = false
137
+ run.parallel = true
138
+ run.plugins = [
139
+ "covdefaults",
140
+ ]
113
141
  paths.source = [
114
142
  "src",
115
143
  ".tox*/*/lib/python*/site-packages",
@@ -119,14 +147,6 @@ paths.source = [
119
147
  "*\\src",
120
148
  ]
121
149
  report.fail_under = 98
122
- report.omit = [
123
- ]
124
- run.parallel = true
125
- run.plugins = [
126
- "covdefaults",
127
- ]
128
-
129
- [tool.mypy]
130
- python_version = "3.12"
131
- show_error_codes = true
132
- strict = true
150
+ report.omit = []
151
+ html.show_contexts = true
152
+ html.skip_covered = false
@@ -9,7 +9,7 @@ import sys
9
9
  import sysconfig
10
10
  from contextlib import closing
11
11
  from pathlib import Path
12
- from subprocess import PIPE, Popen, run # noqa: S404
12
+ from subprocess import PIPE, Popen, run # ruff:ignore[suspicious-subprocess-import]
13
13
  from threading import Thread
14
14
  from typing import IO, TYPE_CHECKING, cast
15
15
 
@@ -26,7 +26,7 @@ if TYPE_CHECKING:
26
26
 
27
27
 
28
28
  def _check_call(cmd: list[str]) -> None:
29
- run(cmd, check=True, capture_output=True) # noqa: S603
29
+ run(cmd, check=True, capture_output=True) # ruff:ignore[subprocess-without-shell-equals-true]
30
30
 
31
31
 
32
32
  class Index:
@@ -48,7 +48,7 @@ class Index:
48
48
 
49
49
  @property
50
50
  def url(self) -> str:
51
- """:return: the URL to the index server"""
51
+ """The URL to the index server."""
52
52
  return f"{self._server_url}/{self.name}/+simple/"
53
53
 
54
54
  def use(self) -> None:
@@ -75,7 +75,7 @@ class IndexServer:
75
75
  def __init__(
76
76
  self,
77
77
  path: Path,
78
- with_root_pypi: bool = False, # noqa: FBT001, FBT002
78
+ with_root_pypi: bool = False, # ruff:ignore[boolean-type-hint-positional-argument, boolean-default-value-positional-argument]
79
79
  start_args: Sequence[str] | None = None,
80
80
  ) -> None:
81
81
  """
@@ -90,7 +90,7 @@ class IndexServer:
90
90
  self._start_args: Sequence[str] = [] if start_args is None else start_args
91
91
 
92
92
  self.host, self.port = "localhost", _find_free_port()
93
- self._passwd = "".join(random.choices(string.ascii_letters, k=8)) # noqa: S311
93
+ self._passwd = "".join(random.choices(string.ascii_letters, k=8)) # ruff:ignore[suspicious-non-cryptographic-random-usage]
94
94
 
95
95
  scripts_dir = sysconfig.get_path("scripts")
96
96
  if scripts_dir is None:
@@ -113,7 +113,7 @@ class IndexServer:
113
113
 
114
114
  @property
115
115
  def user(self) -> str:
116
- """:return: username of the index server"""
116
+ """Username of the index server."""
117
117
  return "root"
118
118
 
119
119
  def __enter__(self) -> Self:
@@ -134,7 +134,7 @@ class IndexServer:
134
134
  # 2. start the server
135
135
  cmd = [self._server, "--serverdir", server_at, "--port", str(self.port)]
136
136
  cmd.extend(self._start_args)
137
- self._process = Popen(cmd, stdout=PIPE, universal_newlines=True) # noqa: S603
137
+ self._process = Popen(cmd, stdout=PIPE, universal_newlines=True) # ruff:ignore[subprocess-without-shell-equals-true]
138
138
  stdout = self._drain_stdout()
139
139
  for line in stdout: # pragma: no branch # will always loop at least once
140
140
  if "serving at url" in line:
@@ -153,7 +153,7 @@ class IndexServer:
153
153
  stdout = cast("IO[str]", process.stdout)
154
154
  while True:
155
155
  if process.poll() is not None: # pragma: no cover
156
- print(f"devpi server with pid {process.pid} at {self._server_dir} died") # noqa: T201
156
+ print(f"devpi server with pid {process.pid} at {self._server_dir} died") # ruff:ignore[print]
157
157
  break
158
158
  yield stdout.readline()
159
159
 
@@ -201,7 +201,7 @@ class IndexServer:
201
201
 
202
202
  @property
203
203
  def url(self) -> str:
204
- """:return: url to the index server"""
204
+ """URL to the index server."""
205
205
  return f"http://{self.host}:{self.port}"
206
206
 
207
207
  def __repr__(self) -> str:
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '1.2.0'
22
+ __version_tuple__ = version_tuple = (1, 2, 0)
23
+
24
+ __commit_id__ = commit_id = None
@@ -50,8 +50,8 @@ content = {
50
50
 
51
51
  def build_wheel(
52
52
  wheel_directory: str,
53
- metadata_directory: str | None = None, # noqa: ARG001
54
- config_settings: None = None, # noqa: ARG001
53
+ metadata_directory: str | None = None, # ruff:ignore[unused-function-argument]
54
+ config_settings: None = None, # ruff:ignore[unused-function-argument]
55
55
  ) -> str:
56
56
  base_name = f"{name}-{version}-py{sys.version_info[0]}-none-any.whl"
57
57
  path = Path(wheel_directory) / base_name
@@ -62,14 +62,14 @@ def build_wheel(
62
62
 
63
63
 
64
64
  def get_requires_for_build_wheel(
65
- config_settings: None = None, # noqa: ARG001
65
+ config_settings: None = None, # ruff:ignore[unused-function-argument]
66
66
  ) -> list[str]:
67
67
  return [] # pragma: no cover # only executed in non-host pythons
68
68
 
69
69
 
70
70
  def build_sdist(
71
71
  sdist_directory: str,
72
- config_settings: None = None, # noqa: ARG001
72
+ config_settings: None = None, # ruff:ignore[unused-function-argument]
73
73
  ) -> str:
74
74
  result = f"{name}-{version}.tar.gz"
75
75
  with tarfile.open(str(Path(sdist_directory) / result), "w:gz") as tar:
@@ -86,6 +86,6 @@ def build_sdist(
86
86
 
87
87
 
88
88
  def get_requires_for_build_sdist(
89
- config_settings: None = None, # noqa: ARG001
89
+ config_settings: None = None, # ruff:ignore[unused-function-argument]
90
90
  ) -> list[str]:
91
91
  return [] # pragma: no cover # only executed in non-host pythons
@@ -1,7 +1,6 @@
1
1
  [build-system]
2
2
  build-backend = "build"
3
- requires = [
4
- ]
3
+ requires = []
5
4
  backend-path = [
6
5
  ".",
7
6
  ]
@@ -14,7 +14,7 @@ if TYPE_CHECKING:
14
14
 
15
15
 
16
16
  def test_version() -> None:
17
- import devpi_process # noqa: PLC0415
17
+ import devpi_process # ruff:ignore[import-outside-top-level]
18
18
 
19
19
  assert devpi_process.__version__ is not None
20
20
 
@@ -69,5 +69,7 @@ def test_create_server_with_pypi(tmp_path: Path) -> None:
69
69
 
70
70
  def test_create_server_start_args(tmp_path: Path) -> None:
71
71
  with IndexServer(tmp_path, start_args=["--offline-mode"]) as server:
72
- assert server._process is not None # noqa: SLF001
73
- assert server._process.args[-1] == "--offline-mode" # type: ignore[index] # noqa: SLF001
72
+ assert server._process is not None # ruff:ignore[private-member-access]
73
+ args = server._process.args # ruff:ignore[private-member-access]
74
+ assert isinstance(args, list)
75
+ assert args[-1] == "--offline-mode"
@@ -0,0 +1,66 @@
1
+ requires = [ "tox>=4.34.1", "tox-uv>=1.29" ]
2
+ env_list = [ "3.15", "3.14", "3.13", "3.12", "3.11", "3.10", "3.15t", "fix", "pkg_meta", "type" ]
3
+ skip_missing_interpreters = true
4
+
5
+ [env_run_base]
6
+ description = "run the unit tests with pytest under {env_name}"
7
+ package = "wheel"
8
+ wheel_build_env = ".pkg"
9
+ dependency_groups = [ "test" ]
10
+ pass_env = [ "DIFF_AGAINST", "PYTEST_*" ]
11
+ set_env.COVERAGE_FILE = { replace = "env", name = "COVERAGE_FILE", default = "{work_dir}{/}.coverage.{env_name}" }
12
+ commands = [
13
+ [
14
+ "python",
15
+ "-m",
16
+ "pytest",
17
+ { replace = "posargs", default = [
18
+ "--cov",
19
+ "{env_site_packages_dir}{/}devpi_process",
20
+ "--cov",
21
+ "{tox_root}{/}tests",
22
+ "--cov-config=pyproject.toml",
23
+ "--no-cov-on-fail",
24
+ "--cov-report",
25
+ "term-missing:skip-covered",
26
+ "--cov-context=test",
27
+ "--cov-report",
28
+ "html:{env_tmp_dir}{/}htmlcov",
29
+ "--cov-report",
30
+ "xml:{work_dir}{/}coverage.{env_name}.xml",
31
+ "--junitxml",
32
+ "{work_dir}{/}junit.{env_name}.xml",
33
+ "tests",
34
+ ], extend = true },
35
+ ],
36
+ ]
37
+
38
+ [env.fix]
39
+ description = "format the code base to adhere to our styles, and complain about what we cannot do automatically"
40
+ skip_install = true
41
+ dependency_groups = [ "lint" ]
42
+ commands = [ [ "pre-commit", "run", "--all-files", "--show-diff-on-failure" ] ]
43
+
44
+ [env.pkg_meta]
45
+ description = "check that the long description is valid"
46
+ skip_install = true
47
+ dependency_groups = [ "pkg-meta" ]
48
+ commands = [
49
+ [ "uv", "build", "--sdist", "--wheel", "--out-dir", "{env_tmp_dir}", "." ],
50
+ [ "twine", "check", "{env_tmp_dir}{/}*" ],
51
+ [ "check-wheel-contents", "--no-config", "{env_tmp_dir}" ],
52
+ ]
53
+
54
+ [env.type]
55
+ description = "run type check on code base"
56
+ dependency_groups = [ "type" ]
57
+ commands = [ [ "ty", "check", "--output-format", "concise", "--error-on-warning", "." ] ]
58
+
59
+ [env.dev]
60
+ description = "generate a DEV environment"
61
+ package = "editable"
62
+ dependency_groups = [ "dev" ]
63
+ commands = [
64
+ [ "uv", "pip", "tree" ],
65
+ [ "python", "-c", "import sys; print(sys.executable)" ],
66
+ ]
@@ -1 +0,0 @@
1
- tidelift: pypi/devpi-process
@@ -1,34 +0,0 @@
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
@@ -1,68 +0,0 @@
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)'
File without changes
File without changes
File without changes