class_docstr: Parquet Function-Wrapper Class
  Reads parquet data from disk to produce a partition
  (given a `part` argument).
class_docstr_tok: ["Parquet","Function-Wrapper","Class","Reads","parquet","data","from","disk","to","produce","a","partition","(","given","a","`","part","`","argument",")","."]
code: def __call__(self, part):
      if not isinstance(part, list):
          part = [part]
  
      return read_parquet_part(
          self.fs,
          self.engine,
          self.meta,
          [
              # Temporary workaround for HLG serialization bug
              # (see: https://github.com/dask/dask/issues/8581)
              (p.data["piece"], p.data.get("kwargs", {}))
              if hasattr(p, "data")
              else (p["piece"], p.get("kwargs", {}))
              for p in part
          ],
          self.columns,
          self.index,
          self.common_kwargs,
      )
  
imports: from __future__ import annotations
  import contextlib
  import math
  import warnings
  from typing import Literal
  import pandas
  import tlz
  from fsspec.core import get_fs_token_paths
  from fsspec.utils import stringify_path
  import dask
  from dask.base import tokenize
  from dask.blockwise import BlockIndex
  from dask.dataframe.backends import dataframe_creation_dispatch
  from dask.dataframe.core import DataFrame, Scalar
  from dask.dataframe.io.io import from_map
  from dask.dataframe.io.parquet.utils import Engine, _sort_and_analyze_paths, _split_user_options
  from dask.dataframe.io.utils import DataFrameIOFunction, _is_local_fs
  from dask.dataframe.methods import concat
  from dask.delayed import Delayed
  from dask.highlevelgraph import HighLevelGraph
  from dask.layers import DataFrameIOLayer
  from dask.utils import apply, import_required, natural_sort_key, parse_bytes
label_desc: Use image node_id 4 for calling the ParquetFunctionWrapper obj's underlying member method code with example usage: obj.__call__(part) and returns: read_parquet_part