@@ -27,49 +27,37 @@ class Context(UserDict):
27
27
28
28
> context.my_data = 'hello'
29
29
> context.my_data # 'hello'
30
+
31
+ The following property will contain all data of the dictionary
32
+ > context.data
30
33
"""
31
34
32
35
# NOTE for maintainer
33
36
# A dictionary that keeps track of whether it's been used as dictionary
34
37
# or if values has been set with dot notation. We expect things to be set
35
38
# in dot notation so a warning is issued until next major version (1.0)
36
39
37
- def __init__ (self , * args , ** kwargs ):
38
- super ().__init__ (* args , ** kwargs )
39
- self ._attr_data = {}
40
-
41
40
def __getitem__ (self , key ):
42
41
data = self .__dict__
43
- if (
44
- data ["data" ].get (key , KeyError ) is KeyError
45
- and data ["_attr_data" ].get (key , KeyError ) is KeyError
46
- ):
42
+ if data ["data" ].get (key , KeyError ) is KeyError :
47
43
raise KeyError (key )
48
- return self .data .get (key ) or self ._attr_data .get (key )
49
-
50
- def __setitem__ (self , key , item ):
51
- if not self .__dict__ .get ("data" ):
52
- self .__dict__ ["data" ] = {}
53
- self .__dict__ ["data" ][key ] = item
44
+ return self .data .get (key )
54
45
55
46
def __getattr__ (self , key ):
56
47
if not self .__dict__ .get ("data" ):
57
48
self .__dict__ ["data" ] = {}
58
- if not self .__dict__ .get ("_attr_data" ):
59
- self .__dict__ ["_attr_data" ] = {}
60
49
61
- if (
62
- self .__dict__ ["data" ].get (key , KeyError ) is KeyError
63
- and self .__dict__ ["_attr_data" ].get (key , KeyError ) is KeyError
64
- ):
50
+ if self .__dict__ ["data" ].get (key , KeyError ) is KeyError :
65
51
raise AttributeError (key )
66
- result = self .data .get (key ) or self . _attr_data . get ( key )
52
+ result = self .data .get (key )
67
53
return result
68
54
69
55
def __setattr__ (self , key , value ):
70
- if not self .__dict__ .get ("_attr_data" ):
71
- self .__dict__ ["_attr_data" ] = {}
72
- self .__dict__ ["_attr_data" ][key ] = value
56
+ if not self .__dict__ .get ("data" ):
57
+ self .__dict__ ["data" ] = {}
58
+ if key == "data" and value == {}:
59
+ return
60
+ self .__dict__ ["data" ][key ] = value
73
61
74
62
75
63
class Reflex :
0 commit comments