147 lines
3.3 KiB
TOML
147 lines
3.3 KiB
TOML
[project]
|
|
name = "trax"
|
|
version = "1.0.0"
|
|
description = "Production-ready media transcription platform with iterative enhancement"
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
authors = [
|
|
{ name = "Your Name", email = "your.email@example.com" }
|
|
]
|
|
dependencies = [
|
|
"python-dotenv>=1.0.0",
|
|
"sqlalchemy>=2.0.0",
|
|
"alembic>=1.13.0",
|
|
"psycopg2-binary>=2.9.0",
|
|
"pydantic>=2.0.0",
|
|
"click>=8.1.0",
|
|
"rich>=13.0.0",
|
|
"asyncio>=3.4.3",
|
|
"cryptography>=41.0.0", # For secure configuration
|
|
"streamlit>=1.28.0", # For research agent UI
|
|
# Phase 2: Transcription Dependencies
|
|
"faster-whisper>=1.0.0",
|
|
"yt-dlp>=2024.0.0",
|
|
"ffmpeg-python>=0.2.0",
|
|
"pydub>=0.25.0",
|
|
"librosa>=0.10.0", # Audio analysis
|
|
"numpy>=1.24.0",
|
|
"scipy>=1.11.0",
|
|
"soundfile>=0.12.0", # Audio file I/O
|
|
"aiohttp>=3.9.0", # Async HTTP for downloads
|
|
"tenacity>=8.2.0", # Retry logic
|
|
"psutil>=7.0.0", # System and process utilities
|
|
"openai>=1.0.0", # OpenAI API client
|
|
"deepseek>=1.0.0", # DeepSeek API client
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=7.0.0",
|
|
"pytest-asyncio>=0.21.0",
|
|
"pytest-cov>=4.0.0",
|
|
"black>=23.0.0",
|
|
"flake8>=6.0.0",
|
|
"mypy>=1.0.0",
|
|
"ruff>=0.1.0",
|
|
"ipython>=8.0.0",
|
|
]
|
|
|
|
# Phase 3: AI Enhancement (for v2)
|
|
ai = [
|
|
"deepseek>=0.1.0", # DeepSeek API client
|
|
"openai>=1.0.0", # OpenAI API
|
|
"jinja2>=3.1.0", # Templates
|
|
]
|
|
|
|
# Phase 4: Advanced Features (for v3-v4)
|
|
advanced = [
|
|
"pyannote.audio>=3.0.0", # Speaker diarization
|
|
"torch>=2.0.0", # For ML models
|
|
"torchaudio>=2.0.0",
|
|
]
|
|
|
|
# Vector search and embeddings
|
|
vector-search = [
|
|
"faiss-cpu>=1.12.0", # FAISS for vector similarity search
|
|
"chromadb>=1.0.0", # ChromaDB for vector database
|
|
"sentence-transformers>=5.0.0", # Sentence embeddings
|
|
"numpy>=1.24.0", # Required for vector operations
|
|
"scipy>=1.11.0", # Required for vector operations
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src", "lib"]
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"ipython>=8.0.0",
|
|
"rich>=13.0.0",
|
|
]
|
|
|
|
[tool.black]
|
|
line-length = 100
|
|
target-version = ['py311']
|
|
include = '\.pyi?$'
|
|
extend-exclude = '''
|
|
/(
|
|
migrations
|
|
| .venv
|
|
| data
|
|
)/
|
|
'''
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
select = ["E", "F", "I", "N", "W", "B", "C90", "D"]
|
|
ignore = ["E501", "D100", "D104"]
|
|
exclude = ["migrations", ".venv", "data"]
|
|
fix = true
|
|
fixable = ["ALL"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.11"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = true
|
|
ignore_missing_imports = true
|
|
plugins = ["pydantic.mypy", "sqlalchemy.ext.mypy.plugin"]
|
|
exclude = ["migrations", "tests"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py", "*_test.py"]
|
|
pythonpath = [".", "lib"]
|
|
addopts = """
|
|
-v
|
|
--cov=src
|
|
--cov-report=html
|
|
--cov-report=term
|
|
--tb=short
|
|
"""
|
|
asyncio_mode = "auto"
|
|
markers = [
|
|
"unit: Unit tests",
|
|
"integration: Integration tests",
|
|
"slow: Slow tests (>5s)",
|
|
"batch: Batch processing tests",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
omit = [
|
|
"*/tests/*",
|
|
"*/migrations/*",
|
|
"*/__pycache__/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if __name__ == .__main__.:",
|
|
] |