From 098929a372cad8075be7890c079210588912d631 Mon Sep 17 00:00:00 2001 From: Krzysztof Jagiello Date: Sun, 1 Sep 2024 19:17:08 +0200 Subject: [PATCH 1/4] Fix the py.typed marker file usage As defined in PEP 561, the py.typed marker files for namespace packages should be placed "in the submodules of the namespace". In commit 732ea8a, the markers were added to the subpackage roots, which serves no purpose. This changeset addresses all marker-related issues in this repository. A summary of the changes: - Removed the unnecessary py.typed markers from the subpackage roots. - Added the missing marker to the prometheus exporter. Fixes #4113. - Added the missing marker to opentelemetry._events. - Removed the accidentally reintroduced jaeger exporters, which were originally removed in commit 1625b35. --- CHANGELOG.md | 3 +++ exporter/opentelemetry-exporter-opencensus/py.typed | 0 exporter/opentelemetry-exporter-otlp-proto-common/py.typed | 0 exporter/opentelemetry-exporter-otlp-proto-grpc/py.typed | 0 exporter/opentelemetry-exporter-otlp-proto-http/py.typed | 0 exporter/opentelemetry-exporter-otlp/py.typed | 0 exporter/opentelemetry-exporter-prometheus/py.typed | 0 .../src/opentelemetry/exporter/prometheus}/py.typed | 0 exporter/opentelemetry-exporter-zipkin-json/py.typed | 0 exporter/opentelemetry-exporter-zipkin-proto-http/py.typed | 0 exporter/opentelemetry-exporter-zipkin/py.typed | 0 opentelemetry-api/py.typed | 0 .../src/opentelemetry/_events}/py.typed | 0 opentelemetry-proto/py.typed | 0 .../src/opentelemetry/proto}/py.typed | 0 opentelemetry-sdk/py.typed | 0 opentelemetry-semantic-conventions/py.typed | 0 17 files changed, 3 insertions(+) delete mode 100644 exporter/opentelemetry-exporter-opencensus/py.typed delete mode 100644 exporter/opentelemetry-exporter-otlp-proto-common/py.typed delete mode 100644 exporter/opentelemetry-exporter-otlp-proto-grpc/py.typed delete mode 100644 exporter/opentelemetry-exporter-otlp-proto-http/py.typed delete mode 100644 exporter/opentelemetry-exporter-otlp/py.typed delete mode 100644 exporter/opentelemetry-exporter-prometheus/py.typed rename exporter/{opentelemetry-exporter-jaeger-proto-grpc => opentelemetry-exporter-prometheus/src/opentelemetry/exporter/prometheus}/py.typed (100%) delete mode 100644 exporter/opentelemetry-exporter-zipkin-json/py.typed delete mode 100644 exporter/opentelemetry-exporter-zipkin-proto-http/py.typed delete mode 100644 exporter/opentelemetry-exporter-zipkin/py.typed delete mode 100644 opentelemetry-api/py.typed rename {exporter/opentelemetry-exporter-jaeger-thrift => opentelemetry-api/src/opentelemetry/_events}/py.typed (100%) delete mode 100644 opentelemetry-proto/py.typed rename {exporter/opentelemetry-exporter-jaeger => opentelemetry-proto/src/opentelemetry/proto}/py.typed (100%) delete mode 100644 opentelemetry-sdk/py.typed delete mode 100644 opentelemetry-semantic-conventions/py.typed diff --git a/CHANGELOG.md b/CHANGELOG.md index de7013d0cbf..2909451bbe6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +- Removed superfluous py.typed markers and added them where they were missing + ([#4172](https://github.com/open-telemetry/opentelemetry-python/pull/4172)) + ## Version 1.27.0/0.48b0 (2024-08-28) - Implementation of Events API diff --git a/exporter/opentelemetry-exporter-opencensus/py.typed b/exporter/opentelemetry-exporter-opencensus/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-otlp-proto-common/py.typed b/exporter/opentelemetry-exporter-otlp-proto-common/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/py.typed b/exporter/opentelemetry-exporter-otlp-proto-grpc/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-otlp-proto-http/py.typed b/exporter/opentelemetry-exporter-otlp-proto-http/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-otlp/py.typed b/exporter/opentelemetry-exporter-otlp/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-prometheus/py.typed b/exporter/opentelemetry-exporter-prometheus/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-jaeger-proto-grpc/py.typed b/exporter/opentelemetry-exporter-prometheus/src/opentelemetry/exporter/prometheus/py.typed similarity index 100% rename from exporter/opentelemetry-exporter-jaeger-proto-grpc/py.typed rename to exporter/opentelemetry-exporter-prometheus/src/opentelemetry/exporter/prometheus/py.typed diff --git a/exporter/opentelemetry-exporter-zipkin-json/py.typed b/exporter/opentelemetry-exporter-zipkin-json/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-zipkin-proto-http/py.typed b/exporter/opentelemetry-exporter-zipkin-proto-http/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-zipkin/py.typed b/exporter/opentelemetry-exporter-zipkin/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-api/py.typed b/opentelemetry-api/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-jaeger-thrift/py.typed b/opentelemetry-api/src/opentelemetry/_events/py.typed similarity index 100% rename from exporter/opentelemetry-exporter-jaeger-thrift/py.typed rename to opentelemetry-api/src/opentelemetry/_events/py.typed diff --git a/opentelemetry-proto/py.typed b/opentelemetry-proto/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/exporter/opentelemetry-exporter-jaeger/py.typed b/opentelemetry-proto/src/opentelemetry/proto/py.typed similarity index 100% rename from exporter/opentelemetry-exporter-jaeger/py.typed rename to opentelemetry-proto/src/opentelemetry/proto/py.typed diff --git a/opentelemetry-sdk/py.typed b/opentelemetry-sdk/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-semantic-conventions/py.typed b/opentelemetry-semantic-conventions/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 From b103078e6b5e3ee7c006ff91f139a2360e7b0ee3 Mon Sep 17 00:00:00 2001 From: Krzysztof Jagiello Date: Sat, 14 Sep 2024 22:24:15 +0200 Subject: [PATCH 2/4] Add missing py.typed --- opentelemetry-sdk/src/opentelemetry/sdk/_events/py.typed | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/_events/py.typed diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/_events/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/_events/py.typed new file mode 100644 index 00000000000..e69de29bb2d From 90f4eca0568b1bdc74a931adbfab43818d3d53ad Mon Sep 17 00:00:00 2001 From: Krzysztof Jagiello Date: Sat, 21 Sep 2024 21:13:23 +0200 Subject: [PATCH 3/4] Add pyright and fix the reported issues --- .github/workflows/misc_0.yml | 18 ++++++++++++++++++ .../sdk/environment_variables/py.typed | 0 .../opentelemetry/sdk/error_handler/py.typed | 0 .../exponential_histogram/__init__.py} | 0 .../src/opentelemetry/sdk/metrics/py.typed | 0 .../src/opentelemetry/sdk/resources/py.typed | 0 .../src/opentelemetry/sdk/trace/py.typed | 0 .../src/opentelemetry/sdk/util/py.typed | 0 .../src/opentelemetry/sdk/version/py.typed | 0 .../semconv/attributes/__init__.py | 0 .../src/opentelemetry/semconv/metrics/py.typed | 0 .../src/opentelemetry/semconv}/py.typed | 0 .../opentelemetry/semconv/resource/py.typed | 0 .../src/opentelemetry/semconv/trace/py.typed | 0 pyproject.toml | 9 +++++++++ pyright-requirements.txt | 1 + tox.ini | 16 ++++++++++++++++ 17 files changed, 44 insertions(+) delete mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/environment_variables/py.typed delete mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/error_handler/py.typed rename opentelemetry-sdk/src/opentelemetry/sdk/{_configuration/py.typed => metrics/_internal/exponential_histogram/__init__.py} (100%) delete mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/metrics/py.typed delete mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/resources/py.typed delete mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/trace/py.typed delete mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/util/py.typed delete mode 100644 opentelemetry-sdk/src/opentelemetry/sdk/version/py.typed rename opentelemetry-sdk/src/opentelemetry/sdk/_events/py.typed => opentelemetry-semantic-conventions/src/opentelemetry/semconv/attributes/__init__.py (100%) delete mode 100644 opentelemetry-semantic-conventions/src/opentelemetry/semconv/metrics/py.typed rename {opentelemetry-sdk/src/opentelemetry/sdk/_logs => opentelemetry-semantic-conventions/src/opentelemetry/semconv}/py.typed (100%) delete mode 100644 opentelemetry-semantic-conventions/src/opentelemetry/semconv/resource/py.typed delete mode 100644 opentelemetry-semantic-conventions/src/opentelemetry/semconv/trace/py.typed create mode 100644 pyright-requirements.txt diff --git a/.github/workflows/misc_0.yml b/.github/workflows/misc_0.yml index 83907a44aef..d74e79b85bb 100644 --- a/.github/workflows/misc_0.yml +++ b/.github/workflows/misc_0.yml @@ -70,6 +70,24 @@ jobs: - name: Run tests run: tox -e mypy + pyright: + name: pyright + runs-on: ubuntu-latest + steps: + - name: Checkout repo @ SHA - ${{ github.sha }} + uses: actions/checkout@v4 + + - name: Set up Python 3.10 + uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Install tox + run: pip install tox + + - name: Run tests + run: tox -e pyright + mypyinstalled: name: mypyinstalled runs-on: ubuntu-latest diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/environment_variables/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/environment_variables/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/error_handler/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/error_handler/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/_configuration/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/__init__.py similarity index 100% rename from opentelemetry-sdk/src/opentelemetry/sdk/_configuration/py.typed rename to opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/__init__.py diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/resources/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/resources/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/trace/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/util/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/util/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/version/py.typed b/opentelemetry-sdk/src/opentelemetry/sdk/version/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/_events/py.typed b/opentelemetry-semantic-conventions/src/opentelemetry/semconv/attributes/__init__.py similarity index 100% rename from opentelemetry-sdk/src/opentelemetry/sdk/_events/py.typed rename to opentelemetry-semantic-conventions/src/opentelemetry/semconv/attributes/__init__.py diff --git a/opentelemetry-semantic-conventions/src/opentelemetry/semconv/metrics/py.typed b/opentelemetry-semantic-conventions/src/opentelemetry/semconv/metrics/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/_logs/py.typed b/opentelemetry-semantic-conventions/src/opentelemetry/semconv/py.typed similarity index 100% rename from opentelemetry-sdk/src/opentelemetry/sdk/_logs/py.typed rename to opentelemetry-semantic-conventions/src/opentelemetry/semconv/py.typed diff --git a/opentelemetry-semantic-conventions/src/opentelemetry/semconv/resource/py.typed b/opentelemetry-semantic-conventions/src/opentelemetry/semconv/resource/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/opentelemetry-semantic-conventions/src/opentelemetry/semconv/trace/py.typed b/opentelemetry-semantic-conventions/src/opentelemetry/semconv/trace/py.typed deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/pyproject.toml b/pyproject.toml index 01ae2999afc..873076c802c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,3 +18,12 @@ exclude = ''' [tool.pytest.ini_options] addopts = "-rs -v" log_cli = true + +[tool.pyright] +typeCheckingMode = "off" +reportMissingTypeStubs = "error" +include = [ + "opentelemetry-api/src", + "opentelemetry-sdk/src", + "opentelemetry-semantic-conventions/src", +] diff --git a/pyright-requirements.txt b/pyright-requirements.txt new file mode 100644 index 00000000000..bc67a370c05 --- /dev/null +++ b/pyright-requirements.txt @@ -0,0 +1 @@ +pyright==1.1.381 diff --git a/tox.ini b/tox.ini index 23f5947c4bd..973158af1f1 100644 --- a/tox.ini +++ b/tox.ini @@ -105,6 +105,7 @@ envlist = spellcheck tracecontext mypy,mypyinstalled + pyright docs docker-tests-proto{3,4} public-symbols-check @@ -445,3 +446,18 @@ commands_pre = commands = sh -c "find {toxinidir} -name \*.sh | xargs shellcheck --severity=warning" + +[testenv:pyright] +basepython: python3 + +allowlist_externals = pyright + +commands_pre = + pip install -r {toxinidir}/pyright-requirements.txt \ + -e {toxinidir}/opentelemetry-api \ + -e {toxinidir}/opentelemetry-semantic-conventions \ + -e {toxinidir}/opentelemetry-sdk + +commands = + pyright --version + pyright From 05ca1f12bafa3e7f7a90c667ef65921d5e9f768c Mon Sep 17 00:00:00 2001 From: Krzysztof Jagiello Date: Mon, 23 Sep 2024 14:58:44 +0200 Subject: [PATCH 4/4] Update the generated workflow --- .github/workflows/misc_0.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/misc_0.yml b/.github/workflows/misc_0.yml index 9ee37a638d5..fbb06fd4743 100644 --- a/.github/workflows/misc_0.yml +++ b/.github/workflows/misc_0.yml @@ -70,8 +70,8 @@ jobs: - name: Run tests run: tox -e mypy - pyright: - name: pyright + mypyinstalled: + name: mypyinstalled runs-on: ubuntu-latest steps: - name: Checkout repo @ SHA - ${{ github.sha }} @@ -86,10 +86,10 @@ jobs: run: pip install tox - name: Run tests - run: tox -e pyright + run: tox -e mypyinstalled - mypyinstalled: - name: mypyinstalled + pyright: + name: pyright runs-on: ubuntu-latest steps: - name: Checkout repo @ SHA - ${{ github.sha }} @@ -104,7 +104,7 @@ jobs: run: pip install tox - name: Run tests - run: tox -e mypyinstalled + run: tox -e pyright docs: name: docs