-
Notifications
You must be signed in to change notification settings - Fork 48
/
pyproject.toml
107 lines (97 loc) · 4.12 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
95
96
97
98
99
100
101
102
103
104
105
106
107
[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.11"
dependencies = [
"aiohttp-retry==2.8.3", # Retry middleware for aiohttp, used with Twilio SDK
"aiohttp[speedups]==3.9.5", # Async HTTP client for Azure and Twilio SDKs, plus async DNS resolver and async Brotli compression
"aiosqlite==0.20.0", # Async SQLite3 driver
"azure-ai-translation-text==1.0.0", # Azure Cognitive Services Text Translation
"azure-communication-callautomation==1.2.0", # Azure Communication Services Call Automation
"azure-communication-sms==1.0.1", # Azure Communication Services SMS
"azure-cosmos==4.7.0", # Azure Cosmos DB
"azure-eventgrid==4.20.0", # Azure Event Grid
"azure-functions==1.20.0", # Azure Functions
"azure-identity==1.17.0", # Azure identity library
"azure-monitor-opentelemetry==1.6.0", # Azure Monitor OpenTelemetry
"azure-search-documents==11.6.0b4", # Azure AI Search
"azure-storage-queue==12.10.0", # Azure Storage Queue
"django-htmlmin==0.11.0", # Minify HTML
"jinja2==3.1.4", # Template engine, used for prompts and web views
"json-repair==0.25.1", # Repair JSON files from LLM
"mistune==3.0.2", # Markdown parser for web views
"openai==1.35.3", # OpenAI client
"opentelemetry-instrumentation-aiohttp-client==0.46b0", # OpenTelemetry instrumentation for aiohttp client
"opentelemetry-instrumentation-httpx==0.46b0", # OpenTelemetry instrumentation for HTTPX
"opentelemetry-instrumentation-openai==0.23.0", # OpenTelemetry instrumentation for OpenAI
"opentelemetry-instrumentation-redis==0.46b0", # OpenTelemetry instrumentation for Redis
"opentelemetry-instrumentation-sqlite3==0.46b0", # OpenTelemetry instrumentation for SQLite3
"opentelemetry-semantic-conventions==0.46b0", # OpenTelemetry conventions, to standardize telemetry data
"phonenumbers==8.13.39", # Phone number parsing and formatting, used with Pydantic
"pydantic-extra-types==2.8.2", # Extra types for Pydantic
"pydantic-settings==2.3.3", # Application configuration management with Pydantic
"pydantic[email]==2.7.4", # Data serialization and validation, plus email validation
"pyjwt==2.8.0", # Secure inbound calls from Communication Services
"python-dotenv==1.0.1", # Load environment variables from .env file
"pytz==2024.1", # Time zone handling
"pyyaml==6.0.1", # YAML parser
"redis==5.0.6", # Redis client
"tenacity==8.2.3", # Async retrying library
"tiktoken==0.7.0", # Tokenization library for OpenAI models
"twilio==9.2.1", # Twilio SDK, used for SMS
"typing-extensions==4.12.2", # Typing extensions for Python 3.6+
]
[project.optional-dependencies]
dev = [
"black[jupyter]==24.4.2", # Code formatter
"deepeval==0.21.59", # LLM model evaluation
"deptry==0.16.1", # Dependency tree testing
"isort==5.13.2", # Import sorter
"pip-tools==7.4.1", # Compile requirements.txt from pyproject.toml
"pylint==3.2.5", # Linter
"pyright==1.1.371", # Static type checker
"pytest-assume==2.4.3", # Pytest plugin for conditional tests
"pytest-asyncio==0.23.7", # Pytest plugin for async tests
"pytest-repeat==0.9.3", # Pytest plugin for repeating tests
"pytest-xdist[psutil]==3.6.1", # Pytest plugin for parallel testing
"pytest==8.2.2", # Testing framework
]
[tool.setuptools]
py-modules = [
"helpers",
"models",
"persistence",
]
[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.black]
target-version = ["py311"]
[tool.isort]
combine_as_imports = true
profile = "black"
skip_gitignore = true
[tool.pylint.MAIN]
fail-under = 8.0
ignore-paths = [
".python_packages/.+", # Azure Functions local build
".venv/.+", # Python virtual environment
]
init-hook='import sys; sys.path.append(".")'
jobs = 0
py-version = "3.11"
recursive = true
[tool.pylint.format]
max-line-length = "88"
[tool.pyright]
pythonVersion = "3.11"