<!-- markdownlint-disable MD033 MD041 -->
<h1 align="center">
Streamlit Pydantic
</h1>
<p align="center">
<strong>Auto-generate Streamlit UI elements from Pydantic models.</strong>
</p>
<p align="center">
<a href="https://pypi.org/project/st-pydantic/" title="PyPi Version"><img src="https://img.shields.io/pypi/v/st-pydantic?color=green&style=flat"></a>
<a href="https://pypi.org/project/st-pydantic/" title="Python Version"><img src="https://img.shields.io/badge/Python-3.7%2B-blue&style=flat"></a>
<a href="https://github.com/lukasmasuch/st-pydantic/blob/main/LICENSE" title="Project License"><img src="https://img.shields.io/badge/License-MIT-green.svg"></a>
<a href="https://twitter.com/lukasmasuch" title="Follow on Twitter"><img src="https://img.shields.io/twitter/follow/lukasmasuch.svg?style=social&label=Follow"></a>
</p>
<p align="center">
<a href="#getting-started">Getting Started</a> •
<a href="#documentation">Documentation</a> •
<a href="#support--feedback">Support</a> •
<a href="https://github.com/lukasmasuch/st-pydantic/issues/new?labels=bug&template=01_bug-report.md">Report a Bug</a> •
<a href="#contribution">Contribution</a> •
<a href="https://github.com/lukasmasuch/st-pydantic/releases">Changelog</a>
</p>
st-pydantic is a fork of the fantastic [st-pydantic](https://github.com/LukasMasuch/st-pydantic) package,
which is no longer maintained by the original author, @LukasMasuch.
I tried reaching out to the original maintainer, but I did not get a response, so I created this fork.
I intend on maintaining it and adding new features as needed.
The original README is below.
st-pydantic makes it easy to auto-generate UI elements from [Pydantic](https://github.com/samuelcolvin/pydantic/) models or [dataclasses](https://docs.python.org/3/library/dataclasses.html). Just define your data model and turn it into a full-fledged UI form. It supports data validation, nested models, and field limitations. st-pydantic can be easily integrated into any Streamlit app.
<sup>Beta Version: Only suggested for experimental usage.</sup>
<img style="width: 100%" src="https://raw.githubusercontent.com/lukasmasuch/st-pydantic/main/docs/images/banner.png"/>
---
<p align="center">
Try out and explore various examples in our playground <a href="https://share.streamlit.io/lukasmasuch/st-pydantic/main/playground/playground_app.py">here</a>.
</p>
---
## Highlights
- 🪄 Auto-generated UI elements from Pydantic models & Dataclasses.
- 📇 Out-of-the-box data validation.
- 📑 Supports nested Pydantic models.
- 📏 Supports field limits and customizations.
- 🎈 Easy to integrate into any Streamlit app.
## Getting Started
### Installation
> _Requirements: Python 3.6+._
```bash
pip install st-pydantic
```
### Usage
1. Create a script (`my_script.py`) with a Pydantic model and render it via `pydantic_form`:
```python
import streamlit as st
from pydantic import BaseModel
import st_pydantic as sp
class ExampleModel(BaseModel):
some_text: str
some_number: int
some_boolean: bool
data = sp.pydantic_form(key="my_form", model=ExampleModel)
if data:
st.json(data.json())
```
2. Run the streamlit server on the python script: `streamlit run my_script.py`
3. You can find additional examples in the [examples](#examples) section below.
## Examples
---
<p align="center">
👉 Try out and explore these examples in our playground <a href="https://share.streamlit.io/lukasmasuch/st-pydantic/main/playground/playground_app.py">here</a>
</p>
---
The following collection of examples demonstrate how Streamlit Pydantic can be applied in more advanced scenarios. You can find additional - even more advanced - examples in the [examples folder](./examples) or in the [playground](https://share.streamlit.io/lukasmasuch/st-pydantic/main/playground/playground_app.py).
### Simple Form
```python
import streamlit as st
from pydantic import BaseModel
import st_pydantic as sp
class ExampleModel(BaseModel):
some_text: str
some_number: int
some_boolean: bool
data = sp.pydantic_form(key="my_form", model=ExampleModel)
if data:
st.json(data.json())
```
### Date Validation
```python
import streamlit as st
from pydantic import BaseModel, Field, HttpUrl
from pydantic.color import Color
import st_pydantic as sp
class ExampleModel(BaseModel):
url: HttpUrl
color: Color
email: str = Field(..., max_length=100, regex=r"^\S+@\S+$")
data = sp.pydantic_form(key="my_form", model=ExampleModel)
if data:
st.json(data.json())
```
### Dataclasses Support
```python
import dataclasses
import json
import streamlit as st
from pydantic.json import pydantic_encoder
import st_pydantic as sp
@dataclasses.dataclass
class ExampleModel:
some_number: int
some_boolean: bool
some_text: str = "default input"
data = sp.pydantic_form(key="my_form", model=ExampleModel)
if data:
st.json(json.dumps(data, default=pydantic_encoder))
```
### Complex Nested Model
```python
from enum import Enum
from typing import Set
import streamlit as st
from pydantic import BaseModel, Field, ValidationError, parse_obj_as
import st_pydantic as sp
class OtherData(BaseModel):
text: str
integer: int
class SelectionValue(str, Enum):
FOO = "foo"
BAR = "bar"
class ExampleModel(BaseModel):
long_text: str = Field(..., description="Unlimited text property")
integer_in_range: int = Field(
20,
ge=10,
lt=30,
multiple_of=2,
description="Number property with a limited range.",
)
single_selection: SelectionValue = Field(
..., description="Only select a single item from a set."
)
multi_selection: Set[SelectionValue] = Field(
..., description="Allows multiple items from a set."
)
single_object: OtherData = Field(
...,
description="Another object embedded into this model.",
)
data = sp.pydantic_form(key="my_form", model=ExampleModel)
if data:
st.json(data.json())
```
### Render Input
```python
from pydantic import BaseModel
import st_pydantic as sp
class ExampleModel(BaseModel):
some_text: str
some_number: int = 10 # Optional
some_boolean: bool = True # Option
input_data = sp.pydantic_input("model_input", ExampleModel, use_sidebar=True)
```
### Render Output
```python
import datetime
from pydantic import BaseModel, Field
import st_pydantic as sp
class ExampleModel(BaseModel):
text: str = Field(..., description="A text property")
integer: int = Field(..., description="An integer property.")
date: datetime.date = Field(..., description="A date.")
instance = ExampleModel(text="Some text", integer=40, date=datetime.date.today())
sp.pydantic_output(instance)
```
### Custom Form
```python
import streamlit as st
from pydantic import BaseModel
import st_pydantic as sp
class ExampleModel(BaseModel):
some_text: str
some_number: int = 10
some_boolean: bool = True
with st.form(key="pydantic_form"):
sp.pydantic_input(key="my_input_model", model=ExampleModel)
submit_button = st.form_submit_button(label="Submit")
```
## Support & Feedback
| Type | Channel |
| ------------------------ | ------------------------------------------------------ |
| 🚨 **Bug Reports** | <a href="https://github.com/lukasmasuch/st-pydantic/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3Abug+sort%3Areactions-%2B1-desc+" title="Open Bug Report"><img src="https://img.shields.io/github/issues/lukasmasuch/st-pydantic/bug.svg?label=bug"></a> |
| 🎁 **Feature Requests** | <a href="https://github.com/lukasmasuch/st-pydantic/issues?q=is%3Aopen+is%3Aissue+label%3Afeature+sort%3Areactions-%2B1-desc" title="Open Feature Request"><img src="https://img.shields.io/github/issues/lukasmasuch/st-pydantic/feature.svg?label=feature%20request"></a> |
| 👩💻 **Usage Questions** | <a href="https://github.com/lukasmasuch/st-pydantic/issues?q=is%3Aopen+is%3Aissue+label%3Asupport+sort%3Areactions-%2B1-desc" title="Open Support Request"> <img src="https://img.shields.io/github/issues/lukasmasuch/st-pydantic/support.svg?label=support%20request"></a> |
| 📢 **Announcements** | <a href="https://twitter.com/lukasmasuch" title="Follow me on Twitter"><img src="https://img.shields.io/twitter/follow/lukasmasuch.svg?style=social&label=Follow"> |
## Documentation
The API documentation can be found [here](./docs). To generate UI elements, you can use the high-level [`pydantic_form`](./docs/st_pydantic.ui_renderer.md#function-pydantic_form) method. Or the more flexible lower-level [`pydantic_input`](./docs/st_pydantic.ui_renderer.md#function-pydantic_input) and [`pydantic_output`](./docs/st_pydantic.ui_renderer.md#function-pydantic_output) methods. See the [examples](#examples) section on how to use those methods.
## Contribution
- Pull requests are encouraged and always welcome. Read our [contribution guidelines](https://github.com/lukasmasuch/st-pydantic/tree/main/CONTRIBUTING.md) and check out [help-wanted](https://github.com/lukasmasuch/st-pydantic/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A"help+wanted"+sort%3Areactions-%2B1-desc+) issues.
- Submit Github issues for any [feature request and enhancement](https://github.com/lukasmasuch/st-pydantic/issues/new?assignees=&labels=feature&template=02_feature-request.md&title=), [bugs](https://github.com/lukasmasuch/st-pydantic/issues/new?assignees=&labels=bug&template=01_bug-report.md&title=), or [documentation](https://github.com/lukasmasuch/st-pydantic/issues/new?assignees=&labels=documentation&template=03_documentation.md&title=) problems.
- By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/lukasmasuch/st-pydantic/blob/main/.github/CODE_OF_CONDUCT.md).
- The [development section](#development) below contains information on how to build and test the project after you have implemented some changes.
## Development
To build the project and run the style/linter checks, execute:
```bash
make install
make check
```
Run `make help` to see additional commands for development.
---
Licensed **MIT**. Created and maintained with ❤️ by developers from Berlin.
Raw data
{
"_id": null,
"home_page": "https://github.com/MatanRubin/st-pydantic/",
"name": "st-pydantic",
"maintainer": "Matan Rubin",
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": "matan.rubin@solaredge.com",
"keywords": "streamlit, pydantic, dataclasses, ui, forms, validation, schema",
"author": "Lukas Masuch",
"author_email": "lukas.masuch@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/7c/d2/3e2bff1e22dde3a866a6e62b7b4e41dd6e600b35cdf3d50eaec22d714dbe/st_pydantic-0.3.1.tar.gz",
"platform": null,
"description": "<!-- markdownlint-disable MD033 MD041 -->\n<h1 align=\"center\">\n Streamlit Pydantic\n</h1>\n\n<p align=\"center\">\n <strong>Auto-generate Streamlit UI elements from Pydantic models.</strong>\n</p>\n\n\n<p align=\"center\">\n <a href=\"https://pypi.org/project/st-pydantic/\" title=\"PyPi Version\"><img src=\"https://img.shields.io/pypi/v/st-pydantic?color=green&style=flat\"></a>\n <a href=\"https://pypi.org/project/st-pydantic/\" title=\"Python Version\"><img src=\"https://img.shields.io/badge/Python-3.7%2B-blue&style=flat\"></a>\n <a href=\"https://github.com/lukasmasuch/st-pydantic/blob/main/LICENSE\" title=\"Project License\"><img src=\"https://img.shields.io/badge/License-MIT-green.svg\"></a>\n <a href=\"https://twitter.com/lukasmasuch\" title=\"Follow on Twitter\"><img src=\"https://img.shields.io/twitter/follow/lukasmasuch.svg?style=social&label=Follow\"></a>\n</p>\n\n<p align=\"center\">\n <a href=\"#getting-started\">Getting Started</a> \u2022\n <a href=\"#documentation\">Documentation</a> \u2022\n <a href=\"#support--feedback\">Support</a> \u2022\n <a href=\"https://github.com/lukasmasuch/st-pydantic/issues/new?labels=bug&template=01_bug-report.md\">Report a Bug</a> \u2022\n <a href=\"#contribution\">Contribution</a> \u2022\n <a href=\"https://github.com/lukasmasuch/st-pydantic/releases\">Changelog</a>\n</p>\n\nst-pydantic is a fork of the fantastic [st-pydantic](https://github.com/LukasMasuch/st-pydantic) package,\nwhich is no longer maintained by the original author, @LukasMasuch.\nI tried reaching out to the original maintainer, but I did not get a response, so I created this fork.\nI intend on maintaining it and adding new features as needed.\n\nThe original README is below.\n\nst-pydantic makes it easy to auto-generate UI elements from [Pydantic](https://github.com/samuelcolvin/pydantic/) models or [dataclasses](https://docs.python.org/3/library/dataclasses.html). Just define your data model and turn it into a full-fledged UI form. It supports data validation, nested models, and field limitations. st-pydantic can be easily integrated into any Streamlit app.\n\n<sup>Beta Version: Only suggested for experimental usage.</sup>\n\n\n<img style=\"width: 100%\" src=\"https://raw.githubusercontent.com/lukasmasuch/st-pydantic/main/docs/images/banner.png\"/>\n\n---\n\n<p align=\"center\">\n Try out and explore various examples in our playground <a href=\"https://share.streamlit.io/lukasmasuch/st-pydantic/main/playground/playground_app.py\">here</a>.\n</p>\n\n---\n\n## Highlights\n\n- \ud83e\ude84 Auto-generated UI elements from Pydantic models & Dataclasses.\n- \ud83d\udcc7 Out-of-the-box data validation.\n- \ud83d\udcd1 Supports nested Pydantic models.\n- \ud83d\udccf Supports field limits and customizations.\n- \ud83c\udf88 Easy to integrate into any Streamlit app.\n\n## Getting Started\n\n### Installation\n\n> _Requirements: Python 3.6+._\n\n```bash\npip install st-pydantic\n```\n\n### Usage\n\n1. Create a script (`my_script.py`) with a Pydantic model and render it via `pydantic_form`:\n\n ```python\n import streamlit as st\n from pydantic import BaseModel\n import st_pydantic as sp\n\n class ExampleModel(BaseModel):\n some_text: str\n some_number: int\n some_boolean: bool\n\n data = sp.pydantic_form(key=\"my_form\", model=ExampleModel)\n if data:\n st.json(data.json())\n ```\n\n2. Run the streamlit server on the python script: `streamlit run my_script.py`\n\n3. You can find additional examples in the [examples](#examples) section below.\n\n## Examples\n\n---\n\n<p align=\"center\">\n \ud83d\udc49 Try out and explore these examples in our playground <a href=\"https://share.streamlit.io/lukasmasuch/st-pydantic/main/playground/playground_app.py\">here</a>\n</p>\n\n---\n\nThe following collection of examples demonstrate how Streamlit Pydantic can be applied in more advanced scenarios. You can find additional - even more advanced - examples in the [examples folder](./examples) or in the [playground](https://share.streamlit.io/lukasmasuch/st-pydantic/main/playground/playground_app.py).\n\n### Simple Form\n\n```python\nimport streamlit as st\nfrom pydantic import BaseModel\n\nimport st_pydantic as sp\n\n\nclass ExampleModel(BaseModel):\n some_text: str\n some_number: int\n some_boolean: bool\n\n\ndata = sp.pydantic_form(key=\"my_form\", model=ExampleModel)\nif data:\n st.json(data.json())\n```\n\n### Date Validation\n\n```python\nimport streamlit as st\nfrom pydantic import BaseModel, Field, HttpUrl\nfrom pydantic.color import Color\n\nimport st_pydantic as sp\n\n\nclass ExampleModel(BaseModel):\n url: HttpUrl\n color: Color\n email: str = Field(..., max_length=100, regex=r\"^\\S+@\\S+$\")\n\n\ndata = sp.pydantic_form(key=\"my_form\", model=ExampleModel)\nif data:\n st.json(data.json())\n```\n\n### Dataclasses Support\n\n```python\nimport dataclasses\nimport json\n\nimport streamlit as st\nfrom pydantic.json import pydantic_encoder\n\nimport st_pydantic as sp\n\n\n@dataclasses.dataclass\nclass ExampleModel:\n some_number: int\n some_boolean: bool\n some_text: str = \"default input\"\n\n\ndata = sp.pydantic_form(key=\"my_form\", model=ExampleModel)\nif data:\n st.json(json.dumps(data, default=pydantic_encoder))\n```\n\n### Complex Nested Model\n\n```python\nfrom enum import Enum\nfrom typing import Set\n\nimport streamlit as st\nfrom pydantic import BaseModel, Field, ValidationError, parse_obj_as\n\nimport st_pydantic as sp\n\n\nclass OtherData(BaseModel):\n text: str\n integer: int\n\n\nclass SelectionValue(str, Enum):\n FOO = \"foo\"\n BAR = \"bar\"\n\n\nclass ExampleModel(BaseModel):\n long_text: str = Field(..., description=\"Unlimited text property\")\n integer_in_range: int = Field(\n 20,\n ge=10,\n lt=30,\n multiple_of=2,\n description=\"Number property with a limited range.\",\n )\n single_selection: SelectionValue = Field(\n ..., description=\"Only select a single item from a set.\"\n )\n multi_selection: Set[SelectionValue] = Field(\n ..., description=\"Allows multiple items from a set.\"\n )\n single_object: OtherData = Field(\n ...,\n description=\"Another object embedded into this model.\",\n )\n\n\ndata = sp.pydantic_form(key=\"my_form\", model=ExampleModel)\nif data:\n st.json(data.json())\n```\n\n### Render Input\n\n```python\nfrom pydantic import BaseModel\n\nimport st_pydantic as sp\n\n\nclass ExampleModel(BaseModel):\n some_text: str\n some_number: int = 10 # Optional\n some_boolean: bool = True # Option\n\n\ninput_data = sp.pydantic_input(\"model_input\", ExampleModel, use_sidebar=True)\n```\n\n### Render Output\n\n```python\nimport datetime\n\nfrom pydantic import BaseModel, Field\n\nimport st_pydantic as sp\n\n\nclass ExampleModel(BaseModel):\n text: str = Field(..., description=\"A text property\")\n integer: int = Field(..., description=\"An integer property.\")\n date: datetime.date = Field(..., description=\"A date.\")\n\n\ninstance = ExampleModel(text=\"Some text\", integer=40, date=datetime.date.today())\nsp.pydantic_output(instance)\n```\n\n### Custom Form\n\n```python\nimport streamlit as st\nfrom pydantic import BaseModel\n\nimport st_pydantic as sp\n\n\nclass ExampleModel(BaseModel):\n some_text: str\n some_number: int = 10\n some_boolean: bool = True\n\n\nwith st.form(key=\"pydantic_form\"):\n sp.pydantic_input(key=\"my_input_model\", model=ExampleModel)\n submit_button = st.form_submit_button(label=\"Submit\")\n```\n\n## Support & Feedback\n\n| Type | Channel |\n| ------------------------ | ------------------------------------------------------ |\n| \ud83d\udea8 **Bug Reports** | <a href=\"https://github.com/lukasmasuch/st-pydantic/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3Abug+sort%3Areactions-%2B1-desc+\" title=\"Open Bug Report\"><img src=\"https://img.shields.io/github/issues/lukasmasuch/st-pydantic/bug.svg?label=bug\"></a> |\n| \ud83c\udf81 **Feature Requests** | <a href=\"https://github.com/lukasmasuch/st-pydantic/issues?q=is%3Aopen+is%3Aissue+label%3Afeature+sort%3Areactions-%2B1-desc\" title=\"Open Feature Request\"><img src=\"https://img.shields.io/github/issues/lukasmasuch/st-pydantic/feature.svg?label=feature%20request\"></a> |\n| \ud83d\udc69\u200d\ud83d\udcbb **Usage Questions** | <a href=\"https://github.com/lukasmasuch/st-pydantic/issues?q=is%3Aopen+is%3Aissue+label%3Asupport+sort%3Areactions-%2B1-desc\" title=\"Open Support Request\"> <img src=\"https://img.shields.io/github/issues/lukasmasuch/st-pydantic/support.svg?label=support%20request\"></a> |\n| \ud83d\udce2 **Announcements** | <a href=\"https://twitter.com/lukasmasuch\" title=\"Follow me on Twitter\"><img src=\"https://img.shields.io/twitter/follow/lukasmasuch.svg?style=social&label=Follow\"> |\n\n## Documentation\n\nThe API documentation can be found [here](./docs). To generate UI elements, you can use the high-level [`pydantic_form`](./docs/st_pydantic.ui_renderer.md#function-pydantic_form) method. Or the more flexible lower-level [`pydantic_input`](./docs/st_pydantic.ui_renderer.md#function-pydantic_input) and [`pydantic_output`](./docs/st_pydantic.ui_renderer.md#function-pydantic_output) methods. See the [examples](#examples) section on how to use those methods.\n\n## Contribution\n\n- Pull requests are encouraged and always welcome. Read our [contribution guidelines](https://github.com/lukasmasuch/st-pydantic/tree/main/CONTRIBUTING.md) and check out [help-wanted](https://github.com/lukasmasuch/st-pydantic/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A\"help+wanted\"+sort%3Areactions-%2B1-desc+) issues.\n- Submit Github issues for any [feature request and enhancement](https://github.com/lukasmasuch/st-pydantic/issues/new?assignees=&labels=feature&template=02_feature-request.md&title=), [bugs](https://github.com/lukasmasuch/st-pydantic/issues/new?assignees=&labels=bug&template=01_bug-report.md&title=), or [documentation](https://github.com/lukasmasuch/st-pydantic/issues/new?assignees=&labels=documentation&template=03_documentation.md&title=) problems.\n- By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/lukasmasuch/st-pydantic/blob/main/.github/CODE_OF_CONDUCT.md).\n- The [development section](#development) below contains information on how to build and test the project after you have implemented some changes.\n\n## Development\n\nTo build the project and run the style/linter checks, execute:\n\n```bash\nmake install\nmake check\n```\n\nRun `make help` to see additional commands for development.\n\n---\n\nLicensed **MIT**. Created and maintained with \u2764\ufe0f by developers from Berlin.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Auto-generate Streamlit UI from Pydantic models and dataclasses.",
"version": "0.3.1",
"project_urls": {
"Homepage": "https://github.com/MatanRubin/st-pydantic/",
"Repository": "https://github.com/MatanRubin/st-pydantic"
},
"split_keywords": [
"streamlit",
" pydantic",
" dataclasses",
" ui",
" forms",
" validation",
" schema"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3919926e972ccc0358602f56101ac01322f9ca8cdcdf3429a18212c86067b9d3",
"md5": "5e87045695e5e0a4a33aaaf26f354f28",
"sha256": "27610a40725e36f72ded1f23ce4ded71c43654832516189befb8b886770b9486"
},
"downloads": -1,
"filename": "st_pydantic-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5e87045695e5e0a4a33aaaf26f354f28",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 17783,
"upload_time": "2024-07-21T14:07:28",
"upload_time_iso_8601": "2024-07-21T14:07:28.961482Z",
"url": "https://files.pythonhosted.org/packages/39/19/926e972ccc0358602f56101ac01322f9ca8cdcdf3429a18212c86067b9d3/st_pydantic-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7cd23e2bff1e22dde3a866a6e62b7b4e41dd6e600b35cdf3d50eaec22d714dbe",
"md5": "2b8d6f4b8222bc4585c8e0ae51df3caf",
"sha256": "2f3b7e0910253516991844ee045cf44034501207a2d37ce8d2eab84fd7a96536"
},
"downloads": -1,
"filename": "st_pydantic-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "2b8d6f4b8222bc4585c8e0ae51df3caf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 19578,
"upload_time": "2024-07-21T14:07:29",
"upload_time_iso_8601": "2024-07-21T14:07:29.963047Z",
"url": "https://files.pythonhosted.org/packages/7c/d2/3e2bff1e22dde3a866a6e62b7b4e41dd6e600b35cdf3d50eaec22d714dbe/st_pydantic-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-21 14:07:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MatanRubin",
"github_project": "st-pydantic",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "st-pydantic"
}