Skip to content

Commit 61c4f84

Browse files
committed
Add a try-finally for builtins_import
1 parent f1698cf commit 61c4f84

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

aikido_zen/sinks/builtins_import.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,38 @@
99

1010
@after
1111
def _import(func, instance, args, kwargs, return_value):
12-
if running_import_scan.get():
13-
return
14-
running_import_scan.set(True)
15-
16-
if not hasattr(return_value, "__file__"):
17-
return # Would be built-in into the interpreter (system package)
18-
19-
if not hasattr(return_value, "__package__"):
20-
return
21-
name = getattr(return_value, "__package__")
22-
23-
if not name:
24-
# Make sure the name exists
25-
return
26-
name = name.split(".")[0] # Remove submodules
27-
if name == "importlib" or name == "importlib_metadata":
28-
# Avoid circular dependencies, this is a double safety-check for if contextvar check fails.
29-
return
30-
31-
if PackagesStore.get_package(name):
32-
return
33-
34-
version = None
3512
try:
36-
version = importlib.metadata.version(name)
37-
except PackageNotFoundError:
38-
pass
39-
if version:
40-
PackagesStore.add_package(name, version)
41-
42-
running_import_scan.set(False)
13+
if running_import_scan.get():
14+
return
15+
running_import_scan.set(True)
16+
17+
if not hasattr(return_value, "__file__"):
18+
return # Would be built-in into the interpreter (system package)
19+
20+
if not hasattr(return_value, "__package__"):
21+
return
22+
name = getattr(return_value, "__package__")
23+
24+
if not name:
25+
# Make sure the name exists
26+
return
27+
name = name.split(".")[0] # Remove submodules
28+
if name == "importlib" or name == "importlib_metadata":
29+
# Avoid circular dependencies, this is a double safety-check for if contextvar check fails.
30+
return
31+
32+
if PackagesStore.get_package(name):
33+
return
34+
35+
version = None
36+
try:
37+
version = importlib.metadata.version(name)
38+
except PackageNotFoundError:
39+
pass
40+
if version:
41+
PackagesStore.add_package(name, version)
42+
finally:
43+
running_import_scan.set(False)
4344

4445

4546
@on_import("builtins")

0 commit comments

Comments
 (0)