Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run mypy on opentelemetry-sdk package #3809

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

aabmass
Copy link
Member

@aabmass aabmass commented Mar 22, 2024

Fixes #773
Partially fixes #1608

I turned on mypy for the SDK and used mypy-upgrade to silence existing type issues with type-ignore comments.

Since there were >1000 existing issues to silence, this is quite noisy. We may consider using a less strict config for the SDK to begin with and avoid the issue.

@xrmx
Copy link
Contributor

xrmx commented Mar 26, 2024

Tried this with latest mypy (see #3795) and it fails with:

opentelemetry-sdk/src/opentelemetry/sdk/util/instrumentation.py:54: error: Expression has type "Any"  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/util/instrumentation.py:55: error: Expression has type "Any"  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/util/instrumentation.py:56: error: Expression has type "Any"  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/resources/__init__.py:68: error: Module "opentelemetry.attributes" has no attribute "BoundedAttributes"  [attr-defined]
opentelemetry-sdk/src/opentelemetry/sdk/resources/__init__.py:69: error: Unused "type: ignore" comment  [unused-ignore]
Found 41 errors in 9 files (checked 39 source files)
opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py:46: error: Module "opentelemetry.attributes" has no attribute "BoundedAttributes"  [attr-defined]
opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py:47: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py:124: error: Missing return statement  [empty-body]
opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py:483: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/export/__init__.py:145: error: Unused "type: ignore[no-any-return]" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/_view_instrument_match.py:28: error: Module "opentelemetry.sdk.metrics._internal.export" does not explicitly export attribute "AggregationTemporality"  [attr-defined]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/_view_instrument_match.py:29: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/_view_instrument_match.py:125: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/_view_instrument_match.py:135: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:38: error: Module "opentelemetry.sdk.metrics._internal.export" does not explicitly export attribute "AggregationTemporality"  [attr-defined]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:39: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:66: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:77: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:149: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:158: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:170: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:189: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:205: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:221: error: "Instrument" has no attribute "instrumentation_scope"  [attr-defined]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:221: error: Expression has type "Any"  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py:222: error: Unused "type: ignore[attr-defined, misc]" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:85: error: Expression has type "Any"  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:85: error: Expression type contains "Any" (has type "type[_Counter]")  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:86: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:200: error: Expression has type "Any"  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:200: error: Expression type contains "Any" (has type "type[_Histogram]")  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:201: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:235: error: Expression has type "Any"  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:235: error: Expression type contains "Any" (has type "type[_Gauge]")  [misc]
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py:236: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:68: error: Missing return statement  [empty-body]
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:86: error: Missing return statement  [empty-body]
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py:512: error: Unused "type: ignore[no-any-return]" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py:36: error: Module "opentelemetry.attributes" has no attribute "BoundedAttributes"  [attr-defined]
opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py:37: error: Unused "type: ignore" comment  [unused-ignore]
opentelemetry-sdk/src/opentelemetry/sdk/_logs/_internal/__init__.py:524: error: Expression type contains "Any" (has type "str | Any")  [misc]

@aabmass
Copy link
Member Author

aabmass commented Mar 26, 2024

Tried this with latest mypy (see #3795) and it fails with:

Ya makes sense. I can re-generate these changes once that PR is merged and possibly make the checks more lenient

@xrmx
Copy link
Contributor

xrmx commented Apr 3, 2024

Mypy bump has been merged in main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add type hints to opentelemetry-sdk and run as a part of tests Tox doesn't run mypy on the sdk code
2 participants