code: def _all_feature_names(name):
      # type: (Union[str, bytes, List[Dict]]) -> List[str]
      
      if isinstance(name, bytes):
          return [name.decode('utf8')]
      elif isinstance(name, list):
          return [x['name'] for x in name]
      else:
          return [name]
docs: All feature names for a feature: usually just the feature itself,
      but can be several features for unhashed features with collisions.