code: def _base_melt(
      df: pd.DataFrame,
      index: Union[dict, None],
      values_to: str,
      names_transform: Union[str, Callable, dict, None],
      dropna: bool,
      sort_by_appearance: bool,
      ignore_index: bool,
  ) -> pd.DataFrame:
      """
      Applicable where there is no `.value` in names_to.
      """
  
      columns = df.columns
      reps = len(columns)
      outcome = {
          name: columns.get_level_values(name) for name in columns.names
      }
  
      if df.dtypes.map(is_extension_array_dtype).any(axis=None):
          values = [arr._values for _, arr in df.items()]
          values = concat_compat(values)
      else:
          values = df._values.ravel(order="F")
      values = {values_to: values}
  
      return _final_frame_longer(
          df=df,
          reps=reps,
          index=index,
          outcome=outcome,
          values=values,
          names_to=None,
          dropna=dropna,
          names_transform=names_transform,
          sort_by_appearance=sort_by_appearance,
          ignore_index=ignore_index,
      )
  
imports: import re
  import warnings
  from collections import defaultdict
  from itertools import chain, zip_longest
  from typing import Callable, Optional, Pattern, Union
  import numpy
  import pandas
  import pandas_flavor
  from pandas.api.types import is_categorical_dtype, is_extension_array_dtype, is_list_like
  from pandas.core.dtypes.concat import concat_compat
  from janitor.functions.utils import _computations_expand_grid, get_index_labels
  from janitor.utils import check, refactored_function
label_desc: Use image node_id 7 for calling a global function with example usage: _base_melt(df, index, values_to, names_transform, dropna, sort_by_appearance, ignore_index) and returns: _final_frame_longer