- 
                Notifications
    You must be signed in to change notification settings 
- Fork 115
Open
Description
The following app crashes on start because of the con.register() at the top level. Live app. (It could be suppressed by using with ui.hold():.)
from shiny.express import input, render, ui
import pandas as pd
import duckdb
# Create a sample DataFrame
df = pd.DataFrame({
    'id': range(1, 6),
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'age': [25, 30, 35, 28, 22]
})
# Register DataFrame with DuckDB
con = duckdb.connect(':memory:')
con.register('people', df)The error message is:
Traceback (most recent call last):
  File "<exec>", line 393, in _start_app
  File "<exec>", line 366, in __init__
  File "/lib/python3.12/site-packages/shiny/express/_run.py", line 62, in wrap_express_app
    app_module = importlib.import_module(package_name)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python312.zip/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "/lib/python3.12/site-packages/shiny/express/_run.py", line 102, in exec_module
    module.app = create_express_app(  # pyright: ignore[reportAttributeAccessIssue]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/shiny/express/_run.py", line 132, in create_express_app
    app_ui = run_express(file, package_name).tagify()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/shiny/express/_run.py", line 231, in run_express
    get_top_level_recall_context_manager().__exit__(None, None, None)
  File "/lib/python3.12/site-packages/shiny/express/_recall_context.py", line 48, in __exit__
    res = self.fn(*self.args, **self.kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/shiny/ui/_page.py", line 719, in page_auto
    return page_fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/shiny/ui/_page.py", line 775, in _page_auto_fixed
    return page_fixed(
           ^^^^^^^^^^^
  File "/lib/python3.12/site-packages/shiny/ui/_page.py", line 518, in page_fixed
    div({"class": "container"}, *args, **kwargs),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/htmltools/tags.py", line 731, in div
    return Tag("div", *args, _add_ws=_add_ws, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/htmltools/_core.py", line 679, in __init__
    self.children = TagList(*kids)
                    ^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/htmltools/_core.py", line 281, in __init__
    super().__init__(_tagchilds_to_tagnodes(args))
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/lib/python3.12/site-packages/htmltools/_core.py", line 1936, in _tagchilds_to_tagnodes
    raise TypeError(
TypeError: Invalid tag item type: <class 'duckdb.duckdb.DuckDBPyConnection'>. Consider calling str() on this value before treating it as a tag item.
Shiny tries to render the object, but fails. A few possible ways of dealing with this:
- We should have a more useful error message and suggest how to fix.
- We could automatically not render objects that Shiny doesn't know how to render.
Metadata
Metadata
Assignees
Labels
No labels