forked from feathr-ai/feathr
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfeature_printer.py
More file actions
49 lines (39 loc) · 1.68 KB
/
feature_printer.py
File metadata and controls
49 lines (39 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from pprint import pprint
from typing import Union, List
from feathr.definition.anchor import FeatureAnchor
from feathr.definition.query_feature_list import FeatureQuery
from feathr.definition.materialization_settings import MaterializationSettings
class FeaturePrinter:
"""The class for pretty-printing features"""
@staticmethod
def pretty_print_anchors(anchor_list: List[FeatureAnchor]) -> None:
"""Pretty print features
Args:
feature_list: FeatureAnchor
"""
if all(isinstance(anchor, FeatureAnchor) for anchor in anchor_list):
for anchor in anchor_list:
pprint("%s is the achor of %s" % \
(anchor.name, [feature.name for feature in anchor.features]))
else:
raise TypeError("anchor_list must be FeatureAnchor or List[FeatureAnchor]")
@staticmethod
def pretty_print_feature_query(feature_query: FeatureQuery) -> None:
"""Pretty print feature query
Args:
feature_query: feature query
"""
if isinstance(feature_query, FeatureQuery):
print("Features in feature_query: %s" % feature_query.feature_list)
else:
raise TypeError("feature_query must be FeatureQuery")
@staticmethod
def pretty_print_materialize_features(settings: MaterializationSettings) -> None:
"""Pretty print feature query
Args:
feature_query: feature query
"""
if isinstance(settings, MaterializationSettings):
print("Materialization features in settings: %s" % settings.feature_names)
else:
raise TypeError("settings must be MaterializationSettings")