[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "agentops" version = "0.4.21" authors = [ { name = "Alex Reibman", email = "areibman@gmail.com" }, { name = "Shawn Qiu", email = "siyangqiu@gmail.com" }, { name = "Braelyn Boynton", email = "bboynton97@gmail.com" }, { name = "Howard Gil", email = "howardbgil@gmail.com" }, { name = "Constantin Teodorescu", email = "teocns@gmail.com" }, { name = "Pratyush Shukla", email = "ps4534@nyu.edu" }, { name = "Travis Dent", email = "tcdent@gmail.com" }, { name = "Dwij Patel", email = "dwijpatel1704@gmail.com" }, { name = "Fenil Faldu", email = "fenilfaldu143@gmail.com" }, ] description = "Observability and DevTool Platform for AI Agents" # readme = "README.md" requires-python = ">=3.9" classifiers = [ "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] dependencies = [ "requests>=2.0.0,<3.0.0", "psutil>=5.9.8,<7.0.1", "termcolor>=2.3.0,<2.5.0", "PyYAML>=5.3,<7.0", "packaging>=21.0,<25.0", # Lower bound of 21.0 ensures compatibility with Python 3.9+ "httpx>=0.24.0,<0.29.0", # Required for legacy module compatibility "aiohttp>=3.8.0,<4.0.0", # For async HTTP client functionality "opentelemetry-sdk==1.29.0; python_version<'3.10'", "opentelemetry-sdk>1.29.0; python_version>='3.10'", "opentelemetry-api==1.29.0; python_version<'3.10'", "opentelemetry-api>1.29.0; python_version>='3.10'", "opentelemetry-exporter-otlp-proto-http==1.29.0; python_version<'3.10'", "opentelemetry-exporter-otlp-proto-http>1.29.0; python_version>='3.10'", "ordered-set>=4.0.0,<5.0.0", "wrapt>=1.0.0,<2.0.0", # "opentelemetry-instrumentation", "opentelemetry-instrumentation==0.50b0; python_version<'3.10'", "opentelemetry-instrumentation>=0.50b0; python_version>='3.10'", "opentelemetry-semantic-conventions==0.50b0; python_version<'3.10'", "opentelemetry-semantic-conventions>=0.50b0; python_version>='3.10'", ] [dependency-groups] test = [ "openai>=1.60.0", "anthropic", # ;; # The below is a really hard dependency, that can be installed only between python >=3.10,<3.13. # CI will fail because all tests will automatically pull this dependency group; # we need a separate group specifically for integration tests which will run on pinned 3.1x # ------------------------------------------------------------------------------------------------------------------------------------ # "crewai-tools @ git+https://github.com/crewAIInc/crewAI-tools.git@a14091abb24527c97ccfcc8539d529c8b4559a0f; python_version>='3.10'", # ------------------------------------------------------------------------------------------------------------------------------------ # ;; "pytest-cov", "fastapi[standard]", "openai-agents[voice]", ] dev = [ # Testing essentials "pytest>=8.0.0", # Testing framework with good async support "pytest-depends", # For testing complex agent workflows "pytest-asyncio", # Async test support for testing concurrent agent operations "pytest-mock", # Mocking capabilities for isolating agent components "pyfakefs", # File system testing "pytest-recording", # Alternative to pytest-vcr with better Python 3.x support "vcrpy>=0.7.0", # Code quality and type checking "ruff", # Fast Python linter for maintaining code quality "mypy", # Static type checking for better reliability "types-requests", # Type stubs for requests library # HTTP mocking and environment "requests_mock>=1.11.0", # Mock HTTP requests for testing agent external communications "python-dotenv", # Environment management for secure testing # Agent integration testing "pytest-sugar>=1.0.0", "pdbpp>=0.10.3", "ipython>=8.18.1", ] [project.urls] Homepage = "https://github.com/AgentOps-AI/agentops" Issues = "https://github.com/AgentOps-AI/agentops/issues" [tool.uv] compile-bytecode = true # Enable bytecode compilation for better performance resolution = "highest" default-groups = ["test", "dev"] # Default groups to install for development constraint-dependencies = [ "pydantic>=2.8.0; python_version>='3.13'", # Ensure Python 3.13 compatibility "typing-extensions; python_version>='3.13'", # Required for Pydantic with Python 3.13 ] [tool.autopep8] max_line_length = 120 [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "module" # WARNING: Changing this may break tests. A `module`-scoped session might be faster, but also unstable. testpaths = ["tests/unit"] # Default to unit tests addopts = "--tb=short -p no:warnings --import-mode=importlib --ignore=tests/integration" # Ignore integration by default pythonpath = ["."] faulthandler_timeout = 30 # Increased from 60 to handle tracing overhead timeout = 60 disable_socket = true # Add this to prevent hanging on socket cleanup log_cli = true # Enable logging to console log_cli_level = "DEBUG" # Set log level to INFO [tool.ruff] line-length = 120 [tool.ruff.lint] ignore = [ "E712", # Comparison to True/False "E711", # Comparison to None "E722", # Bare except "E731", # Use lambda instead of def ] exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".github", ".hg", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pyenv", ".pytest_cache", ".vscode", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "docs", "examples", "node_modules", "site-packages", "venv", "tests/core_manual_tests", ] [tool.hatch.build.targets.wheel] packages = ["agentops"] [tool.hatch.build] exclude = [ "docs/*", "examples/*", "tests/*", ".github/*", "*.gif", "*.png", "dist/*", "build/*", ".pytest_cache", ".ruff_cache", "__pycache__", "*.pyc", "app/*", "app/**", ] [tool.hatch.metadata] allow-direct-references = true