Skip to content

Commit cfe8830

Browse files
committed
fixes #168
1 parent 6b1c351 commit cfe8830

2 files changed

Lines changed: 35 additions & 8 deletions

File tree

dialoghelper/core.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,21 @@ def add_styles(s:str, cls_map:dict=None):
7272
try: load_ipython_extension(get_ipython())
7373
except NameError: pass
7474

75-
# pyrun = RunPython(sentinel='__dialog_name')
76-
# try: create_pyrun_magic(get_ipython(), pyrun=pyrun)
77-
# except NameError: pass
7875
__llmtools__.add('pyrun')
7976

8077
# %% ../nbs/00_core.ipynb #65a8b58b
78+
_cached_dname = None
79+
8180
def find_dname(dname=None):
8281
"Get the dialog name by searching the call stack for __dialog_name, and resolving `dname` if supplied."
82+
global _cached_dname
8383
if dname:
8484
dname = dname.removesuffix('.ipynb')
8585
if dname.startswith('/'): return dname
8686
curr = dh_settings.get('dname', None)
87-
if not curr: curr = find_var('__dialog_name')
87+
if not curr:
88+
if _cached_dname is None: _cached_dname = find_var('__dialog_name')
89+
curr = _cached_dname
8890
if not dname: return '/'+curr
8991
p = Path(curr).parent
9092
res = normpath((p/dname))

nbs/00_core.ipynb

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,9 +270,6 @@
270270
"try: load_ipython_extension(get_ipython())\n",
271271
"except NameError: pass\n",
272272
"\n",
273-
"# pyrun = RunPython(sentinel='__dialog_name')\n",
274-
"# try: create_pyrun_magic(get_ipython(), pyrun=pyrun)\n",
275-
"# except NameError: pass\n",
276273
"__llmtools__.add('pyrun')"
277274
]
278275
},
@@ -306,13 +303,18 @@
306303
"outputs": [],
307304
"source": [
308305
"#| export\n",
306+
"_cached_dname = None\n",
307+
"\n",
309308
"def find_dname(dname=None):\n",
310309
" \"Get the dialog name by searching the call stack for __dialog_name, and resolving `dname` if supplied.\"\n",
310+
" global _cached_dname\n",
311311
" if dname:\n",
312312
" dname = dname.removesuffix('.ipynb')\n",
313313
" if dname.startswith('/'): return dname\n",
314314
" curr = dh_settings.get('dname', None)\n",
315-
" if not curr: curr = find_var('__dialog_name')\n",
315+
" if not curr:\n",
316+
" if _cached_dname is None: _cached_dname = find_var('__dialog_name')\n",
317+
" curr = _cached_dname\n",
316318
" if not dname: return '/'+curr\n",
317319
" p = Path(curr).parent\n",
318320
" res = normpath((p/dname))\n",
@@ -355,6 +357,29 @@
355357
"find_dname()"
356358
]
357359
},
360+
{
361+
"cell_type": "code",
362+
"execution_count": null,
363+
"id": "e0f4ef57",
364+
"metadata": {},
365+
"outputs": [
366+
{
367+
"data": {
368+
"text/plain": [
369+
"'/aai-ws/dialoghelper/nbs/00_core'"
370+
]
371+
},
372+
"execution_count": null,
373+
"metadata": {},
374+
"output_type": "execute_result"
375+
}
376+
],
377+
"source": [
378+
"async def repro_executor():\n",
379+
" return await asyncio.get_event_loop().run_in_executor(None, find_dname)\n",
380+
"await repro_executor()"
381+
]
382+
},
358383
{
359384
"cell_type": "code",
360385
"execution_count": null,

0 commit comments

Comments
 (0)