83
83
"nt" ,
84
84
]
85
85
86
- _marked_safe_globals_list : List [Any ] = []
86
+ _marked_safe_globals_set : Set [Any ] = set ()
87
87
88
88
89
89
def _add_safe_globals (safe_globals : List [Any ]):
90
- global _marked_safe_globals_list
91
- _marked_safe_globals_list += safe_globals
90
+ global _marked_safe_globals_set
91
+ _marked_safe_globals_set = _marked_safe_globals_set . union ( set ( safe_globals ))
92
92
93
93
94
94
def _get_safe_globals () -> List [Any ]:
95
- global _marked_safe_globals_list
96
- return _marked_safe_globals_list
95
+ global _marked_safe_globals_set
96
+ return list ( _marked_safe_globals_set )
97
97
98
98
99
99
def _clear_safe_globals ():
100
- global _marked_safe_globals_list
101
- _marked_safe_globals_list = []
100
+ global _marked_safe_globals_set
101
+ _marked_safe_globals_set = set ()
102
102
103
103
104
104
def _remove_safe_globals (globals_to_remove : List [Any ]):
105
- global _marked_safe_globals_list
106
- _marked_safe_globals_list = list (
107
- set (_marked_safe_globals_list ) - set (globals_to_remove )
108
- )
105
+ global _marked_safe_globals_set
106
+ _marked_safe_globals_set = _marked_safe_globals_set - set (globals_to_remove )
109
107
110
108
111
109
class _safe_globals :
@@ -128,7 +126,7 @@ def __exit__(self, type, value, tb):
128
126
# _get_allowed_globals due to the lru_cache
129
127
def _get_user_allowed_globals ():
130
128
rc : Dict [str , Any ] = {}
131
- for f in _marked_safe_globals_list :
129
+ for f in _marked_safe_globals_set :
132
130
module , name = f .__module__ , f .__name__
133
131
rc [f"{ module } .{ name } " ] = f
134
132
return rc
0 commit comments