|
|
# 开发环境(默认)
|
|
|
[envs.default]
|
|
|
type = "virtual"
|
|
|
dependencies = [
|
|
|
"rocketmq-client-python",
|
|
|
"simpleeval",
|
|
|
"influxdb-client",
|
|
|
"flask>=3.1.0",
|
|
|
"apiflask>=2.4.0",
|
|
|
"flask-cors>=6.0.0",
|
|
|
"flask-sqlalchemy>=3.1.0",
|
|
|
"SQLAlchemy>=2.0.0",
|
|
|
"flask-migrate>=4.1.0",
|
|
|
"flask-marshmallow>=1.3.0",
|
|
|
"Flask-JWT-Extended>=4.7.0",
|
|
|
"Flask-Limiter>=4.0.0",
|
|
|
"flask-moment>=1.0.0",
|
|
|
"Flask-Caching>=2.3.0",
|
|
|
"validators>=0.35.0",
|
|
|
"marshmallow>=4.0.0",
|
|
|
"marshmallow-sqlalchemy>=1.4.0",
|
|
|
"marshmallow-dataclass>=8.7.0",
|
|
|
"watchdog>=6.0.0",
|
|
|
"Werkzeug>=3.1.0",
|
|
|
"importlib-metadata>=8.7.0",
|
|
|
"PyMySQL>=1.1.0",
|
|
|
"python-dotenv>=1.0.0",
|
|
|
"mypy>=1.0.0",
|
|
|
"Pillow>=12.0.0",
|
|
|
"pandas>=2.3.3",
|
|
|
"openpyxl>=3.1.5",
|
|
|
# 阿里云OSS
|
|
|
"oss2>=2.19.1",
|
|
|
# 腾讯云COS
|
|
|
"cos-python-sdk-v5>=1.9.38",
|
|
|
# 七牛云Kodo
|
|
|
"qiniu>=7.17.0",
|
|
|
# 华为云OBS
|
|
|
"esdk-obs-python>=3.25.8",
|
|
|
# AWS S3
|
|
|
"boto3>=1.40.62",
|
|
|
# MinIO
|
|
|
"minio>=7.2.18",
|
|
|
# 测试
|
|
|
"pytest>=7.0.0",
|
|
|
"pytest-cov>=4.0.0",
|
|
|
"pytest-mock>=3.0.0",
|
|
|
"pytest-asyncio>=0.21.0",
|
|
|
]
|
|
|
|
|
|
[envs.default.env-vars]
|
|
|
FLASK_ENV = "dev"
|
|
|
|
|
|
[envs.default.scripts]
|
|
|
# 开发环境启动
|
|
|
dev = "python -m flask --app iti/app.py run --debug"
|
|
|
# db
|
|
|
db = "python -m flask --app iti/app.py db {args}"
|
|
|
# 类型检查
|
|
|
check = "mypy --install-types --non-interactive {args:iti tests}"
|
|
|
# 运行测试
|
|
|
test = "pytest {args:tests}"
|
|
|
# 带覆盖率的测试
|
|
|
cov = "pytest --cov=iti --cov-report=html {args:tests}"
|
|
|
|
|
|
# 测试环境
|
|
|
[envs.test]
|
|
|
type = "virtual"
|
|
|
dependencies = [
|
|
|
"flask>=3.1.0",
|
|
|
"apiflask>=2.4.0",
|
|
|
"flask-cors>=6.0.0",
|
|
|
"flask-sqlalchemy>=3.1.0",
|
|
|
"SQLAlchemy>=2.0.0",
|
|
|
"flask-migrate>=4.1.0",
|
|
|
"flask-marshmallow>=1.3.0",
|
|
|
"Flask-JWT-Extended>=4.7.0",
|
|
|
"Flask-Limiter>=4.0.0",
|
|
|
"flask-moment>=1.0.0",
|
|
|
"Flask-Caching>=2.3.0",
|
|
|
"validators>=0.35.0",
|
|
|
"marshmallow>=4.0.0",
|
|
|
"marshmallow-sqlalchemy>=1.4.0",
|
|
|
"marshmallow-dataclass>=8.7.0",
|
|
|
"Pillow>=12.0.0",
|
|
|
"pandas>=2.3.3",
|
|
|
"openpyxl>=3.1.5",
|
|
|
# 阿里云OSS
|
|
|
"oss2>=2.19.1",
|
|
|
# 腾讯云COS
|
|
|
"cos-python-sdk-v5>=1.9.38",
|
|
|
# 七牛云Kodo
|
|
|
"qiniu>=7.17.0",
|
|
|
# 华为云OBS
|
|
|
"esdk-obs-python>=3.25.8",
|
|
|
# AWS S3
|
|
|
"boto3>=1.40.62",
|
|
|
# MinIO
|
|
|
"minio>=7.2.18",
|
|
|
# 测试
|
|
|
"pytest>=7.0.0",
|
|
|
"pytest-cov>=4.0.0",
|
|
|
"pytest-mock>=3.0.0",
|
|
|
]
|
|
|
|
|
|
[envs.test.env-vars]
|
|
|
FLASK_ENV = "test"
|
|
|
|
|
|
[envs.test.scripts]
|
|
|
test = "pytest {args:tests}"
|
|
|
cov = "pytest --cov=iti --cov-report=html --cov-report=term {args:tests}"
|
|
|
|
|
|
# 生产环境
|
|
|
[envs.prod]
|
|
|
type = "virtual"
|
|
|
python = ">=3.11"
|
|
|
dependencies = [
|
|
|
"flask>=3.1.0",
|
|
|
"apiflask>=2.4.0",
|
|
|
"flask-cors>=6.0.0",
|
|
|
"flask-sqlalchemy>=3.1.0",
|
|
|
"SQLAlchemy>=2.0.0",
|
|
|
"flask-migrate>=4.1.0",
|
|
|
"flask-marshmallow>=1.3.0",
|
|
|
"Flask-JWT-Extended>=4.7.0",
|
|
|
"Flask-Limiter>=4.0.0",
|
|
|
"flask-moment>=1.0.0",
|
|
|
"Flask-Caching>=2.3.0",
|
|
|
"validators>=0.35.0",
|
|
|
"marshmallow>=4.0.0",
|
|
|
"marshmallow-sqlalchemy>=1.4.0",
|
|
|
"marshmallow-dataclass>=8.7.0",
|
|
|
"Werkzeug>=3.1.0",
|
|
|
"importlib-metadata>=8.7.0",
|
|
|
"PyMySQL>=1.1.0",
|
|
|
"python-dotenv>=1.0.0",
|
|
|
"waitress>=2.1.0", # 跨平台生产服务器(支持 Windows)
|
|
|
"Pillow>=12.0.0",
|
|
|
"pandas>=2.3.3",
|
|
|
"openpyxl>=3.1.5",
|
|
|
# 阿里云OSS
|
|
|
"oss2>=2.19.1",
|
|
|
# 腾讯云COS
|
|
|
# "cos-python-sdk-v5>=1.9.38",
|
|
|
# 七牛云Kodo
|
|
|
# "qiniu>=7.17.0",
|
|
|
# 华为云OBS
|
|
|
# "esdk-obs-python>=3.25.8",
|
|
|
# AWS S3
|
|
|
# "boto3>=1.40.62",
|
|
|
# MinIO
|
|
|
# "minio>=7.2.18",
|
|
|
]
|
|
|
|
|
|
[envs.prod.env-vars]
|
|
|
FLASK_ENV = "prod"
|
|
|
|
|
|
[envs.prod.scripts]
|
|
|
# 生产环境启动(使用 Waitress,支持 Windows)
|
|
|
prod = "waitress-serve --host=0.0.0.0 --port=8000 --threads=4 app:app"
|
|
|
# Linux 环境可选 Gunicorn(需手动安装:pip install gunicorn)
|
|
|
# start-gunicorn = "gunicorn -w 4 -b 0.0.0.0:8000 'app:app'"
|