Comments (9)
Acknowledged, will look into this :)
from cattrs.
Thanks 👍
from cattrs.
From what I can tell this is fixed in 0460fbe
from cattrs.
it looks like the problem still persists and it is more generic one:
from typing import Tuple, Set
from datetime import datetime
import cattr
import attr
import pytest
TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
COMPLEX_TYPE = Tuple[Tuple[str, datetime]]
COMPLEX_TYPE_BAD = Set[Tuple[str, datetime]]
cattr.register_unstructure_hook(
datetime, lambda dt: datetime.strftime(dt, format=TIME_FORMAT)
)
cattr.register_structure_hook(
datetime, lambda dt_str, _: datetime.strptime(dt_str, TIME_FORMAT)
)
def test_cattrs_io_for_a():
@attr.s(auto_attribs=True)
class A:
ds: datetime = attr.ib(factory=datetime.utcnow)
a = A()
a_ser = cattr.unstructure(a)
a_des = cattr.structure(a_ser, A)
assert isinstance(a_des, A)
def test_cattrs_io_for_b():
@attr.s(auto_attribs=True)
class B:
ds: COMPLEX_TYPE = attr.ib(factory=set)
b = B((("a", datetime.utcnow()), ("b", datetime.utcnow())))
b_ser = cattr.unstructure(b)
b_des = cattr.structure(b_ser, B)
assert isinstance(b_des, B)
def test_cattrs_io_for_b_bad():
@attr.s(auto_attribs=True)
class B:
ds: COMPLEX_TYPE_BAD = attr.ib(factory=set)
b = B({("a", datetime.utcnow()), ("b", datetime.utcnow())})
b_ser = cattr.unstructure(b)
with pytest.raises(TypeError):
b_des = cattr.structure(b_ser, B)
assert isinstance(b_des, B)
COMPLEX_TYPE_BAD isnot being unstructured
cattrs==0.9.0
from cattrs.
The fix hasn't yet been released. Please try running this from the current master
from cattrs.
Thx
from cattrs.
Hello -- Just following up on this. Is this deployed PyPi?
from cattrs.
@bhargavrpatel the issue is still valid. Just tested it
from cattrs.
This has been fixed for a long time I believe, so closing.
from cattrs.
Related Issues (20)
- Structure failed with `typing_extensions.Any` HOT 3
- Constructor selection for structuring HOT 7
- Tagged Union: How to do structure/unstructure hook(s) for particular member type? HOT 4
- A dictionary gets structured into a list without errors/warnings HOT 2
- Question: Correct use of converters HOT 3
- Documentation does not explain unstruct_collection_overrides' input HOT 4
- Detailed validation exception groups with hook errors HOT 2
- cattrs effectively disables attrs validation HOT 3
- Covert to defaultdict instead of plain dict HOT 4
- How to recursively unstructure with hooks? HOT 5
- Dataclass structuring fails with misleading error message.
- Default field conversion conflicts with user-defined field converter function HOT 3
- [macOS] Error when trying to run tests: `ImportError: cannot import name 'CodecOptions' from 'bson'` HOT 2
- How to hook into structuring of a simple dict? HOT 6
- Incorrect dispatch in Python 3.12 HOT 4
- Why does structuring of datetime in attrs class need a structure hook? HOT 1
- `prefer_attrib_converters` doesn't work when the field is aliased HOT 2
- Register structure hook only for optional types HOT 2
- TYPE_CHECKING and init=False HOT 5
- Problem with tagged union example 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 cattrs.