Comments (7)
msgpack and pyyaml are going to be extra requirements in the next 3.0 version.
The existing mixins will be imported from mashumaro.mixins.msgpack
and mashumaro.mixins.yaml
.
from mashumaro.
@rominf I don't agree with you. If i make dependencies optional, it will break compatibility for those who already use mashumaro
. If you really don't want to install dependencies for some reason, you can tell pip to ignore them with --no-dependencies
flag.
from mashumaro.
Can you explain why do you think "it will break compatibility for those who already use mashumaro
"? Users who already have mashumaro
installed will not notice the change, as they will not even call pip
for installation. On the other hand, if they would want to update all dependencies (but probably they won't if they use only conversion to and from dict
only, as I), they will have do:
$ pip install -U mashumaro[msgpack,yaml]
That can be documented.
Also, how can I tell poetry
not to install the dependencies? I don't think it's possible.
from mashumaro.
Users who already have mashumaro installed will not notice the change, as they will not even call pip for installation.
You're totally wrong here. The users should be able to install the current major version of mashumaro
without making changes to their requirements. If setuptools had the ability to specify default "extras" dependencies, I would use it. There is the issue for that.
I will consider to make pyyaml
and msgpack
dependencies optional in the next major release.
from mashumaro.
You're totally wrong here. The users should be able to install the current major version of mashumaro without making changes to their requirements.
I don't agree with you, in my opinion it's a minor issue for users. But anyway, you are the creator of the library and I respect your opinion.
I will consider to make
pyyaml
andmsgpack
dependencies optional in the next major release.
Nice to hear. I hope you will do it, as it will attract more users.
from mashumaro.
my 2c: I really like mashumaro, I was thinking of replacing my use of cattrs with it, but decided not to because it forces my application to depend on msgpack and yaml which I am not planning on using. Please make them extras! Thanks
from mashumaro.
And finally these two packages are optional in 3.0.
from mashumaro.
Related Issues (20)
- Add support for PEP 696 HOT 1
- Can immutable dataclasses be hashed as dictionary keys? HOT 4
- Add an option to omit values equal to defaults on serialization
- Add an option to avoid collection data types copying
- Add support for LiteralString
- Generic dataclasses with Hashable typevar bound do not work HOT 3
- Query string support HOT 5
- Benchmark is not working in master branch HOT 2
- omit_default=True evaluates default_factory value at declaration time which can cause a circular reference HOT 3
- Multiple aliases for field HOT 6
- "`dict[str, T]` as a field type is not supported" HOT 2
- InitVar with no default value HOT 6
- The types defined inside the function result in syntactically invalid generated code
- Allow for more complex logic for subclass Discrimnator field matching HOT 3
- TypedDicts not working with `from __future__ import annotations` HOT 2
- omit_default breaks IntFlag serialization HOT 1
- Using Union with int/float casts to whichever appears first HOT 3
- Not parsing Generics correctly HOT 2
- Unserializable field in 3.12 if defined as a Generic TypeVar with mixin bounds HOT 6
- Allow propagation of class based discriminator settings to subclasses HOT 3
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 mashumaro.