xoa.misc.XEnumMeta

class xoa.misc.XEnumMeta(cls, bases, classdict, *, boundary=None, _simple=False, **kwds)[source]

Exented version ofnum meta-class

This version supports:

  • __contains__() (in) with strings

  • a better __str__() (str()) method

  • a get_rst() methods and :attr`str` and rst_with_links properties.

Example

In [1]: from enum import IntEnum

In [2]: class regrid_methods(IntEnum, metaclass=XEnumMeta):
   ...:     linear = 1
   ...:     bilinear = 1
   ...:     nearest = 0
   ...:     cellave = -1
   ...: 

In [3]: regrid_methods
Out[3]: regrid_methods: 1|"linear"|"bilinear", 0|"nearest", -1|"cellave"

In [4]: 'linear' in regrid_methods
Out[4]: True

In [5]: 'xxx' in regrid_methods
Out[5]: False

In [6]: 1 in regrid_methods
Out[6]: True

In [7]: str(regrid_methods)
Out[7]: '1|"linear"|"bilinear", 0|"nearest", -1|"cellave"'

In [8]: regrid_methods.get_rst(with_links=True, link_module="xoa.tutu")
Out[8]: ':attr:`1|"linear"|"bilinear"<xoa.tutu.regrid_methods.linear>`, :attr:`0|"nearest"<xoa.tutu.regrid_methods.nearest>`, :attr:`-1|"cellave"<xoa.tutu.regrid_methods.cellave>`'

In [9]: regrid_methods.rst
Out[9]: '``1|"linear"|"bilinear"``, ``0|"nearest"``, ``-1|"cellave"``'
__init__(*args, **kwargs)

Methods

get_rst([with_links, link_module])

mro()

Return a type's method resolution order.

Attributes

default

rst

rst_with_links