Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def __init__(self, base_features, primitive, groupby, name=None):
if not isinstance(groupby, FeatureBase):
groupby = IdentityFeature(groupby)
assert issubclass(groupby.variable_type, Discrete)
self.groupby = groupby
if hasattr(base_features, '__iter__'):
base_features.append(groupby)
else:
base_features = [base_features, groupby]
super(GroupByTransformFeature, self).__init__(base_features=base_features,
primitive=primitive,
name=name)
def _check_feature(feature):
if isinstance(feature, Variable):
return IdentityFeature(feature)
elif isinstance(feature, FeatureBase):
return feature
raise Exception("Not a feature")
def __init__(self, variable, name=None):
entity_id = variable.entity_id
self.variable = variable.entityset.metadata[entity_id][variable.id]
self.return_type = type(variable)
super(IdentityFeature, self).__init__(entity=variable.entity,
base_features=[],
relationship_path=RelationshipPath([]),
primitive=PrimitiveBase,
name=name)
def __new__(self, base, entity=None, groupby=None, parent_entity=None,
primitive=None, use_previous=None, where=None):
# either direct or indentity
if primitive is None and entity is None:
return IdentityFeature(base)
elif primitive is None and entity is not None:
return DirectFeature(base, entity)
elif primitive is not None and parent_entity is not None:
assert isinstance(primitive, AggregationPrimitive) or issubclass(primitive, AggregationPrimitive)
return AggregationFeature(base, parent_entity=parent_entity,
use_previous=use_previous, where=where,
primitive=primitive)
elif primitive is not None:
assert (isinstance(primitive, TransformPrimitive) or
issubclass(primitive, TransformPrimitive))
if groupby is not None:
return GroupByTransformFeature(base,
primitive=primitive,
groupby=groupby)
return TransformFeature(base, primitive=primitive)
def copy(self):
"""Return copy of feature"""
return IdentityFeature(self.variable)
ft.load_features(feature_str)
.. seealso::
:func:`.save_features`
"""
return FeaturesDeserializer.load(features, profile_name).to_list()
class FeaturesDeserializer(object):
FEATURE_CLASSES = {
'AggregationFeature': AggregationFeature,
'DirectFeature': DirectFeature,
'Feature': Feature,
'FeatureBase': FeatureBase,
'GroupByTransformFeature': GroupByTransformFeature,
'IdentityFeature': IdentityFeature,
'TransformFeature': TransformFeature,
'FeatureOutputSlice': FeatureOutputSlice
}
def __init__(self, features_dict):
self.features_dict = features_dict
self._check_schema_version()
self.entityset = deserialize_es(features_dict['entityset'])
self._deserialized_features = {} # name -> feature
self._primitives_deserializer = PrimitivesDeserializer()
@classmethod
def load(cls, features, profile_name):
if isinstance(features, str):
try:
features_dict = json.loads(features)