parameters: (
          cls,
          signal_type: t.Type[SignalType],
          match: IndexMatch[BaseIndexMetadata],
      )
return_statement: return [
              ThreatExchangeSignalMetadata(
                  signal_id=str(match_object.indicator_id),
                  privacy_group_id=match_object.privacy_group,
                  updated_at=datetime.datetime.now(),
                  signal_type=signal_type,
                  signal_hash=match_object.signal_value,
                  tags=list(match_object.tags),
              )
              for match_object in match.metadata
              if match_object.get_source() == THREAT_EXCHANGE_SOURCE_SHORT_CODE
          ]
docstring: See docstring of `write_signal_if_not_found` we will likely want to move
          this outside of Matcher. However while the MD5 expansion is still on going
          better to have it all in once place.
          Note: changes made here will have an effect on api.matches.get_match_for_hash
docstring_summary: See docstring of `write_signal_if_not_found` we will likely want to move
          this outside of Matcher. However while the MD5 expansion is still on going
          better to have it all in once place.
          Note: changes made here will have an effect on api.matches.get_match_for_hash
docstring_tokens: See docstring of write_signal_if_not_found we will likely want to move this outside of Matcher . However while the MD5 expansion is still on going better to have it all in once place . Note : changes made here will have an effect on api . matches . get_match_for_hash
function: def get_te_metadata_objects_from_match(
          cls,
          signal_type: t.Type[SignalType],
          match: IndexMatch[BaseIndexMetadata],
      ) -> t.List[ThreatExchangeSignalMetadata]:
          """
          See docstring of `write_signal_if_not_found` we will likely want to move
          this outside of Matcher. However while the MD5 expansion is still on going
          better to have it all in once place.
          Note: changes made here will have an effect on api.matches.get_match_for_hash
          """
          return [
              ThreatExchangeSignalMetadata(
                  signal_id=str(match_object.indicator_id),
                  privacy_group_id=match_object.privacy_group,
                  updated_at=datetime.datetime.now(),
                  signal_type=signal_type,
                  signal_hash=match_object.signal_value,
                  tags=list(match_object.tags),
              )
              for match_object in match.metadata
              if match_object.get_source() == THREAT_EXCHANGE_SOURCE_SHORT_CODE
          ]
function_tokens: def get_te_metadata_objects_from_match ( cls , signal_type : t . Type [ SignalType ] , match : IndexMatch [ BaseIndexMetadata ] , ) -> t . List [ ThreatExchangeSignalMetadata ] : return [ ThreatExchangeSignalMetadata ( signal_id = str ( match_object . indicator_id ) , privacy_group_id = match_object . privacy_group , updated_at = datetime . datetime . now ( ) , signal_type = signal_type , signal_hash = match_object . signal_value , tags = list ( match_object . tags ) , ) for match_object in match . metadata if match_object . get_source ( ) == THREAT_EXCHANGE_SOURCE_SHORT_CODE ]