pymel.util.enum.EnumDict

digraph inheritanceb695497f03 { rankdir=TB; ranksep=0.15; nodesep=0.15; size="8.0, 12.0"; "EnumDict" [fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",URL="#pymel.util.enum.EnumDict",style="setlinewidth(0.5)",tooltip="This class provides a dictionary type for storing enumerations. Keys are string labels, while",height=0.25,shape=box,fontsize=8]; "EquivalencePairs" -> "EnumDict" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EquivalencePairs" [fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",URL="../pymel.util.utilitytypes/pymel.util.utilitytypes.EquivalencePairs.html#pymel.util.utilitytypes.EquivalencePairs",style="setlinewidth(0.5)",tooltip="A mapping object similar to a TwoWayDict, with the addition that indexing",height=0.25,shape=box,fontsize=8]; "TwoWayDict" -> "EquivalencePairs" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TwoWayDict" [fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",URL="../pymel.util.utilitytypes/pymel.util.utilitytypes.TwoWayDict.html#pymel.util.utilitytypes.TwoWayDict",style="setlinewidth(0.5)",tooltip="A dictionary that can also map in reverse: value to key.",height=0.25,shape=box,fontsize=8]; }

class EnumDict(keys, **kwargs)

This class provides a dictionary type for storing enumerations. Keys are string labels, while values are enumerated integers.

To instantiate, pass a sequence of string arguments to the EnumDict() constructor:

>>> from enum import EnumDict
>>> Colours = EnumDict(['red', 'blue', 'green'])
>>> Weekdays = EnumDict(['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'])
>>> sorted(Weekdays.items())
[('fri', 4), ('mon', 0), ('sat', 5), ('sun', 6), ('thu', 3), ('tue', 1), ('wed', 2)]

Alternately, a dictionary of label-value pairs can be provided:

>>> Numbers = EnumDict({'one': 1, 'two': 2, 'hundred' : 100, 'thousand' : 1000 } )

To convert from one representation to another, just use normal dictionary retrieval, it works in either direction:

>>> Weekdays[4]
'fri'
>>> Weekdays['fri']
4

If you need a particular representation, but don’t know what you’re starting from ( for example, a value that was passed as an argument ) you can use EnumDict.key or EnumDict.value:

>>> Weekdays.value(3)
3
>>> Weekdays.value('thu')
3
>>> Weekdays.key(2)
'wed'
>>> Weekdays.key('wed')
'wed'
key(index)

get a key value from an index. this method always returns a key. if a valid key is passed instead of an index, the key will be returned unchanged. this is useful when you need a key, but are not certain whether you are starting with a key or an index.

>>> units = EnumDict(['invalid', 'inches', 'feet', 'yards', 'miles', 'millimeters', 'centimeters', 'kilometers', 'meters'])
>>> units.key(2)
'feet'
>>> units.key('inches')
'inches'
>>> units.key(10)  
Traceback (most recent call last):
  ...
ValueError: invalid enumerator value: 10
>>> units.key('hectares')
Traceback (most recent call last):
  ...
ValueError: invalid enumerator key: 'hectares'
keys()

return a list of keys as strings ordered by their enumerator value

value(key)

get an index value from a key. this method always returns an index. if a valid index is passed instead of a key, the index will be returned unchanged. this is useful when you need an index, but are not certain whether you are starting with a key or an index.

>>> units = EnumDict(['invalid', 'inches', 'feet', 'yards', 'miles', 'millimeters', 'centimeters', 'kilometers', 'meters'])
>>> units.value('inches')
1
>>> units.value(3)
3
>>> units.value('hectares')
Traceback (most recent call last):
  ...
ValueError: invalid enumerator key: 'hectares'
>>> units.value(10) 
Traceback (most recent call last):
  ...
ValueError: invalid enumerator value: 10
values()

return a list of ordered integer values