[HN Gopher] Pydantic
___________________________________________________________________
Pydantic
Author : marinesebastian
Score : 56 points
Date : 2022-01-22 21:24 UTC (1 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| JPKab wrote:
| We use this extensively as probably half of the Python
| programmers on HN do. It's great, but there are plenty of
| alternatives out there as well, especially for performance. Our
| specific use case is IO limited so it's perfect for that.
| jamil7 wrote:
| Care to list some? I disabled it on a few endpoints of our
| backend because the performance was awful for GeoJSON.
| lazypenguin wrote:
| https://www.attrs.org/en/stable/ would be the main
| alternative
| hackandtrip wrote:
| Are those alternatives faster according to benchmark?
|
| In my experience, the bottleneck is either: - JSON parsing
| and dumping; the solution for me is ORJSON, fantastic
| wrapper to use fast JSON serialisation for most common
| fields, and also datetime. - Validation - if you choose to
| validate your data, pydantic can indeed be slow... But it's
| not Pydantic the problem, but the validation that you apply
| to your data.
| johnwheeler wrote:
| Marshmallow is another if you're talking schemas,
| validation, and json serialization.
| dang wrote:
| Past related threads:
|
| _PEP 563, PEP 649 and the future of pydantic and FastAPI_ -
| https://news.ycombinator.com/item?id=26826158 - April 2021 (150
| comments)
|
| _Show HN: Pydantic - Data validation using Python 3.6 type
| hinting_ - https://news.ycombinator.com/item?id=14477222 - June
| 2017 (27 comments)
| oars wrote:
| Fantastic project, but if you're looking for speed this isn't it.
| bredren wrote:
| What do you look to for a more balanced speed / feature set?
| Starlevel001 wrote:
| Using mkdocs for any Python project is automatically a massive
| red flag. No thanks!
| metadat wrote:
| HN Guidelines state, among other things worth noting [1]:
|
| > Please don't complain about tangential annoyances--things
| like article or website formats, name collisions, or back-
| button breakage. They're too common to be interesting.
|
| [1] https://news.ycombinator.com/newsguidelines.html
| shroompasta wrote:
| Looks great.
|
| I'm hesitant, however, since marshmallow-sqlalchemy provides full
| integration with your SQLAlchemy models, but pydantic-sqlalchemy
| only is for generating Pydantic models based on SQLAlchemy
| models, and it seems as if it's still experimental (Why does it
| have more stars? :thinking:)
|
| Otherwise, just between pydantic and marshmallow for straight up
| validations, it seems Pydantic is more legible and easier to use
| at first sight.
|
| Will switch if pydantic had full integration with SQLAlchemy.
|
| And for those of you looking down on me for using ORMs (yes, i
| know some of you exist), I use both raw SQL and SQLAlchemy.
|
| I find it multitudes easier to build models and deal with
| migrations in SQLAlchemy than writing scripts.
| smoe wrote:
| The creator of FastAPI and pydantic-sqlalchemy has recently
| released a new library: SQLModel. https://sqlmodel.tiangolo.com
|
| It is a thin layer on top of Pydantic and SQLAlchemy. I haven't
| used it yet, so can't speak out of experience, but I think it
| is basically exactly what you describe.
| shroompasta wrote:
| looks promising.
|
| At first sight it seems like you still have to write a
| "schema" for the SQLModel based on your SQLALchemy model - so
| basically, two sources of truth.
|
| If you edit your SQLAlchemy model, you'll also have to edit
| your SQLModel.
|
| sqlalchemy-marshmallow allows you to build your schema based
| on your SQLAlchemy model.
|
| Other than that, I'm still somewhat intrigued.
|
| Thanks for the suggestion.
| null_deref wrote:
| Using Pydantic, FastAPI and OpenAPI generator tool was a decision
| which increased my speed of writing code by a lot. Plus it didn't
| hurt, that FastAPI has an excellent documentation (highly
| recommend the part that describes using FastAPI with SQLAlchemy).
| hackandtrip wrote:
| Love FastAPI for lot of concepts that it helped to make
| mainstream, such as typing-based-validation, but its
| documentation is lacking.
|
| I love the tutorials, but an API reference is just as
| important; I may not want to check out long tutorials about
| things I already read, but check a detailed description of each
| function would be super helpful - other frameworks such as
| Sanic have it.
|
| I think it's in the roadmap, kudos for that, and hope that it
| will get a few more maintainers to speed up the process
| BerislavLopac wrote:
| OpenAPI generation is cool, but using the OpenAPI as the
| specification of even better. ;)
___________________________________________________________________
(page generated 2022-01-22 23:00 UTC)