chore(deps): add cryptography dep, pytest-randomly dev dep
Two follow-ups to the v0.2.0 release: 1. Add cryptography>=49.0,<50 to the [project.dependencies] list. cyclone.backup / cyclone.backup_service import it at module top level, so it has to be a hard dep — not an extra — or the test suite fails to collect on a fresh 'uv sync'. A clean install (without this commit) gets 28 collection errors with no tracked file changes. This was latent because the original 99M venv had cryptography installed out-of-band and masked the missing dep declaration. 2. Add pytest-randomly>=4.1.0 to the dev dep group. Used to characterize the test suite's order-dependence: under alphabetic order the suite shows 7 failures; under seed=12345 it shows 34. That variance is evidence of test-order state interactions, not venv issues. Keeping pytest-randomly in the dev deps so this can be re-verified on demand. Note: pytest-randomly was added with 'uv add --dev', which uses the PEP 735 [dependency-groups] syntax. pyproject.toml now has two 'dev' groups — the legacy [project.optional-dependencies] dev = [pytest, pytest-cov, pytest-asyncio, httpx] and the new [dependency-groups] dev = [pytest-randomly]. To get the full dev env, run: uv sync --extra dev --group dev. Worth consolidating in a follow-up.
This commit is contained in:
Generated
+22
@@ -378,6 +378,7 @@ version = "0.1.0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "click" },
|
||||
{ name = "cryptography" },
|
||||
{ name = "fastapi" },
|
||||
{ name = "keyring" },
|
||||
{ name = "pydantic" },
|
||||
@@ -401,9 +402,15 @@ sqlcipher = [
|
||||
{ name = "sqlcipher3" },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "pytest-randomly" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "click", specifier = ">=8.1,<9" },
|
||||
{ name = "cryptography", specifier = ">=49.0,<50" },
|
||||
{ name = "fastapi", specifier = ">=0.110,<1" },
|
||||
{ name = "httpx", marker = "extra == 'dev'", specifier = ">=0.27,<1" },
|
||||
{ name = "keyring", specifier = ">=25.0,<26" },
|
||||
@@ -420,6 +427,9 @@ requires-dist = [
|
||||
]
|
||||
provides-extras = ["dev", "sqlcipher", "sftp"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [{ name = "pytest-randomly", specifier = ">=4.1.0" }]
|
||||
|
||||
[[package]]
|
||||
name = "fastapi"
|
||||
version = "0.138.0"
|
||||
@@ -935,6 +945,18 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pytest-randomly"
|
||||
version = "4.1.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "pytest" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/27/b3/36192dacc0f470ac2cc516f73e01739c9a48a8224f76beada4f85e1c8a89/pytest_randomly-4.1.0.tar.gz", hash = "sha256:47f1d9746c3bc3efabd53ae1ebfb8bb385cf3d4df4b505b6d58d9c97a3dfe70f", size = 14302, upload-time = "2026-04-20T13:01:51.831Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/9a/db/2df9a1fca597a273f957a559c20c2d95d629928384507b2afa43ba6909d1/pytest_randomly-4.1.0-py3-none-any.whl", hash = "sha256:f55e89e53367b090c0c053697d7f9d77595543d0e0516c93978b50c0f6b252f9", size = 8353, upload-time = "2026-04-20T13:01:50.382Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "python-dotenv"
|
||||
version = "1.2.2"
|
||||
|
||||
Reference in New Issue
Block a user