forked from DavidMertz/coalesce
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
36 lines (27 loc) · 1.37 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
This module is intended to ease access to nested data
structures—in any combination of key or attribue access to each
level of a hierarchy—where many paths in the tree may be missing.
Typically, such data is encountered in semi-structured formats
like JSON, YAML, or some XML, that is deserialized into Python
data structures.
PEP 505 attempts to address this need with the addition of a
number of new syntactic operators for attribute or item access
where a special type of failure mode "coalesces" None values.
Other libraries such as PyMaybe (https://pymaybe.readthedocs.io)
perform a similar operation, and are more mature and robust.
On the other hand, by utilizing `wrapt.ObjectProxy`, this simple
module manages to do some pretty neat stuff that even PyMaybe does
not.
In this library, I simply want to provide simple wrapper classes that
provide both what I think is more useful behavior and behavior that
is semantically equivalent to PEP 505.
Classes:
GreedyAccess:
Wrap an object so that nested attribute and item access
simply does not fail, but propagates a wrapped object
across such nested access.
NullCoalesce:
Wrap an object so that encountering a None (or other
indicated sentinel) at any level stops accessing further
attributes and unboxes as a None (or other sentinel).
Aliased as `NoneCoalesce`