Skip to content

Commit 717d107

Browse files
feat: add importlib metadata default on flask module (#2302)
* feat: add importlib metadata default * feat: add importlib metadata default * feat: add importlib metadata default * Fix lint --------- Co-authored-by: Diego Hurtado <ocelotl@users.noreply.github.com>
1 parent 3273d8c commit 717d107

File tree

3 files changed

+9
-12
lines changed

3 files changed

+9
-12
lines changed

CHANGELOG.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Fixed
1111
- `opentelemetry-instrumentation-celery` Allow Celery instrumentation to be installed multiple times
1212
([#2342](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2342))
13-
- Align gRPC span status codes to OTEL specification ([#1756](https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1756))
13+
- Align gRPC span status codes to OTEL specification
14+
([#1756](https://github.com/open-telemetry/opentelemetry-python-contrib/issues/1756))
15+
- `opentelemetry-instrumentation-flask` Add importlib metadata default for deprecation warning flask version
16+
([#2297](https://github.com/open-telemetry/opentelemetry-python-contrib/issues/2297))
1417

1518
## Version 1.23.0/0.44b0 (2024-02-23)
1619

17-
- Drop support for 3.7
20+
- Drop uspport for 3.7
1821
([#2151](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2151))
1922
- `opentelemetry-resource-detector-azure` Added 10s timeout to VM Resource Detector
2023
([#2119](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2119))

instrumentation/opentelemetry-instrumentation-flask/pyproject.toml

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ dependencies = [
3030
"opentelemetry-semantic-conventions == 0.45b0.dev",
3131
"opentelemetry-util-http == 0.45b0.dev",
3232
"packaging >= 21.0",
33+
"importlib-metadata >= 4.0",
3334
]
3435

3536
[project.optional-dependencies]

instrumentation/opentelemetry-instrumentation-flask/src/opentelemetry/instrumentation/flask/__init__.py

+3-10
Original file line numberDiff line numberDiff line change
@@ -245,22 +245,13 @@ def response_hook(span: Span, status: str, response_headers: List):
245245
from typing import Collection
246246

247247
import flask
248+
import importlib_metadata as metadata
248249
from packaging import version as package_version
249250

250251
import opentelemetry.instrumentation.wsgi as otel_wsgi
251252
from opentelemetry import context, trace
252253
from opentelemetry.instrumentation.flask.package import _instruments
253254
from opentelemetry.instrumentation.flask.version import __version__
254-
255-
try:
256-
flask_version = flask.__version__
257-
except AttributeError:
258-
try:
259-
from importlib import metadata
260-
except ImportError:
261-
import importlib_metadata as metadata
262-
flask_version = metadata.version("flask")
263-
264255
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
265256
from opentelemetry.instrumentation.propagators import (
266257
get_global_response_propagator,
@@ -281,6 +272,8 @@ def response_hook(span: Span, status: str, response_headers: List):
281272

282273
_excluded_urls_from_env = get_excluded_urls("FLASK")
283274

275+
flask_version = metadata.version("flask")
276+
284277
if package_version.parse(flask_version) >= package_version.parse("2.2.0"):
285278

286279
def _request_ctx_ref() -> weakref.ReferenceType:

0 commit comments

Comments
 (0)