Marco Ricci commited on 2025-07-23 20:13:06
Zeige 3 geänderte Dateien mit 19 Einfügungen und 7 Löschungen.
These mistakes were carried over from v0.5, and cause woe on The Annoying OS even before actually running any tests.
... | ... |
@@ -54,15 +54,26 @@ dev = [ |
54 | 54 |
"mypy >= 1.0", |
55 | 55 |
"ruff >= 0.9.0", |
56 | 56 |
# Test dependencies should be installed as well, to have static |
57 |
- # analysis in the test suite working too. `packaging` is needed |
|
58 |
- # because the test suite compares version numbers. |
|
57 |
+ # analysis in the test suite working too. |
|
58 |
+ # |
|
59 |
+ # `packaging` is needed because the test suite compares version |
|
60 |
+ # numbers. |
|
61 |
+ # |
|
62 |
+ # `pytest-xdist` is used by `hatch test -p`, but for the `psutil` |
|
63 |
+ # extra, the `psutil` package provides no wheels for PyPy. Users on |
|
64 |
+ # The Annoying OS are especially screwed if they lack the admin |
|
65 |
+ # priviledges necessary to install the developers' tools. So skip |
|
66 |
+ # the extra, and accept that for PyPy environments, `hatch test -p` |
|
67 |
+ # will not be able to distinguish logical and physical CPU core |
|
68 |
+ # counts. |
|
59 | 69 |
"coverage[toml] >= 7.4", |
60 | 70 |
"coverage-enable-subprocess >= 1.0", |
61 | 71 |
"hypothesis >= 6.0", |
62 | 72 |
"packaging", |
63 | 73 |
"pytest >= 8.1", |
64 | 74 |
"pytest-randomly >= 3.15", |
65 |
- "pytest-xdist[psutil] >= 3.6.0", |
|
75 |
+ "pytest-xdist >= 3.6.0", |
|
76 |
+ 'pytest-xdist[psutil] >= 3.6.0; platform_python_implementation != "PyPy"', |
|
66 | 77 |
# Versions 6.130.13 through 6.135.1 of `hypothesis` use syntax only |
67 | 78 |
# available on Python 3.10 and later: `with (x as y, a as b)` |
68 | 79 |
'hypothesis != 6.130.13, != 6.131.*, != 6.132.*, != 6.133.*, != 6.134.*, != 6.135.0, != 6.135.1 ; python_version < "3.10"', |
... | ... |
@@ -307,7 +318,8 @@ dependencies = [ |
307 | 318 |
"packaging", |
308 | 319 |
"pytest >= 8.1", |
309 | 320 |
"pytest-randomly >= 3.15", |
310 |
- "pytest-xdist[psutil] >= 3.6.0", |
|
321 |
+ "pytest-xdist >= 3.6.0", |
|
322 |
+ 'pytest-xdist[psutil] >= 3.6.0; platform_python_implementation != "PyPy"', |
|
311 | 323 |
'hypothesis != 6.130.13, != 6.131.*, != 6.132.*, != 6.133.*, != 6.134.*, != 6.135.0, != 6.135.1 ; python_version < "3.10"', |
312 | 324 |
] |
313 | 325 |
matrix-name-format = '{variable}_{value}' |
... | ... |
@@ -64,10 +64,10 @@ def get_vault_key() -> bytes: |
64 | 64 |
|
65 | 65 |
""" |
66 | 66 |
|
67 |
- def getenv_environ(env_var: str) -> bytes: # pragma: no cover |
|
67 |
+ def getenv_environb(env_var: str) -> bytes: # pragma: no cover |
|
68 | 68 |
return os.environb.get(env_var.encode('UTF-8'), b'') # type: ignore[attr-defined] |
69 | 69 |
|
70 |
- def getenv_environb(env_var: str) -> bytes: # pragma: no cover |
|
70 |
+ def getenv_environ(env_var: str) -> bytes: # pragma: no cover |
|
71 | 71 |
return os.environ.get(env_var, '').encode('UTF-8') |
72 | 72 |
|
73 | 73 |
getenv: Callable[[str], bytes] = ( |
... | ... |
@@ -1651,7 +1651,7 @@ def get_concurrency_limit() -> int: |
1651 | 1651 |
if sys.version_info >= (3, 13): |
1652 | 1652 |
result = os.process_cpu_count() |
1653 | 1653 |
else: |
1654 |
- with contextlib.suppress(ValueError): |
|
1654 |
+ with contextlib.suppress(KeyError, ValueError): |
|
1655 | 1655 |
result = result or int(os.environ['PYTHON_CPU_COUNT'], 10) |
1656 | 1656 |
with contextlib.suppress(AttributeError): |
1657 | 1657 |
result = result or len(os.sched_getaffinity(os.getpid())) |
1658 | 1658 |