[project] name = "hesabix-api" version = "0.1.0" description = "Hesabix Accounting API - FastAPI + SQLAlchemy + MySQL" readme = "README.md" requires-python = ">=3.11" authors = [ { name = "Hesabix Team" } ] dependencies = [ "fastapi>=0.111.0", "uvicorn[standard]>=0.30.0", "sqlalchemy>=2.0.30", "pymysql>=1.1.0", "pydantic>=2.7.0", "email-validator>=2.0.0.post2", "pydantic-settings>=2.3.0", "structlog>=24.1.0", "alembic>=1.13.2", "argon2-cffi>=23.1.0", "pillow>=10.3.0", "phonenumbers>=8.13.40", "Babel>=2.15.0", "jdatetime>=4.1.0" ] [project.optional-dependencies] dev = [ "pytest>=8.2.0", "httpx>=0.27.0", "pytest-asyncio>=0.23.0", "mypy>=1.10.0", "ruff>=0.5.0", "black>=24.4.0", "pre-commit>=3.7.0" ] [build-system] requires = ["setuptools>=68.0", "wheel"] build-backend = "setuptools.build_meta" [tool.black] line-length = 100 target-version = ["py311"] [tool.ruff] line-length = 100 target-version = "py311" lint.select = ["E", "F", "I", "N", "UP", "B", "C4", "SIM"] lint.ignore = ["E203", "E501"] [tool.mypy] python_version = "3.11" strict = true warn_unused_ignores = true warn_redundant_casts = true warn_unused_configs = true disallow_untyped_defs = true no_implicit_optional = true exclude = ["migrations/"] [tool.setuptools] [tool.setuptools.packages.find] include = ["app*", "adapters*", "migrations*", "tests*"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]