Skip to content

Commit

Permalink
Update __all__ to statically define reexports (#3143)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
jenshnielsen and srikanthccv authored Feb 15, 2023
1 parent 0f76769 commit e03650a
Show file tree
Hide file tree
Showing 7 changed files with 83 additions and 60 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased
- Change ``__all__`` to be statically defined.
([#3143](https://github.com/open-telemetry/opentelemetry-python/pull/3143))
- Remove the ability to set a global metric prefix for Prometheus exporter
([#3137](https://github.com/open-telemetry/opentelemetry-python/pull/3137))
- Adds environment variables for log exporter
Expand Down
28 changes: 15 additions & 13 deletions opentelemetry-api/src/opentelemetry/_logs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@
.. versionadded:: 1.15.0
"""

# pylint: disable=unused-import

from opentelemetry._logs._internal import ( # noqa: F401
from opentelemetry._logs._internal import (
Logger,
LoggerProvider,
LogRecord,
Expand All @@ -46,13 +44,17 @@
get_logger_provider,
set_logger_provider,
)
from opentelemetry._logs.severity import ( # noqa: F401
SeverityNumber,
std_to_otel,
)

__all__ = []
for key, value in globals().copy().items(): # type: ignore
if not key.startswith("_"):
value.__module__ = __name__ # type: ignore
__all__.append(key)
from opentelemetry._logs.severity import SeverityNumber, std_to_otel

__all__ = [
"Logger",
"LoggerProvider",
"LogRecord",
"NoOpLogger",
"NoOpLoggerProvider",
"get_logger",
"get_logger_provider",
"set_logger_provider",
"SeverityNumber",
"std_to_otel",
]
16 changes: 9 additions & 7 deletions opentelemetry-sdk/src/opentelemetry/sdk/_logs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=unused-import

from opentelemetry.sdk._logs._internal import ( # noqa: F401
from opentelemetry.sdk._logs._internal import (
LogData,
Logger,
LoggerProvider,
Expand All @@ -23,8 +22,11 @@
LogRecordProcessor,
)

__all__ = []
for key, value in globals().copy().items():
if not key.startswith("_"):
value.__module__ = __name__
__all__.append(key)
__all__ = [
"LogData",
"Logger",
"LoggerProvider",
"LoggingHandler",
"LogRecord",
"LogRecordProcessor",
]
19 changes: 10 additions & 9 deletions opentelemetry-sdk/src/opentelemetry/sdk/_logs/export/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=unused-import

from opentelemetry.sdk._logs._internal.export import ( # noqa: F401
from opentelemetry.sdk._logs._internal.export import (
BatchLogRecordProcessor,
ConsoleLogExporter,
LogExporter,
Expand All @@ -23,12 +21,15 @@
)

# The point module is not in the export directory to avoid a circular import.
from opentelemetry.sdk._logs._internal.export.in_memory_log_exporter import ( # noqa: F401
from opentelemetry.sdk._logs._internal.export.in_memory_log_exporter import (
InMemoryLogExporter,
)

__all__ = []
for key, value in globals().copy().items():
if not key.startswith("_"):
value.__module__ = __name__
__all__.append(key)
__all__ = [
"BatchLogRecordProcessor",
"ConsoleLogExporter",
"LogExporter",
"LogExportResult",
"SimpleLogRecordProcessor",
"InMemoryLogExporter",
]
28 changes: 14 additions & 14 deletions opentelemetry-sdk/src/opentelemetry/sdk/metrics/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=unused-import

from opentelemetry.sdk.metrics._internal import ( # noqa: F401
Meter,
MeterProvider,
)
from opentelemetry.sdk.metrics._internal.exceptions import ( # noqa: F401
MetricsTimeoutError,
)
from opentelemetry.sdk.metrics._internal.instrument import ( # noqa: F401
from opentelemetry.sdk.metrics._internal import Meter, MeterProvider
from opentelemetry.sdk.metrics._internal.exceptions import MetricsTimeoutError
from opentelemetry.sdk.metrics._internal.instrument import (
Counter,
Histogram,
ObservableCounter,
Expand All @@ -30,8 +24,14 @@
UpDownCounter,
)

__all__ = []
for key, value in globals().copy().items():
if not key.startswith("_"):
value.__module__ = __name__
__all__.append(key)
__all__ = [
"Meter",
"MeterProvider",
"MetricsTimeoutError",
"Counter",
"Histogram",
"ObservableCounter",
"ObservableGauge",
"ObservableUpDownCounter",
"UpDownCounter",
]
30 changes: 22 additions & 8 deletions opentelemetry-sdk/src/opentelemetry/sdk/metrics/export/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=unused-import

from opentelemetry.sdk.metrics._internal.export import ( # noqa: F401
from opentelemetry.sdk.metrics._internal.export import (
AggregationTemporality,
ConsoleMetricExporter,
InMemoryMetricReader,
Expand All @@ -25,7 +24,7 @@
)

# The point module is not in the export directory to avoid a circular import.
from opentelemetry.sdk.metrics._internal.point import ( # noqa: F401
from opentelemetry.sdk.metrics._internal.point import (
DataPointT,
DataT,
Gauge,
Expand All @@ -39,8 +38,23 @@
Sum,
)

__all__ = []
for key, value in globals().copy().items():
if not key.startswith("_"):
value.__module__ = __name__
__all__.append(key)
__all__ = [
"AggregationTemporality",
"ConsoleMetricExporter",
"InMemoryMetricReader",
"MetricExporter",
"MetricExportResult",
"MetricReader",
"PeriodicExportingMetricReader",
"DataPointT",
"DataT",
"Gauge",
"Histogram",
"HistogramDataPoint",
"Metric",
"MetricsData",
"NumberDataPoint",
"ResourceMetrics",
"ScopeMetrics",
"Sum",
]
20 changes: 11 additions & 9 deletions opentelemetry-sdk/src/opentelemetry/sdk/metrics/view/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,22 @@
# See the License for the specific language governing permissions and
# limitations under the License.

# pylint: disable=unused-import

from opentelemetry.sdk.metrics._internal.aggregation import ( # noqa: F401
from opentelemetry.sdk.metrics._internal.aggregation import (
Aggregation,
DefaultAggregation,
DropAggregation,
ExplicitBucketHistogramAggregation,
LastValueAggregation,
SumAggregation,
)
from opentelemetry.sdk.metrics._internal.view import View # noqa: F401
from opentelemetry.sdk.metrics._internal.view import View

__all__ = []
for key, value in globals().copy().items():
if not key.startswith("_"):
value.__module__ = __name__
__all__.append(key)
__all__ = [
"Aggregation",
"DefaultAggregation",
"DropAggregation",
"ExplicitBucketHistogramAggregation",
"LastValueAggregation",
"SumAggregation",
"View",
]

0 comments on commit e03650a

Please sign in to comment.