transcript_service / pyproject.toml
PCNUSMSE's picture
Upload folder using huggingface_hub
4e37375 verified
[project]
name = "transcript-service"
version = "1.0.0"
description = "智能音频转文字Web服务"
authors = [{name = "Your Name", email = "your.email@example.com"}]
license = {text = "MIT"}
readme = "README.md"
requires-python = ">=3.9"
dependencies = [
# 核心Web框架依赖
"gradio>=4.44.0",
"fastapi>=0.104.0",
"uvicorn>=0.24.0",
# 云服务集成依赖
"oss2>=2.18.0",
"dashscope>=1.14.0",
# 数据处理核心依赖
"pydantic>=2.5.0",
"pydantic-settings>=2.1.0",
# 文件处理工具依赖
"python-multipart>=0.0.6",
"python-magic>=0.4.27",
# 配置管理依赖
"PyYAML>=6.0.1",
"python-dotenv>=1.0.0",
# 日志和监控依赖
"structlog>=23.2.0",
"rich>=13.7.0",
# HTTP客户端依赖
"httpx>=0.25.2",
"aiohttp>=3.9.0",
# 命令行工具依赖
"click>=8.1.7",
"typer>=0.9.0",
# 性能优化可选依赖
"orjson>=3.9.0",
"ujson>=5.8.0"
]
[project.optional-dependencies]
dev = [
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.1.0",
"black>=23.11.0",
"flake8>=7.0.0",
"isort>=5.12.0",
"mypy>=1.7.0",
"pre-commit>=3.5.0"
]
[project.scripts]
transcript-service = "app:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src"]
[dependency-groups]
dev = [
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.1.0",
"black>=23.11.0",
"flake8>=7.0.0",
"isort>=5.12.0",
"mypy>=1.7.0",
"pre-commit>=3.5.0"
]
[tool.black]
line-length = 88
target-version = ['py39']
include = '\.pyi?$'
extend-exclude = '''
/(
# directories
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| _build
| buck-out
| build
| dist
)/
'''
[tool.isort]
profile = "black"
multi_line_output = 3
line_length = 88
known_first_party = ["src"]
[tool.flake8]
max-line-length = 88
extend-ignore = ["E203", "W503"]
exclude = [
".git",
"__pycache__",
".venv",
"build",
"dist",
"*.egg-info"
]
[tool.mypy]
python_version = "3.9"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true
strict_equality = true
[[tool.mypy.overrides]]
module = ["gradio.*", "oss2.*", "dashscope.*"]
ignore_missing_imports = true
[tool.pytest.ini_options]
minversion = "7.0"
addopts = "-ra -q --strict-markers"
testpaths = ["tests"]
markers = [
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
"integration: marks tests as integration tests",
"unit: marks tests as unit tests"
]