Comments (3)
Hey @gaborbernat, thx for pointing this out. Is there any info on how one may support both v1 and v2 of Pydantic? While switching to v2 completely will break things for the library users.
from sdk-python.
I don't think there's support for supporting both... You could do some gimnastics to switch implementation based on detected version 🤷♂️ but will get messy.
from sdk-python.
The main problem could be testing but the pydantic V2 implementation includes the old V1, namespaced in the pydantic.v1
module.
It looks horrible but importing the BaseModel
like this might work:
pydantic_version = pydantic.version.VERSION.split('.')[0]
from pydantic import BaseModel as BaseModelV2
if pydantic_version == '1'
from pydantic BaseModel as BaseModelV1
else
from pydantic.v1 BaseModel as BaseModelV1
class _CloudEventBaseV1(BaseModelV1):
# Existing implementation
class _CloudEventBaseV2(BaseModelV2):
# Pydantic V2 configured model
if pydantic_version == '1':
CloudEvent = _CloudEventBaseV1
else:
CloudEvent = _CloudEventBaseV2
It looks horrible, I know.
from sdk-python.
Related Issues (20)
- Evaluate `cibuildwheels`
- optional pydantic support HOT 7
- `_json_or_string` fails on malformed unicode buffers HOT 2
- Encoded JSON data is not set correctly inside data field HOT 2
- Breaking Changes introduced in version 1.6.0 HOT 3
- Add support for CloudEvents v1.0.2 HOT 1
- Kafka protocol support HOT 4
- nested pydantic cloudevent serialization doesn't work HOT 3
- CloudEvent equality is incorrect on none attributes HOT 4
- Invalid constraint error HOT 2
- Method to_structured can't control NON-ASCII chars HOT 5
- cloudevents.kafka.conversion.from_structured incorrectly handles headers tuple HOT 2
- `cloudevents.kafka.to_binary` checks for a `content-type` attribute, which would not be a valid attribute name HOT 5
- `.json()` unable to serialize datetime elements in `data` payload HOT 3
- Support for AMQP 0-9-1 protocol - RabbitMQ HOT 1
- Review SDK maintainers activity as of March 21, 2024 HOT 2
- to_json on a pydantic.CloudEvent does not include extension values HOT 4
- example should be examples in Field()? HOT 2
- to_structured for Kafka does not create ce_ prefixed headers HOT 2
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 sdk-python.