docs: def _construct_number_token(self, d: Dict, nlp) -> List[Dict]:
          """
          Construct a shape token
          Args:
              d: Dict
              nlp
  
          Returns: List[Dict]
          """
  
          result = []
          if not d["numbers"]:
              this_token = {attrs.LIKE_NUM: True}
              result.append(this_token)
              if d["length"]:
                  result = self._add_length_constrain(result, d["length"])
          elif len(d["numbers"]) == 1:
              this_token = {attrs.ORTH: str(d["numbers"][0])}
              result.append(this_token)
          else:
              global FLAG_ID
              number_set = set(d["numbers"])
  
              def is_selected_number(x):
                  return x in number_set
  
              FLAG_DICT[FLAG_ID] = nlp.vocab.add_flag(is_selected_number)
              this_token = {FLAG_DICT[FLAG_ID]: True}
              FLAG_ID += 1
              result.append(this_token)
          result = self._add_common_constrain(result, d)
          return result