code: def read_metadata(
      where,
      memory_map=False,
      decryption_properties=None,
      filesystem=None,
  ):
      """
      Read FileMetaData from footer of a single Parquet file.
  
      Parameters
      ----------
      where : str (file path) or file-like object
      memory_map : bool, default False
          Create memory map when the source is a file path.
      decryption_properties : FileDecryptionProperties, default None
          Decryption properties for reading encrypted Parquet files.
      filesystem : FileSystem, default None
          If nothing passed, will be inferred based on path.
          Path will try to be found in the local on-disk filesystem otherwise
          it will be parsed as an URI to determine the filesystem.
  
      Returns
      -------
      metadata : FileMetaData
          The metadata of the Parquet file
  
      Examples
      --------
      >>> import pyarrow as pa
      >>> import pyarrow.parquet as pq
      >>> table = pa.table({'n_legs': [4, 5, 100],
      ...                   'animal': ["Dog", "Brittle stars", "Centipede"]})
      >>> pq.write_table(table, 'example.parquet')
  
      >>> pq.read_metadata('example.parquet')
      <pyarrow._parquet.FileMetaData object at ...>
        created_by: parquet-cpp-arrow version ...
        num_columns: 2
        num_rows: 3
        num_row_groups: 1
        format_version: 2.6
        serialized_size: ...
      """
      filesystem, where = _resolve_filesystem_and_path(
          where, filesystem
      )
      file_ctx = nullcontext()
      if filesystem is not None:
          file_ctx = where = filesystem.open_input_file(where)
  
      with file_ctx:
          file = ParquetFile(
              where,
              memory_map=memory_map,
              decryption_properties=decryption_properties,
          )
          return file.metadata
  
imports: from collections import defaultdict
  from contextlib import nullcontext
  from functools import reduce
  import inspect
  import json
  import os
  import re
  import operator
  import warnings
  import pyarrow
  from pyarrow._parquet import ParquetReader, Statistics, FileMetaData, RowGroupMetaData, ColumnChunkMetaData, ParquetSchema, ColumnSchema, ParquetLogicalType, FileEncryptionProperties, FileDecryptionProperties, SortingColumn
  from pyarrow.fs import LocalFileSystem, FileSystem, FileType, _resolve_filesystem_and_path, _ensure_filesystem
  from pyarrow import filesystem
  from pyarrow.util import guid, _is_path_like, _stringify_path, _deprecate_api
label_desc: Use image node_id 14 for calling a global function with example usage: read_metadata(where, memory_map, decryption_properties, filesystem) and returns: file