datamodel-code-generator
pydantic
Our great sponsors
datamodel-code-generator | pydantic | |
---|---|---|
9 | 166 | |
2,221 | 18,226 | |
- | 4.2% | |
9.4 | 9.8 | |
7 days ago | 1 day ago | |
Python | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
datamodel-code-generator
-
tRPC – Move Fast and Break Nothing. End-to-end typesafe APIs made easy
Like generating pydantic models or dataclasses for an OpenAPI schema? I haven't needed to go in that direction myself, but this[0] looks promising!
Apologies if I've misunderstood your comment
-
OpenAPI v4 Proposal
I'm sorry, but you have completely misunderstood the purpose of Open API.
It is not a specification to define your business logic classes and objects -- either client or server side. Its goal is to define the interface of an API, and to provide a single source of truth that requests and responses can be validated against. It contains everything you need to know to make requests to an API; code generation is nice to have (and I use it myself, but mainly on the server side, for routing and validation), but not something required or expected from OpenAPI
For what it's worth, my personal preferred workflow to build an API is as follows:
1. Build the OpenAPI spec first. A smaller spec could easily be done by hand, but I prefer using a design tool like Stoplight [0]; it has the best Web-based OpenAPI (and JSON Schema) editor I have encountered, and integrates with git nearly flawlessly.
2. Use an automated tool to generate the API code implementation. Again, a static generation tool such as datamodel-code-generator [1] (which generates Pydantic models) would suffice, but for Python I prefer the dynamic request routing and validation provided by pyapi-server [2].
3. Finally, I use automated testing tools such as schemathesis [3] to test the implementation against the specification.
[1] https://koxudaxi.github.io/datamodel-code-generator/
-
Create Pydantic datamodel from huge JSON file with local datamodel-code-generator
The site also provide a link to the github repo of the underlying program.
-
PSA: I think this JSON to Pydantic converter is extremely useful for boilerplate model creation
Not sure who owns/hosts the site, but its based on this github repo.
-
My top python library
That's what datamodel-code-generator propose.
-
I use attrs instead of pydantic
had generally good experience creating typed wrappers for api's with json-schema-to-pydantic[0] converter
pydantic
-
utype VS pydantic - a user suggested alternative
2 projects | 15 Feb 2024
utype is a concise alternative of pydantic with simplified parameters and usages, supporting both sync/async functions and generators parsing, and capable of using native logic operators to define logical types like AND/OR/NOT, also provides custom type parsing by register mechanism that supports libraries like pydantic, attrs and dataclasses
-
🍹GinAI - Cocktails mixed with generative AI
The easiest implementation I found was to use a PyDantic class for my target schema — and use that as a parameter for the method call to “ChatCompletion.create()”. Here’s a fragment of the GinAI Python classes used.
-
FastStream: Python's framework for Efficient Message Queue Handling
Also, FastStream uses Pydantic to parse input JSON-encoded data into Python objects, making it easy to work with structured data in your applications, so you can serialize your input messages just using type annotations.
-
Introducing FastStream: the easiest way to write microservices for Apache Kafka and RabbitMQ in Python
Pydantic Validation: Leverage Pydantic's validation capabilities to serialize and validate incoming messages
-
FastAPI 0.100.0:Release Notes
Well the performance increase is so huge because pydantic1 is really really slow. And for using rust, I'd have expected more tbh…
I've been benchmarking pydantic v2 against typedload (which I write) and despite the rust, it still manages to be slower than pure python in some benchmarks.
The ones on the website are still about comparing to v1 because v2 was not out yet at the time of the last release.
pydantic's author will refuse to benchmark any library that is faster (https://github.com/pydantic/pydantic/pull/3264 https://github.com/pydantic/pydantic/pull/1525 https://github.com/pydantic/pydantic/pull/1810) and keep boasting about amazing performances.
On pypy, v2 beta was really really really slow.
- Pydantic 2.0
-
[DISCUSSION] What's your favorite Python library, and how has it helped you in your projects?
As for the most utilized and still loved library, that would probably be pydantic, it helps declaring types so convenient - be it dto's, models or just complex arguments - and plays nice with bunch of other libraries from it's own ecosystem.
-
popularity behind pydantic
I did read this ... Pydantic Docs.
-
Guide to Serverless & Lambda Testing — Part 2 — Testing Pyramid
Schema validations logic — I use Pydantic for input validation and schema validation (boto responses, API responses, input validation, etc.) use cases. The Pydantic schema can contain type and value constraint checks or even more complicated logic with the custom validator code.
What are some alternatives?
Cerberus - Lightweight, extensible data validation library for Python
nexe - 🎉 create a single executable out of your node.js apps
msgspec - A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML
SQLAlchemy - The Database Toolkit for Python
sqlmodel - SQL databases in Python, designed for simplicity, compatibility, and robustness.
mypy - Optional static typing for Python
pyparsing - Python library for creating PEG parsers [Moved to: https://github.com/pyparsing/pyparsing]
phonenumbers - Python port of Google's libphonenumber
dacite - Simple creation of data classes from dictionaries.
Lark - Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.
beanie - Asynchronous Python ODM for MongoDB
beartype - Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python.