diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6a371b9de68..73baecb7851 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ env: # Otherwise, set variable to the commit of your branch on # opentelemetry-python-contrib which is compatible with these Core repo # changes. - CONTRIB_REPO_SHA: 3ceaa0ec08801a8efccee328a805c038f9a7648e + CONTRIB_REPO_SHA: 16ae58b341b960df52c1cf4541695164821b3638 jobs: build: diff --git a/CHANGELOG.md b/CHANGELOG.md index c7fcb83e20a..cfea0a571cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#1656])(https://github.com/open-telemetry/opentelemetry-python/pull/1656) - Rename `DefaultSpan` to `NonRecordingSpan` ([#1661])(https://github.com/open-telemetry/opentelemetry-python/pull/1661) +- Moving `Getter`, `Setter` and `TextMapPropagator` out of `opentelemetry.trace.propagation` and + into `opentelemetry.propagators` + ([#1662])(https://github.com/open-telemetry/opentelemetry-python/pull/1662) ## [0.18b0](https://github.com/open-telemetry/opentelemetry-python/releases/tag/v0.18b0) - 2021-02-16 diff --git a/docs/conf.py b/docs/conf.py index 42eefa1ce1c..a8c659b2d44 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -102,16 +102,10 @@ # with "class reference target not found: ObjectProxy". ("py:class", "ObjectProxy"), # TODO: Understand why sphinx is not able to find this local class - ("py:class", "opentelemetry.trace.propagation.textmap.TextMapPropagator",), - ("py:class", "opentelemetry.trace.propagation.textmap.DictGetter",), - ( - "any", - "opentelemetry.trace.propagation.textmap.TextMapPropagator.extract", - ), - ( - "any", - "opentelemetry.trace.propagation.textmap.TextMapPropagator.inject", - ), + ("py:class", "opentelemetry.propagators.textmap.TextMapPropagator",), + ("py:class", "opentelemetry.propagators.textmap.DictGetter",), + ("any", "opentelemetry.propagators.textmap.TextMapPropagator.extract",), + ("any", "opentelemetry.propagators.textmap.TextMapPropagator.inject",), ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/examples/auto-instrumentation/server_instrumented.py b/docs/examples/auto-instrumentation/server_instrumented.py index 5bf5e8dafe2..1ac1bd6b71b 100644 --- a/docs/examples/auto-instrumentation/server_instrumented.py +++ b/docs/examples/auto-instrumentation/server_instrumented.py @@ -17,12 +17,12 @@ from opentelemetry import trace from opentelemetry.instrumentation.wsgi import collect_request_attributes from opentelemetry.propagate import extract +from opentelemetry.propagators.textmap import DictGetter from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import ( ConsoleSpanExporter, SimpleSpanProcessor, ) -from opentelemetry.trace.propagation.textmap import DictGetter app = Flask(__name__) diff --git a/opentelemetry-api/src/opentelemetry/baggage/propagation/__init__.py b/opentelemetry-api/src/opentelemetry/baggage/propagation/__init__.py index ae5e0c34e1b..9c68357a7c9 100644 --- a/opentelemetry-api/src/opentelemetry/baggage/propagation/__init__.py +++ b/opentelemetry-api/src/opentelemetry/baggage/propagation/__init__.py @@ -18,12 +18,11 @@ from opentelemetry import baggage from opentelemetry.context import get_current from opentelemetry.context.context import Context -from opentelemetry.trace.propagation import textmap +from opentelemetry.propagators import textmap class BaggagePropagator(textmap.TextMapPropagator): - """Extracts and injects Baggage which is used to annotate telemetry. - """ + """Extracts and injects Baggage which is used to annotate telemetry.""" MAX_HEADER_LENGTH = 8192 MAX_PAIR_LENGTH = 4096 @@ -39,7 +38,7 @@ def extract( """Extract Baggage from the carrier. See - `opentelemetry.trace.propagation.textmap.TextMapPropagator.extract` + `opentelemetry.propagators.textmap.TextMapPropagator.extract` """ if context is None: @@ -81,7 +80,7 @@ def inject( """Injects Baggage into the carrier. See - `opentelemetry.trace.propagation.textmap.TextMapPropagator.inject` + `opentelemetry.propagators.textmap.TextMapPropagator.inject` """ baggage_entries = baggage.get_all(context=context) if not baggage_entries: diff --git a/opentelemetry-api/src/opentelemetry/propagate/__init__.py b/opentelemetry-api/src/opentelemetry/propagate/__init__.py index 6050b5f4ff8..77d09b9a9f2 100644 --- a/opentelemetry-api/src/opentelemetry/propagate/__init__.py +++ b/opentelemetry-api/src/opentelemetry/propagate/__init__.py @@ -76,8 +76,7 @@ def example_route(): from opentelemetry.context.context import Context from opentelemetry.environment_variables import OTEL_PROPAGATORS -from opentelemetry.propagators import composite -from opentelemetry.trace.propagation import textmap +from opentelemetry.propagators import composite, textmap logger = getLogger(__name__) diff --git a/opentelemetry-api/src/opentelemetry/propagators/composite.py b/opentelemetry-api/src/opentelemetry/propagators/composite.py index fde42d9373b..92dc6b8a380 100644 --- a/opentelemetry-api/src/opentelemetry/propagators/composite.py +++ b/opentelemetry-api/src/opentelemetry/propagators/composite.py @@ -15,13 +15,13 @@ import typing from opentelemetry.context.context import Context -from opentelemetry.trace.propagation import textmap +from opentelemetry.propagators import textmap logger = logging.getLogger(__name__) class CompositeHTTPPropagator(textmap.TextMapPropagator): - """ CompositeHTTPPropagator provides a mechanism for combining multiple + """CompositeHTTPPropagator provides a mechanism for combining multiple propagators into a single one. Args: @@ -39,12 +39,12 @@ def extract( carrier: textmap.TextMapPropagatorT, context: typing.Optional[Context] = None, ) -> Context: - """ Run each of the configured propagators with the given context and carrier. + """Run each of the configured propagators with the given context and carrier. Propagators are run in the order they are configured, if multiple propagators write the same context key, the propagator later in the list will override previous propagators. - See `opentelemetry.trace.propagation.textmap.TextMapPropagator.extract` + See `opentelemetry.propagators.textmap.TextMapPropagator.extract` """ for propagator in self._propagators: context = propagator.extract(getter, carrier, context) @@ -56,12 +56,12 @@ def inject( carrier: textmap.TextMapPropagatorT, context: typing.Optional[Context] = None, ) -> None: - """ Run each of the configured propagators with the given context and carrier. + """Run each of the configured propagators with the given context and carrier. Propagators are run in the order they are configured, if multiple propagators write the same carrier key, the propagator later in the list will override previous propagators. - See `opentelemetry.trace.propagation.textmap.TextMapPropagator.inject` + See `opentelemetry.propagators.textmap.TextMapPropagator.inject` """ for propagator in self._propagators: propagator.inject(set_in_carrier, carrier, context) @@ -71,7 +71,7 @@ def fields(self) -> typing.Set[str]: """Returns a set with the fields set in `inject`. See - `opentelemetry.trace.propagation.textmap.TextMapPropagator.fields` + `opentelemetry.propagators.textmap.TextMapPropagator.fields` """ composite_fields = set() diff --git a/opentelemetry-api/src/opentelemetry/trace/propagation/textmap.py b/opentelemetry-api/src/opentelemetry/propagators/textmap.py similarity index 100% rename from opentelemetry-api/src/opentelemetry/trace/propagation/textmap.py rename to opentelemetry-api/src/opentelemetry/propagators/textmap.py diff --git a/opentelemetry-api/src/opentelemetry/trace/propagation/tracecontext.py b/opentelemetry-api/src/opentelemetry/trace/propagation/tracecontext.py index cc2a45c30ce..e648338e2c2 100644 --- a/opentelemetry-api/src/opentelemetry/trace/propagation/tracecontext.py +++ b/opentelemetry-api/src/opentelemetry/trace/propagation/tracecontext.py @@ -17,13 +17,12 @@ import opentelemetry.trace as trace from opentelemetry.context.context import Context -from opentelemetry.trace.propagation import textmap +from opentelemetry.propagators import textmap from opentelemetry.trace.span import TraceState class TraceContextTextMapPropagator(textmap.TextMapPropagator): - """Extracts and injects using w3c TraceContext's headers. - """ + """Extracts and injects using w3c TraceContext's headers.""" _TRACEPARENT_HEADER_NAME = "traceparent" _TRACESTATE_HEADER_NAME = "tracestate" @@ -41,7 +40,7 @@ def extract( ) -> Context: """Extracts SpanContext from the carrier. - See `opentelemetry.trace.propagation.textmap.TextMapPropagator.extract` + See `opentelemetry.propagators.textmap.TextMapPropagator.extract` """ header = getter.get(carrier, self._TRACEPARENT_HEADER_NAME) @@ -91,7 +90,7 @@ def inject( ) -> None: """Injects SpanContext into the carrier. - See `opentelemetry.trace.propagation.textmap.TextMapPropagator.inject` + See `opentelemetry.propagators.textmap.TextMapPropagator.inject` """ span = trace.get_current_span(context) span_context = span.get_span_context() @@ -116,6 +115,6 @@ def fields(self) -> typing.Set[str]: """Returns a set with the fields set in `inject`. See - `opentelemetry.trace.propagation.textmap.TextMapPropagator.fields` + `opentelemetry.propagators.textmap.TextMapPropagator.fields` """ return {self._TRACEPARENT_HEADER_NAME, self._TRACESTATE_HEADER_NAME} diff --git a/opentelemetry-api/tests/baggage/test_baggage_propagation.py b/opentelemetry-api/tests/baggage/test_baggage_propagation.py index 68723c6a0b3..719e8d91e3e 100644 --- a/opentelemetry-api/tests/baggage/test_baggage_propagation.py +++ b/opentelemetry-api/tests/baggage/test_baggage_propagation.py @@ -18,7 +18,7 @@ from opentelemetry import baggage from opentelemetry.baggage.propagation import BaggagePropagator from opentelemetry.context import get_current -from opentelemetry.trace.propagation.textmap import DictGetter +from opentelemetry.propagators.textmap import DictGetter carrier_getter = DictGetter() diff --git a/opentelemetry-api/tests/propagators/test_global_httptextformat.py b/opentelemetry-api/tests/propagators/test_global_httptextformat.py index 4f540537351..0b69f6f2868 100644 --- a/opentelemetry-api/tests/propagators/test_global_httptextformat.py +++ b/opentelemetry-api/tests/propagators/test_global_httptextformat.py @@ -16,8 +16,8 @@ from opentelemetry import baggage, trace from opentelemetry.propagate import extract, inject +from opentelemetry.propagators.textmap import DictGetter from opentelemetry.trace import get_current_span, set_span_in_context -from opentelemetry.trace.propagation.textmap import DictGetter carrier_getter = DictGetter() diff --git a/opentelemetry-api/tests/trace/propagation/test_textmap.py b/opentelemetry-api/tests/trace/propagation/test_textmap.py index 830f7ac2c1c..12e851de348 100644 --- a/opentelemetry-api/tests/trace/propagation/test_textmap.py +++ b/opentelemetry-api/tests/trace/propagation/test_textmap.py @@ -14,7 +14,7 @@ import unittest -from opentelemetry.trace.propagation.textmap import DictGetter +from opentelemetry.propagators.textmap import DictGetter class TestDictGetter(unittest.TestCase): diff --git a/opentelemetry-api/tests/trace/propagation/test_tracecontexthttptextformat.py b/opentelemetry-api/tests/trace/propagation/test_tracecontexthttptextformat.py index 77fe8e8e1a9..cff30b7c9b8 100644 --- a/opentelemetry-api/tests/trace/propagation/test_tracecontexthttptextformat.py +++ b/opentelemetry-api/tests/trace/propagation/test_tracecontexthttptextformat.py @@ -17,8 +17,8 @@ from unittest.mock import Mock, patch from opentelemetry import trace +from opentelemetry.propagators.textmap import DictGetter from opentelemetry.trace.propagation import tracecontext -from opentelemetry.trace.propagation.textmap import DictGetter from opentelemetry.trace.span import TraceState FORMAT = tracecontext.TraceContextTextMapPropagator() @@ -187,8 +187,7 @@ def test_propagate_invalid_context(self): self.assertFalse("traceparent" in output) def test_tracestate_empty_header(self): - """Test tracestate with an additional empty header (should be ignored) - """ + """Test tracestate with an additional empty header (should be ignored)""" span = trace.get_current_span( FORMAT.extract( carrier_getter, @@ -203,8 +202,7 @@ def test_tracestate_empty_header(self): self.assertEqual(span.get_span_context().trace_state["foo"], "1") def test_tracestate_header_with_trailing_comma(self): - """Do not propagate invalid trace context. - """ + """Do not propagate invalid trace context.""" span = trace.get_current_span( FORMAT.extract( carrier_getter, @@ -219,8 +217,7 @@ def test_tracestate_header_with_trailing_comma(self): self.assertEqual(span.get_span_context().trace_state["foo"], "1") def test_tracestate_keys(self): - """Test for valid key patterns in the tracestate - """ + """Test for valid key patterns in the tracestate""" tracestate_value = ",".join( [ "1a-2f@foo=bar1", diff --git a/propagator/opentelemetry-propagator-b3/src/opentelemetry/propagators/b3/__init__.py b/propagator/opentelemetry-propagator-b3/src/opentelemetry/propagators/b3/__init__.py index 35ed8ec13ea..448e59517b8 100644 --- a/propagator/opentelemetry-propagator-b3/src/opentelemetry/propagators/b3/__init__.py +++ b/propagator/opentelemetry-propagator-b3/src/opentelemetry/propagators/b3/__init__.py @@ -17,7 +17,7 @@ import opentelemetry.trace as trace from opentelemetry.context import Context -from opentelemetry.trace.propagation.textmap import ( +from opentelemetry.propagators.textmap import ( Getter, Setter, TextMapPropagator, diff --git a/propagator/opentelemetry-propagator-b3/tests/performance/benchmarks/trace/propagation/test_benchmark_b3_format.py b/propagator/opentelemetry-propagator-b3/tests/performance/benchmarks/trace/propagation/test_benchmark_b3_format.py index 843e6e96b0c..5048f495f06 100644 --- a/propagator/opentelemetry-propagator-b3/tests/performance/benchmarks/trace/propagation/test_benchmark_b3_format.py +++ b/propagator/opentelemetry-propagator-b3/tests/performance/benchmarks/trace/propagation/test_benchmark_b3_format.py @@ -14,7 +14,7 @@ import opentelemetry.propagators.b3 as b3_format import opentelemetry.sdk.trace as trace -from opentelemetry.trace.propagation.textmap import DictGetter +from opentelemetry.propagators.textmap import DictGetter FORMAT = b3_format.B3Format() diff --git a/propagator/opentelemetry-propagator-b3/tests/test_b3_format.py b/propagator/opentelemetry-propagator-b3/tests/test_b3_format.py index b0f11386936..f9d3bce1adb 100644 --- a/propagator/opentelemetry-propagator-b3/tests/test_b3_format.py +++ b/propagator/opentelemetry-propagator-b3/tests/test_b3_format.py @@ -20,7 +20,7 @@ import opentelemetry.sdk.trace.id_generator as id_generator import opentelemetry.trace as trace_api from opentelemetry.context import get_current -from opentelemetry.trace.propagation.textmap import DictGetter +from opentelemetry.propagators.textmap import DictGetter FORMAT = b3_format.B3Format() diff --git a/propagator/opentelemetry-propagator-jaeger/src/opentelemetry/propagators/jaeger/__init__.py b/propagator/opentelemetry-propagator-jaeger/src/opentelemetry/propagators/jaeger/__init__.py index 5272fe67615..e10d464be6d 100644 --- a/propagator/opentelemetry-propagator-jaeger/src/opentelemetry/propagators/jaeger/__init__.py +++ b/propagator/opentelemetry-propagator-jaeger/src/opentelemetry/propagators/jaeger/__init__.py @@ -18,7 +18,7 @@ import opentelemetry.trace as trace from opentelemetry import baggage from opentelemetry.context import Context, get_current -from opentelemetry.trace.propagation.textmap import ( +from opentelemetry.propagators.textmap import ( Getter, Setter, TextMapPropagator, diff --git a/propagator/opentelemetry-propagator-jaeger/tests/test_jaeger_propagator.py b/propagator/opentelemetry-propagator-jaeger/tests/test_jaeger_propagator.py index 8512678aeee..8e7190d1cca 100644 --- a/propagator/opentelemetry-propagator-jaeger/tests/test_jaeger_propagator.py +++ b/propagator/opentelemetry-propagator-jaeger/tests/test_jaeger_propagator.py @@ -22,7 +22,7 @@ from opentelemetry.propagators import ( # pylint: disable=no-name-in-module jaeger, ) -from opentelemetry.trace.propagation.textmap import DictGetter +from opentelemetry.propagators.textmap import DictGetter FORMAT = jaeger.JaegerPropagator() diff --git a/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py b/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py index e0ba424745f..c1dffbc1f9b 100644 --- a/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py +++ b/shim/opentelemetry-opentracing-shim/src/opentelemetry/shim/opentracing_shim/__init__.py @@ -102,6 +102,7 @@ from opentelemetry.baggage import get_baggage, set_baggage from opentelemetry.context import Context, attach, detach, get_value, set_value from opentelemetry.propagate import get_global_textmap +from opentelemetry.propagators.textmap import DictGetter from opentelemetry.shim.opentracing_shim import util from opentelemetry.shim.opentracing_shim.version import __version__ from opentelemetry.trace import INVALID_SPAN_CONTEXT, Link, NonRecordingSpan @@ -112,7 +113,6 @@ get_current_span, set_span_in_context, ) -from opentelemetry.trace.propagation.textmap import DictGetter from opentelemetry.util.types import Attributes ValueT = TypeVar("ValueT", int, float, bool, str) diff --git a/tests/util/src/opentelemetry/test/mock_textmap.py b/tests/util/src/opentelemetry/test/mock_textmap.py index 12e22a1f506..1edd079042f 100644 --- a/tests/util/src/opentelemetry/test/mock_textmap.py +++ b/tests/util/src/opentelemetry/test/mock_textmap.py @@ -16,7 +16,7 @@ from opentelemetry import trace from opentelemetry.context import Context, get_current -from opentelemetry.trace.propagation.textmap import ( +from opentelemetry.propagators.textmap import ( Getter, Setter, TextMapPropagator,