def fg_json()

in tzrec/features/match_feature.py [0:0]


    def fg_json(self) -> List[Dict[str, Any]]:
        """Get fg json config."""
        fg_cfg = {
            "feature_type": "match_feature",
            "feature_name": self.name,
            "user": self.config.nested_map,
            "category": self.config.pkey,
            "item": self.config.skey,
            "matchType": "hit",
            "default_value": self.config.default_value,
            "value_type": "float",
            "needDiscrete": self.config.need_discrete,
            "show_category": self.config.show_pkey,
            "show_item": self.config.show_skey,
            # "combiner": self.config.combiner.lower(),
        }
        if self.config.pkey == "ALL" or self.config.skey == "ALL":
            fg_cfg["matchType"] = "multihit"
        if self.config.separator != "\x1d":
            fg_cfg["separator"] = self.config.separator
        if self.config.HasField("normalizer"):
            fg_cfg["normalizer"] = self.config.normalizer
        if self.config.HasField("zch"):
            fg_cfg["hash_bucket_size"] = MAX_HASH_BUCKET_SIZE
            fg_cfg["value_type"] = "string"
            fg_cfg["needDiscrete"] = True
        elif self.config.HasField("hash_bucket_size"):
            fg_cfg["hash_bucket_size"] = self.config.hash_bucket_size
            fg_cfg["value_type"] = "string"
            fg_cfg["needDiscrete"] = True
        elif self.config.HasField("num_buckets"):
            fg_cfg["num_buckets"] = self.config.num_buckets
            # TODO: value_type -> int64
            fg_cfg["value_type"] = "string"
            fg_cfg["needDiscrete"] = True
        elif len(self.vocab_list) > 0:
            fg_cfg["vocab_list"] = self.vocab_list
            fg_cfg["default_bucketize_value"] = self.default_bucketize_value
            fg_cfg["value_type"] = "string"
            fg_cfg["needDiscrete"] = True
        elif len(self.vocab_dict) > 0:
            fg_cfg["vocab_dict"] = self.vocab_dict
            fg_cfg["default_bucketize_value"] = self.default_bucketize_value
            fg_cfg["value_type"] = "string"
            fg_cfg["needDiscrete"] = True
        elif len(self.vocab_file) > 0:
            fg_cfg["vocab_file"] = self.vocab_file
            fg_cfg["default_bucketize_value"] = self.default_bucketize_value
            fg_cfg["value_type"] = "string"
            fg_cfg["needDiscrete"] = True
        elif len(self.config.boundaries) > 0:
            fg_cfg["boundaries"] = list(self.config.boundaries)

        if fg_cfg["needDiscrete"]:
            fg_cfg["value_dim"] = self.value_dim
        if self.config.HasField("fg_value_type"):
            fg_cfg["value_type"] = self.config.fg_value_type
        #     del fg_cfg["combiner"]
        return [fg_cfg]