Files
disbord/pyproject.toml
Travis Vasceannie 3acb779569 chore: remove .env.example and add new files for project structure
- Deleted .env.example file as it is no longer needed.
- Added .gitignore to manage ignored files and directories.
- Introduced CLAUDE.md for AI provider integration documentation.
- Created dev.sh for development setup and scripts.
- Updated Dockerfile and Dockerfile.production for improved build processes.
- Added multiple test files and directories for comprehensive testing.
- Introduced new utility and service files for enhanced functionality.
- Organized codebase with new directories and files for better maintainability.
2025-08-27 23:00:19 -04:00

209 lines
4.4 KiB
TOML

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "disbord"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
# Core Discord Bot Framework (modern versions)
"discord.py>=2.4.0",
"discord-ext-voice-recv",
# Environment & Configuration
"python-dotenv>=1.0.0,<1.1.0",
"asyncio-mqtt>=0.16.0",
"tenacity>=9.0.0",
"pyyaml>=6.0.2",
"distro>=1.9.0",
# Modern Database & Storage
"asyncpg>=0.29.0",
"redis>=5.1.0",
"qdrant-client>=1.12.0",
"alembic>=1.13.0",
# Latest AI & ML Providers
"openai>=1.45.0",
"anthropic>=0.35.0",
"groq>=0.10.0",
"ollama>=0.3.0",
# Audio ML with NVIDIA NeMo (2025 compatible)
"nemo-toolkit[asr]>=2.4.0",
"torch>=2.5.0,<2.9.0",
"torchaudio>=2.5.0,<2.9.0",
"torchvision>=0.20.0,<0.25.0",
"pytorch-lightning>=2.5.0",
"omegaconf>=2.3.0,<2.4.0",
"hydra-core>=1.3.2",
"silero-vad>=5.1.0",
"ffmpeg-python>=0.2.0",
"librosa>=0.11.0",
"soundfile>=0.13.0",
# Updated ML dependencies for compatibility
"onnx>=1.19.0",
"ml-dtypes>=0.4.0",
"onnxruntime>=1.20.0",
# Modern Text Processing & Embeddings
"sentence-transformers>=3.2.0",
"transformers>=4.51.0",
# External AI Services (latest)
"elevenlabs>=1.9.0",
"azure-cognitiveservices-speech>=1.45.0",
"hume>=0.10.0",
# Modern HTTP & API Clients
"aiohttp>=3.10.0",
"aiohttp-cors>=0.8.0",
"httpx>=0.27.0",
"requests>=2.32.0",
# Modern Data Processing (pydantic v2 optimized)
"pydantic>=2.10.0,<2.11.0",
"pydantic-core>=2.27.0,<2.28.0",
"pydantic-settings>=2.8.0,<2.9.0",
# Monitoring & Metrics
"prometheus-client>=0.20.0",
"psutil>=6.0.0",
# Modern Security & Validation
"cryptography>=43.0.0",
"bcrypt>=4.2.0",
# Modern Utilities
"click>=8.1.0",
"colorlog>=6.9.0",
"python-dateutil>=2.9.0",
"pytz>=2024.2",
# Performance (latest)
"uvloop>=0.21.0; sys_platform != 'win32'",
"orjson>=3.11.0",
# File Processing
"watchdog>=6.0.0",
"aiofiles>=24.0.0",
# Audio Format Support
"pydub>=0.25.1",
"mutagen>=1.47.0",
# Network & Communication (modern)
"websockets>=13.0",
# Modern Async Utilities
"anyio>=4.6.0",
# Modern Logging & Debugging
"structlog>=24.0.0",
"rich>=13.9.0",
]
[tool.setuptools.packages.find]
include = [
"ui*",
"k8s*",
"cogs*",
"core*",
"config*",
"plugins*",
"security*",
"commands*",
"services*",
"extensions*",
"utils*",
]
exclude = ["tests*"]
[dependency-groups]
dev = [
"basedpyright>=1.31.3",
"black>=25.1.0",
"isort>=6.0.1",
"pyrefly>=0.30.0",
"pyright>=1.1.404",
"ruff>=0.12.10",
]
test = [
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.1.0",
"pytest-mock>=3.11.0",
"pytest-xdist>=3.3.0",
"pytest-benchmark>=4.0.0",
]
[tool.pytest.ini_options]
minversion = "7.0"
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
asyncio_mode = "auto"
addopts = """
--strict-markers
--tb=short
--cov=.
--cov-report=term-missing:skip-covered
--cov-report=html
--cov-report=xml
--cov-fail-under=80
-ra
"""
markers = [
"unit: Unit tests (fast)",
"integration: Integration tests (slower)",
"performance: Performance tests (slow)",
"load: Load tests (very slow)",
"slow: Slow tests",
]
filterwarnings = [
"ignore::DeprecationWarning",
"ignore::PendingDeprecationWarning",
]
[tool.coverage.run]
branch = true
source = ["."]
omit = [
"*/tests/*",
"*/test_*.py",
"*/__pycache__/*",
"*/migrations/*",
"*/conftest.py",
"setup.py",
]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"if __name__ == .__main__.:",
"raise AssertionError",
"raise NotImplementedError",
"if TYPE_CHECKING:",
"pass",
]
[tool.pyright]
pythonVersion = "3.12"
typeCheckingMode = "basic"
reportUnusedImport = true
reportUnusedClass = true
reportUnusedFunction = true
reportUnusedVariable = true
reportDuplicateImport = true
exclude = [
"**/tests",
"**/migrations",
"**/__pycache__",
]