Skip to content

Commit e03650a

Browse files
Update __all__ to statically define reexports (#3143)
* Statically define __all__ for stable modules This prevents errors from typecheckers since they can now see that members are explicitly reexported * Add explicit __all__ to experimental _logs modules * Add changelog for 3143 --------- Co-authored-by: Srikanth Chekuri <[email protected]>
1 parent 0f76769 commit e03650a

File tree

7 files changed

+83
-60
lines changed

7 files changed

+83
-60
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## Unreleased
9+
- Change ``__all__`` to be statically defined.
10+
([#3143](https://github.com/open-telemetry/opentelemetry-python/pull/3143))
911
- Remove the ability to set a global metric prefix for Prometheus exporter
1012
([#3137](https://github.com/open-telemetry/opentelemetry-python/pull/3137))
1113
- Adds environment variables for log exporter

opentelemetry-api/src/opentelemetry/_logs/__init__.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@
3434
.. versionadded:: 1.15.0
3535
"""
3636

37-
# pylint: disable=unused-import
38-
39-
from opentelemetry._logs._internal import ( # noqa: F401
37+
from opentelemetry._logs._internal import (
4038
Logger,
4139
LoggerProvider,
4240
LogRecord,
@@ -46,13 +44,17 @@
4644
get_logger_provider,
4745
set_logger_provider,
4846
)
49-
from opentelemetry._logs.severity import ( # noqa: F401
50-
SeverityNumber,
51-
std_to_otel,
52-
)
53-
54-
__all__ = []
55-
for key, value in globals().copy().items(): # type: ignore
56-
if not key.startswith("_"):
57-
value.__module__ = __name__ # type: ignore
58-
__all__.append(key)
47+
from opentelemetry._logs.severity import SeverityNumber, std_to_otel
48+
49+
__all__ = [
50+
"Logger",
51+
"LoggerProvider",
52+
"LogRecord",
53+
"NoOpLogger",
54+
"NoOpLoggerProvider",
55+
"get_logger",
56+
"get_logger_provider",
57+
"set_logger_provider",
58+
"SeverityNumber",
59+
"std_to_otel",
60+
]

opentelemetry-sdk/src/opentelemetry/sdk/_logs/__init__.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# pylint: disable=unused-import
1615

17-
from opentelemetry.sdk._logs._internal import ( # noqa: F401
16+
from opentelemetry.sdk._logs._internal import (
1817
LogData,
1918
Logger,
2019
LoggerProvider,
@@ -23,8 +22,11 @@
2322
LogRecordProcessor,
2423
)
2524

26-
__all__ = []
27-
for key, value in globals().copy().items():
28-
if not key.startswith("_"):
29-
value.__module__ = __name__
30-
__all__.append(key)
25+
__all__ = [
26+
"LogData",
27+
"Logger",
28+
"LoggerProvider",
29+
"LoggingHandler",
30+
"LogRecord",
31+
"LogRecordProcessor",
32+
]

opentelemetry-sdk/src/opentelemetry/sdk/_logs/export/__init__.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# pylint: disable=unused-import
16-
17-
from opentelemetry.sdk._logs._internal.export import ( # noqa: F401
15+
from opentelemetry.sdk._logs._internal.export import (
1816
BatchLogRecordProcessor,
1917
ConsoleLogExporter,
2018
LogExporter,
@@ -23,12 +21,15 @@
2321
)
2422

2523
# The point module is not in the export directory to avoid a circular import.
26-
from opentelemetry.sdk._logs._internal.export.in_memory_log_exporter import ( # noqa: F401
24+
from opentelemetry.sdk._logs._internal.export.in_memory_log_exporter import (
2725
InMemoryLogExporter,
2826
)
2927

30-
__all__ = []
31-
for key, value in globals().copy().items():
32-
if not key.startswith("_"):
33-
value.__module__ = __name__
34-
__all__.append(key)
28+
__all__ = [
29+
"BatchLogRecordProcessor",
30+
"ConsoleLogExporter",
31+
"LogExporter",
32+
"LogExportResult",
33+
"SimpleLogRecordProcessor",
34+
"InMemoryLogExporter",
35+
]

opentelemetry-sdk/src/opentelemetry/sdk/metrics/__init__.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,10 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# pylint: disable=unused-import
1615

17-
from opentelemetry.sdk.metrics._internal import ( # noqa: F401
18-
Meter,
19-
MeterProvider,
20-
)
21-
from opentelemetry.sdk.metrics._internal.exceptions import ( # noqa: F401
22-
MetricsTimeoutError,
23-
)
24-
from opentelemetry.sdk.metrics._internal.instrument import ( # noqa: F401
16+
from opentelemetry.sdk.metrics._internal import Meter, MeterProvider
17+
from opentelemetry.sdk.metrics._internal.exceptions import MetricsTimeoutError
18+
from opentelemetry.sdk.metrics._internal.instrument import (
2519
Counter,
2620
Histogram,
2721
ObservableCounter,
@@ -30,8 +24,14 @@
3024
UpDownCounter,
3125
)
3226

33-
__all__ = []
34-
for key, value in globals().copy().items():
35-
if not key.startswith("_"):
36-
value.__module__ = __name__
37-
__all__.append(key)
27+
__all__ = [
28+
"Meter",
29+
"MeterProvider",
30+
"MetricsTimeoutError",
31+
"Counter",
32+
"Histogram",
33+
"ObservableCounter",
34+
"ObservableGauge",
35+
"ObservableUpDownCounter",
36+
"UpDownCounter",
37+
]

opentelemetry-sdk/src/opentelemetry/sdk/metrics/export/__init__.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# pylint: disable=unused-import
1615

17-
from opentelemetry.sdk.metrics._internal.export import ( # noqa: F401
16+
from opentelemetry.sdk.metrics._internal.export import (
1817
AggregationTemporality,
1918
ConsoleMetricExporter,
2019
InMemoryMetricReader,
@@ -25,7 +24,7 @@
2524
)
2625

2726
# The point module is not in the export directory to avoid a circular import.
28-
from opentelemetry.sdk.metrics._internal.point import ( # noqa: F401
27+
from opentelemetry.sdk.metrics._internal.point import (
2928
DataPointT,
3029
DataT,
3130
Gauge,
@@ -39,8 +38,23 @@
3938
Sum,
4039
)
4140

42-
__all__ = []
43-
for key, value in globals().copy().items():
44-
if not key.startswith("_"):
45-
value.__module__ = __name__
46-
__all__.append(key)
41+
__all__ = [
42+
"AggregationTemporality",
43+
"ConsoleMetricExporter",
44+
"InMemoryMetricReader",
45+
"MetricExporter",
46+
"MetricExportResult",
47+
"MetricReader",
48+
"PeriodicExportingMetricReader",
49+
"DataPointT",
50+
"DataT",
51+
"Gauge",
52+
"Histogram",
53+
"HistogramDataPoint",
54+
"Metric",
55+
"MetricsData",
56+
"NumberDataPoint",
57+
"ResourceMetrics",
58+
"ScopeMetrics",
59+
"Sum",
60+
]

opentelemetry-sdk/src/opentelemetry/sdk/metrics/view/__init__.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,22 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
# pylint: disable=unused-import
16-
17-
from opentelemetry.sdk.metrics._internal.aggregation import ( # noqa: F401
15+
from opentelemetry.sdk.metrics._internal.aggregation import (
1816
Aggregation,
1917
DefaultAggregation,
2018
DropAggregation,
2119
ExplicitBucketHistogramAggregation,
2220
LastValueAggregation,
2321
SumAggregation,
2422
)
25-
from opentelemetry.sdk.metrics._internal.view import View # noqa: F401
23+
from opentelemetry.sdk.metrics._internal.view import View
2624

27-
__all__ = []
28-
for key, value in globals().copy().items():
29-
if not key.startswith("_"):
30-
value.__module__ = __name__
31-
__all__.append(key)
25+
__all__ = [
26+
"Aggregation",
27+
"DefaultAggregation",
28+
"DropAggregation",
29+
"ExplicitBucketHistogramAggregation",
30+
"LastValueAggregation",
31+
"SumAggregation",
32+
"View",
33+
]

0 commit comments

Comments
 (0)