[tox] requires = tox-uv>=1 isolated_build = True skipsdist = True skip_missing_interpreters = True envlist = ; Environments are organized by individual package, allowing ; for specifying supported Python versions per package. ; instrumentation-openai py3{9,10,11,12,13}-test-instrumentation-openai-v2-{oldest,latest} pypy3-test-instrumentation-openai-v2-{oldest,latest} lint-instrumentation-openai-v2 ; instrumentation-vertexai py3{9,10,11,12,13}-test-instrumentation-vertexai-{oldest,latest} # Disabling pypy3 as shapely does not have wheels and fails to compile # pypy3-test-instrumentation-vertexai-{oldest,latest} lint-instrumentation-vertexai ; instrumentation-google-genai py3{9,10,11,12,13}-test-instrumentation-google-genai-{oldest,latest} # Disabling pypy3 as shapely does not have wheels and fails to compile # pypy3-test-instrumentation-google-genai-{0,1} lint-instrumentation-google-genai ; opentelemetry-resource-detector-containerid py3{9,10,11,12,13}-test-resource-detector-containerid pypy3-test-resource-detector-containerid lint-resource-detector-containerid ; opentelemetry-resource-detector-azure py3{9,10,11,12,13}-test-resource-detector-azure-{0,1} pypy3-test-resource-detector-azure-{0,1} lint-resource-detector-azure ; opentelemetry-sdk-extension-aws py3{9,10,11,12,13}-test-sdk-extension-aws-{0,1} pypy3-test-sdk-extension-aws-{0,1} lint-sdk-extension-aws benchmark-sdk-extension-aws ; opentelemetry-distro py3{9,10,11,12,13}-test-distro pypy3-test-distro lint-distro ; opentelemetry-instrumentation py3{9,10,11,12,13}-test-opentelemetry-instrumentation pypy3-test-opentelemetry-instrumentation lint-opentelemetry-instrumentation ; opentelemetry-instrumentation-aiohttp-client py3{9,10,11,12,13}-test-instrumentation-aiohttp-client pypy3-test-instrumentation-aiohttp-client lint-instrumentation-aiohttp-client ; opentelemetry-instrumentation-aiohttp-server py3{9,10,11,12,13}-test-instrumentation-aiohttp-server pypy3-test-instrumentation-aiohttp-server lint-instrumentation-aiohttp-server ; opentelemetry-instrumentation-aiopg py3{9,10,11,12,13}-test-instrumentation-aiopg ; instrumentation-aiopg intentionally excluded from pypy3 lint-instrumentation-aiopg ; opentelemetry-instrumentation-aws-lambda py3{9,10,11,12,13}-test-instrumentation-aws-lambda pypy3-test-instrumentation-aws-lambda lint-instrumentation-aws-lambda ; opentelemetry-instrumentation-botocore py3{9,10,11,12,13}-test-instrumentation-botocore-{0,1} ; FIXME: see https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1736 ; pypy3-test-instrumentation-botocore lint-instrumentation-botocore ; opentelemetry-instrumentation-boto3sqs py3{9,10,11,12,13}-test-instrumentation-boto3sqs pypy3-test-instrumentation-boto3sqs lint-instrumentation-boto3sqs ; opentelemetry-instrumentation-django ; Only officially supported Python versions are tested for each Django ; major release. Updated list can be found at: ; https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: django~=2.0 ; 1: django~=3.0 ; 2: django>=4.0b1,<5.0 backports.zoneinfo==0.2.1 ; 3: django>=4.0b1,<5.0 py3{9}-test-instrumentation-django-{0,1,2} py3{10,11,12}-test-instrumentation-django-{1,3} py313-test-instrumentation-django-3 pypy3-test-instrumentation-django-{0,1} lint-instrumentation-django ; opentelemetry-instrumentation-dbapi py3{9,10,11,12,13}-test-instrumentation-dbapi pypy3-test-instrumentation-dbapi lint-instrumentation-dbapi ; opentelemetry-instrumentation-boto py3{9,10,11}-test-instrumentation-boto ; FIXME: see https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1736 ; pypy3-test-instrumentation-boto lint-instrumentation-boto ; opentelemetry-instrumentation-asyncclick py3{9,10,11,12,13}-test-instrumentation-asyncclick pypy3-test-instrumentation-asyncclick lint-instrumentation-asyncclick ; opentelemetry-instrumentation-click py3{9,10,11,12,13}-test-instrumentation-click pypy3-test-instrumentation-click lint-instrumentation-click ; opentelemetry-instrumentation-elasticsearch ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: elasticsearch-dsl==6.4.0 elasticsearch==6.8.2 ; 1: elasticsearch-dsl==7.4.1 elasticsearch==7.17.9 ; 2: elasticsearch-dsl==8.13.1 elasticsearch==8.13.1 py3{9,10,11,12,13}-test-instrumentation-elasticsearch-{0,1,2} pypy3-test-instrumentation-elasticsearch-{0,1,2} lint-instrumentation-elasticsearch ; opentelemetry-instrumentation-falcon ; py310 does not work with falcon 1 ; py3{9} will be dropped for falcon 4 ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: falcon ==1.4.1 ; 1: falcon >=2.0.0,<3.0.0 ; 2: falcon >=3.0.0,<3.1.2 ; 3: falcon >=3.1.2,<4.0.0 ; 4: falcon >=4.0.0,<5.0.0 py3{9}-test-instrumentation-falcon-{0,1,2,3} py3{10,11,12}-test-instrumentation-falcon-{1,2,3,4} py313-test-instrumentation-falcon-4 pypy3-test-instrumentation-falcon-{0,1,2,3,4} lint-instrumentation-falcon ; opentelemetry-instrumentation-fastapi py3{9,10,11,12,13}-test-instrumentation-fastapi pypy3-test-instrumentation-fastapi lint-instrumentation-fastapi ; opentelemetry-instrumentation-flask ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: Flask ==2.1.3 Werkzeug <3.0.0 ; 1: Flask ==2.2.0 Werkzeug <3.0.0 ; 2: Flask >=3.0.0 Werkzeug >=3.0.0 py3{9,10,11,12,13}-test-instrumentation-flask-{0,1,2} pypy3-test-instrumentation-flask-{0,1} lint-instrumentation-flask ; opentelemetry-instrumentation-urllib py3{9,10,11,12,13}-test-instrumentation-urllib pypy3-test-instrumentation-urllib lint-instrumentation-urllib ; opentelemetry-instrumentation-urllib3 ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: urllib3 >=1.0.0,<2.0.0 ; 1: urllib3 >=2.0.0,<3.0.0 py3{9,10,11,12,13}-test-instrumentation-urllib3-{0,1} pypy3-test-instrumentation-urllib3-{0,1} lint-instrumentation-urllib3 ; opentelemetry-instrumentation-requests py3{9,10,11,12,13}-test-instrumentation-requests ;pypy3-test-instrumentation-requests lint-instrumentation-requests ; opentelemetry-instrumentation-starlette py3{9,10,11,12,13}-test-instrumentation-starlette-{oldest,latest} pypy3-test-instrumentation-starlette-{oldest,latest} lint-instrumentation-starlette ; opentelemetry-instrumentation-jinja2 py3{9,10,11,12,13}-test-instrumentation-jinja2 pypy3-test-instrumentation-jinja2 lint-instrumentation-jinja2 ; opentelemetry-instrumentation-logging py3{9,10,11,12,13}-test-instrumentation-logging pypy3-test-instrumentation-logging lint-instrumentation-logging ; opentelemetry-exporter-richconsole py3{9,10,11,12,13}-test-exporter-richconsole pypy3-test-exporter-richconsole lint-exporter-richconsole ; opentelemetry-exporter-prometheus-remote-write py3{9,10,11,12,13}-test-exporter-prometheus-remote-write # excluded from pypy3 due to missing wheel pypy310-test-exporter-prometheus-remote-write lint-exporter-prometheus-remote-write ; opentelemetry-instrumentation-mysql ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: mysql-connector-python >=8.0.0,<9.0.0 ; 1: mysql-connector-python ~=9.0.0 py3{9,10,11,12,13}-test-instrumentation-mysql-{0,1} pypy3-test-instrumentation-mysql-{0,1} lint-instrumentation-mysql ; opentelemetry-instrumentation-mysqlclient py3{9,10,11,12,13}-test-instrumentation-mysqlclient pypy3-test-instrumentation-mysqlclient ; prerequisite: follow the instructions here ; https://github.com/PyMySQL/mysqlclient#install ; for your OS to install the required dependencies lint-instrumentation-mysqlclient ; opentelemetry-instrumentation-psycopg2 py3{9,10,11,12,13}-test-instrumentation-psycopg2 py3{9,10,11,12,13}-test-instrumentation-psycopg2-binary ; ext-psycopg2 intentionally excluded from pypy3 lint-instrumentation-psycopg2 ; opentelemetry-instrumentation-psycopg py3{9,10,11,12,13}-test-instrumentation-psycopg pypy3-test-instrumentation-psycopg lint-instrumentation-psycopg ; opentelemetry-instrumentation-pymemcache ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: pymemcache ==1.3.5 ; 1: pymemcache >2.0.0,<3.0.0 ; 2: pymemcache >3.0.0,<3.4.2 ; 3: pymemcache ==3.4.2 ; 4: pymemcache ==4.0.0 py3{9,10,11,12,13}-test-instrumentation-pymemcache-{0,1,2,3,4} pypy3-test-instrumentation-pymemcache-{0,1,2,3,4} lint-instrumentation-pymemcache ; opentelemetry-instrumentation-pymongo py3{9,10,11,12,13}-test-instrumentation-pymongo pypy3-test-instrumentation-pymongo lint-instrumentation-pymongo ; opentelemetry-instrumentation-pymysql py3{9,10,11,12,13}-test-instrumentation-pymysql pypy3-test-instrumentation-pymysql lint-instrumentation-pymysql ; opentelemetry-instrumentation-pymssql py3{9,10,11,12,13}-test-instrumentation-pymssql ; pymssql has no support for pypy: see https://github.com/pymssql/pymssql/pull/517 ; pypy3-test-instrumentation-pymssql lint-instrumentation-pymssql ; opentelemetry-instrumentation-pyramid ; TODO: add py313 when supported by pyramid py3{9,10,11,12}-test-instrumentation-pyramid pypy3-test-instrumentation-pyramid lint-instrumentation-pyramid ; opentelemetry-instrumentation-asgi py3{9,10,11,12,13}-test-instrumentation-asgi pypy3-test-instrumentation-asgi lint-instrumentation-asgi ; opentelemetry-instrumentation-asyncpg py3{9,10,11,12,13}-test-instrumentation-asyncpg ; ext-asyncpg intentionally excluded from pypy3 lint-instrumentation-asyncpg ; opentelemetry-instrumentation-sqlite3 py3{9,10,11,12,13}-test-instrumentation-sqlite3 pypy3-test-instrumentation-sqlite3 lint-instrumentation-sqlite3 ; opentelemetry-instrumentation-wsgi py3{9,10,11,12,13}-test-instrumentation-wsgi pypy3-test-instrumentation-wsgi lint-instrumentation-wsgi ; opentelemetry-instrumentation-grpc ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: grpcio==1.62.0 ; 1: grpcio==1.66.2 py3{9,10,11,12}-test-instrumentation-grpc-{0,1} py313-test-instrumentation-grpc-1 lint-instrumentation-grpc ; opentelemetry-instrumentation-sqlalchemy ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: sqlalchemy>=1.1,<1.2 ; 1: sqlalchemy~=1.4 aiosqlite ; 2: sqlalchemy~=2.0.0 py3{9,10,11,12,13}-test-instrumentation-sqlalchemy-{1,2} pypy3-test-instrumentation-sqlalchemy-{0,1,2} lint-instrumentation-sqlalchemy ; opentelemetry-instrumentation-redis py3{9,10,11,12,13}-test-instrumentation-redis pypy3-test-instrumentation-redis lint-instrumentation-redis ; opentelemetry-instrumentation-remoulade py3{9,10,11,12,13}-test-instrumentation-remoulade ; instrumentation-remoulade intentionally excluded from pypy3 lint-instrumentation-remoulade ; opentelemetry-instrumentation-celery py3{9,10,11,12,13}-test-instrumentation-celery pypy3-test-instrumentation-celery lint-instrumentation-celery ; opentelemetry-instrumentation-system-metrics py3{9,10,11,12,13}-test-instrumentation-system-metrics pypy3-test-instrumentation-system-metrics lint-instrumentation-system-metrics ; opentelemetry-instrumentation-threading py3{9,10,11,12,13}-test-instrumentation-threading pypy3-test-instrumentation-threading lint-instrumentation-threading ; opentelemetry-instrumentation-tornado py3{9,10,11,12,13}-test-instrumentation-tornado pypy3-test-instrumentation-tornado lint-instrumentation-tornado ; opentelemetry-instrumentation-tortoiseorm py3{9,10,11,12,13}-test-instrumentation-tortoiseorm pypy3-test-instrumentation-tortoiseorm lint-instrumentation-tortoiseorm ; opentelemetry-instrumentation-httpx ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: httpx>=0.18.0,<0.19.0 respx~=0.17.0 ; 1: httpx>=0.19.0 respx~=0.20.1 py3{9,10,11,12}-test-instrumentation-httpx-{0,1} py313-test-instrumentation-httpx-1 pypy3-test-instrumentation-httpx-{0,1} lint-instrumentation-httpx ; opentelemetry-util-http py3{9,10,11,12,13}-test-util-http pypy3-test-util-http lint-util-http ; opentelemetry-propagator-aws-xray py3{9,10,11,12,13}-test-propagator-aws-xray-{0,1} pypy3-test-propagator-aws-xray-{0,1} lint-propagator-aws-xray benchmark-propagator-aws-xray ; opentelemetry-propagator-ot-trace py3{9,10,11,12,13}-test-propagator-ot-trace pypy3-test-propagator-ot-trace lint-propagator-ot-trace ; opentelemetry-instrumentation-sio-pika ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: pika>=0.12.0,<1.0.0 ; 1: pika>=1.0.0 py3{9,10,11,12,13}-test-instrumentation-sio-pika-{0,1} pypy3-test-instrumentation-sio-pika-{0,1} lint-instrumentation-sio-pika ; opentelemetry-instrumentation-aio-pika ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: aio_pika==7.2.0 ; 1: aio_pika==8.3.0 ; 2: aio_pika==9.0.5 ; 3: aio_pika==9.4.1 py3{9,10,11,12,13}-test-instrumentation-aio-pika-{0,1,2,3} pypy3-test-instrumentation-aio-pika-{0,1,2,3} lint-instrumentation-aio-pika ; opentelemetry-instrumentation-aiokafka py3{9,10,11,12,13}-test-instrumentation-aiokafka pypy3-test-instrumentation-aiokafka lint-instrumentation-aiokafka ; opentelemetry-instrumentation-kafka-python py3{9,10,11}-test-instrumentation-kafka-python py3{9,10,11,12,13}-test-instrumentation-kafka-pythonng pypy3-test-instrumentation-kafka-python pypy3-test-instrumentation-kafka-pythonng lint-instrumentation-kafka-python ; opentelemetry-instrumentation-confluent-kafka py3{9,10,11,12,13}-test-instrumentation-confluent-kafka lint-instrumentation-confluent-kafka ; opentelemetry-instrumentation-asyncio py3{9,10,11,12,13}-test-instrumentation-asyncio lint-instrumentation-asyncio ; opentelemetry-instrumentation-cassandra py3{9,10,11,12,13}-test-instrumentation-cassandra pypy3-test-instrumentation-cassandra lint-instrumentation-cassandra ; opentelemetry-processor-baggage py3{9,10,11,12,13}-test-processor-baggage pypy3-test-processor-baggage ; requires snappy headers to be available on the system lint-processor-baggage spellcheck docker-tests docs generate generate-workflows shellcheck ruff typecheck [testenv] test_deps = opentelemetry-api@{env:CORE_REPO}\#egg=opentelemetry-api&subdirectory=opentelemetry-api opentelemetry-semantic-conventions@{env:CORE_REPO}\#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions opentelemetry-sdk@{env:CORE_REPO}\#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk opentelemetry-test-utils@{env:CORE_REPO}\#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils deps = lint: -r dev-requirements.txt coverage: pytest coverage: pytest-cov opentelemetry-instrumentation: {[testenv]test_deps} opentelemetry-instrumentation: -r {toxinidir}/opentelemetry-instrumentation/test-requirements.txt distro: {[testenv]test_deps} distro: -r {toxinidir}/opentelemetry-distro/test-requirements.txt # packages that are released individually should provide a test-requirements.txt with the lowest version of OTel API # and SDK supported to test we are honoring it openai-oldest: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/requirements.oldest.txt # and the latest version of OTel API and SDK openai-latest: {[testenv]test_deps} openai-latest: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/requirements.latest.txt lint-instrumentation-openai-v2: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/requirements.oldest.txt vertexai-oldest: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-vertexai/tests/requirements.oldest.txt vertexai-latest: {[testenv]test_deps} vertexai-latest: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-vertexai/tests/requirements.latest.txt lint-instrumentation-vertexai: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-vertexai/tests/requirements.oldest.txt google-genai-oldest: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-google-genai/tests/requirements.oldest.txt google-genai-latest: {[testenv]test_deps} google-genai-latest: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-google-genai/tests/requirements.latest.txt lint-instrumentation-google-genai: -r {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-google-genai/tests/requirements.oldest.txt asgi: {[testenv]test_deps} asgi: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-asgi/test-requirements.txt celery: {[testenv]test_deps} py3{9}-test-instrumentation-celery: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-celery/test-requirements-0.txt py3{10,11,12,13}-test-instrumentation-celery: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-celery/test-requirements-1.txt pypy3-test-instrumentation-celery: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-celery/test-requirements-1.txt lint-instrumentation-celery: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-celery/test-requirements-1.txt asyncclick: {[testenv]test_deps} asyncclick: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncclick/test-requirements.txt click: {[testenv]test_deps} click: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-click/test-requirements.txt sio-pika: {[testenv]test_deps} sio-pika-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pika/test-requirements-0.txt sio-pika-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pika/test-requirements-1.txt lint-instrumentation-sio-pika: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pika/test-requirements-1.txt aio-pika: {[testenv]test_deps} aio-pika-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-0.txt aio-pika-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-1.txt aio-pika-2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-2.txt aio-pika-3: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-3.txt lint-instrumentation-aio-pika: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-3.txt aiokafka: {[testenv]test_deps} aiokafka: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aiokafka/test-requirements.txt kafka-python: {[testenv]test_deps} kafka-python: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python/test-requirements.txt kafka-pythonng: {[testenv]test_deps} kafka-pythonng: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python/test-requirements-ng.txt confluent-kafka: {[testenv]test_deps} confluent-kafka: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-confluent-kafka/test-requirements.txt grpc: {[testenv]test_deps} grpc-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt grpc-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt lint-instrumentation-grpc: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt wsgi: {[testenv]test_deps} wsgi: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-wsgi/test-requirements.txt asyncpg: {[testenv]test_deps} asyncpg: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncpg/test-requirements.txt aws-lambda: {[testenv]test_deps} aws-lambda: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aws-lambda/test-requirements.txt boto: {[testenv]test_deps} boto: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-boto/test-requirements.txt boto3sqs: {[testenv]test_deps} boto3sqs: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-boto3sqs/test-requirements.txt falcon: {[testenv]test_deps} falcon-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon/test-requirements-0.txt falcon-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon/test-requirements-1.txt falcon-2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon/test-requirements-2.txt falcon-3: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon/test-requirements-3.txt falcon-4: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon/test-requirements-4.txt lint-instrumentation-falcon: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon/test-requirements-4.txt flask: {[testenv]test_deps} flask-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-flask/test-requirements-0.txt flask-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-flask/test-requirements-1.txt flask-2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-flask/test-requirements-2.txt lint-instrumentation-flask: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-flask/test-requirements-2.txt urllib: {[testenv]test_deps} urllib: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib/test-requirements.txt urllib3: {[testenv]test_deps} urllib3-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib3/test-requirements-0.txt urllib3-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib3/test-requirements-1.txt lint-instrumentation-urllib3: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib3/test-requirements-1.txt botocore: {[testenv]test_deps} botocore-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore/test-requirements-0.txt botocore-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore/test-requirements-1.txt lint-instrumentation-botocore: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore/test-requirements-1.txt cassandra: {[testenv]test_deps} cassandra: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-cassandra/test-requirements.txt dbapi: {[testenv]test_deps} dbapi: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi/test-requirements.txt django: {[testenv]test_deps} py3{9}-test-instrumentation-django-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-0.txt py3{9}-test-instrumentation-django-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-1.txt py3{9}-test-instrumentation-django-2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-2.txt py3{10,11,12}-test-instrumentation-django-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-1.txt py3{10,11,12,13}-test-instrumentation-django-3: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-3.txt pypy3-test-instrumentation-django-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-0.txt pypy3-test-instrumentation-django-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-1.txt lint-instrumentation-django: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-django/test-requirements-3.txt fastapi: {[testenv]test_deps} fastapi: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/test-requirements.txt mysql: {[testenv]test_deps} mysql-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql/test-requirements-0.txt mysql-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql/test-requirements-1.txt lint-instrumentation-mysql: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql/test-requirements-1.txt mysqlclient: {[testenv]test_deps} mysqlclient: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-mysqlclient/test-requirements.txt pymemcache: {[testenv]test_deps} pymemcache-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache/test-requirements-0.txt pymemcache-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache/test-requirements-1.txt pymemcache-2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache/test-requirements-2.txt pymemcache-3: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache/test-requirements-3.txt pymemcache-4: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache/test-requirements-4.txt lint-instrumentation-pymemcache: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache/test-requirements-4.txt pymongo: {[testenv]test_deps} pymongo: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymongo/test-requirements.txt psycopg: {[testenv]test_deps} py3{9}-test-instrumentation-psycopg: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg/test-requirements-0.txt py3{10,11,12,13}-test-instrumentation-psycopg: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg/test-requirements-1.txt pypy3-test-instrumentation-psycopg: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg/test-requirements-1.txt lint-instrumentation-psycopg: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg/test-requirements-1.txt psycopg2: {[testenv]test_deps} psycopg2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2/test-requirements.txt psycopg2-binary: {[testenv]test_deps} psycopg2-binary: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2/test-requirements-binary.txt pymysql: {[testenv]test_deps} pymysql: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymysql/test-requirements.txt pymssql: {[testenv]test_deps} pymssql: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pymssql/test-requirements.txt pyramid: {[testenv]test_deps} pyramid: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-pyramid/test-requirements.txt sqlite3: {[testenv]test_deps} sqlite3: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlite3/test-requirements.txt redis: {[testenv]test_deps} redis: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-redis/test-requirements.txt remoulade: {[testenv]test_deps} remoulade: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-remoulade/test-requirements.txt requests: {[testenv]test_deps} requests: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-requests/test-requirements.txt starlette: {[testenv]test_deps} starlette-{oldest,lint}: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-starlette/test-requirements.oldest.txt starlette-latest: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-starlette/test-requirements.latest.txt system-metrics: {[testenv]test_deps} system-metrics: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-system-metrics/test-requirements.txt threading: {[testenv]test_deps} threading: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-threading/test-requirements.txt tornado: {[testenv]test_deps} tornado: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-tornado/test-requirements.txt tortoiseorm: {[testenv]test_deps} tortoiseorm: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-tortoiseorm/test-requirements.txt jinja2: {[testenv]test_deps} jinja2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-jinja2/test-requirements.txt logging: {[testenv]test_deps} logging: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-logging/test-requirements.txt aiohttp-client: {[testenv]test_deps} aiohttp-client: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-client/test-requirements.txt aiohttp-server: {[testenv]test_deps} aiohttp-server: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-server/test-requirements.txt aiopg: {[testenv]test_deps} aiopg: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aiopg/test-requirements.txt richconsole: {[testenv]test_deps} richconsole: -r {toxinidir}/exporter/opentelemetry-exporter-richconsole/test-requirements.txt prometheus: {[testenv]test_deps} prometheus: -r {toxinidir}/exporter/opentelemetry-exporter-prometheus-remote-write/test-requirements.txt sqlalchemy: {[testenv]test_deps} sqlalchemy-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy/test-requirements-0.txt sqlalchemy-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy/test-requirements-1.txt sqlalchemy-2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy/test-requirements-2.txt lint-instrumentation-sqlalchemy: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy/test-requirements-2.txt elasticsearch: {[testenv]test_deps} elasticsearch-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-elasticsearch/test-requirements-0.txt elasticsearch-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-elasticsearch/test-requirements-1.txt elasticsearch-2: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-elasticsearch/test-requirements-2.txt lint-instrumentation-elasticsearch: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-elasticsearch/test-requirements-2.txt asyncio: {[testenv]test_deps} asyncio: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncio/test-requirements.txt httpx: {[testenv]test_deps} httpx-0: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-httpx/test-requirements-0.txt httpx-1: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-httpx/test-requirements-1.txt lint-instrumentation-httpx: -r {toxinidir}/instrumentation/opentelemetry-instrumentation-httpx/test-requirements-1.txt # packages that are released individually should provide a test-requirements.txt with the lowest version of OTel API # and SDK supported to test we are honoring it sdk-extension-aws-0: -r {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws/test-requirements-0.txt # and the latest version of OTel API and SDK sdk-extension-aws-1: {[testenv]test_deps} sdk-extension-aws-1: -r {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws/test-requirements-1.txt lint-sdk-extension-aws: -r {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws/test-requirements-0.txt benchmark-sdk-extension-aws: -r {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws/benchmark-requirements.txt resource-detector-containerid: {[testenv]test_deps} resource-detector-containerid: -r {toxinidir}/resource/opentelemetry-resource-detector-containerid/test-requirements.txt # packages that are released individually should provide a test-requirements.txt with the lowest version of OTel API # and SDK supported to test we are honoring it resource-detector-azure-0: -r {toxinidir}/resource/opentelemetry-resource-detector-azure/test-requirements-0.txt # and the latest version of OTel API and SDK resource-detector-azure-1: {[testenv]test_deps} resource-detector-azure-1: -r {toxinidir}/resource/opentelemetry-resource-detector-azure/test-requirements-1.txt lint-resource-detector-azure: -r {toxinidir}/resource/opentelemetry-resource-detector-azure/test-requirements-0.txt propagator-ot-trace: {[testenv]test_deps} propagator-ot-trace: -r {toxinidir}/propagator/opentelemetry-propagator-ot-trace/test-requirements.txt # packages that are released individually should provide a test-requirements.txt with the lowest version of OTel API # and SDK supported to test we are honoring it propagator-aws-xray-0: -r {toxinidir}/propagator/opentelemetry-propagator-aws-xray/test-requirements-0.txt # and the latest version of OTel API and SDK propagator-aws-xray-1: {[testenv]test_deps} propagator-aws-xray-1: -r {toxinidir}/propagator/opentelemetry-propagator-aws-xray/test-requirements-1.txt lint-propagator-aws-xray: -r {toxinidir}/propagator/opentelemetry-propagator-aws-xray/test-requirements-0.txt benchmark-propagator-aws-xray: -r {toxinidir}/propagator/opentelemetry-propagator-aws-xray/benchmark-requirements.txt processor-baggage: {[testenv]test_deps} processor-baggage: -r {toxinidir}/processor/opentelemetry-processor-baggage/test-requirements.txt util-http: {[testenv]test_deps} util-http: -r {toxinidir}/util/opentelemetry-util-http/test-requirements.txt util-http: {toxinidir}/util/opentelemetry-util-http ; FIXME: add coverage testing allowlist_externals = sh setenv = ; override CORE_REPO_SHA via env variable when testing other branches/commits than main ; i.e: CORE_REPO_SHA=dde62cebffe519c35875af6d06fae053b3be65ec tox -e CORE_REPO_SHA={env:CORE_REPO_SHA:main} CORE_REPO=git+https://github.com/open-telemetry/opentelemetry-python.git@{env:CORE_REPO_SHA} UV_CONFIG_FILE={toxinidir}/tox-uv.toml commands_pre = ; In order to get a health coverage report, ; we have to install packages in editable mode. coverage: python {toxinidir}/scripts/eachdist.py install --editable commands = test-distro: pytest {toxinidir}/opentelemetry-distro/tests {posargs} lint-distro: pylint {toxinidir}/opentelemetry-distro test-opentelemetry-instrumentation: pytest {toxinidir}/opentelemetry-instrumentation/tests {posargs} lint-opentelemetry-instrumentation: pylint {toxinidir}/opentelemetry-instrumentation test-instrumentation-aiohttp-client: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests {posargs} lint-instrumentation-aiohttp-client: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-aiohttp-client" test-instrumentation-aiohttp-server: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-server/tests {posargs} lint-instrumentation-aiohttp-server: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-aiohttp-server" test-instrumentation-aiopg: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-aiopg/tests {posargs} lint-instrumentation-aiopg: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-aiopg" test-instrumentation-asgi: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-asgi/tests {posargs} lint-instrumentation-asgi: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-asgi" test-instrumentation-asyncclick: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncclick/tests {posargs} lint-instrumentation-asyncclick: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-asyncclick" test-instrumentation-asyncpg: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncpg/tests {posargs} lint-instrumentation-asyncpg: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-asyncpg" test-instrumentation-aws-lambda: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-aws-lambda/tests {posargs} lint-instrumentation-aws-lambda: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-aws-lambda" test-instrumentation-boto: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-boto/tests {posargs} lint-instrumentation-boto: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-boto" test-instrumentation-botocore: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-botocore/tests {posargs} lint-instrumentation-botocore: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-botocore" test-instrumentation-boto3sqs: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-boto3sqs/tests {posargs} lint-instrumentation-boto3sqs: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-boto3sqs" test-instrumentation-cassandra: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-cassandra/tests {posargs} lint-instrumentation-cassandra: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-cassandra" test-instrumentation-celery: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-celery/tests {posargs} lint-instrumentation-celery: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-celery" test-instrumentation-click: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-click/tests {posargs} lint-instrumentation-click: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-click" test-instrumentation-dbapi: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi/tests {posargs} lint-instrumentation-dbapi: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-dbapi" test-instrumentation-django: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-django/tests {posargs} lint-instrumentation-django: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-django" test-instrumentation-elasticsearch: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-elasticsearch/tests {posargs} lint-instrumentation-elasticsearch: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-elasticsearch" test-instrumentation-falcon: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-falcon/tests {posargs} lint-instrumentation-falcon: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-falcon" test-instrumentation-fastapi: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-fastapi/tests {posargs} lint-instrumentation-fastapi: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-fastapi" test-instrumentation-flask: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-flask/tests {posargs} lint-instrumentation-flask: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-flask" test-instrumentation-urllib: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib/tests {posargs} lint-instrumentation-urllib: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-urllib" test-instrumentation-urllib3: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-urllib3/tests {posargs} lint-instrumentation-urllib3: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-urllib3" test-instrumentation-grpc: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/tests {posargs} lint-instrumentation-grpc: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-grpc" test-instrumentation-jinja2: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-jinja2/tests {posargs} lint-instrumentation-jinja2: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-jinja2" test-instrumentation-aiokafka: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-aiokafka/tests {posargs} lint-instrumentation-aiokafka: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-aiokafka" test-instrumentation-kafka-python: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python/tests {posargs} lint-instrumentation-kafka-python: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-kafka-python" ; Test only for kafka-pythonng instrumentation as the only difference between kafka-python and kafka-pythonng is the version of kafka-python test-instrumentation-kafka-pythonng: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python/tests {posargs} test-instrumentation-confluent-kafka: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-confluent-kafka/tests {posargs} lint-instrumentation-confluent-kafka: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-confluent-kafka" test-instrumentation-logging: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-logging/tests {posargs} lint-instrumentation-logging: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-logging" test-instrumentation-mysql: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql/tests {posargs} lint-instrumentation-mysql: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-mysql" test-instrumentation-mysqlclient: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-mysqlclient/tests {posargs} lint-instrumentation-mysqlclient: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-mysqlclient" test-instrumentation-openai-v2: pytest {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests {posargs} lint-instrumentation-openai-v2: sh -c "cd instrumentation-genai && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-openai-v2" test-instrumentation-vertexai: pytest {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-vertexai/tests --vcr-record=none {posargs} lint-instrumentation-vertexai: sh -c "cd instrumentation-genai && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-vertexai" test-instrumentation-google-genai: pytest {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-google-genai/tests --vcr-record=none {posargs} lint-instrumentation-google-genai: sh -c "cd instrumentation-genai && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-google-genai" test-instrumentation-sio-pika: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-pika/tests {posargs} lint-instrumentation-sio-pika: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-pika" test-instrumentation-aio-pika: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/tests {posargs} lint-instrumentation-aio-pika: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-aio-pika" test-instrumentation-psycopg: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg/tests {posargs} lint-instrumentation-psycopg: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-psycopg" test-instrumentation-psycopg2: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2/tests {posargs} lint-instrumentation-psycopg2: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-psycopg2" ; Test only for psycopg2-binary instrumentation as the only difference between psycopg2 and psycopg2-binary is the install method test-instrumentation-psycopg2-binary: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2/tests {posargs} test-instrumentation-pymemcache: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-pymemcache/tests {posargs} lint-instrumentation-pymemcache: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-pymemcache" test-instrumentation-pymongo: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-pymongo/tests {posargs} lint-instrumentation-pymongo: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-pymongo" test-instrumentation-pymysql: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-pymysql/tests {posargs} lint-instrumentation-pymysql: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-pymysql" test-instrumentation-pymssql: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-pymssql/tests {posargs} lint-instrumentation-pymssql: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-pymssql" test-instrumentation-pyramid: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-pyramid/tests {posargs} lint-instrumentation-pyramid: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-pyramid" test-instrumentation-redis: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-redis/tests {posargs} lint-instrumentation-redis: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-redis" test-instrumentation-remoulade: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-remoulade/tests {posargs} lint-instrumentation-remoulade: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-remoulade" test-instrumentation-requests: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-requests/tests {posargs} lint-instrumentation-requests: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-requests" test-instrumentation-sqlalchemy: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests {posargs} lint-instrumentation-sqlalchemy: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-sqlalchemy" test-instrumentation-sqlite3: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlite3/tests {posargs} lint-instrumentation-sqlite3: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-sqlite3" test-instrumentation-starlette: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-starlette/tests {posargs} lint-instrumentation-starlette: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-starlette" test-instrumentation-system-metrics: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-system-metrics/tests {posargs} lint-instrumentation-system-metrics: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-system-metrics" test-instrumentation-threading: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-threading/tests {posargs} lint-instrumentation-threading: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-threading" test-instrumentation-tornado: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-tornado/tests {posargs} lint-instrumentation-tornado: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-tornado" test-instrumentation-tortoiseorm: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-tortoiseorm/tests {posargs} lint-instrumentation-tortoiseorm: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-tortoiseorm" test-instrumentation-wsgi: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-wsgi/tests {posargs} lint-instrumentation-wsgi: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-wsgi" test-instrumentation-httpx: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-httpx/tests {posargs} lint-instrumentation-httpx: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-httpx" test-instrumentation-asyncio: pytest {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncio/tests {posargs} lint-instrumentation-asyncio: sh -c "cd instrumentation && pylint --rcfile ../.pylintrc opentelemetry-instrumentation-asyncio" test-util-http: pytest {toxinidir}/util/opentelemetry-util-http/tests {posargs} lint-util-http: sh -c "cd util && pylint --rcfile ../.pylintrc opentelemetry-util-http" test-sdk-extension-aws: pytest {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws/tests {posargs} lint-sdk-extension-aws: sh -c "cd sdk-extension && pylint --rcfile ../.pylintrc opentelemetry-sdk-extension-aws" benchmark-sdk-extension-aws: pytest {toxinidir}/sdk-extension/opentelemetry-sdk-extension-aws/benchmarks {posargs} --benchmark-json=sdk-extension-aws-benchmark.json test-resource-detector-containerid: pytest {toxinidir}/resource/opentelemetry-resource-detector-containerid/tests {posargs} lint-resource-detector-containerid: sh -c "cd resource && pylint --rcfile ../.pylintrc opentelemetry-resource-detector-containerid" test-resource-detector-azure: pytest {toxinidir}/resource/opentelemetry-resource-detector-azure/tests {posargs} lint-resource-detector-azure: sh -c "cd resource && pylint --rcfile ../.pylintrc opentelemetry-resource-detector-azure" test-processor-baggage: pytest {toxinidir}/processor/opentelemetry-processor-baggage/tests {posargs} lint-processor-baggage: sh -c "cd processor && pylint --rcfile ../.pylintrc opentelemetry-processor-baggage" test-propagator-aws-xray: pytest {toxinidir}/propagator/opentelemetry-propagator-aws-xray/tests {posargs} lint-propagator-aws-xray: sh -c "cd propagator && pylint --rcfile ../.pylintrc opentelemetry-propagator-aws-xray" benchmark-propagator-aws-xray: pytest {toxinidir}/propagator/opentelemetry-propagator-aws-xray/benchmarks {posargs} --benchmark-json=propagator-aws-xray-benchmark.json test-propagator-ot-trace: pytest {toxinidir}/propagator/opentelemetry-propagator-ot-trace/tests {posargs} lint-propagator-ot-trace: sh -c "cd propagator && pylint --rcfile ../.pylintrc opentelemetry-propagator-ot-trace" test-exporter-richconsole: pytest {toxinidir}/exporter/opentelemetry-exporter-richconsole/tests {posargs} lint-exporter-richconsole: sh -c "cd exporter && pylint --rcfile ../.pylintrc opentelemetry-exporter-richconsole" test-exporter-prometheus-remote-write: pytest {toxinidir}/exporter/opentelemetry-exporter-prometheus-remote-write/tests {posargs} lint-exporter-prometheus-remote-write: sh -c "cd exporter && pylint --rcfile ../.pylintrc opentelemetry-exporter-prometheus-remote-write" coverage: {toxinidir}/scripts/coverage.sh [testenv:docs] deps = -c {toxinidir}/dev-requirements.txt -r {toxinidir}/docs-requirements.txt pytest {[testenv]test_deps} {toxinidir}/opentelemetry-instrumentation {toxinidir}/util/opentelemetry-util-http changedir = docs commands = sphinx-build -E -a -W -b html -T . _build/html [testenv:spellcheck] basepython: python3 recreate = True deps = codespell==2.2.6 commands = codespell [testenv:docker-tests] basepython: python3 deps = {[testenv]test_deps} -r {toxinidir}/tests/opentelemetry-docker-tests/tests/test-requirements.txt -e {toxinidir}/opentelemetry-instrumentation -e {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncpg -e {toxinidir}/instrumentation/opentelemetry-instrumentation-celery -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pika -e {toxinidir}/instrumentation/opentelemetry-instrumentation-aiokafka -e {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python -e {toxinidir}/instrumentation/opentelemetry-instrumentation-confluent-kafka -e {toxinidir}/instrumentation/opentelemetry-instrumentation-dbapi -e {toxinidir}/instrumentation/opentelemetry-instrumentation-mysql -e {toxinidir}/instrumentation/opentelemetry-instrumentation-mysqlclient -e {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg -e {toxinidir}/instrumentation/opentelemetry-instrumentation-psycopg2 -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymongo -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymysql -e {toxinidir}/instrumentation/opentelemetry-instrumentation-pymssql -e {toxinidir}/instrumentation/opentelemetry-instrumentation-sqlalchemy -e {toxinidir}/instrumentation/opentelemetry-instrumentation-aiopg -e {toxinidir}/instrumentation/opentelemetry-instrumentation-redis -e {toxinidir}/instrumentation/opentelemetry-instrumentation-remoulade opentelemetry-exporter-opencensus@{env:CORE_REPO}\#egg=opentelemetry-exporter-opencensus&subdirectory=exporter/opentelemetry-exporter-opencensus changedir = tests/opentelemetry-docker-tests/tests commands_pre = sh -c "sudo apt update -y && sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 unixodbc-dev unixodbc" python -c "import pyodbc; print(pyodbc.drivers())" docker-compose up -d python check_availability.py commands = pytest {posargs} commands_post = docker-compose down -v [testenv:generate] deps = -r {toxinidir}/gen-requirements.txt allowlist_externals = {toxinidir}/scripts/generate_instrumentation_bootstrap.py {toxinidir}/scripts/generate_instrumentation_readme.py {toxinidir}/scripts/generate_instrumentation_metapackage.py commands = {toxinidir}/scripts/generate_instrumentation_bootstrap.py {toxinidir}/scripts/generate_instrumentation_readme.py {toxinidir}/scripts/generate_instrumentation_metapackage.py [testenv:generate-workflows] recreate = True deps = {toxinidir}/.github/workflows/generate_workflows_lib commands = python {toxinidir}/.github/workflows/generate_workflows.py [testenv:shellcheck] commands_pre = sh -c "sudo apt update -y && sudo apt install --assume-yes shellcheck" commands = sh -c "find {toxinidir} -name \*.sh | xargs shellcheck --severity=warning" [testenv:ruff] basepython: python3 deps = -c {toxinidir}/dev-requirements.txt pre-commit commands = pre-commit run --color=always --all-files {posargs} [testenv:typecheck] deps = -c {toxinidir}/dev-requirements.txt pyright {[testenv]test_deps} {toxinidir}/opentelemetry-instrumentation {toxinidir}/util/opentelemetry-util-http {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-vertexai[instruments] {toxinidir}/instrumentation-genai/opentelemetry-instrumentation-google-genai[instruments] {toxinidir}/instrumentation/opentelemetry-instrumentation-aiokafka[instruments] {toxinidir}/instrumentation/opentelemetry-instrumentation-asyncclick[instruments] commands = pyright