|
3 | 3 | # %% auto 0 |
4 | 4 | __all__ = ['defaults', 'null', 'num_methods', 'rnum_methods', 'inum_methods', 'arg0', 'arg1', 'arg2', 'arg3', 'arg4', 'Self', |
5 | 5 | 'ifnone', 'maybe_attr', 'basic_repr', 'is_array', 'listify', 'tuplify', 'true', 'NullType', 'tonull', |
6 | | - 'get_class', 'mk_class', 'wrap_class', 'ignore_exceptions', 'exec_local', 'risinstance', 'Inf', 'in_', |
7 | | - 'ret_true', 'ret_false', 'stop', 'gen', 'chunked', 'otherwise', 'custom_dir', 'AttrDict', 'NS', |
| 6 | + 'get_class', 'mk_class', 'wrap_class', 'ignore_exceptions', 'exec_local', 'risinstance', 'ver2tuple', 'Inf', |
| 7 | + 'in_', 'ret_true', 'ret_false', 'stop', 'gen', 'chunked', 'otherwise', 'custom_dir', 'AttrDict', 'NS', |
8 | 8 | 'get_annotations_ex', 'eval_type', 'type_hints', 'annotations', 'anno_ret', 'signature_ex', 'union2tuple', |
9 | 9 | 'argnames', 'with_cast', 'store_attr', 'attrdict', 'properties', 'camel2words', 'camel2snake', 'snake2camel', |
10 | 10 | 'class2attr', 'getcallable', 'getattrs', 'hasattrs', 'setattrs', 'try_attrs', 'GetAttrBase', 'GetAttr', |
@@ -163,6 +163,10 @@ def risinstance(types, obj=None): |
163 | 163 | return any(t.__name__ in types for t in type(obj).__mro__) |
164 | 164 | return isinstance(obj, types) |
165 | 165 |
|
| 166 | +# %% ../nbs/01_basics.ipynb |
| 167 | +def ver2tuple(v:str)->tuple: |
| 168 | + return tuple(int(o or 0) for o in re.search(r'(\d+)(?:\.(\d+))?(?:\.(\d+))?', v).groups()) |
| 169 | + |
166 | 170 | # %% ../nbs/01_basics.ipynb |
167 | 171 | class _InfMeta(type): |
168 | 172 | @property |
|
0 commit comments