Skip to main content

Top-level package for pydantic-panel.

Project description

https://img.shields.io/pypi/v/pydantic_panel.svg https://img.shields.io/travis/jmosbacher/pydantic_panel.svg Documentation Status

Edit pydantic models with panel. This is just a small little porject i made for my own use, its limited in scope and probably filled with bugs, USE AT YOUR OWN RISK. I will continue to add support for more types as I need them but feel free to open issues with requests or better yet PRs with implementations.

Basic Usage

If you import pydantic_panel, it will register the widget automatically using the panel.BasePane.applies interface. After importing, calling panel.panel(model) will return a panel.CompositeWidget whos value is the model. When you change one of the sub-widget values, the new value is validated/coerced using the corresponding pydantic field and if it passes validation/coercion the new value is set on the model itself. This is a one-way sync, if the model field values are changed via code, it does not sync the widgets. Nested models and List[BaseModel] are supported, Dict[str,BaseModel] is trivial to also implement so will probably get around to that soon.

import panel as pn
import pydantic_panel

class SomeModel(pydantic.BaseModel):
    name: str
    value: float

w = pn.panel(SomeModel) # all widget values will be None
w = pn.panel(SomeModel(name='meaning', value=42)) # widget values will be the same as the model instance
>>> w
    # This will display widgets to edit the model in a notebook

>>> w.value
    # This will be None if the widgets have not yet been set to values
    # if all the required fields have been set, this will be an instance of SomeModel
    # with the validated attribute values from the widgets

Features

  • TODO

Credits

This package was created with Cookiecutter and the briggySmalls/cookiecutter-pypackage project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_panel-0.1.0.tar.gz (8.8 kB view hashes)

Uploaded Source

Built Distribution

pydantic_panel-0.1.0-py3-none-any.whl (8.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page