code: def handle_hashing_vec(vec, feature_names, coef_scale, with_coef_scale=True):
      
      needs_coef_scale = with_coef_scale and coef_scale is None
      if is_invhashing(vec):
          if feature_names is None:
              feature_names = vec.get_feature_names(always_signed=False)
          if needs_coef_scale:
              coef_scale = vec.column_signs_
      elif (isinstance(vec, FeatureUnion) and
                any(is_invhashing(v) for _, v in vec.transformer_list) and
                (needs_coef_scale or feature_names is None)):
          _feature_names, _coef_scale = _invhashing_union_feature_names_scale(vec)
          if feature_names is None:
              feature_names = _feature_names
          if needs_coef_scale:
              coef_scale = _coef_scale
      return (feature_names, coef_scale) if with_coef_scale else feature_names
docs: Return feature_names and coef_scale (if with_coef_scale is True),
      calling .get_feature_names for invhashing vectorizers.