[tool.poetry] name = "aitbc" version = "v0.2.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 = "^8.2.0" pytest-asyncio = "^0.23.0" black = "^24.0.0" 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 ] 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] 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"