PyCNC
1""" This module describes system wide enums.
2"""
3
4
5class Enum(object):
6""" Base class for enums
7"""
8__global_increment = 1
9
10def __init__(self, for_str):
11""" Initialize base class for enumerates.
12:param for_str: return value for build in str() function
13"""
14self.value = Enum.__global_increment
15self._str = for_str
16Enum.__global_increment += 1
17
18def __eq__(self, other):
19return self.value == other.value
20
21def __str__(self):
22return self._str
23
24def __hash__(self):
25return self.value
26
27
28class Plane(Enum):
29""" Enum for choosing plane for circular interpolation.
30"""
31pass
32
33PLANE_XY = Plane("XY")
34PLANE_ZX = Plane("ZX")
35PLANE_YZ = Plane("YZ")
36
37
38class RotationDirection(Enum):
39""" Enum for choosing rotation direction.
40"""
41pass
42
43CW = RotationDirection("CW")
44CCW = RotationDirection("CCW")
45
46
47class Heaters(Enum):
48""" Enum for selecting heater.
49"""
50pass
51
52HEATER_EXTRUDER = Heaters("extruder")
53HEATER_BED = Heaters("bed")
54