holoviz / holoviz/param

Automatically serialize dataclass / pydantic models into `param.Parameterized`?

Open
#809 1 comment 1 reaction 0 assignees View on GitHub
type-feature
Dominant language
Python
Stars
521
Forks
86
Avg merge
1d 13h
Merged PRs (30d)
35

Description

I was wondering whether we can (or if it's useful to) convert dataclass/pydantic models into `param.Parameterized` classes?

```python
from dataclasses import dataclass
import param
import panel as pn

@dataclass
class User():
name: str
avatar: str

@dataclass
class Message():

text: str

class UserRow(pn.widgets.CompositeWidget):
user = param.ClassSelector(class_=User, doc="The user to display.")
message = param.ClassSelector(class_=Message, doc="The message to display.")

_composite_type = pn.Row

def __init__(self, **params):
super().__init__(**params)
name = self.user.name
avatar = self.user.avatar
self._composite[:] = [
pn.pane.HTML(avatar),
pn.Column(
pn.pane.Markdown(f"**{name}**"),
pn.pane.Markdown(self.message.text),
)
]

UserRow(user=User(name="Andrew", avatar="A"), message=Message(text="Hello!"))
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.