Skip to content

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