@@ -17,6 +17,12 @@ readme = "README.md"
1717requires-python = " >=3.7"
1818classifiers = [
1919 " Programming Language :: Python :: 3" ,
20+ " Programming Language :: Python :: 3.8" ,
21+ " Programming Language :: Python :: 3.9" ,
22+ " Programming Language :: Python :: 3.10" ,
23+ " Programming Language :: Python :: 3.11" ,
24+ " Programming Language :: Python :: 3.12" ,
25+ " Programming Language :: Python :: 3.13" ,
2026 " License :: OSI Approved :: MIT License" ,
2127 " Operating System :: OS Independent" ,
2228]
@@ -25,76 +31,78 @@ dependencies = [
2531 " psutil>=5.9.8,<6.1.0" ,
2632 " termcolor>=2.3.0,<2.5.0" ,
2733 " PyYAML>=5.3,<7.0" ,
28- " opentelemetry-api>=1.22.0,<2.0.0" , # API for interfaces
29- " opentelemetry-sdk>=1.22.0,<2.0.0" , # SDK for implementation
30- " opentelemetry-exporter-otlp-proto-http>=1.22.0,<2.0.0" , # For OTLPSpanExporter
31- ]
32-
33- [dependency-groups ]
34- dev = [
35- " pytest==7.4.0" ,
36- " pytest-depends" ,
37- " pytest-asyncio" ,
38- " pytest-vcr" ,
39- " pytest-mock" ,
40- " pyfakefs" ,
41- " requests_mock==1.11.0" ,
42- " ruff" ,
43- " vcrpy>=6.0.0,<7.0.0; python_version >= '3.8'" ,
44- " urllib3<2.0.0; python_version >= '3.8'" , # Required for vcrpy compatibility
45- " python-dotenv"
46- ]
47- ci = [
48- " tach~=0.9" ,
34+ " opentelemetry-api>=1.22.0,<2.0.0" ,
35+ " opentelemetry-sdk>=1.22.0,<2.0.0" ,
36+ " opentelemetry-exporter-otlp-proto-http>=1.22.0,<2.0.0" ,
37+ " typing-extensions>=4.9.0; python_version >= '3.8'" ,
38+ " pydantic>=2.7.4,<3.0.0; python_version < '3.13'" ,
39+ " pydantic-core>=2.23.4; python_version >= '3.8' and python_version < '3.13'"
4940]
5041
5142[project .optional-dependencies ]
52- dev = [
53- " pytest==7.4.0" ,
54- " pytest-depends" ,
55- " pytest-asyncio" ,
56- " pytest-vcr" ,
57- " pytest-mock" ,
58- " pyfakefs" ,
59- " requests_mock==1.11.0" ,
60- " ruff" ,
61- " vcrpy>=6.0.0,<7.0.0; python_version >= '3.8'" ,
62- " urllib3<2.0.0; python_version >= '3.8'" , # Required for vcrpy compatibility
63- " python-dotenv"
64- ]
43+ # Optional LangChain integration for end users
6544langchain = [
66- " langchain==0.2.14; python_version >= '3.8.1'"
45+ " langchain>=0.2.14; python_version >= '3.8.1' and python_version < '3.13'" ,
46+ " langchain-core>=0.3.0; python_version >= '3.8.1' and python_version < '3.13'" ,
47+ " openai>=1.58.1; python_version < '3.13'"
6748]
49+
50+ # LangChain testing dependencies
51+ test-langchain = [
52+ " langchain-core>=0.3.0; python_version >= '3.8.1' and python_version < '3.13'" ,
53+ " langchain>=0.2.14; python_version >= '3.8.1' and python_version < '3.13'"
54+ ]
55+
56+ [dependency-groups ]
6857test = [
69- " pytest==7.4.0" ,
70- " pytest-depends" ,
71- " pytest-asyncio" ,
72- " pytest-vcr" ,
73- " pytest-mock" ,
74- " pyfakefs" ,
75- " requests_mock==1.11.0" ,
76- " coverage" ,
77- " mypy" ,
78- " types-requests" ,
79- " psutil" ,
8058 " openai" ,
81- " langchain-core" ,
8259 " langchain" ,
83- " termcolor" ,
84- " python-dotenv" ,
8560]
86-
87- [project .scripts ]
88- agentops = " agentops.cli:main"
61+ # CI dependencies
62+ ci = [
63+ " tach~=0.9" # Task runner for CI/CD pipelines
64+ ]
8965
9066[project .urls ]
9167Homepage = " https://github.com/AgentOps-AI/agentops"
9268Issues = " https://github.com/AgentOps-AI/agentops/issues"
9369
70+ [tool .uv ]
71+ compile-bytecode = true # Enable bytecode compilation for better performance
72+
73+ # Core development dependencies
74+ dev-dependencies = [
75+ # Testing essentials
76+ " pytest==7.4.0" , # Testing framework with good async support
77+ " pytest-depends" , # For testing complex agent workflows
78+ " pytest-asyncio" , # Async test support for testing concurrent agent operations
79+ " pytest-vcr" , # HTTP interaction testing
80+ " pytest-mock" , # Mocking capabilities for isolating agent components
81+ " pyfakefs" , # File system testing
82+
83+ # Code quality and type checking
84+ " ruff" , # Fast Python linter for maintaining code quality
85+ " coverage" , # Code coverage tracking for quality assurance
86+ " mypy" , # Static type checking for better reliability
87+ " types-requests" , # Type stubs for requests library
88+
89+ # HTTP mocking and environment
90+ " requests_mock==1.11.0" , # Mock HTTP requests for testing agent external communications
91+ " vcrpy>=6.0.0,<7.0.0; python_version >= '3.8'" , # HTTP interaction recording for Python 3.8+
92+ " urllib3<2.0.0; python_version >= '3.8'" , # Required for vcrpy compatibility
93+ " python-dotenv" , # Environment management for secure testing
94+
95+ # Agent integration testing
96+ " psutil" , # System resource monitoring for agent performance
97+ " termcolor" # Output formatting for test results
98+ ]
99+
100+ [tool .uv .pip ]
101+ strict = true # Enforce strict dependency resolution for reliability
102+
94103[tool .autopep8 ]
95104max_line_length = 120
96105
97-
98106[tool .pytest .ini_options ]
99107asyncio_mode = " strict"
100108asyncio_default_fixture_loop_scope = " function" # WARNING: Changing this may break tests. A `module`-scoped session might be faster, but also unstable.
@@ -153,11 +161,3 @@ exclude = [
153161
154162[tool .setuptools ]
155163packages = [" agentops" ]
156-
157- [tool .uv ]
158- default-groups = [" dev" ]
159- python = " 3.7" # Minimum supported version
160- compile-bytecode = true
161-
162- [tool .uv .pip ]
163- strict = true
0 commit comments