Enums#
policyengine_core.enums
(renamed from .indexed_enums
) contains definitions for enumerable types, which can be used to specify categorical data types.
Enum#
- class policyengine_core.enums.enum.Enum(value)[source]#
Bases:
enum.Enum
Enum based on enum34, whose items have an index.
- classmethod encode(array: Union[policyengine_core.enums.enum_array.EnumArray, numpy.int64, numpy.float64, numpy.object_]) policyengine_core.enums.enum_array.EnumArray [source]#
Encode a string numpy array, an enum item numpy array, or an int numpy array into an
EnumArray
. SeeEnumArray.decode
for decoding.- Parameters
array (numpy.ndarray) – Array of string identifiers, or of enum items, to encode.
- Returns
An
EnumArray
encoding the input array values.- Return type
For instance:
>>> string_identifier_array = asarray(['free_lodger', 'owner']) >>> encoded_array = HousingOccupancyStatus.encode(string_identifier_array) >>> encoded_array[0] 2 # Encoded value
>>> free_lodger = HousingOccupancyStatus.free_lodger >>> owner = HousingOccupancyStatus.owner >>> enum_item_array = asarray([free_lodger, owner]) >>> encoded_array = HousingOccupancyStatus.encode(enum_item_array) >>> encoded_array[0] 2 # Encoded value
EnumArray#
- class policyengine_core.enums.enum_array.EnumArray(input_array: numpy.int_, possible_values: Optional[Type[Enum]] = None)[source]#
Bases:
numpy.ndarray
Numpy array subclass representing an array of enum items.
EnumArrays are encoded as
int
arrays to improve performance- decode() numpy.object_ [source]#
Return the array of enum items corresponding to self.
For instance:
>>> enum_array = household('housing_occupancy_status', period) >>> enum_array[0] >>> 2 # Encoded value >>> enum_array.decode()[0] <HousingOccupancyStatus.free_lodger: 'Free lodger'>
Decoded value: enum item