code: def unique(values):
      """
      Hash table-based unique. Uniques are returned in order
      of appearance. This does NOT sort.
  
      Significantly faster than numpy.unique. Includes NA values.
  
      Parameters
      ----------
      values : 1d array-like
  
      Returns
      -------
      unique values.
        - If the input is an Index, the return is an Index
        - If the input is a Categorical dtype, the return is a Categorical
        - If the input is a Series/ndarray, the return will be an ndarray
  
      See Also
      --------
      pandas.Index.unique
      pandas.Series.unique
  
      Examples
      --------
      >>> pd.unique(pd.Series([2, 1, 3, 3]))
      array([2, 1, 3])
  
      >>> pd.unique(pd.Series([2] + [1] * 5))
      array([2, 1])
  
      >>> pd.unique(pd.Series([pd.Timestamp('20160101'),
      ...                     pd.Timestamp('20160101')]))
      array(['2016-01-01T00:00:00.000000000'], dtype='datetime64[ns]')
  
      >>> pd.unique(pd.Series([pd.Timestamp('20160101', tz='US/Eastern'),
      ...                      pd.Timestamp('20160101', tz='US/Eastern')]))
      array([Timestamp('2016-01-01 00:00:00-0500', tz='US/Eastern')],
            dtype=object)
  
      >>> pd.unique(pd.Index([pd.Timestamp('20160101', tz='US/Eastern'),
      ...                     pd.Timestamp('20160101', tz='US/Eastern')]))
      DatetimeIndex(['2016-01-01 00:00:00-05:00'],
      ...           dtype='datetime64[ns, US/Eastern]', freq=None)
  
      >>> pd.unique(list('baabc'))
      array(['b', 'a', 'c'], dtype=object)
  
      An unordered Categorical will return categories in the
      order of appearance.
  
      >>> pd.unique(pd.Series(pd.Categorical(list('baabc'))))
      [b, a, c]
      Categories (3, object): [b, a, c]
  
      >>> pd.unique(pd.Series(pd.Categorical(list('baabc'),
      ...                                    categories=list('abc'))))
      [b, a, c]
      Categories (3, object): [b, a, c]
  
      An ordered Categorical preserves the category ordering.
  
      >>> pd.unique(pd.Series(pd.Categorical(list('baabc'),
      ...                                    categories=list('abc'),
      ...                                    ordered=True)))
      [b, a, c]
      Categories (3, object): [a < b < c]
  
      An array of tuples
  
      >>> pd.unique([('a', 'b'), ('b', 'a'), ('a', 'c'), ('b', 'a')])
      array([('a', 'b'), ('b', 'a'), ('a', 'c')], dtype=object)
      """
  
      values = _ensure_arraylike(values)
  
      if is_extension_array_dtype(values):
          # Dispatch to extension dtype's unique.
          return values.unique()
  
      original = values
      htable, _, values, dtype, ndtype = _get_hashtable_algo(values)
  
      table = htable(len(values))
      uniques = table.unique(values)
      uniques = _reconstruct_data(uniques, dtype, original)
      return uniques
  
imports: from __future__ import division
  from textwrap import dedent
  from warnings import catch_warnings, simplefilter, warn
  import numpy
  from pandas._libs import algos, hashtable, lib
  from pandas._libs.tslib import iNaT
  from pandas.util._decorators import Appender, Substitution, deprecate_kwarg
  from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike, maybe_promote
  from pandas.core.dtypes.common import ensure_float64, ensure_int64, ensure_object, ensure_platform_int, ensure_uint64, is_array_like, is_bool_dtype, is_categorical_dtype, is_complex_dtype, is_datetime64_any_dtype, is_datetime64tz_dtype, is_datetimelike, is_extension_array_dtype, is_float_dtype, is_integer_dtype, is_interval_dtype, is_list_like, is_numeric_dtype, is_object_dtype, is_period_dtype, is_scalar, is_signed_integer_dtype, is_sparse, is_timedelta64_dtype, is_unsigned_integer_dtype, needs_i8_conversion
  from pandas.core.dtypes.generic import ABCIndex, ABCIndexClass, ABCSeries
  from pandas.core.dtypes.missing import isna, na_value_for_dtype
  from pandas.core import common
label_desc: Use image node_id 7 for calling a global function with example usage: unique(values) and returns: uniques, values