File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change 10
10
import json
11
11
import secrets
12
12
import string
13
+ import inspect
13
14
from html import escape
14
15
from functools import wraps
15
16
from typing import Union
@@ -281,3 +282,12 @@ def hooks_to_js_object(hooks: Union[RendererHooks, None]) -> str:
281
282
282
283
def parse_version (version ):
283
284
return tuple (int (s ) for s in version .split ("." ))
285
+
286
+
287
+ def get_caller_name (name : str ):
288
+ stack = inspect .stack ()
289
+ for s in stack :
290
+ for code in s .code_context :
291
+ if f"{ name } (" in code :
292
+ return s .frame .f_locals .get ("__name__" , "__main__" )
293
+ return "__main__"
Original file line number Diff line number Diff line change 55
55
gen_salt ,
56
56
hooks_to_js_object ,
57
57
parse_version ,
58
+ get_caller_name ,
58
59
)
59
60
from . import _callback
60
61
from . import _get_paths
@@ -387,14 +388,16 @@ def __init__( # pylint: disable=too-many-statements
387
388
):
388
389
_validate .check_obsolete (obsolete )
389
390
391
+ caller_name = get_caller_name (self .__class__ .__name__ )
392
+
390
393
# We have 3 cases: server is either True (we create the server), False
391
394
# (defer server creation) or a Flask app instance (we use their server)
392
395
if isinstance (server , flask .Flask ):
393
396
self .server = server
394
397
if name is None :
395
- name = getattr (server , "name" , "__main__" )
398
+ name = getattr (server , "name" , caller_name )
396
399
elif isinstance (server , bool ):
397
- name = name if name else "__main__"
400
+ name = name if name else caller_name
398
401
self .server = flask .Flask (name ) if server else None
399
402
else :
400
403
raise ValueError ("server must be a Flask app or a boolean" )
You can’t perform that action at this time.
0 commit comments