| @@ 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 | ||