sghorbal
Initial commit
537db6d
from enum import Enum
from typing import List, Literal
class Feature(Enum):
_name: str
_type: Literal['category', 'number', 'date']
CUSTOMER_JOB = ('job', 'category')
CUSTOMER_CITY = ('city', 'category')
CUSTOMER_STATE = ('state', 'category')
TRANSACTION_CATEGORY = ('category', 'category')
TRANSACTION_AMOUNT = ('amt', 'number')
CUSTOMER_CITY_POP = ('city_pop', 'number')
def __new__(cls, name: str, type: Literal['category', 'number']):
obj = object.__new__(cls)
obj._value_ = name
obj._name = name
obj._type = type
return obj
@property
def name(self):
return self._name
@property
def type(self):
return self._type
@classmethod
def get_features_by_type(cls, type: Literal['category', 'number']) -> List['Feature']:
return [feature for feature in cls if feature.type == type]
@classmethod
def get_all_features(cls) -> List['Feature']:
return [feature for feature in cls]