Files
aitbc/pyproject.toml
aitbc 4d76bf4d97 fix: add E722 to ruff select list to enforce bare except detection
- Explicitly add E722 rule to catch bare except clauses
- Addresses report item #5 (80 bare except clauses)
2026-04-30 08:35:26 +02:00

144 lines
3.1 KiB
TOML

[tool.poetry]
name = "aitbc"
version = "v0.3.3"
description = "AI Agent Compute Network - Main Project"
authors = ["AITBC Team"]
[tool.poetry.dependencies]
python = "^3.13"
requests = "^2.33.0"
urllib3 = "^2.6.3"
idna = "^3.7"
[tool.poetry.group.dev.dependencies]
pytest = "^9.0.3"
pytest-asyncio = "^0.23.0"
black = "^26.3.1"
flake8 = "^7.0.0"
ruff = "^0.1.0"
mypy = "^1.8.0"
isort = "^5.13.0"
pre-commit = "^3.5.0"
bandit = "^1.7.0"
pydocstyle = "^6.3.0"
pyupgrade = "^3.15.0"
safety = "^2.3.0"
[tool.black]
line-length = 127
target-version = ['py313']
include = '\.pyi?$'
extend-exclude = '''
/(
# directories
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| build
| dist
)/
'''
[tool.isort]
profile = "black"
line_length = 127
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
[tool.mypy]
python_version = "3.13"
warn_return_any = true
warn_unused_configs = true
# Start with less strict mode and gradually increase
check_untyped_defs = false
disallow_incomplete_defs = false
disallow_untyped_defs = false
disallow_untyped_decorators = false
no_implicit_optional = false
warn_redundant_casts = false
warn_unused_ignores = false
warn_no_return = true
warn_unreachable = false
strict_equality = false
[[tool.mypy.overrides]]
module = [
"torch.*",
"cv2.*",
"pandas.*",
"numpy.*",
"web3.*",
"eth_account.*",
"sqlalchemy.*",
"alembic.*",
"uvicorn.*",
"fastapi.*",
]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = [
"apps.coordinator-api.src.app.routers.*",
"apps.coordinator-api.src.app.services.*",
"apps.coordinator-api.src.app.storage.*",
"apps.coordinator-api.src.app.utils.*",
"apps.coordinator-api.src.app.domain.global_marketplace",
"apps.coordinator-api.src.app.domain.cross_chain_reputation",
"apps.coordinator-api.src.app.domain.agent_identity",
]
ignore_errors = true
[tool.ruff]
line-length = 127
target-version = "py313"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
"E722", # bare except (explicitly enforce)
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
"C901", # too complex
]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
"tests/*" = ["B011"]
[tool.pydocstyle]
convention = "google"
add_ignore = ["D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
minversion = "8.0"
addopts = "-ra -q --strict-markers --strict-config"
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"unit: marks tests as unit tests",
]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"