190 lines
6.8 KiB
TOML
190 lines
6.8 KiB
TOML
[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
|