fix: separate pylint config for opentracing example to resolve FIXME#5037
Open
chimchim89 wants to merge 23 commits intoopen-telemetry:mainfrom
Open
fix: separate pylint config for opentracing example to resolve FIXME#5037chimchim89 wants to merge 23 commits intoopen-telemetry:mainfrom
chimchim89 wants to merge 23 commits intoopen-telemetry:mainfrom
Conversation
Contributor
|
@chimchim89 I think you haven't pushed part of what the description says |
Contributor
Author
sorry for the confusion. that was a mistake on my side. i have pushed the fix. |
herin049
approved these changes
Apr 4, 2026
8d2c385 to
f86bdf0
Compare
Contributor
|
Thanks! Please also add Changelog entry. |
chimchim89
added a commit
to chimchim89/opentelemetry-python
that referenced
this pull request
Apr 14, 2026
Contributor
Author
yes, added changelog entry. |
tammy-baylis-swi
approved these changes
Apr 14, 2026
…-telemetry#4985) * config: add resource and propagator creation from declarative config Implements create_resource() and create_propagator()/configure_propagator() for the declarative file configuration. Resource creation does not read OTEL_RESOURCE_ATTRIBUTES or run any detectors (matches Java/JS SDK behavior). Propagator configuration always calls set_global_textmap to override Python's default tracecontext+baggage, setting a noop CompositePropagator when no propagator is configured. Assisted-by: Claude Sonnet 4.6 * update changelog with PR number Assisted-by: Claude Sonnet 4.6 * fix pylint, pyright and ruff errors in resource/propagator config - _resource.py: refactor _coerce_attribute_value to dispatch table to avoid too-many-return-statements; fix short variable names k/v -> attr_key/attr_val; fix return type of _sdk_default_attributes to dict[str, str] to satisfy pyright - _propagator.py: rename short variable names e -> exc, p -> propagator - test_resource.py: move imports to top level; split TestCreateResource (25 methods) into three focused classes to satisfy too-many-public-methods - test_propagator.py: add pylint disable for protected-access Assisted-by: Claude Sonnet 4.6 * address review feedback: use _DEFAULT_RESOURCE, fix bool_array coercion - replace _sdk_default_attributes() with _DEFAULT_RESOURCE from resources module - move _coerce_bool into dispatch tables for both scalar and array bool types, fixing a bug where bool_array with string values like "false" would coerce incorrectly via plain bool() (non-empty string -> True) - add test for bool_array with string values to cover the bug Assisted-by: Claude Sonnet 4.6 * fix linter * address review feedback: single coercion table, simplify attributes merge - collapse _SCALAR_COERCIONS and _ARRAY_COERCIONS into a single _COERCIONS dict using an _array() factory, reducing _coerce_attribute_value to two lines - process attributes_list before attributes so explicit attributes naturally overwrite list entries without needing an explicit guard Assisted-by: Claude Sonnet 4.6 * use Callable type annotation on _array helper Assisted-by: Claude Sonnet 4.6 * add detection infrastructure foundations for resource detectors Adds _run_detectors() stub and _filter_attributes() to create_resource(), providing the shared scaffolding for detector PRs to build on. Detectors are opt-in: nothing runs unless explicitly listed under detection_development.detectors in the config. The include/exclude attribute filter mirrors other SDK behaviour. Assisted-by: Claude Sonnet 4.6 * move service.name default into base resource Merges service.name=unknown_service into base before running detectors, so detectors (e.g. service) can override it. Previously it was added to config_attrs and merged last, which would have silently overridden any detector-provided service.name. Assisted-by: Claude Sonnet 4.6 * remove unused logging import from _propagator.py Assisted-by: Claude Sonnet 4.6 * add TracerProvider creation from declarative config Implements create_tracer_provider() and configure_tracer_provider() for the declarative configuration pipeline (tracking issue open-telemetry#3631 step 5). Key behaviors: - Never reads OTEL_TRACES_SAMPLER or OTEL_SPAN_*_LIMIT env vars; absent config fields use OTel spec defaults (matching Java SDK behavior) - Default sampler is ParentBased(root=ALWAYS_ON) per the OTel spec - SpanLimits absent fields use hardcoded defaults (128) not env vars - configure_tracer_provider(None) is a no-op per spec/Java/JS behavior - OTLP exporter fields pass None through so the exporter reads its own env vars for unspecified values - Lazy imports for optional OTLP packages with ConfigurationError on missing - Supports all 4 ParentBased delegate samplers Assisted-by: Claude Sonnet 4.6 * add changelog entry for PR open-telemetry#4985 Assisted-by: Claude Sonnet 4.6 * fix CI lint/type failures in tracer provider config - add # noqa: PLC0415 to lazy OTLP imports (ruff also enforces this) - move SDK imports to top-level (BatchSpanProcessor, etc.) - convert test helper methods to @staticmethod to satisfy no-self-use - add pylint: disable=protected-access for private member access in tests - fix return type annotation on _create_span_processor Assisted-by: Claude Sonnet 4.6 * fix pylint no-self-use on TestCreateSampler._make_provider Assisted-by: Claude Sonnet 4.6 * use allowlist for bool coercion in declarative config resource Assisted-by: Claude Sonnet 4.6 * address review feedback: simplify resource filter and propagator loading Assisted-by: Claude Sonnet 4.6 * fix ruff formatting Assisted-by: Claude Sonnet 4.6 * fix pyright: wrap EntryPoints in iter() for next() compatibility Assisted-by: Claude Sonnet 4.6
open-telemetry#5004) * config: add resource and propagator creation from declarative config Implements create_resource() and create_propagator()/configure_propagator() for the declarative file configuration. Resource creation does not read OTEL_RESOURCE_ATTRIBUTES or run any detectors (matches Java/JS SDK behavior). Propagator configuration always calls set_global_textmap to override Python's default tracecontext+baggage, setting a noop CompositePropagator when no propagator is configured. Assisted-by: Claude Sonnet 4.6 * update changelog with PR number Assisted-by: Claude Sonnet 4.6 * fix pylint, pyright and ruff errors in resource/propagator config - _resource.py: refactor _coerce_attribute_value to dispatch table to avoid too-many-return-statements; fix short variable names k/v -> attr_key/attr_val; fix return type of _sdk_default_attributes to dict[str, str] to satisfy pyright - _propagator.py: rename short variable names e -> exc, p -> propagator - test_resource.py: move imports to top level; split TestCreateResource (25 methods) into three focused classes to satisfy too-many-public-methods - test_propagator.py: add pylint disable for protected-access Assisted-by: Claude Sonnet 4.6 * address review feedback: use _DEFAULT_RESOURCE, fix bool_array coercion - replace _sdk_default_attributes() with _DEFAULT_RESOURCE from resources module - move _coerce_bool into dispatch tables for both scalar and array bool types, fixing a bug where bool_array with string values like "false" would coerce incorrectly via plain bool() (non-empty string -> True) - add test for bool_array with string values to cover the bug Assisted-by: Claude Sonnet 4.6 * fix linter * address review feedback: single coercion table, simplify attributes merge - collapse _SCALAR_COERCIONS and _ARRAY_COERCIONS into a single _COERCIONS dict using an _array() factory, reducing _coerce_attribute_value to two lines - process attributes_list before attributes so explicit attributes naturally overwrite list entries without needing an explicit guard Assisted-by: Claude Sonnet 4.6 * use Callable type annotation on _array helper Assisted-by: Claude Sonnet 4.6 * add detection infrastructure foundations for resource detectors Adds _run_detectors() stub and _filter_attributes() to create_resource(), providing the shared scaffolding for detector PRs to build on. Detectors are opt-in: nothing runs unless explicitly listed under detection_development.detectors in the config. The include/exclude attribute filter mirrors other SDK behaviour. Assisted-by: Claude Sonnet 4.6 * move service.name default into base resource Merges service.name=unknown_service into base before running detectors, so detectors (e.g. service) can override it. Previously it was added to config_attrs and merged last, which would have silently overridden any detector-provided service.name. Assisted-by: Claude Sonnet 4.6 * remove unused logging import from _propagator.py Assisted-by: Claude Sonnet 4.6 * wire container resource detector in declarative config When `resource.detection_development.detectors[].container` is set in the config file, attempt to use `ContainerResourceDetector` from the `opentelemetry-resource-detector-containerid` contrib package. Unlike the process, host, and service detectors which are implemented in the core SDK, container detection is not available in core. Rather than adding a hard dependency on the contrib package, we use a lazy import: if the package is installed it is used transparently; if absent a warning is logged with an actionable install instruction. This mirrors the approach taken by other SDKs: JS explicitly skips container detection when no implementation is available, and PHP also defers container detection to a contrib package. See: open-telemetry/opentelemetry-configuration#570 Assisted-by: Claude Sonnet 4.6 * add changelog entry for container resource detector (open-telemetry#5004) Assisted-by: Claude Sonnet 4.6 * add pylint disables for lazy container import in _resource.py Assisted-by: Claude Sonnet 4.6 * load container detector via entry point instead of lazy import Matches the env-var config counterpart (OTEL_EXPERIMENTAL_RESOURCE_DETECTORS) and avoids a hard import dependency on the contrib package. Tests updated to mock entry_points instead of sys.modules. Assisted-by: Claude Sonnet 4.6
…ig (open-telemetry#5002) * config: add resource and propagator creation from declarative config Implements create_resource() and create_propagator()/configure_propagator() for the declarative file configuration. Resource creation does not read OTEL_RESOURCE_ATTRIBUTES or run any detectors (matches Java/JS SDK behavior). Propagator configuration always calls set_global_textmap to override Python's default tracecontext+baggage, setting a noop CompositePropagator when no propagator is configured. Assisted-by: Claude Sonnet 4.6 * update changelog with PR number Assisted-by: Claude Sonnet 4.6 * fix pylint, pyright and ruff errors in resource/propagator config - _resource.py: refactor _coerce_attribute_value to dispatch table to avoid too-many-return-statements; fix short variable names k/v -> attr_key/attr_val; fix return type of _sdk_default_attributes to dict[str, str] to satisfy pyright - _propagator.py: rename short variable names e -> exc, p -> propagator - test_resource.py: move imports to top level; split TestCreateResource (25 methods) into three focused classes to satisfy too-many-public-methods - test_propagator.py: add pylint disable for protected-access Assisted-by: Claude Sonnet 4.6 * address review feedback: use _DEFAULT_RESOURCE, fix bool_array coercion - replace _sdk_default_attributes() with _DEFAULT_RESOURCE from resources module - move _coerce_bool into dispatch tables for both scalar and array bool types, fixing a bug where bool_array with string values like "false" would coerce incorrectly via plain bool() (non-empty string -> True) - add test for bool_array with string values to cover the bug Assisted-by: Claude Sonnet 4.6 * fix linter * address review feedback: single coercion table, simplify attributes merge - collapse _SCALAR_COERCIONS and _ARRAY_COERCIONS into a single _COERCIONS dict using an _array() factory, reducing _coerce_attribute_value to two lines - process attributes_list before attributes so explicit attributes naturally overwrite list entries without needing an explicit guard Assisted-by: Claude Sonnet 4.6 * use Callable type annotation on _array helper Assisted-by: Claude Sonnet 4.6 * add detection infrastructure foundations for resource detectors Adds _run_detectors() stub and _filter_attributes() to create_resource(), providing the shared scaffolding for detector PRs to build on. Detectors are opt-in: nothing runs unless explicitly listed under detection_development.detectors in the config. The include/exclude attribute filter mirrors other SDK behaviour. Assisted-by: Claude Sonnet 4.6 * move service.name default into base resource Merges service.name=unknown_service into base before running detectors, so detectors (e.g. service) can override it. Previously it was added to config_attrs and merged last, which would have silently overridden any detector-provided service.name. Assisted-by: Claude Sonnet 4.6 * remove unused logging import from _propagator.py Assisted-by: Claude Sonnet 4.6 * wire host resource detector in declarative config Makes _HostResourceDetector public as HostResourceDetector and wires it to detection_development.detectors[].host in _run_detectors(). Assisted-by: Claude Sonnet 4.6 * add changelog entry for host resource detector (open-telemetry#5002) Assisted-by: Claude Sonnet 4.6 * fix import sort in test_resources.py (ruff) Assisted-by: Claude Sonnet 4.6 * revert HostResourceDetector to private _HostResourceDetector Assisted-by: Claude Sonnet 4.6 * Apply suggestion from @xrmx * Update test_resources.py * Update _resource.py --------- Co-authored-by: Aaron Abbott <aaronabbott@google.com> Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
…telemetry#4987) * config: add resource and propagator creation from declarative config Implements create_resource() and create_propagator()/configure_propagator() for the declarative file configuration. Resource creation does not read OTEL_RESOURCE_ATTRIBUTES or run any detectors (matches Java/JS SDK behavior). Propagator configuration always calls set_global_textmap to override Python's default tracecontext+baggage, setting a noop CompositePropagator when no propagator is configured. Assisted-by: Claude Sonnet 4.6 * update changelog with PR number Assisted-by: Claude Sonnet 4.6 * fix pylint, pyright and ruff errors in resource/propagator config - _resource.py: refactor _coerce_attribute_value to dispatch table to avoid too-many-return-statements; fix short variable names k/v -> attr_key/attr_val; fix return type of _sdk_default_attributes to dict[str, str] to satisfy pyright - _propagator.py: rename short variable names e -> exc, p -> propagator - test_resource.py: move imports to top level; split TestCreateResource (25 methods) into three focused classes to satisfy too-many-public-methods - test_propagator.py: add pylint disable for protected-access Assisted-by: Claude Sonnet 4.6 * address review feedback: use _DEFAULT_RESOURCE, fix bool_array coercion - replace _sdk_default_attributes() with _DEFAULT_RESOURCE from resources module - move _coerce_bool into dispatch tables for both scalar and array bool types, fixing a bug where bool_array with string values like "false" would coerce incorrectly via plain bool() (non-empty string -> True) - add test for bool_array with string values to cover the bug Assisted-by: Claude Sonnet 4.6 * fix linter * address review feedback: single coercion table, simplify attributes merge - collapse _SCALAR_COERCIONS and _ARRAY_COERCIONS into a single _COERCIONS dict using an _array() factory, reducing _coerce_attribute_value to two lines - process attributes_list before attributes so explicit attributes naturally overwrite list entries without needing an explicit guard Assisted-by: Claude Sonnet 4.6 * use Callable type annotation on _array helper Assisted-by: Claude Sonnet 4.6 * add detection infrastructure foundations for resource detectors Adds _run_detectors() stub and _filter_attributes() to create_resource(), providing the shared scaffolding for detector PRs to build on. Detectors are opt-in: nothing runs unless explicitly listed under detection_development.detectors in the config. The include/exclude attribute filter mirrors other SDK behaviour. Assisted-by: Claude Sonnet 4.6 * move service.name default into base resource Merges service.name=unknown_service into base before running detectors, so detectors (e.g. service) can override it. Previously it was added to config_attrs and merged last, which would have silently overridden any detector-provided service.name. Assisted-by: Claude Sonnet 4.6 * remove unused logging import from _propagator.py Assisted-by: Claude Sonnet 4.6 * add MeterProvider creation from declarative config Implements create_meter_provider() and configure_meter_provider() following the same patterns as _tracer_provider.py. - PeriodicExportingMetricReader with explicit interval/timeout defaults (60s/30s) to suppress env var reading - OTLP HTTP and gRPC metric exporters (lazy imports) - Console metric exporter - Temporality preference mapping (cumulative/delta/low_memory) with explicit dicts to suppress OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE - Default histogram aggregation mapping with env var suppression - View creation with selector (instrument type/name/unit/meter info) and stream (name/description/aggregation/attribute_keys) - ExemplarFilter mapping; default = TraceBasedExemplarFilter (spec default) - configure_meter_provider(None) is a no-op per spec/Java/JS behavior - attribute_keys.excluded logs a warning (SDK View only supports inclusion) - Pull readers raise ConfigurationError (marked _development in spec) Assisted-by: Claude Sonnet 4.6 * add changelog entry for meter provider declarative config (open-telemetry#4987) Assisted-by: Claude Sonnet 4.6 * fix linter errors * address review feedback: simplify resource filter, propagator loading, and type annotations Assisted-by: Claude Sonnet 4.6 * fix ruff formatting Assisted-by: Claude Sonnet 4.6 * fix pyright: wrap EntryPoints in iter() for next() compatibility Assisted-by: Claude Sonnet 4.6
* chore: update readme * fix plural
* feat: add experimental LoggerConfigurator * update SDK configuration to utilize logger configurator * generalize rule based configurator * add safe logger configurator application * add unit tests * update CHANGELOG.md * update type annotation for active loggers * Address PR comments. --------- Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
* Update version to 1.42.0.dev/0.63b0.dev * Update __init__.py --------- Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
…5062) While at it remove an excluded file from typechecking that has no errors.
…onfig (open-telemetry#5003) * config: add resource and propagator creation from declarative config Implements create_resource() and create_propagator()/configure_propagator() for the declarative file configuration. Resource creation does not read OTEL_RESOURCE_ATTRIBUTES or run any detectors (matches Java/JS SDK behavior). Propagator configuration always calls set_global_textmap to override Python's default tracecontext+baggage, setting a noop CompositePropagator when no propagator is configured. Assisted-by: Claude Sonnet 4.6 * update changelog with PR number Assisted-by: Claude Sonnet 4.6 * fix pylint, pyright and ruff errors in resource/propagator config - _resource.py: refactor _coerce_attribute_value to dispatch table to avoid too-many-return-statements; fix short variable names k/v -> attr_key/attr_val; fix return type of _sdk_default_attributes to dict[str, str] to satisfy pyright - _propagator.py: rename short variable names e -> exc, p -> propagator - test_resource.py: move imports to top level; split TestCreateResource (25 methods) into three focused classes to satisfy too-many-public-methods - test_propagator.py: add pylint disable for protected-access Assisted-by: Claude Sonnet 4.6 * address review feedback: use _DEFAULT_RESOURCE, fix bool_array coercion - replace _sdk_default_attributes() with _DEFAULT_RESOURCE from resources module - move _coerce_bool into dispatch tables for both scalar and array bool types, fixing a bug where bool_array with string values like "false" would coerce incorrectly via plain bool() (non-empty string -> True) - add test for bool_array with string values to cover the bug Assisted-by: Claude Sonnet 4.6 * fix linter * address review feedback: single coercion table, simplify attributes merge - collapse _SCALAR_COERCIONS and _ARRAY_COERCIONS into a single _COERCIONS dict using an _array() factory, reducing _coerce_attribute_value to two lines - process attributes_list before attributes so explicit attributes naturally overwrite list entries without needing an explicit guard Assisted-by: Claude Sonnet 4.6 * use Callable type annotation on _array helper Assisted-by: Claude Sonnet 4.6 * add detection infrastructure foundations for resource detectors Adds _run_detectors() stub and _filter_attributes() to create_resource(), providing the shared scaffolding for detector PRs to build on. Detectors are opt-in: nothing runs unless explicitly listed under detection_development.detectors in the config. The include/exclude attribute filter mirrors other SDK behaviour. Assisted-by: Claude Sonnet 4.6 * move service.name default into base resource Merges service.name=unknown_service into base before running detectors, so detectors (e.g. service) can override it. Previously it was added to config_attrs and merged last, which would have silently overridden any detector-provided service.name. Assisted-by: Claude Sonnet 4.6 * remove unused logging import from _propagator.py Assisted-by: Claude Sonnet 4.6 * wire service resource detector in declarative config Adds service detector support to _run_detectors(): sets a random UUID for service.instance.id and reads OTEL_SERVICE_NAME for service.name if set. Explicit config attributes still take priority (merged last). Assisted-by: Claude Sonnet 4.6 * add changelog entry for service resource detector (open-telemetry#5003) Assisted-by: Claude Sonnet 4.6 --------- Co-authored-by: Aaron Abbott <aaronabbott@google.com>
…ne test more robust (open-telemetry#5081) Instead of sleeping mock time_ns so that we can exercise the path more deterministically. Hopefully it'll help on platforms were time is not so precise like PyPy / windows. Assisted-by: Copilot
* Drop python 3.9 support Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix exporter requirements.txt Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * do not skip in pypy+windows Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * pin requirements Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * pin based on py version Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * revert argument name * fix broken links in README.md Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix sdk configuration models Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * fix codegen and opentelemetry-proto-json Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * add changelo Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * remove helper script to fix typealias for datamodel-codegen Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * revert proto-json version Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> * Apply suggestion from @emdneto * Apply suggestion from @xrmx --------- Signed-off-by: emdneto <9735060+emdneto@users.noreply.github.com> Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
* Add logger exception support for logs API/SDK Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Apply changes requested in code review Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Fix CI Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Fix ci Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Apply feedback from code review Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Fix lint Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Remove unrelated entry from changelog Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Fix lint Signed-off-by: Israel Blancas <iblancasa@gmail.com> * Fix lint Signed-off-by: Israel Blancas <iblancasa@gmail.com> --------- Signed-off-by: Israel Blancas <iblancasa@gmail.com> Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com> Co-authored-by: Mike Goldsmith <goldsmith.mike@gmail.com>
…-telemetry#4990) * config: add resource and propagator creation from declarative config Implements create_resource() and create_propagator()/configure_propagator() for the declarative file configuration. Resource creation does not read OTEL_RESOURCE_ATTRIBUTES or run any detectors (matches Java/JS SDK behavior). Propagator configuration always calls set_global_textmap to override Python's default tracecontext+baggage, setting a noop CompositePropagator when no propagator is configured. Assisted-by: Claude Sonnet 4.6 * update changelog with PR number Assisted-by: Claude Sonnet 4.6 * fix pylint, pyright and ruff errors in resource/propagator config - _resource.py: refactor _coerce_attribute_value to dispatch table to avoid too-many-return-statements; fix short variable names k/v -> attr_key/attr_val; fix return type of _sdk_default_attributes to dict[str, str] to satisfy pyright - _propagator.py: rename short variable names e -> exc, p -> propagator - test_resource.py: move imports to top level; split TestCreateResource (25 methods) into three focused classes to satisfy too-many-public-methods - test_propagator.py: add pylint disable for protected-access Assisted-by: Claude Sonnet 4.6 * address review feedback: use _DEFAULT_RESOURCE, fix bool_array coercion - replace _sdk_default_attributes() with _DEFAULT_RESOURCE from resources module - move _coerce_bool into dispatch tables for both scalar and array bool types, fixing a bug where bool_array with string values like "false" would coerce incorrectly via plain bool() (non-empty string -> True) - add test for bool_array with string values to cover the bug Assisted-by: Claude Sonnet 4.6 * fix linter * address review feedback: single coercion table, simplify attributes merge - collapse _SCALAR_COERCIONS and _ARRAY_COERCIONS into a single _COERCIONS dict using an _array() factory, reducing _coerce_attribute_value to two lines - process attributes_list before attributes so explicit attributes naturally overwrite list entries without needing an explicit guard Assisted-by: Claude Sonnet 4.6 * use Callable type annotation on _array helper Assisted-by: Claude Sonnet 4.6 * add detection infrastructure foundations for resource detectors Adds _run_detectors() stub and _filter_attributes() to create_resource(), providing the shared scaffolding for detector PRs to build on. Detectors are opt-in: nothing runs unless explicitly listed under detection_development.detectors in the config. The include/exclude attribute filter mirrors other SDK behaviour. Assisted-by: Claude Sonnet 4.6 * move service.name default into base resource Merges service.name=unknown_service into base before running detectors, so detectors (e.g. service) can override it. Previously it was added to config_attrs and merged last, which would have silently overridden any detector-provided service.name. Assisted-by: Claude Sonnet 4.6 * remove unused logging import from _propagator.py Assisted-by: Claude Sonnet 4.6 * add create_logger_provider/configure_logger_provider for declarative config Implements LoggerProvider instantiation from declarative config files, following the same env-var-suppression pattern as create_meter_provider. BatchLogRecordProcessor defaults use spec values (1000ms schedule_delay), overriding the Python SDK's incorrect 5000ms env-var default. Assisted-by: Claude Sonnet 4.6 * add changelog entry for logger provider declarative config (open-telemetry#4990) Assisted-by: Claude Sonnet 4.6 * fix linter errors * add test verifying OTEL_PROPAGATORS env var is ignored by configure_propagator Assisted-by: Claude Sonnet 4.6 * remove backwards compat re-export of ConfigurationError from _loader.py Import directly from _exceptions.py since this is new code with no existing dependents on the _loader module path. Assisted-by: Claude Sonnet 4.6 * address review feedback: simplify resource filter and propagator loading Assisted-by: Claude Sonnet 4.6 * fix ruff formatting Assisted-by: Claude Sonnet 4.6 * fix pyright: wrap EntryPoints in iter() for next() compatibility Assisted-by: Claude Sonnet 4.6 * remove stale SDK bug note fixed in v1.41.0 Assisted-by: Claude Sonnet 4.6 --------- Co-authored-by: Emídio Neto <9735060+emdneto@users.noreply.github.com> Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>
0800fea to
40c54fb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Resolves the FIXME in
docs/examples/opentracing/rediscache.py.The FIXME noted that
# pylint: disable=import-errorwas needed because the example code was being linted under the main project's tox environment which did not haveredisandredis_opentracinginstalled.Changes made:
# pylint: disable=import-errorfromrediscache.pylint-opentelemetry-opentracing-exampletoenvlistintox.ini[testenv:lint-opentelemetry-opentracing-example]section with:docs/examples/opentracing/requirements.txtPYTHONPATHset to example folder so local modulerediscacheresolves correctly.pylintrcType of change
How Has This Been Tested?
Ran the new lint environment:
Result:
Your code has been rated at 10.00/10Ran ruff:
Result: all checks passed.
Does This PR Require a Contrib Repo Change?
Checklist: