Comments (3)
@konradhalas -- thanks so much for this library! I am trying to use it to convert a large structure loaded from yaml. As you note, converting individual strings is not a problem. However, walking the data structure and recursively converting them before passing the structure to dacite seems like duplicate work.
Perhaps you could consider a convert_keys
option, that took a function to pre-process keys as they were encountered during conversion. That way, I could pass my favorite "camelCase-to-snake_case" function (or for that matter, "arbitrary string to snake case slug" function) without you having to wade into "processing data". (?) Happy to create a separate feature request if this seems more doable.
from dacite.
Not only that, it would be awesome to support removing trailing spaces from keys (e.g. my key is called from
so I want to map it to from_
from dacite.
Hi @kiddick - thank you very much for reporting issue.
Unfortunately, I don't think it's a good idea to add any "data" processing features into dacite
. I want to keep it simple.
I'm pretty sure that there are plenty of "camelCase-to-snake_case" libs in PyPI. You just have to call such lib before passing data to dacite
.
from dacite.
Related Issues (20)
- With strict_unions_match, KeyError is raised instead of UnionMatchError HOT 3
- missing pypi source tarball for 1.8.1 release HOT 3
- Subsequent calls of from_dict on dataclasses that contain Optional[type] and type | None breaks behaviour because of caching HOT 1
- Add missing value factory for from_dict()
- dict cannot be matched if keys are specified as enums in dataclass HOT 3
- Using dacite fails at runtime with pkg_resources.DistributionNotFound HOT 2
- DefaultValueNotFoundError for Optional fields
- `strict_union_match` shadows the Error raised in `__post_init__`
- ValueError: dictionary update sequence element #0 has length 1; 2 is required HOT 1
- from_dict resets `dataclasses.field` with argument `init=False` and `default_factory` HOT 1
- Dacite will put an `int` into an `Optional[float]` field but not a `float | None` field.
- Should it work with Dict[sometype, sometype]?
- Add support for Python 3.12 HOT 2
- dataclass does not accept union of dataclasses?
- Dictionary matching errors with object type key
- dacite.from_dict: `NamedTuple` type hook does not work with `cast=[tuple]` (regression from v1.7.0)
- `WrongTypeError` - `should be "str" instead of value ... of type "int"` - Important when loading data from yaml HOT 1
- subclassing support for type_hooks HOT 1
- Python 3.9+ style collections with forward references fails to resolve types HOT 1
- Missing sdist for `dacite==1.8.1`
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 dacite.