parameters: (source, target)
docstring: Returns True if upsampling is possible between source and target
      frequencies
  
      Parameters
      ----------
      source : str or DateOffset
          Frequency converting from
      target : str or DateOffset
          Frequency converting to
  
      Returns
      -------
      bool
docstring_summary: Returns True if upsampling is possible between source and target
      frequencies
docstring_tokens: Returns True if upsampling is possible between source and target frequencies
function: def is_superperiod(source, target) -> bool:
      """
      Returns True if upsampling is possible between source and target
      frequencies
  
      Parameters
      ----------
      source : str or DateOffset
          Frequency converting from
      target : str or DateOffset
          Frequency converting to
  
      Returns
      -------
      bool
      """
      if target is None or source is None:
          return False
      source = _maybe_coerce_freq(source)
      target = _maybe_coerce_freq(target)
  
      if _is_annual(source):
          if _is_annual(target):
              return get_rule_month(source) == get_rule_month(target)
  
          if _is_quarterly(target):
              smonth = get_rule_month(source)
              tmonth = get_rule_month(target)
              return _quarter_months_conform(smonth, tmonth)
          return target in {"D", "C", "B", "M", "H", "T", "S", "L", "U", "N"}
      elif _is_quarterly(source):
          return target in {"D", "C", "B", "M", "H", "T", "S", "L", "U", "N"}
      elif _is_monthly(source):
          return target in {"D", "C", "B", "H", "T", "S", "L", "U", "N"}
      elif _is_weekly(source):
          return target in {source, "D", "C", "B", "H", "T", "S", "L", "U", "N"}
      elif source == "B":
          return target in {"D", "C", "B", "H", "T", "S", "L", "U", "N"}
      elif source == "C":
          return target in {"D", "C", "B", "H", "T", "S", "L", "U", "N"}
      elif source == "D":
          return target in {"D", "C", "B", "H", "T", "S", "L", "U", "N"}
      elif source == "H":
          return target in {"H", "T", "S", "L", "U", "N"}
      elif source == "T":
          return target in {"T", "S", "L", "U", "N"}
      elif source == "S":
          return target in {"S", "L", "U", "N"}
      elif source == "L":
          return target in {"L", "U", "N"}
      elif source == "U":
          return target in {"U", "N"}
      elif source == "N":
          return target in {"N"}
      else:
          return False
function_tokens: def is_superperiod ( source , target ) -> bool : if target is None or source is None : return False source = _maybe_coerce_freq ( source ) target = _maybe_coerce_freq ( target ) if _is_annual ( source ) : if _is_annual ( target ) : return get_rule_month ( source ) == get_rule_month ( target ) if _is_quarterly ( target ) : smonth = get_rule_month ( source ) tmonth = get_rule_month ( target ) return _quarter_months_conform ( smonth , tmonth ) return target in { "D" , "C" , "B" , "M" , "H" , "T" , "S" , "L" , "U" , "N" } elif _is_quarterly ( source ) : return target in { "D" , "C" , "B" , "M" , "H" , "T" , "S" , "L" , "U" , "N" } elif _is_monthly ( source ) : return target in { "D" , "C" , "B" , "H" , "T" , "S" , "L" , "U" , "N" } elif _is_weekly ( source ) : return target in { source , "D" , "C" , "B" , "H" , "T" , "S" , "L" , "U" , "N" } elif source == "B" : return target in { "D" , "C" , "B" , "H" , "T" , "S" , "L" , "U" , "N" } elif source == "C" : return target in { "D" , "C" , "B" , "H" , "T" , "S" , "L" , "U" , "N" } elif source == "D" : return target in { "D" , "C" , "B" , "H" , "T" , "S" , "L" , "U" , "N" } elif source == "H" : return target in { "H" , "T" , "S" , "L" , "U" , "N" } elif source == "T" : return target in { "T" , "S" , "L" , "U" , "N" } elif source == "S" : return target in { "S" , "L" , "U" , "N" } elif source == "L" : return target in { "L" , "U" , "N" } elif source == "U" : return target in { "U" , "N" } elif source == "N" : return target in { "N" } else : return False