-
Notifications
You must be signed in to change notification settings - Fork 829
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Writing a class that uses generics, either in the old style of class Foo(Generic[T]) ... or new style class Foo[T]: ... are not saved with the @app.class_definition decorator.
While this makes some sense for the old style, where T would have to be defined in a different cell were the class definition to be the only thing in the cell, but I don't think it makes sense for the new style.
Will you submit a PR?
- Yes
Environment
Details
{
"marimo": "0.15.3",
"editable": false,
"OS": "Windows",
"OS Version": "11",
"Processor": "Intel64 Family 6 Model 198 Stepping 2, GenuineIntel",
"Python Version": "3.13.6",
"Binaries": {
"Browser": "--",
"Node": "v22.18.0"
},
"Dependencies": {
"click": "8.2.1",
"docutils": "0.22",
"itsdangerous": "2.2.0",
"jedi": "0.19.2",
"markdown": "3.8.2",
"narwhals": "2.2.0",
"packaging": "25.0",
"psutil": "7.0.0",
"pygments": "2.19.2",
"pymdown-extensions": "10.16.1",
"pyyaml": "6.0.2",
"starlette": "0.47.3",
"tomlkit": "0.13.3",
"typing-extensions": "4.15.0",
"uvicorn": "0.35.0",
"websockets": "15.0.1"
},
"Optional Dependencies": {
"altair": "5.5.0",
"duckdb": "1.3.2",
"nbformat": "5.10.4",
"openai": "1.102.0",
"pandas": "2.3.2",
"polars": "1.32.3",
"pyarrow": "21.0.0",
"loro": "1.5.4",
"pytest": "8.4.1",
"python-lsp-ruff": "2.2.2",
"python-lsp-server": "1.13.1",
"ruff": "0.12.11",
"sqlglot": "27.9.0"
},
"Experimental Flags": {}
}
Code to reproduce
import marimo
__generated_with = "0.15.3"
app = marimo.App(width="medium")
with app.setup:
from typing import Generic, TypeVar
@app.cell
def _():
class GenericTypeParameter[T]:
def __init__(self, value: T):
self.value = value
return
@app.cell
def _():
T = TypeVar("T")
return (T,)
@app.cell
def _(T):
class GenericTypeVar(Generic[T]):
def __init__(self, value: T):
self.value = value
return
@app.class_definition
class NoGeneric:
def __init__(self, value):
self.value = value
if __name__ == "__main__":
app.run()Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working