devpi-process 1.0.0__tar.gz → 1.0.2__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.0.2/.github/FUNDING.yml +1 -0
  2. devpi_process-1.0.2/.github/SECURITY.md +13 -0
  3. devpi_process-1.0.2/.github/workflows/check.yaml +51 -0
  4. devpi_process-1.0.2/.github/workflows/release.yaml +48 -0
  5. {devpi_process-1.0.0 → devpi_process-1.0.2}/.pre-commit-config.yaml +19 -13
  6. {devpi_process-1.0.0 → devpi_process-1.0.2}/PKG-INFO +13 -13
  7. {devpi_process-1.0.0 → devpi_process-1.0.2}/README.md +1 -3
  8. devpi_process-1.0.2/pyproject.toml +136 -0
  9. {devpi_process-1.0.0 → devpi_process-1.0.2}/src/devpi_process/__init__.py +3 -2
  10. devpi_process-1.0.2/src/devpi_process/_version.py +16 -0
  11. {devpi_process-1.0.0 → devpi_process-1.0.2}/tests/test_devpi_process.py +1 -1
  12. devpi_process-1.0.2/tox.ini +69 -0
  13. devpi_process-1.0.0/.github/workflows/check.yml +0 -88
  14. devpi_process-1.0.0/.github/workflows/release.yml +0 -27
  15. devpi_process-1.0.0/pyproject.toml +0 -106
  16. devpi_process-1.0.0/src/devpi_process/_version.py +0 -4
  17. devpi_process-1.0.0/tox.ini +0 -72
  18. {devpi_process-1.0.0 → devpi_process-1.0.2}/.github/dependabot.yml +0 -0
  19. {devpi_process-1.0.0 → devpi_process-1.0.2}/.github/release.yml +0 -0
  20. {devpi_process-1.0.0 → devpi_process-1.0.2}/.gitignore +0 -0
  21. {devpi_process-1.0.0 → devpi_process-1.0.2}/.markdownlint.yaml +0 -0
  22. {devpi_process-1.0.0 → devpi_process-1.0.2}/CHANGELOG.md +0 -0
  23. {devpi_process-1.0.0 → devpi_process-1.0.2}/CODE_OF_CONDUCT.md +0 -0
  24. {devpi_process-1.0.0 → devpi_process-1.0.2}/LICENSE.txt +0 -0
  25. {devpi_process-1.0.0 → devpi_process-1.0.2}/src/devpi_process/py.typed +0 -0
  26. {devpi_process-1.0.0 → devpi_process-1.0.2}/tests/demo_pkg_inline/build.py +0 -0
  27. {devpi_process-1.0.0 → devpi_process-1.0.2}/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,51 @@
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.13"
23
+ - "3.12"
24
+ - "3.11"
25
+ - "3.10"
26
+ - "3.9"
27
+ - "3.8"
28
+ - type
29
+ - dev
30
+ - pkg_meta
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ with:
34
+ fetch-depth: 0
35
+ - name: Install the latest version of uv
36
+ uses: astral-sh/setup-uv@v3
37
+ with:
38
+ enable-cache: true
39
+ cache-dependency-glob: "pyproject.toml"
40
+ github-token: ${{ secrets.GITHUB_TOKEN }}
41
+ - name: Install tox
42
+ run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv
43
+ - name: Install Python
44
+ if: startsWith(matrix.env, '3.') && matrix.env != '3.13'
45
+ run: uv python install --python-preference only-managed ${{ matrix.env }}
46
+ - name: Setup test suite
47
+ run: tox run -vv --notest --skip-missing-interpreters false -e ${{ matrix.env }}
48
+ - name: Run test suite
49
+ run: tox run --skip-pkg-install -e ${{ matrix.env }}
50
+ env:
51
+ 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@v4
14
+ with:
15
+ fetch-depth: 0
16
+ - name: Install the latest version of uv
17
+ uses: astral-sh/setup-uv@v3
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.13 --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@v4
42
+ with:
43
+ name: ${{ env.dists-artifact-name }}
44
+ path: dist/
45
+ - name: Publish to PyPI
46
+ uses: pypa/gh-action-pypi-publish@v1.10.1
47
+ with:
48
+ attestations: true
@@ -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.285"
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.7.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.1"
18
+ rev: "1.4.0"
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.13.1"
23
+ rev: "2.2.3"
23
24
  hooks:
24
25
  - id: pyproject-fmt
25
- additional_dependencies: ["tox>=4.8"]
26
- - repo: https://github.com/pre-commit/mirrors-prettier
27
- rev: "v3.0.2"
26
+ - repo: https://github.com/astral-sh/ruff-pre-commit
27
+ rev: "v0.6.5"
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: 1.0.0
3
+ Version: 1.0.2
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,18 +22,20 @@ Classifier: Programming Language :: Python :: 3.8
22
22
  Classifier: Programming Language :: Python :: 3.9
23
23
  Classifier: Programming Language :: Python :: 3.10
24
24
  Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
25
27
  Classifier: Topic :: Software Development :: Libraries
26
28
  Classifier: Topic :: Software Development :: Testing
27
29
  Classifier: Topic :: Utilities
28
30
  Requires-Python: >=3.8
29
- Requires-Dist: devpi-client>=6.0.5
30
- Requires-Dist: devpi-server>=6.9.2
31
- Requires-Dist: typing-extensions>=4.7.1; python_version < '3.11'
32
- Provides-Extra: test
33
- Requires-Dist: covdefaults>=2.3; extra == 'test'
34
- Requires-Dist: httpx>=0.24.1; extra == 'test'
35
- Requires-Dist: pytest-cov>=4.1; extra == 'test'
36
- Requires-Dist: pytest>=7.4; extra == 'test'
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: testing
35
+ Requires-Dist: covdefaults>=2.3; extra == 'testing'
36
+ Requires-Dist: httpx>=0.27.2; extra == 'testing'
37
+ Requires-Dist: pytest-cov>=5; extra == 'testing'
38
+ Requires-Dist: pytest>=8.3.2; extra == 'testing'
37
39
  Description-Content-Type: text/markdown
38
40
 
39
41
  # devpi-process
@@ -43,9 +45,7 @@ Description-Content-Type: text/markdown
43
45
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/devpi-process?style=flat-square)](https://pypi.org/project/devpi-process)
44
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
- [![check](https://github.com/tox-dev/devpi-process/workflows/check/badge.svg)](https://github.com/tox-dev/devpi-process/actions?query=workflow%3Acheck)
47
- [![Code style:
48
- black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)
48
+ [![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)
49
49
 
50
50
  Allows you to create [devpi](https://devpi.net/docs/devpi/devpi/stable/+d/index.html) server process with indexes, and
51
51
  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.
@@ -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.testing = [
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
 
@@ -214,7 +215,7 @@ def _find_free_port() -> int:
214
215
 
215
216
 
216
217
  __all__ = [
217
- "__version__",
218
218
  "Index",
219
219
  "IndexServer",
220
+ "__version__",
220
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.2'
16
+ __version_tuple__ = version_tuple = (1, 0, 2)
@@ -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
 
@@ -0,0 +1,69 @@
1
+ [tox]
2
+ requires =
3
+ tox>=4.2
4
+ tox-uv>=1.11.3
5
+ env_list =
6
+ fix
7
+ 3.13
8
+ 3.12
9
+ 3.11
10
+ 3.10
11
+ 3.9
12
+ 3.8
13
+ type
14
+ pkg_meta
15
+ skip_missing_interpreters = true
16
+
17
+ [testenv]
18
+ description = run the unit tests with pytest under {base_python}
19
+ package = wheel
20
+ wheel_build_env = .pkg
21
+ extras =
22
+ testing
23
+ pass_env =
24
+ DIFF_AGAINST
25
+ PYTEST_*
26
+ set_env =
27
+ COVERAGE_FILE = {work_dir}/.coverage.{env_name}
28
+ commands =
29
+ python -m pytest {tty:--color=yes} {posargs: \
30
+ --cov {env_site_packages_dir}{/}devpi_process --cov {tox_root}{/}tests \
31
+ --cov-config=pyproject.toml --no-cov-on-fail --cov-report term-missing:skip-covered --cov-context=test \
32
+ --cov-report html:{env_tmp_dir}{/}htmlcov --cov-report xml:{work_dir}{/}coverage.{env_name}.xml \
33
+ --junitxml {work_dir}{/}junit.{env_name}.xml \
34
+ tests}
35
+
36
+ [testenv:fix]
37
+ description = format the code base to adhere to our styles, and complain about what we cannot do automatically
38
+ skip_install = true
39
+ deps =
40
+ pre-commit-uv>=4.1.1
41
+ commands =
42
+ pre-commit run --all-files --show-diff-on-failure
43
+
44
+ [testenv:type]
45
+ description = run type check on code base
46
+ deps =
47
+ mypy==1.11.2
48
+ commands =
49
+ mypy src
50
+ mypy tests
51
+
52
+ [testenv:pkg_meta]
53
+ description = check that the long description is valid
54
+ skip_install = true
55
+ deps =
56
+ check-wheel-contents>=0.6
57
+ twine>=5.1.1
58
+ uv>=0.4.10
59
+ commands =
60
+ uv build --sdist --wheel --out-dir {env_tmp_dir} .
61
+ twine check {env_tmp_dir}{/}*
62
+ check-wheel-contents --no-config {env_tmp_dir}
63
+
64
+ [testenv:dev]
65
+ description = generate a DEV environment
66
+ package = editable
67
+ commands =
68
+ uv pip tree
69
+ python -c 'import sys; print(sys.executable)'
@@ -1,88 +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
- os:
26
- - ubuntu-latest
27
- - windows-2022
28
- - macos-12
29
-
30
- steps:
31
- - name: Setup python for tox
32
- uses: actions/setup-python@v4
33
- with:
34
- python-version: "3.11"
35
- - name: Install tox
36
- run: python -m pip install tox
37
- - uses: actions/checkout@v3
38
- with:
39
- fetch-depth: 0
40
- - name: Setup python for test ${{ matrix.py }}
41
- uses: actions/setup-python@v4
42
- with:
43
- python-version: ${{ matrix.py }}
44
- - name: Pick environment to run
45
- run: |
46
- import os; import platform; import sys; from pathlib import Path
47
- env = f'TOXENV=py{"" if platform.python_implementation() == "CPython" else "py"}3{sys.version_info.minor}'
48
- print(f"Picked: {env} for {sys.version} based of {sys.executable}")
49
- with Path(os.environ["GITHUB_ENV"]).open("ta") as file_handler:
50
- file_handler.write(env)
51
- shell: python
52
- - name: Setup test suite
53
- run: tox -vv --notest
54
- - name: Run test suite
55
- run: tox --skip-pkg-install
56
- env:
57
- PYTEST_ADDOPTS: "-vv --durations=20"
58
- CI_RUN: "yes"
59
-
60
- check:
61
- name: tox env ${{ matrix.tox_env }} - ${{ matrix.os }}
62
- runs-on: ${{ matrix.os }}
63
- strategy:
64
- fail-fast: false
65
- matrix:
66
- os:
67
- - ubuntu-latest
68
- - windows-2022
69
- tox_env:
70
- - dev
71
- - type
72
- - readme
73
- exclude:
74
- - { os: windows-2022, tox_env: readme }
75
- steps:
76
- - uses: actions/checkout@v3
77
- with:
78
- fetch-depth: 0
79
- - name: Setup Python "3.11"
80
- uses: actions/setup-python@v4
81
- with:
82
- python-version: "3.11"
83
- - name: Install tox
84
- run: python -m pip install tox
85
- - name: Setup test suite
86
- run: tox -vv --notest -e ${{ matrix.tox_env }}
87
- - name: Run test suite
88
- 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.10
@@ -1,106 +0,0 @@
1
- [build-system]
2
- build-backend = "hatchling.build"
3
- requires = [
4
- "hatch-vcs>=0.3",
5
- "hatchling>=1.18",
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.8"
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.8",
33
- "Programming Language :: Python :: 3.9",
34
- "Programming Language :: Python :: 3.10",
35
- "Programming Language :: Python :: 3.11",
36
- "Topic :: Software Development :: Libraries",
37
- "Topic :: Software Development :: Testing",
38
- "Topic :: Utilities",
39
- ]
40
- dynamic = [
41
- "version",
42
- ]
43
- dependencies = [
44
- "devpi-client>=6.0.5",
45
- "devpi-server>=6.9.2",
46
- 'typing-extensions>=4.7.1; python_version < "3.11"',
47
- ]
48
- optional-dependencies.test = [
49
- "covdefaults>=2.3",
50
- "httpx>=0.24.1",
51
- "pytest>=7.4",
52
- "pytest-cov>=4.1",
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.ruff]
66
- select = ["ALL"]
67
- line-length = 120
68
- target-version = "py38"
69
- isort = {known-first-party = ["devpi_process"], required-imports = ["from __future__ import annotations"]}
70
- ignore = [
71
- "ANN101", # no typoe annotation for self
72
- "ANN401", # allow Any as type annotation
73
- "D203", # `one-blank-line-before-class` (D203) and `no-blank-line-before-class` (D211) are incompatible
74
- "D212", # `multi-line-summary-first-line` (D212) and `multi-line-summary-second-line` (D213) are incompatible
75
- "S104", # Possible binding to all interface
76
- ]
77
- [tool.ruff.per-file-ignores]
78
- "tests/**/*.py" = [
79
- "S101", # asserts allowed in tests...
80
- "FBT", # don"t care about booleans as positional arguments in tests
81
- "INP001", # no implicit namespace
82
- "D", # don"t care about documentation in tests
83
- "S603", # `subprocess` call: check for execution of untrusted input
84
- "PLR2004", # Magic value used in comparison, consider replacing with a constant variable
85
- ]
86
-
87
- [tool.coverage]
88
- html.show_contexts = true
89
- html.skip_covered = false
90
- paths.source = [
91
- "src",
92
- ".tox*/*/lib/python*/site-packages",
93
- ".tox*/pypy*/site-packages",
94
- ".tox*\\*\\Lib\\site-packages",
95
- "*/src",
96
- "*\\src",
97
- ]
98
- report.fail_under = 98
99
- report.omit = []
100
- run.parallel = true
101
- run.plugins = ["covdefaults"]
102
-
103
- [tool.mypy]
104
- python_version = "3.11"
105
- show_error_codes = true
106
- strict = true
@@ -1,4 +0,0 @@
1
- # file generated by setuptools_scm
2
- # don't change, don't track in version control
3
- __version__ = version = '1.0.0'
4
- __version_tuple__ = version_tuple = (1, 0, 0)
@@ -1,72 +0,0 @@
1
- [tox]
2
- requires =
3
- tox>=4.2
4
- env_list =
5
- fix
6
- py311
7
- py310
8
- py39
9
- py38
10
- py37
11
- type
12
- readme
13
- skip_missing_interpreters = true
14
-
15
- [testenv]
16
- description = run the unit tests with pytest under {basepython}
17
- package = wheel
18
- wheel_build_env = .pkg
19
- extras =
20
- test
21
- set_env =
22
- COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
23
- COVERAGE_PROCESS_START = {toxinidir}/pyproject.toml
24
- _COVERAGE_SRC = {envsitepackagesdir}/devpi_process
25
- commands =
26
- pytest {tty:--color=yes} {posargs: \
27
- --junitxml {toxworkdir}{/}junit.{envname}.xml --cov {envsitepackagesdir}{/}devpi_process \
28
- --cov {toxinidir}{/}tests --cov-fail-under=100 \
29
- --cov-config=pyproject.toml --no-cov-on-fail --cov-report term-missing:skip-covered --cov-context=test \
30
- --cov-report html:{envtmpdir}{/}htmlcov --cov-report xml:{toxworkdir}{/}coverage.{envname}.xml \
31
- tests}
32
-
33
- [testenv:fix]
34
- description = run static analysis and style check using flake8
35
- skip_install = true
36
- deps =
37
- pre-commit>=3.3.3
38
- pass_env =
39
- HOMEPATH
40
- PROGRAMDATA
41
- commands =
42
- pre-commit run --all-files --show-diff-on-failure
43
-
44
- [testenv:type]
45
- description = run type check on code base
46
- deps =
47
- mypy==1.5
48
- set_env =
49
- {tty:MYPY_FORCE_COLOR = 1}
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[virtualenv]>=0.10
59
- twine>=4.0.2
60
- commands =
61
- python -m build --sdist --wheel -o {envtmpdir} .
62
- twine check {envtmpdir}/*
63
-
64
- [testenv:dev]
65
- description = generate a DEV environment
66
- package = editable
67
- extras =
68
- docs
69
- test
70
- commands =
71
- python -m pip list --format=columns
72
- python -c 'import sys; print(sys.executable)'
File without changes
File without changes