xoa.misc.DefaultEnumMeta
- class xoa.misc.DefaultEnumMeta(cls, bases, classdict, *, boundary=None, _simple=False, **kwds)[source]
Enum meta-class that support default value and None
When the item is not provided or equal to
None
, the first declared item is returnedInspired from: https://stackoverflow.com/questions/44867597/is-there-a-way-to-specify-a-default-value-for-python-enums
Example
In [1]: from enum import IntEnum In [2]: class regrid_methods(IntEnum, metaclass=DefaultEnumMeta): ...: linear = 1 ...: bilinear = 1 ...: nearest = 0 ...: cellave = -1 ...: In [3]: regrid_methods() # default method Out[3]: <regrid_methods.linear: 1> In [4]: regrid_methods(None) # default method Out[4]: <regrid_methods.linear: 1> In [5]: regrid_methods(1) Out[5]: <regrid_methods.linear: 1> In [6]: regrid_methods[None] # default method Out[6]: <regrid_methods.linear: 1> In [7]: regrid_methods['linear'] Out[7]: <regrid_methods.linear: 1> In [8]: regrid_methods['cellave'] Out[8]: <regrid_methods.cellave: -1>
- __init__(*args, **kwargs)
Methods
get_rst
([with_links, link_module])mro
()Return a type's method resolution order.
Attributes