@@ 97-127 (lines=31) @@ | ||
94 | ||
95 | return p |
|
96 | ||
97 | def decorator_other(fn): |
|
98 | ||
99 | def _get(self): |
|
100 | v = pydash.get(self.raw, path) |
|
101 | ||
102 | if v is None: |
|
103 | return None |
|
104 | ||
105 | return anytype(v) |
|
106 | ||
107 | def _set(self, value): |
|
108 | v = fn(self, value) |
|
109 | pydash.set_(self.raw, path, v) |
|
110 | ||
111 | return v |
|
112 | ||
113 | doc = fn.__doc__ |
|
114 | ||
115 | if doc is None: |
|
116 | doc = '<AUTO>' |
|
117 | ||
118 | typename = anytype.__name__ |
|
119 | ||
120 | doc = _handle_auto_doc_for_property( |
|
121 | fn.__doc__, |
|
122 | typename |
|
123 | ) |
|
124 | ||
125 | p = property(_get, _set, None, doc) |
|
126 | ||
127 | return p |
|
128 | ||
129 | if anytype == str: |
|
130 | return decorator_str |
|
@@ 67-95 (lines=29) @@ | ||
64 | Creates new strict-typed PROPERTY for classes inherited from :class:`dict` |
|
65 | """ |
|
66 | ||
67 | def decorator_str(fn): |
|
68 | ||
69 | def _get(self): |
|
70 | v = pydash.get(self.raw, path) |
|
71 | ||
72 | if v is None: |
|
73 | return None |
|
74 | ||
75 | return six.text_type(v) |
|
76 | ||
77 | def _set(self, value): |
|
78 | v = six.text_type(value) |
|
79 | v = fn(self, v) |
|
80 | pydash.set_(self.raw, path, v) |
|
81 | ||
82 | return v |
|
83 | ||
84 | doc = fn.__doc__ |
|
85 | ||
86 | typename = type(six.text_type('')).__name__ |
|
87 | ||
88 | doc = _handle_auto_doc_for_property( |
|
89 | fn.__doc__, |
|
90 | typename |
|
91 | ) |
|
92 | ||
93 | p = property(_get, _set, None, doc) |
|
94 | ||
95 | return p |
|
96 | ||
97 | def decorator_other(fn): |
|
98 |