-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
146 lines (125 loc) · 4.15 KB
/
pyproject.toml
File metadata and controls
146 lines (125 loc) · 4.15 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
[tool.poetry]
authors = [
"northpowered <you@example.com>",
"dmastapkovich <dm.astapkovich@gmail.com>",
]
description = "Small framework for Temporal development"
keywords = ["temporal", "framework", "development", "python"]
license = "MIT"
name = "temporal-boost"
packages = [{include = "temporal_boost"}]
readme = "README.md"
repository = "https://github.com/northpowered/temporal-boost"
version = "2.0.2"
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
[tool.poetry.dependencies]
python = "^3.10.0"
pyyaml = "^6.0.0"
typer = "^0.16.0"
pydantic = "*"
temporalio = "*"
hypercorn = {version = "*", optional = true}
granian = {version = "*", optional = true}
uvicorn = {version = "*", optional = true}
faststream = {version = "*", optional = true}
anyio = {version = "*", optional = true}
[tool.poetry.extras]
granian = ["granian"]
hypercorn = ["hypercorn"]
uvicorn = ["uvicorn"]
faststream = ["faststream", "anyio"]
[tool.poetry.scripts]
temporal-boost = "temporal_boost.cli.runner:cli_app"
[tool.poetry.group.dev.dependencies]
fastapi = "^0.110.0"
pre-commit = "^3.8.0"
pre-commit-hooks = "^4.6.0"
redis = "^6.4.0"
[tool.poetry.group.test.dependencies]
pytest = "^8.3.0"
pytest-asyncio = "^0.24.0"
pytest-cov = "^5.0.0"
pytest-dotenv = "^0.5.2"
[tool.poetry.group.lint.dependencies]
mypy = "^1.15.0"
ruff = "^0.11.0"
types-pyyaml = "^6.0.0"
[tool.poetry.group.docs.dependencies]
mkdocs-material = "^9.5.31"
mkdocs-material-extensions = "^1.3.1"
[build-system]
build-backend = "poetry.core.masonry.api"
requires = ["poetry-core"]
[tool.mypy]
allow_redefinition = true
disallow_any_unimported = true
files = ["temporal_boost", "examples", "tests"]
implicit_reexport = false
plugins = ["pydantic.mypy"]
show_column_numbers = true
show_error_codes = true
strict = true
strict_optional = true
warn_no_return = true
warn_unused_ignores = false
[tool.pydantic-mypy]
init_forbid_extra = true
init_typed = true
warn_required_dynamic_aliases = true
[tool.ruff]
fix = true
line-length = 120
preview = true
target-version = "py310"
unsafe-fixes = true
[tool.ruff.lint]
ignore = [
"CPY", # Ignore copyright notice checks in Python files
"FBT001", # Ignore specific flake8-bugbear warning
"D", # Ignore all docstring-related rules
"ISC001", # Ignore implicit string concatenation (conflicts with Ruff formatter)
"PLR6301", # Do not enforce @classmethod/@staticmethod when `self` is not used
"TRY003", # Ensure that `raise` within a try block uses `raise from` or `raise e`
"TRY004", # Avoid using a bare `except` clause
"TRY300", # Prefer `contextlib.suppress` over try-except-pass
"EM101", # Ignore string formatting issues in exception messages
"EM102", # Ignore error message formatting issues
"ANN401", # Ignore dynamically typed annotations (`Any`)
"BLE001", # Ignore blind except rule
"G004", # Ignore a specific Pylint rule (possibly related to global variables)
"COM812", # Require a trailing comma to reduce diff size when modifying lists, dicts, etc.
"TRY301", # Check for `raise` within try block for proper exception handling of caught exceptions
"RUF029", # Ignore mutable default argument rule (functions with mutable defaults)
"DOC201", # Ignore docstring presence check (allow functions without docstrings)
]
select = ["ALL"]
[tool.ruff.lint.per-file-ignores]
"examples/*" = ["S101", "S311", "S104", "ARG001", "RUF001", "RUF029", "DOC201"]
"tests/*" = ["S101", "S311", "S106", "RUF029", "SLF001", "PLR2004", "SIM117", "DOC201"]
[tool.ruff.lint.isort]
combine-as-imports = true
lines-after-imports = 2
[tool.ruff.format]
quote-style = "double"
[tool.ruff.lint.flake8-bugbear]
extend-immutable-calls = ["fastapi.Depends", "fastapi.Query"]
[tool.pytest.ini_options]
addopts = "-s -v --durations=0"
cache_dir = ".cache/pytest_cache"
testpaths = ["tests"]
[tool.coverage.run]
branch = true
command_line = "-m pytest"
source = ["."]
[tool.coverage.report]
show_missing = true
[tool.coverage.xml]
output = "coverage.xml"