diff --git a/featuretools/primitives/__init__.py b/featuretools/primitives/__init__.py index 769cb596e2..ff4bd57de1 100644 --- a/featuretools/primitives/__init__.py +++ b/featuretools/primitives/__init__.py @@ -2,12 +2,18 @@ from .api import * import pkg_resources -# Load in primitives registered by other libraries into Featuretools namespace +# Load in a list of primitives registered by other libraries into Featuretools +# Example entry_points definition for a library using this entry point: +# entry_points={ +# "featuretools_primitives": [ +# other_library = other_library:LIST_OF_PRIMITIVES +# ] +# } for entry_point in pkg_resources.iter_entry_points('featuretools_primitives'): try: loaded = entry_point.load() - if hasattr(loaded, 'primitives'): - for name, obj in loaded.primitives.items(): - globals()[name] = obj + for primitive in loaded: + if issubclass(primitive, (AggregationPrimitive, TransformPrimitive)): + globals()[primitive.__name__] = primitive except Exception: pass