[build-system] requires = ["setuptools>=69", "wheel"] build-backend = "setuptools.build_meta" [project] name = "iti-flask" dynamic = ["version"] description = "iTi-Flask is a lightweight FastAPI backend foundation for business applications." readme = "README.md" requires-python = ">=3.11" license = "MIT" keywords = ["fastapi", "backend", "framework"] authors = [{ name = "NoahLan", email = "6995syu@163.com" }] classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] dependencies = [ "fastapi>=0.115.0", "uvicorn[standard]>=0.30.0", "SQLAlchemy>=2.0.0", "alembic>=1.13.0", "pydantic>=2.8.0", "pydantic-settings>=2.4.0", "python-jose[cryptography]>=3.3.0", "passlib[argon2]>=1.7.4", "python-multipart>=0.0.9", "click>=8.1.0", "python-dotenv>=1.0.0", "httpx>=0.27.0", "tenacity>=8.2.0", "PyMySQL>=1.1.0", ] [project.optional-dependencies] storage-aliyun = ["oss2>=2.19.1"] storage-tencent = ["cos-python-sdk-v5>=1.9.38"] storage-qiniu = ["qiniu>=7.17.0"] storage-huawei = ["esdk-obs-python>=3.25.8"] storage-s3 = ["boto3>=1.40.62"] storage-minio = ["minio>=7.2.18"] erp = ["pyodbc>=5.3.0"] excel = ["pandas>=2.3.3", "openpyxl>=3.1.5"] image = ["Pillow>=12.0.0"] prod = ["gunicorn>=22.0.0"] dev = [ "mypy>=1.0.0", "pytest>=7.0.0", "pytest-cov>=4.0.0", "pytest-mock>=3.0.0", "pytest-asyncio>=0.21.0", "watchdog>=6.0.0", ] [project.urls] Documentation = "https://github.com/NoahLan/iti-flask#readme" Issues = "https://github.com/NoahLan/iti-flask/issues" Source = "https://github.com/NoahLan/iti-flask" [tool.setuptools.dynamic] version = { attr = "iti.__about__.__version__" } [tool.setuptools.packages.find] include = ["iti*"] exclude = ["iti.runtime*"] [tool.setuptools.package-data] iti = [ "templates/*.html", ] [project.scripts] iti = "iti.cli:iti_cli" [tool.setuptools.exclude-package-data] iti = [ ".env*", "runtime/*", "iti/runtime/*", "**/__pycache__/*", ] [tool.coverage.run] source_pkgs = ["iti", "tests"] branch = true parallel = true omit = ["iti/__about__.py"] [tool.coverage.paths] iti = ["iti", "*/iti"] tests = ["tests", "*/tests"] [tool.coverage.report] exclude_lines = ["no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:"] [tool.mypy] python_version = "3.11" ignore_missing_imports = true warn_unused_configs = true files = [ "iti/config.py", "iti/cli.py", "iti/app.py", "iti/auth", "iti/db", "iti/modules", "iti/responses", "iti/service_client", "iti/tasks", ] [tool.pytest.ini_options] testpaths = ["tests"]