Comments (3)
In the case of dicts, lists and objects I guess its a bug/missing feature. I've added a PR to address it.
from streamlit-pydantic.
default
is a standard attribute of pydantic
's Field
and is usually defined as part of the model, such as "Jane Doe" in the example below:
class User(BaseModel):
id: int
name = 'Jane Doe'
init_value
is a streamlit-pydantic
specific attribute that is used internally to store the value of a field when sp.pydantic_form()
/sp.pydantic_input()
is initialised from an instance of a class.
In hindsight, init_value
should have a more descriptive name (instance_value
would be better!) and perhaps it should start with an underscore to make it more obvious that it for internal use.
In terms of which value should get passed through to the streamlit widgets when both attributes exist, init_value
is considered to be higher priority than default
(in the same way that instance values would override the schema defaults when using pydantic
in a regular python script)
from streamlit-pydantic.
default
is a standard attribute ofpydantic
'sField
and is usually defined as part of the model, such as "Jane Doe" in the example below:class User(BaseModel): id: int name = 'Jane Doe'
init_value
is astreamlit-pydantic
specific attribute that is used internally to store the value of a field whensp.pydantic_form()
/sp.pydantic_input()
is initialised from an instance of a class.In hindsight,
init_value
should have a more descriptive name (instance_value
would be better!) and perhaps it should start with an underscore to make it more obvious that it for internal use.In terms of which value should get passed through to the streamlit widgets when both attributes exist,
init_value
is considered to be higher priority thandefault
(in the same way that instance values would override the schema defaults when usingpydantic
in a regular python script)
I noticed that if the default value is passed to Dict
using default
, it will not be rendered. It will work when passing the default value using init_value
:
from typing import Dict
import streamlit as st
from pydantic import BaseModel, Field
import streamlit_pydantic as sp
class ShowcaseModel(BaseModel):
string_dict: Dict[str, str] = Field(
# init_value={"foo": "1.0"},
default={"foo": "bar"},
)
float_dict: Dict[str, float] = Field(
init_value={"foo": 1.0},
)
session_data = sp.pydantic_input(
key="my_input", model=ShowcaseModel, group_optional_fields="sidebar"
)
with st.expander("Current Input State", expanded=False):
st.json(session_data)
Is this as expected?
Thank you.
from streamlit-pydantic.
Related Issues (20)
- Nested models with pydantic 2.0 HOT 1
- Code for simple for throws PydanticImportError HOT 5
- Forms for list-valued models do not work HOT 2
- Download button
- Uload version 0.7.0 to pypi HOT 1
- Placeholder support?
- Publish version compatible with pydantic 2.x HOT 1
- dependant property input
- Request: cutting new release HOT 2
- Optional field are set to value if input is not passed in json output
- ignore_empty_values doesn't work for list types
- Nested `pydantic_form` not working, just clears page
- Optional[str] fields fail to render HOT 2
- Complex Nested Model Is not working HOT 1
- Base setting is changed to pydantic_settings HOT 1
- Basic Demo does not appear up to date HOT 1
- Requirements.txt
- playground not working
- playground is not working
- Playground examples don't work
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from streamlit-pydantic.