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.
- devpi_process-1.2.0/.github/FUNDING.yaml +3 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/dependabot.yaml +2 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/workflows/check.yaml +8 -5
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/workflows/release.yaml +9 -9
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.markdownlint.yaml +0 -1
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.pre-commit-config.yaml +25 -13
- {devpi_process-1.1.0 → devpi_process-1.2.0}/PKG-INFO +3 -6
- {devpi_process-1.1.0 → devpi_process-1.2.0}/pyproject.toml +40 -20
- {devpi_process-1.1.0 → devpi_process-1.2.0}/src/devpi_process/__init__.py +9 -9
- devpi_process-1.2.0/src/devpi_process/_version.py +24 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/tests/demo_pkg_inline/build.py +5 -5
- {devpi_process-1.1.0 → devpi_process-1.2.0}/tests/demo_pkg_inline/pyproject.toml +1 -2
- {devpi_process-1.1.0 → devpi_process-1.2.0}/tests/test_devpi_process.py +5 -3
- devpi_process-1.2.0/tox.toml +66 -0
- devpi_process-1.1.0/.github/FUNDING.yaml +0 -1
- devpi_process-1.1.0/src/devpi_process/_version.py +0 -34
- devpi_process-1.1.0/tox.ini +0 -68
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/SECURITY.md +0 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.github/release.yaml +0 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/.gitignore +0 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/CHANGELOG.md +0 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/CODE_OF_CONDUCT.md +0 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/LICENSE.txt +0 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/README.md +0 -0
- {devpi_process-1.1.0 → devpi_process-1.2.0}/src/devpi_process/py.typed +0 -0
|
@@ -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@
|
|
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@
|
|
38
|
+
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
|
|
36
39
|
with:
|
|
37
|
-
enable-cache:
|
|
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@
|
|
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@
|
|
18
|
+
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
|
|
18
19
|
with:
|
|
19
|
-
enable-cache:
|
|
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@
|
|
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@
|
|
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.
|
|
46
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
47
47
|
with:
|
|
48
48
|
attestations: true
|
|
@@ -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.
|
|
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.
|
|
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-
|
|
18
|
-
rev: "
|
|
17
|
+
- repo: https://github.com/tox-dev/tox-toml-fmt
|
|
18
|
+
rev: "v1.9.3"
|
|
19
19
|
hooks:
|
|
20
|
-
- id: tox-
|
|
21
|
-
args: ["-p", "fix"]
|
|
20
|
+
- id: tox-toml-fmt
|
|
22
21
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
23
|
-
rev: "v2.
|
|
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.
|
|
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/
|
|
33
|
-
rev: "
|
|
34
|
-
hooks:
|
|
35
|
-
- id:
|
|
36
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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.
|
|
131
|
+
max_supported_python = "3.15"
|
|
132
|
+
|
|
133
|
+
[tool.ty]
|
|
134
|
+
environment.python-version = "3.14"
|
|
109
135
|
|
|
110
136
|
[tool.coverage]
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
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 #
|
|
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) #
|
|
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
|
-
"""
|
|
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, #
|
|
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)) #
|
|
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
|
-
"""
|
|
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) #
|
|
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") #
|
|
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
|
-
"""
|
|
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, #
|
|
54
|
-
config_settings: None = None, #
|
|
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, #
|
|
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, #
|
|
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, #
|
|
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
|
|
@@ -14,7 +14,7 @@ if TYPE_CHECKING:
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def test_version() -> None:
|
|
17
|
-
import devpi_process #
|
|
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 #
|
|
73
|
-
|
|
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
|
devpi_process-1.1.0/tox.ini
DELETED
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|