Thomas Wolf commited on
Commit
49695dd
2 Parent(s): 97e23ac 7edcd52

Merge pull request #6 from patil-suraj/handle-list-feature

Browse files
Files changed (1) hide show
  1. tagging_app.py +22 -20
tagging_app.py CHANGED
@@ -57,43 +57,45 @@ creator_set = {
57
  ########################
58
 
59
  @st.cache
60
- def filter_features(feature_dict):
61
- if feature_dict.get("_type", None) == 'Value':
 
 
62
  return {
63
- "feature_type": feature_dict["_type"],
64
- "dtype": feature_dict["dtype"],
65
  }
66
- elif feature_dict.get("_type", None) == 'Sequence':
67
- if "dtype" in feature_dict["feature"]:
68
  return {
69
- "feature_type": feature_dict["_type"],
70
- "feature": filter_features(feature_dict["feature"]),
71
  }
72
- elif "_type" in feature_dict["feature"] and feature_dict["feature"]["_type"] == "ClassLabel":
73
  return {
74
- "feature_type": feature_dict["_type"],
75
  "dtype": "int32",
76
- "feature": filter_features(feature_dict["feature"]),
77
  }
78
  else:
79
  return dict(
80
- [("feature_type", feature_dict["_type"])] + \
81
- [(k, filter_features(v)) for k, v in feature_dict["feature"].items()]
82
  )
83
- elif feature_dict.get("_type", None) == 'ClassLabel':
84
  return {
85
- "feature_type": feature_dict["_type"],
86
  "dtype": "int32",
87
- "class_names": feature_dict["names"],
88
  }
89
- elif feature_dict.get("_type", None) in ['Translation', 'TranslationVariableLanguages']:
90
  return {
91
- "feature_type": feature_dict["_type"],
92
  "dtype": "string",
93
- "languages": feature_dict["languages"],
94
  }
95
  else:
96
- return dict([(k, filter_features(v)) for k, v in feature_dict.items()])
97
 
98
 
99
  @st.cache
 
57
  ########################
58
 
59
  @st.cache
60
+ def filter_features(features):
61
+ if isinstance(features, list):
62
+ return dict([(k, filter_features(v)) for k, v in features[0].items()])
63
+ elif features.get("_type", None) == 'Value':
64
  return {
65
+ "feature_type": features["_type"],
66
+ "dtype": features["dtype"],
67
  }
68
+ elif features.get("_type", None) == 'Sequence':
69
+ if "dtype" in features["feature"]:
70
  return {
71
+ "feature_type": features["_type"],
72
+ "feature": filter_features(features["feature"]),
73
  }
74
+ elif "_type" in features["feature"] and features["feature"]["_type"] == "ClassLabel":
75
  return {
76
+ "feature_type": features["_type"],
77
  "dtype": "int32",
78
+ "feature": filter_features(features["feature"]),
79
  }
80
  else:
81
  return dict(
82
+ [("feature_type", features["_type"])] + \
83
+ [(k, filter_features(v)) for k, v in features["feature"].items()]
84
  )
85
+ elif features.get("_type", None) == 'ClassLabel':
86
  return {
87
+ "feature_type": features["_type"],
88
  "dtype": "int32",
89
+ "class_names": features["names"],
90
  }
91
+ elif features.get("_type", None) in ['Translation', 'TranslationVariableLanguages']:
92
  return {
93
+ "feature_type": features["_type"],
94
  "dtype": "string",
95
+ "languages": features["languages"],
96
  }
97
  else:
98
+ return dict([(k, filter_features(v)) for k, v in features.items()])
99
 
100
 
101
  @st.cache