@@ -169,7 +169,8 @@ class ReflexDocTransformer(DocumentTransformer[rx.Component]):
169169 the reflex package look identical to the locally-authored ones.
170170 """
171171
172- def __init__ (self , filename : str = "" ) -> None :
172+ def __init__ (self , virtual_filepath : str = "" , filename : str = "" ) -> None :
173+ self .virtual_filepath = virtual_filepath
173174 self .filename = filename
174175 self .env : dict = {}
175176
@@ -234,7 +235,7 @@ def code_block(self, block: CodeBlock) -> rx.Component:
234235
235236 # ``python exec`` only — execute code, produce nothing visible.
236237 if language == "python" and "exec" in flags :
237- _exec_code (block .content , self .env , self .filename )
238+ _exec_code (block .content , self .env , self .virtual_filepath )
238239 return rx .fragment ()
239240
240241 # ``python eval`` (standalone) — eval and return the component directly.
@@ -378,10 +379,10 @@ def _render_demo(self, content: str, flags: set[str]) -> rx.Component:
378379
379380 try :
380381 if "exec" in flags :
381- _exec_code (content , self .env , self .filename )
382+ _exec_code (content , self .env , self .virtual_filepath )
382383 comp = self .env [list (self .env .keys ())[- 1 ]]()
383384 elif "graphing" in flags :
384- _exec_code (content , self .env , self .filename )
385+ _exec_code (content , self .env , self .virtual_filepath )
385386 comp = self .env [list (self .env .keys ())[- 1 ]]()
386387 parts = content .rpartition ("def" )
387388 data , code = parts [0 ], parts [1 ] + parts [2 ]
@@ -393,7 +394,7 @@ def _render_demo(self, content: str, flags: set[str]) -> rx.Component:
393394 comp = eval (content , self .env , self .env )
394395 except Exception as e :
395396 e .add_note (
396- f"While rendering demo block in { self .filename } :\n { content [:200 ]} "
397+ f"While rendering demo block in { self .virtual_filepath } :\n { content [:200 ]} "
397398 )
398399 raise
399400
@@ -416,10 +417,10 @@ def _render_demo_only(self, content: str, flags: set[str]) -> rx.Component:
416417
417418 try :
418419 if "exec" in flags :
419- _exec_code (content , self .env , self .filename )
420+ _exec_code (content , self .env , self .virtual_filepath )
420421 comp = self .env [list (self .env .keys ())[- 1 ]]()
421422 elif "graphing" in flags :
422- _exec_code (content , self .env , self .filename )
423+ _exec_code (content , self .env , self .virtual_filepath )
423424 comp = self .env [list (self .env .keys ())[- 1 ]]()
424425 parts = content .rpartition ("def" )
425426 data , code = parts [0 ], parts [1 ] + parts [2 ]
@@ -430,7 +431,7 @@ def _render_demo_only(self, content: str, flags: set[str]) -> rx.Component:
430431 comp = eval (content , self .env , self .env )
431432 except Exception as e :
432433 e .add_note (
433- f"While rendering demo-only block in { self .filename } :\n { content [:200 ]} "
434+ f"While rendering demo-only block in { self .virtual_filepath } :\n { content [:200 ]} "
434435 )
435436 raise
436437
@@ -681,10 +682,14 @@ def _parse_doc(filepath: str | Path) -> Document:
681682 return parse_document (source )
682683
683684
684- def render_docgen_document (filepath : str | Path ) -> rx .Component :
685+ def render_docgen_document (
686+ virtual_filepath : str | Path , actual_filepath : str | Path
687+ ) -> rx .Component :
685688 """Parse and render a doc file from the reflex package using reflex_docgen."""
686- doc = _parse_doc (filepath )
687- transformer = ReflexDocTransformer (filename = str (filepath ))
689+ doc = _parse_doc (actual_filepath )
690+ transformer = ReflexDocTransformer (
691+ virtual_filepath = str (virtual_filepath ), filename = str (actual_filepath )
692+ )
688693 return transformer .transform (doc )
689694
690695
0 commit comments