devpi-process 0.3.1__tar.gz → 1.0.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 (26) hide show
  1. devpi_process-1.0.1/.github/FUNDING.yml +1 -0
  2. devpi_process-1.0.1/.github/SECURITY.md +13 -0
  3. devpi_process-1.0.1/.github/release.yml +5 -0
  4. devpi_process-1.0.1/.github/workflows/check.yml +78 -0
  5. devpi_process-1.0.1/.github/workflows/release.yml +32 -0
  6. {devpi_process-0.3.1 → devpi_process-1.0.1}/.pre-commit-config.yaml +19 -13
  7. {devpi_process-0.3.1 → devpi_process-1.0.1}/PKG-INFO +12 -10
  8. {devpi_process-0.3.1 → devpi_process-1.0.1}/README.md +1 -1
  9. devpi_process-1.0.1/pyproject.toml +136 -0
  10. {devpi_process-0.3.1 → devpi_process-1.0.1}/src/devpi_process/__init__.py +9 -3
  11. devpi_process-1.0.1/src/devpi_process/_version.py +16 -0
  12. {devpi_process-0.3.1 → devpi_process-1.0.1}/tests/demo_pkg_inline/build.py +15 -25
  13. {devpi_process-0.3.1 → devpi_process-1.0.1}/tests/test_devpi_process.py +1 -1
  14. {devpi_process-0.3.1 → devpi_process-1.0.1}/tox.ini +16 -14
  15. devpi_process-0.3.1/.github/workflows/check.yml +0 -89
  16. devpi_process-0.3.1/.github/workflows/release.yml +0 -27
  17. devpi_process-0.3.1/pyproject.toml +0 -106
  18. devpi_process-0.3.1/src/devpi_process/_version.py +0 -4
  19. {devpi_process-0.3.1 → devpi_process-1.0.1}/.github/dependabot.yml +0 -0
  20. {devpi_process-0.3.1 → devpi_process-1.0.1}/.gitignore +0 -0
  21. {devpi_process-0.3.1 → devpi_process-1.0.1}/.markdownlint.yaml +0 -0
  22. {devpi_process-0.3.1 → devpi_process-1.0.1}/CHANGELOG.md +0 -0
  23. {devpi_process-0.3.1 → devpi_process-1.0.1}/CODE_OF_CONDUCT.md +0 -0
  24. {devpi_process-0.3.1 → devpi_process-1.0.1}/LICENSE.txt +0 -0
  25. {devpi_process-0.3.1 → devpi_process-1.0.1}/src/devpi_process/py.typed +0 -0
  26. {devpi_process-0.3.1 → devpi_process-1.0.1}/tests/demo_pkg_inline/pyproject.toml +0 -0
@@ -0,0 +1 @@
1
+ tidelift: pypi/devpi-process
@@ -0,0 +1,13 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ | ------- | ------------------ |
7
+ | 1.0.0 + | :white_check_mark: |
8
+ | < 1.0.0 | :x: |
9
+
10
+ ## Reporting a Vulnerability
11
+
12
+ To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift
13
+ will coordinate the fix and disclosure.
@@ -0,0 +1,5 @@
1
+ changelog:
2
+ exclude:
3
+ authors:
4
+ - dependabot
5
+ - pre-commit-ci
@@ -0,0 +1,78 @@
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 }}
@@ -0,0 +1,32 @@
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,30 +1,36 @@
1
1
  repos:
2
2
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
- rev: v4.4.0
3
+ rev: v4.6.0
4
4
  hooks:
5
5
  - id: end-of-file-fixer
6
6
  - id: trailing-whitespace
7
- - repo: https://github.com/astral-sh/ruff-pre-commit
8
- rev: "v0.0.272"
7
+ - repo: https://github.com/python-jsonschema/check-jsonschema
8
+ rev: 0.29.2
9
9
  hooks:
10
- - id: ruff
11
- args: [--fix, --exit-non-zero-on-fix]
12
- - repo: https://github.com/psf/black
13
- rev: 23.3.0
10
+ - id: check-github-workflows
11
+ args: ["--verbose"]
12
+ - repo: https://github.com/codespell-project/codespell
13
+ rev: v2.3.0
14
14
  hooks:
15
- - id: black
15
+ - id: codespell
16
+ additional_dependencies: ["tomli>=2.0.1"]
16
17
  - repo: https://github.com/tox-dev/tox-ini-fmt
17
- rev: "1.3.0"
18
+ rev: "1.3.2"
18
19
  hooks:
19
20
  - id: tox-ini-fmt
20
21
  args: ["-p", "fix"]
21
22
  - repo: https://github.com/tox-dev/pyproject-fmt
22
- rev: "0.11.2"
23
+ rev: "2.2.1"
23
24
  hooks:
24
25
  - id: pyproject-fmt
25
- additional_dependencies: ["tox>=4.6"]
26
- - repo: https://github.com/pre-commit/mirrors-prettier
27
- rev: "v3.0.0-alpha.9-for-vscode"
26
+ - repo: https://github.com/astral-sh/ruff-pre-commit
27
+ rev: "v0.6.4"
28
+ hooks:
29
+ - id: ruff-format
30
+ - id: ruff
31
+ args: ["--fix", "--unsafe-fixes", "--exit-non-zero-on-fix"]
32
+ - repo: https://github.com/rbubley/mirrors-prettier
33
+ rev: "v3.3.3"
28
34
  hooks:
29
35
  - id: prettier
30
36
  args: ["--print-width=120", "--prose-wrap=always"]
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: devpi-process
3
- Version: 0.3.1
3
+ Version: 1.0.1
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,22 +18,24 @@ 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.7
22
21
  Classifier: Programming Language :: Python :: 3.8
23
22
  Classifier: Programming Language :: Python :: 3.9
24
23
  Classifier: Programming Language :: Python :: 3.10
25
24
  Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
26
27
  Classifier: Topic :: Software Development :: Libraries
27
28
  Classifier: Topic :: Software Development :: Testing
28
29
  Classifier: Topic :: Utilities
29
- Requires-Python: >=3.7
30
- Requires-Dist: devpi-client>=6.0.4
31
- Requires-Dist: devpi-server>=6.8
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'
32
34
  Provides-Extra: test
33
35
  Requires-Dist: covdefaults>=2.3; extra == 'test'
34
- Requires-Dist: httpx>=0.24; extra == 'test'
35
- Requires-Dist: pytest-cov>=4; extra == 'test'
36
- Requires-Dist: pytest>=7.3.1; 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'
37
39
  Description-Content-Type: text/markdown
38
40
 
39
41
  # devpi-process
@@ -41,7 +43,7 @@ Description-Content-Type: text/markdown
41
43
  [![PyPI](https://img.shields.io/pypi/v/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
42
44
  [![PyPI - Implementation](https://img.shields.io/pypi/implementation/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
43
45
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
44
- [![PyPI - Downloads](https://img.shields.io/pypi/dm/devpi-process?style=flat-square)](https://pypistats.org/packages/devpi-process)
46
+ [![Downloads](https://static.pepy.tech/badge/devpi-process/month)](https://pepy.tech/project/devpi-process)
45
47
  [![PyPI - License](https://img.shields.io/pypi/l/devpi-process?style=flat-square)](https://opensource.org/licenses/MIT)
46
48
  [![check](https://github.com/tox-dev/devpi-process/workflows/check/badge.svg)](https://github.com/tox-dev/devpi-process/actions?query=workflow%3Acheck)
47
49
  [![Code style:
@@ -3,7 +3,7 @@
3
3
  [![PyPI](https://img.shields.io/pypi/v/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
4
4
  [![PyPI - Implementation](https://img.shields.io/pypi/implementation/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
5
5
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
6
- [![PyPI - Downloads](https://img.shields.io/pypi/dm/devpi-process?style=flat-square)](https://pypistats.org/packages/devpi-process)
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
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
9
  [![Code style:
@@ -0,0 +1,136 @@
1
+ [build-system]
2
+ build-backend = "hatchling.build"
3
+ requires = [
4
+ "hatch-vcs>=0.4",
5
+ "hatchling>=1.25",
6
+ ]
7
+
8
+ [project]
9
+ name = "devpi-process"
10
+ description = "devpi process provides a programmatic API to create and use a devpi server process"
11
+ readme.content-type = "text/markdown"
12
+ readme.file = "README.md"
13
+ keywords = [
14
+ "environments",
15
+ "isolated",
16
+ "testing",
17
+ "virtual",
18
+ ]
19
+ license = "MIT"
20
+ maintainers = [
21
+ { name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
22
+ ]
23
+ authors = [
24
+ { name = "Bernát Gábor", email = "gaborjbernat@gmail.com" },
25
+ ]
26
+ requires-python = ">=3.8"
27
+ classifiers = [
28
+ "Development Status :: 5 - Production/Stable",
29
+ "Framework :: tox",
30
+ "Intended Audience :: Developers",
31
+ "License :: OSI Approved :: MIT License",
32
+ "Operating System :: MacOS :: MacOS X",
33
+ "Operating System :: Microsoft :: Windows",
34
+ "Operating System :: POSIX",
35
+ "Programming Language :: Python :: 3 :: Only",
36
+ "Programming Language :: Python :: 3.8",
37
+ "Programming Language :: Python :: 3.9",
38
+ "Programming Language :: Python :: 3.10",
39
+ "Programming Language :: Python :: 3.11",
40
+ "Programming Language :: Python :: 3.12",
41
+ "Programming Language :: Python :: 3.13",
42
+ "Topic :: Software Development :: Libraries",
43
+ "Topic :: Software Development :: Testing",
44
+ "Topic :: Utilities",
45
+ ]
46
+ dynamic = [
47
+ "version",
48
+ ]
49
+ dependencies = [
50
+ "devpi-client>=7.1",
51
+ "devpi-server>=6.12.1",
52
+ "typing-extensions>=4.12.2; python_version<'3.11'",
53
+ ]
54
+ optional-dependencies.test = [
55
+ "covdefaults>=2.3",
56
+ "httpx>=0.27.2",
57
+ "pytest>=8.3.2",
58
+ "pytest-cov>=5",
59
+ ]
60
+ urls.Homepage = "https://github.com/tox-dev/devpi-process#readme"
61
+ urls.Source = "https://github.com/tox-dev/devpi-process"
62
+ urls.Tracker = "https://github.com/tox-dev/devpi-process/issues"
63
+
64
+ [tool.hatch]
65
+ build.hooks.vcs.version-file = "src/devpi_process/_version.py"
66
+ version.source = "vcs"
67
+
68
+ [tool.black]
69
+ line-length = 120
70
+
71
+ [tool.ruff]
72
+ target-version = "py38"
73
+ line-length = 120
74
+ format.preview = true
75
+ format.docstring-code-line-length = 100
76
+ format.docstring-code-format = true
77
+ lint.select = [
78
+ "ALL",
79
+ ]
80
+ lint.ignore = [
81
+ "ANN101", # no type annotation for self
82
+ "ANN401", # allow Any as type annotation
83
+ "COM812", # Conflict with formatter
84
+ "CPY", # No copyright statements
85
+ "D203", # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
86
+ "D212", # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
87
+ "DOC", # not supported
88
+ "ISC001", # Conflict with formatter
89
+ "S104", # Possible binding to all interface
90
+ ]
91
+ lint.per-file-ignores."tests/**/*.py" = [
92
+ "D", # don't care about documentation in tests
93
+ "FBT", # don't care about booleans as positional arguments in tests
94
+ "INP001", # no implicit namespace
95
+ "PLR2004", # Magic value used in comparison, consider replacing with a constant variable
96
+ "S101", # asserts allowed in tests
97
+ "S603", # `subprocess` call: check for execution of untrusted input
98
+ ]
99
+ lint.isort = { known-first-party = [
100
+ "devpi_process",
101
+ ], required-imports = [
102
+ "from __future__ import annotations",
103
+ ] }
104
+ lint.preview = true
105
+
106
+ [tool.codespell]
107
+ builtin = "clear,usage,en-GB_to_en-US"
108
+ write-changes = true
109
+ count = true
110
+
111
+ [tool.pyproject-fmt]
112
+ max_supported_python = "3.13"
113
+
114
+ [tool.coverage]
115
+ html.show_contexts = true
116
+ html.skip_covered = false
117
+ paths.source = [
118
+ "src",
119
+ ".tox*/*/lib/python*/site-packages",
120
+ ".tox*/pypy*/site-packages",
121
+ ".tox*\\*\\Lib\\site-packages",
122
+ "*/src",
123
+ "*\\src",
124
+ ]
125
+ report.fail_under = 98
126
+ report.omit = [
127
+ ]
128
+ run.parallel = true
129
+ run.plugins = [
130
+ "covdefaults",
131
+ ]
132
+
133
+ [tool.mypy]
134
+ python_version = "3.12"
135
+ show_error_codes = true
136
+ strict = true
@@ -1,4 +1,5 @@
1
1
  """Devpi PyPI to test with."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  import random
@@ -8,7 +9,7 @@ import sys
8
9
  import sysconfig
9
10
  from contextlib import closing
10
11
  from pathlib import Path
11
- from subprocess import PIPE, Popen, run
12
+ from subprocess import PIPE, Popen, run # noqa: S404
12
13
  from threading import Thread
13
14
  from typing import IO, TYPE_CHECKING, Iterator, Sequence, cast
14
15
 
@@ -17,6 +18,11 @@ from ._version import __version__
17
18
  if TYPE_CHECKING:
18
19
  from types import TracebackType
19
20
 
21
+ if sys.version_info >= (3, 11): # pragma: no cover (py311+)
22
+ from typing import Self
23
+ else: # pragma: no cover (<py311)
24
+ from typing_extensions import Self
25
+
20
26
 
21
27
  def _check_call(cmd: list[str]) -> None:
22
28
  run(cmd, check=True, capture_output=True) # noqa: S603
@@ -109,7 +115,7 @@ class IndexServer:
109
115
  """:return: username of the index server"""
110
116
  return "root"
111
117
 
112
- def __enter__(self) -> IndexServer:
118
+ def __enter__(self) -> Self:
113
119
  """:return: start the index server"""
114
120
  self._create_and_start_server()
115
121
  self._setup_client()
@@ -209,7 +215,7 @@ def _find_free_port() -> int:
209
215
 
210
216
 
211
217
  __all__ = [
212
- "__version__",
213
218
  "Index",
214
219
  "IndexServer",
220
+ "__version__",
215
221
  ]
@@ -0,0 +1,16 @@
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)
@@ -18,10 +18,10 @@ wheel = f"{dist_info}/WHEEL"
18
18
  record = f"{dist_info}/RECORD"
19
19
  content = {
20
20
  logic: f"def do():\n print('greetings from {name}')",
21
- metadata: """
21
+ metadata: f"""
22
22
  Metadata-Version: 2.1
23
- Name: {}
24
- Version: {}
23
+ Name: {pkg_name}
24
+ Version: {version}
25
25
  Summary: UNKNOWN
26
26
  Home-page: UNKNOWN
27
27
  Author: UNKNOWN
@@ -30,31 +30,21 @@ content = {
30
30
  Platform: UNKNOWN
31
31
 
32
32
  UNKNOWN
33
- """.format(
34
- pkg_name,
35
- version,
36
- ),
37
- wheel: """
33
+ """,
34
+ wheel: f"""
38
35
  Wheel-Version: 1.0
39
- Generator: {}-{}
36
+ Generator: {name}-{version}
40
37
  Root-Is-Purelib: true
41
- Tag: py{}-none-any
42
- """.format(
43
- name,
44
- version,
45
- sys.version_info[0],
46
- ),
38
+ Tag: py{sys.version_info[0]}-none-any
39
+ """,
47
40
  f"{dist_info}/top_level.txt": name,
48
- record: """
49
- {0}/__init__.py,,
50
- {1}/METADATA,,
51
- {1}/WHEEL,,
52
- {1}/top_level.txt,,
53
- {1}/RECORD,,
54
- """.format(
55
- name,
56
- dist_info,
57
- ),
41
+ record: f"""
42
+ {name}/__init__.py,,
43
+ {dist_info}/METADATA,,
44
+ {dist_info}/WHEEL,,
45
+ {dist_info}/top_level.txt,,
46
+ {dist_info}/RECORD,,
47
+ """,
58
48
  }
59
49
 
60
50
 
@@ -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 # noqa: PLC0415
18
18
 
19
19
  assert devpi_process.__version__ is not None
20
20
 
@@ -1,15 +1,17 @@
1
1
  [tox]
2
2
  requires =
3
3
  tox>=4.2
4
+ tox-uv>=1.11.3
4
5
  env_list =
5
6
  fix
6
- py311
7
- py310
8
- py39
9
- py38
10
- py37
11
7
  type
12
8
  readme
9
+ 3.13
10
+ 3.12
11
+ 3.11
12
+ 3.10
13
+ 3.9
14
+ 3.8
13
15
  skip_missing_interpreters = true
14
16
 
15
17
  [testenv]
@@ -34,7 +36,7 @@ commands =
34
36
  description = run static analysis and style check using flake8
35
37
  skip_install = true
36
38
  deps =
37
- pre-commit>=3.2.2
39
+ pre-commit-uv>=4.1
38
40
  pass_env =
39
41
  HOMEPATH
40
42
  PROGRAMDATA
@@ -44,9 +46,7 @@ commands =
44
46
  [testenv:type]
45
47
  description = run type check on code base
46
48
  deps =
47
- mypy==1.3
48
- set_env =
49
- {tty:MYPY_FORCE_COLOR = 1}
49
+ mypy==1.11.2
50
50
  commands =
51
51
  mypy src
52
52
  mypy tests
@@ -55,11 +55,13 @@ commands =
55
55
  description = check that the long description is valid
56
56
  skip_install = true
57
57
  deps =
58
- build[virtualenv]>=0.10
59
- twine>=4.0.2
58
+ build[uv]>=1.2.2
59
+ check-wheel-contents>=0.6
60
+ twine>=5.1.1
60
61
  commands =
61
- python -m build --sdist --wheel -o {envtmpdir} .
62
- twine check {envtmpdir}/*
62
+ pyproject-build --installer uv --outdir {envtmpdir} --sdist --wheel .
63
+ twine check {envtmpdir}{/}*
64
+ check-wheel-contents --no-config {envtmpdir}
63
65
 
64
66
  [testenv:dev]
65
67
  description = generate a DEV environment
@@ -68,5 +70,5 @@ extras =
68
70
  docs
69
71
  test
70
72
  commands =
71
- python -m pip list --format=columns
73
+ uv pip tree
72
74
  python -c 'import sys; print(sys.executable)'
@@ -1,89 +0,0 @@
1
- name: check
2
- on:
3
- push:
4
- tags-ignore: ["**"]
5
- pull_request:
6
- schedule:
7
- - cron: "0 8 * * *"
8
-
9
- concurrency:
10
- group: check-${{ github.ref }}
11
- cancel-in-progress: true
12
-
13
- jobs:
14
- test:
15
- name: test ${{ matrix.py }} - ${{ matrix.os }}
16
- runs-on: ${{ matrix.os }}
17
- strategy:
18
- fail-fast: false
19
- matrix:
20
- py:
21
- - "3.11"
22
- - "3.10"
23
- - "3.9"
24
- - "3.8"
25
- - "3.7"
26
- os:
27
- - ubuntu-latest
28
- - windows-2022
29
- - macos-12
30
-
31
- steps:
32
- - name: Setup python for tox
33
- uses: actions/setup-python@v4
34
- with:
35
- python-version: "3.11"
36
- - name: Install tox
37
- run: python -m pip install tox
38
- - uses: actions/checkout@v3
39
- with:
40
- fetch-depth: 0
41
- - name: Setup python for test ${{ matrix.py }}
42
- uses: actions/setup-python@v4
43
- with:
44
- python-version: ${{ matrix.py }}
45
- - name: Pick environment to run
46
- run: |
47
- import os; import platform; import sys; from pathlib import Path
48
- env = f'TOXENV=py{"" if platform.python_implementation() == "CPython" else "py"}3{sys.version_info.minor}'
49
- print(f"Picked: {env} for {sys.version} based of {sys.executable}")
50
- with Path(os.environ["GITHUB_ENV"]).open("ta") as file_handler:
51
- file_handler.write(env)
52
- shell: python
53
- - name: Setup test suite
54
- run: tox -vv --notest
55
- - name: Run test suite
56
- run: tox --skip-pkg-install
57
- env:
58
- PYTEST_ADDOPTS: "-vv --durations=20"
59
- CI_RUN: "yes"
60
-
61
- check:
62
- name: tox env ${{ matrix.tox_env }} - ${{ matrix.os }}
63
- runs-on: ${{ matrix.os }}
64
- strategy:
65
- fail-fast: false
66
- matrix:
67
- os:
68
- - ubuntu-latest
69
- - windows-2022
70
- tox_env:
71
- - dev
72
- - type
73
- - readme
74
- exclude:
75
- - { os: windows-2022, tox_env: readme }
76
- steps:
77
- - uses: actions/checkout@v3
78
- with:
79
- fetch-depth: 0
80
- - name: Setup Python "3.11"
81
- uses: actions/setup-python@v4
82
- with:
83
- python-version: "3.11"
84
- - name: Install tox
85
- run: python -m pip install tox
86
- - name: Setup test suite
87
- run: tox -vv --notest -e ${{ matrix.tox_env }}
88
- - name: Run test suite
89
- run: tox --skip-pkg-install -e ${{ matrix.tox_env }}
@@ -1,27 +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@v4
17
- with:
18
- python-version: "3.11"
19
- - name: Install build
20
- run: python -m pip install build
21
- - uses: actions/checkout@v3
22
- with:
23
- fetch-depth: 0
24
- - name: Build package
25
- run: pyproject-build -s -w . -o dist
26
- - name: Publish to PyPI
27
- uses: pypa/gh-action-pypi-publish@v1.8.6
@@ -1,106 +0,0 @@
1
- [build-system]
2
- build-backend = "hatchling.build"
3
- requires = [
4
- "hatch-vcs>=0.3",
5
- "hatchling>=1.14.1",
6
- ]
7
-
8
- [project]
9
- name = "devpi-process"
10
- description = "devpi process provides a programmatic API to create and use a devpi server process"
11
- readme.content-type = "text/markdown"
12
- readme.file = "README.md"
13
- keywords = [
14
- "environments",
15
- "isolated",
16
- "testing",
17
- "virtual",
18
- ]
19
- license = "MIT"
20
- maintainers = [{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" }]
21
- authors = [{ name = "Bernát Gábor", email = "gaborjbernat@gmail.com" }]
22
- requires-python = ">=3.7"
23
- classifiers = [
24
- "Development Status :: 5 - Production/Stable",
25
- "Framework :: tox",
26
- "Intended Audience :: Developers",
27
- "License :: OSI Approved :: MIT License",
28
- "Operating System :: MacOS :: MacOS X",
29
- "Operating System :: Microsoft :: Windows",
30
- "Operating System :: POSIX",
31
- "Programming Language :: Python :: 3 :: Only",
32
- "Programming Language :: Python :: 3.7",
33
- "Programming Language :: Python :: 3.8",
34
- "Programming Language :: Python :: 3.9",
35
- "Programming Language :: Python :: 3.10",
36
- "Programming Language :: Python :: 3.11",
37
- "Topic :: Software Development :: Libraries",
38
- "Topic :: Software Development :: Testing",
39
- "Topic :: Utilities",
40
- ]
41
- dynamic = [
42
- "version",
43
- ]
44
- dependencies = [
45
- "devpi-client>=6.0.4",
46
- "devpi-server>=6.8",
47
- ]
48
- optional-dependencies.test = [
49
- "covdefaults>=2.3",
50
- "httpx>=0.24",
51
- "pytest>=7.3.1",
52
- "pytest-cov>=4",
53
- ]
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
- [tool.hatch]
59
- build.hooks.vcs.version-file = "src/devpi_process/_version.py"
60
- version.source = "vcs"
61
-
62
- [tool.black]
63
- line-length = 120
64
-
65
- [tool.coverage]
66
- html.show_contexts = true
67
- html.skip_covered = false
68
- paths.source = [
69
- "src",
70
- ".tox*/*/lib/python*/site-packages",
71
- ".tox*/pypy*/site-packages",
72
- ".tox*\\*\\Lib\\site-packages",
73
- "*/src",
74
- "*\\src",
75
- ]
76
- report.fail_under = 98
77
- report.omit = []
78
- run.parallel = true
79
- run.plugins = ["covdefaults"]
80
-
81
- [tool.mypy]
82
- python_version = "3.11"
83
- show_error_codes = true
84
- strict = true
85
-
86
- [tool.ruff]
87
- select = ["ALL"]
88
- line-length = 120
89
- target-version = "py37"
90
- isort = {known-first-party = ["devpi_process"], required-imports = ["from __future__ import annotations"]}
91
- ignore = [
92
- "ANN101", # no typoe annotation for self
93
- "ANN401", # allow Any as type annotation
94
- "D203", # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
95
- "D212", # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
96
- "S104", # Possible binding to all interface
97
- ]
98
- [tool.ruff.per-file-ignores]
99
- "tests/**/*.py" = [
100
- "S101", # asserts allowed in tests...
101
- "FBT", # don"t care about booleans as positional arguments in tests
102
- "INP001", # no implicit namespace
103
- "D", # don"t care about documentation in tests
104
- "S603", # `subprocess` call: check for execution of untrusted input
105
- "PLR2004", # Magic value used in comparison, consider replacing with a constant variable
106
- ]
@@ -1,4 +0,0 @@
1
- # file generated by setuptools_scm
2
- # don't change, don't track in version control
3
- __version__ = version = '0.3.1'
4
- __version_tuple__ = version_tuple = (0, 3, 1)
File without changes
File without changes