BeatDebate / pyproject.toml
SulmanK's picture
Add autopep8 as a dependency for code formatting - Updated pyproject.toml to include autopep8 version 2.3.2 for improved code style consistency. Modified uv.lock to reflect the new dependency and its requirements. This update aims to enhance code maintainability and adherence to style guidelines.
f7943d1
Raw
History Blame Contribute Delete
2.98 kB
[project]
name = "beatdebate"
version = "0.1.0"
description = "Multi-agent music recommendation system using LLM debates"
authors = [
{name = "BeatDebate Team", email = "team@beatdebate.com"}
]
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
# Core web framework
"fastapi>=0.104.0",
"gradio>=4.0.0",
"uvicorn>=0.24.0",
# LLM and Agent Framework
"langchain>=0.1.0",
"langchain-google-genai>=1.0.0",
"langgraph>=0.0.40",
# Vector Store and Embeddings
"chromadb>=0.4.0",
"sentence-transformers>=2.2.0",
# HTTP and API clients
"requests>=2.31.0",
"aiohttp>=3.9.0",
"httpx>=0.25.0",
# Environment and Configuration
"python-dotenv>=1.0.0",
"pydantic>=2.5.0",
"pydantic-settings>=2.1.0",
# Data Processing
"pandas>=2.1.0",
"numpy>=1.24.0",
# Caching and Storage
"diskcache>=5.6.0",
# Logging and Monitoring
"structlog>=23.2.0",
"rich>=13.7.0",
"google-generativeai>=0.8.5",
"autopep8>=2.3.2",
]
[project.optional-dependencies]
dev = [
# Testing
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.1.0",
"httpx>=0.25.0", # For testing async clients
# Code Quality
"black>=23.11.0",
"isort>=5.12.0",
"mypy>=1.7.0",
"ruff>=0.1.6",
# Development Tools
"pre-commit>=3.5.0",
"jupyter>=1.0.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src"]
[tool.black]
line-length = 188
target-version = ['py311']
include = '\.pyi?$'
extend-exclude = '''
/(
# directories
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
| \.venv
| build
| dist
)/
'''
[tool.isort]
profile = "black"
multi_line_output = 3
line-length = 188
known_first_party = ["beatdebate"]
[tool.mypy]
python_version = "3.11"
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.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
addopts = "--cov=src --cov-report=term-missing --cov-report=html"
asyncio_mode = "auto"
[tool.ruff]
line-length = 188
target-version = "py311"
extend-exclude = [
".venv",
"build",
"dist",
]
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long, handled by black
"B008", # do not perform function calls in argument defaults
]
[dependency-groups]
dev = [
"pytest>=8.3.5",
"pytest-asyncio>=0.26.0",
"pytest-cov>=6.1.1",
]