code: def field(*name_or_index):
      """Reference a column of the dataset.
  
      Stores only the field's name. Type and other information is known only when
      the expression is bound to a dataset having an explicit scheme.
  
      Nested references are allowed by passing multiple names or a tuple of
      names. For example ``('foo', 'bar')`` references the field named "bar"
      inside the field named "foo".
  
      Parameters
      ----------
      *name_or_index : string, multiple strings, tuple or int
          The name or index of the (possibly nested) field the expression
          references to.
  
      Returns
      -------
      field_expr : Expression
          Reference to the given field
  
      Examples
      --------
      >>> import pyarrow.compute as pc
      >>> pc.field("a")
      <pyarrow.compute.Expression a>
      >>> pc.field(1)
      <pyarrow.compute.Expression FieldPath(1)>
      >>> pc.field(("a", "b"))
      <pyarrow.compute.Expression FieldRef.Nested(FieldRef.Name(a) ...
      >>> pc.field("a", "b")
      <pyarrow.compute.Expression FieldRef.Nested(FieldRef.Name(a) ...
      """
      n = len(name_or_index)
      if n == 1:
          if isinstance(name_or_index[0], (str, int)):
              return Expression._field(name_or_index[0])
          elif isinstance(name_or_index[0], tuple):
              return Expression._nested_field(name_or_index[0])
          else:
              raise TypeError(
                  "field reference should be str, multiple str, tuple or "
                  f"integer, got {type(name_or_index[0])}"
              )
      # In case of multiple strings not supplied in a tuple
      else:
          return Expression._nested_field(name_or_index)
  
imports: from pyarrow._compute import Function, FunctionOptions, FunctionRegistry, HashAggregateFunction, HashAggregateKernel, Kernel, ScalarAggregateFunction, ScalarAggregateKernel, ScalarFunction, ScalarKernel, VectorFunction, VectorKernel, ArraySortOptions, AssumeTimezoneOptions, CastOptions, CountOptions, CumulativeOptions, CumulativeSumOptions, DayOfWeekOptions, DictionaryEncodeOptions, RunEndEncodeOptions, ElementWiseAggregateOptions, ExtractRegexOptions, FilterOptions, IndexOptions, JoinOptions, ListSliceOptions, MakeStructOptions, MapLookupOptions, MatchSubstringOptions, ModeOptions, NullOptions, PadOptions, PairwiseOptions, PartitionNthOptions, QuantileOptions, RandomOptions, RankOptions, ReplaceSliceOptions, ReplaceSubstringOptions, RoundBinaryOptions, RoundOptions, RoundTemporalOptions, RoundToMultipleOptions, ScalarAggregateOptions, SelectKOptions, SetLookupOptions, SliceOptions, SortOptions, SplitOptions, SplitPatternOptions, StrftimeOptions, StrptimeOptions, StructFieldOptions, TakeOptions, TDigestOptions, TrimOptions, Utf8NormalizeOptions, VarianceOptions, WeekOptions, call_function, function_registry, get_function, list_functions, call_tabular_function, register_scalar_function, register_tabular_function, register_aggregate_function, register_vector_function, UdfContext, Expression
  from collections import namedtuple
  import inspect
  from textwrap import dedent
  import warnings
  import pyarrow
  from pyarrow import _compute_docstrings
  from pyarrow.vendored import docscrape
label_desc: Use image node_id 17 for calling a global function with example usage: field() and returns: Expression, Expression, Expression