@@ -251,6 +251,16 @@ def response_hook(span: Span, status: str, response_headers: List):
251
251
from opentelemetry import context , trace
252
252
from opentelemetry .instrumentation .flask .package import _instruments
253
253
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
+
254
264
from opentelemetry .instrumentation .instrumentor import BaseInstrumentor
255
265
from opentelemetry .instrumentation .propagators import (
256
266
get_global_response_propagator ,
@@ -271,7 +281,7 @@ def response_hook(span: Span, status: str, response_headers: List):
271
281
272
282
_excluded_urls_from_env = get_excluded_urls ("FLASK" )
273
283
274
- if package_version .parse (flask . __version__ ) >= package_version .parse ("2.2.0" ):
284
+ if package_version .parse (flask_version ) >= package_version .parse ("2.2.0" ):
275
285
276
286
def _request_ctx_ref () -> weakref .ReferenceType :
277
287
return weakref .ref (flask .globals .request_ctx ._get_current_object ())
@@ -420,7 +430,7 @@ def _before_request():
420
430
# https://flask.palletsprojects.com/en/1.1.x/api/#flask.has_request_context
421
431
if flask and flask .request :
422
432
if commenter_options .get ("framework" , True ):
423
- flask_info ["framework" ] = f"flask:{ flask . __version__ } "
433
+ flask_info ["framework" ] = f"flask:{ flask_version } "
424
434
if (
425
435
commenter_options .get ("controller" , True )
426
436
and flask .request .endpoint
0 commit comments