-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
104 lines (84 loc) · 2.29 KB
/
pyproject.toml
File metadata and controls
104 lines (84 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
[build-system]
requires = ["uv_build"]
build-backend = "uv_build"
[project]
name = "pqn-node"
version = "0.2.0"
description = "FastAPI node service for the Public Quantum Network."
readme = "README.md"
requires-python = ">=3.12"
license = { text = "MIT" }
authors = [
{ name = "Benjamin Nussbaum", email = "bn9@illinois.edu" },
{ name = "Marcos Frenkel", email = "marcosf2@illinois.edu" },
{ name = "Soroush Hoseini", email = "soroushhoseini0@gmail.com" },
]
dependencies = [
"pqn-hardware @ git+https://github.com/PublicQuantumNetwork/pqn-hardware.git@6440be2830fddccb09b461caea023c84b7c3bea1",
"fastapi[standard]>=0.115.14",
"httpx>=0.28.1",
"pydantic>=2.0",
"pydantic-settings>=2.10.1",
"pyserial>=3.5",
"tomli-w>=1.0.0",
"typer>=0.15.1",
]
[project.scripts]
pqn-node = "pqn_node.cli:app"
[dependency-groups]
dev = ["hypothesis", "mypy", "coverage", "pytest-randomly", "ruff"]
[tool.mypy]
files = ["src/**/*.py"]
strict = true
pretty = true
enable_error_code = ["ignore-without-code"]
ignore_missing_imports = true
[tool.ruff]
line-length = 120
[tool.ruff.lint]
# See https://docs.astral.sh/ruff/rules/ for details.
select = ["ALL"]
ignore = [
"ANN", # Let Mypy handle type annotations
"D1", # Don't warn about missing docstrings (but lint the ones that exist)
"FIX", # The linter doesnt need to remind us about TODOs
"S301", # We use pickle
"TD", # We don't use this TODO style
]
# Ignore rules which are redundant when using the formatter.
# See https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules for details.
extend-ignore = [
"W191",
"E111",
"E114",
"E117",
"D206",
"D300",
"Q",
"COM812",
"COM819",
"ISC001",
"ISC002",
"E501",
]
[tool.ruff.lint.extend-per-file-ignores]
"tests/*" = [
"S101", # Assert
]
# Run pytest lint rules only in test files.
"!tests/*" = ["PT"]
# Allow "unused" imports when exposing objects from submodules.
"**/__init__.py" = ["F401"]
[tool.ruff.lint.isort]
force-single-line = true
[tool.ruff.lint.pydocstyle]
convention = "numpy" # One of: "google" | "numpy" | "pep257"
[tool.coverage.run]
# source = ["app"]
dynamic_context = "test_function"
[tool.coverage.report]
show_missing = true
skip_empty = true
sort = "-Cover"
[tool.coverage.html]
show_contexts = true