-
Notifications
You must be signed in to change notification settings - Fork 81
/
pyproject.toml
94 lines (85 loc) · 3.84 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
[project]
description = "AI-powered call center solution with Azure and OpenAI GPT."
dynamic = ["version"]
license = {file = "LICENSE"}
name = "call-center-ai"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"aiohttp-retry~=2.8", # Retry middleware for aiohttp, used with Twilio SDK
"aiohttp[speedups]~=3.9", # Async HTTP client for Azure and Twilio SDKs, plus async DNS resolver and async Brotli compression
"aiosqlite~=0.20", # Async SQLite3 driver
"azure-ai-translation-text~=1.0", # Azure Cognitive Services Text Translation
"azure-appconfiguration~=1.7", # Outsourced configuration for live updates
"azure-communication-callautomation~=1.2", # Azure Communication Services Call Automation
"azure-communication-sms~=1.0", # Azure Communication Services SMS
"azure-cosmos~=4.7", # Azure Cosmos DB
"azure-eventgrid~=4.20", # Azure Event Grid
"azure-identity~=1.17", # Azure identity library
"azure-monitor-opentelemetry~=1.6", # Azure Monitor OpenTelemetry
"azure-search-documents==11.6.0b4", # Azure AI Search
"azure-storage-queue~=12.10", # Azure Storage Queue
"django-htmlmin~=0.11", # Minify HTML
"fastapi~=0.115", # Web framework
"gunicorn~=23.0", # Application server
"jinja2~=3.1", # Template engine, used for prompts and web views
"json-repair~=0.25", # Repair JSON files from LLM
"mistune~=3.0", # Markdown parser for web views
"openai~=1.35", # OpenAI client
"opentelemetry-instrumentation-aiohttp-client~=0.0", # OpenTelemetry instrumentation for aiohttp client
"opentelemetry-instrumentation-httpx~=0.0", # OpenTelemetry instrumentation for HTTPX
"opentelemetry-instrumentation-openai~=0.0", # OpenTelemetry instrumentation for OpenAI
"opentelemetry-instrumentation-redis~=0.0", # OpenTelemetry instrumentation for Redis
"opentelemetry-instrumentation-sqlite3~=0.0", # OpenTelemetry instrumentation for SQLite3
"opentelemetry-semantic-conventions~=0.0", # OpenTelemetry conventions, to standardize telemetry data
"phonenumbers~=8.13", # Phone number parsing and formatting, used with Pydantic
"pydantic-extra-types~=2.8", # Extra types for Pydantic
"pydantic-settings~=2.3", # Application configuration management with Pydantic
"pydantic[email]~=2.7", # Data serialization and validation, plus email validation
"pyjwt~=2.8", # Secure inbound calls from Communication Services
"python-dotenv~=1.0", # Load environment variables from .env file
"python-multipart~=0.0", # Form parsing
"pytz~=2024.0", # Time zone handling
"pyyaml~=6.0", # YAML parser
"redis~=5.0", # Redis client
"tenacity~=8.2", # Async retrying library
"tiktoken~=0.7", # Tokenization library for OpenAI models
"twilio~=9.2", # Twilio SDK, used for SMS
"typing-extensions~=4.12", # Typing extensions for Python 3.6+
"uvicorn[standard]~=0.31", # Application middleware
]
[project.optional-dependencies]
dev = [
"deepeval~=0.21", # LLM model evaluation
"deptry~=0.16", # Dependency tree testing
"pip-tools~=7.4", # Compile requirements.txt from pyproject.toml
"pyright~=1.1", # Static type checker
"pytest-assume~=2.4", # Pytest plugin for conditional tests
"pytest-asyncio~=0.23", # Pytest plugin for async tests
"pytest-repeat~=0.9", # Pytest plugin for repeating tests
"pytest-xdist[psutil]~=3.6", # Pytest plugin for parallel testing
"pytest~=8.2", # Testing framework
"ruff~=0.6", # Linter
]
[tool.setuptools]
py-modules = [
"app",
]
[tool.pip-tools]
allow-unsafe = true
generate-hashes = true
[tool.deptry]
ignore_notebooks = true
pep621_dev_dependency_groups = ["dev"]
[tool.deptry.per_rule_ignores]
DEP002 = [
"aiodns", # Resolver is required for the AIOHTTP AsyncResolver TCP resolver
]
[tool.ruff]
target-version = "py312"
[tool.ruff.lint.isort]
combine-as-imports = true
[tool.ruff.format]
docstring-code-format = true
[tool.pyright]
pythonVersion = "3.12"