MCPcopy
hub / github.com/feast-dev/feast / _get_entity_maps

Function _get_entity_maps

sdk/python/feast/utils.py:890–932  ·  view source on GitHub ↗
(
    registry,
    project,
    feature_views,
)

Source from the content-addressed store, hash-verified

888
889
890def _get_entity_maps(
891 registry,
892 project,
893 feature_views,
894) -> Tuple[Dict[str, str], Dict[str, ValueType], Set[str]]:
895 # TODO(felixwang9817): Support entities that have different types for different feature views.
896 entities = registry.list_entities(project, allow_cache=True)
897
898 entity_by_name: Dict[str, "Entity"] = {entity.name: entity for entity in entities}
899
900 entity_name_to_join_key_map: Dict[str, str] = {}
901 entity_type_map: Dict[str, ValueType] = {}
902 for entity in entities:
903 entity_name_to_join_key_map[entity.name] = entity.join_key
904 for feature_view in feature_views:
905 for entity_name in feature_view.entities:
906 entity = entity_by_name.get(entity_name)
907 if entity is None:
908 from feast.errors import EntityNotFoundException
909
910 raise EntityNotFoundException(entity_name, project=project)
911 # User directly uses join_key as the entity reference in the entity_rows for the
912 # entity mapping case.
913 entity_name = feature_view.projection.join_key_map.get(
914 entity.join_key, entity.name
915 )
916 join_key = feature_view.projection.join_key_map.get(
917 entity.join_key, entity.join_key
918 )
919 entity_name_to_join_key_map[entity_name] = join_key
920
921 for entity_column in feature_view.entity_columns:
922 dtype = entity_column.dtype.to_value_type()
923 entity_join_key_column_name = feature_view.projection.join_key_map.get(
924 entity_column.name, entity_column.name
925 )
926 entity_type_map[entity_join_key_column_name] = dtype
927
928 return (
929 entity_name_to_join_key_map,
930 entity_type_map,
931 set(entity_name_to_join_key_map.values()),
932 )
933
934
935def _get_table_entity_values(

Calls 5

getMethod · 0.80
list_entitiesMethod · 0.45
to_value_typeMethod · 0.45
valuesMethod · 0.45