class_docstr: HDF5 Function-Wrapper Class
  
  Reads HDF5 data from disk to produce a partition (given a key).
class_docstr_tok: ["HDF5","Function-Wrapper","Class","Reads","HDF5","data","from","disk","to","produce","a","partition","(","given","a","key",")","."]
docstr: Return a new HDFFunctionWrapper object with
  a sub-column projection.
docstr_tok: ["Return","a","new","HDFFunctionWrapper","object","with","a","sub-column","projection","."]
code: def project_columns(self, columns):
      """Return a new HDFFunctionWrapper object with
      a sub-column projection.
      """
      if columns == self.columns:
          return self
      return HDFFunctionWrapper(
          columns, self.dim, self.lock, self.common_kwargs
      )
  
imports: from __future__ import annotations
  import os
  import uuid
  from fnmatch import fnmatch
  from glob import glob
  from warnings import warn
  import pandas
  from fsspec.utils import build_name_function, stringify_path
  from tlz import merge
  from dask import config
  from dask.base import compute_as_if_collection, get_scheduler, named_schedulers, tokenize
  from dask.dataframe.backends import dataframe_creation_dispatch
  from dask.dataframe.core import DataFrame, Scalar
  from dask.dataframe.io.io import _link, from_map
  from dask.dataframe.io.utils import DataFrameIOFunction, SupportsLock
  from dask.highlevelgraph import HighLevelGraph
  from dask.utils import get_scheduler_lock
  from dask.dataframe.core import _Frame
label_desc: Use image node_id 3 for calling the HDFFunctionWrapper obj's underlying member method code with example usage: obj.project_columns(columns) and returns: HDFFunctionWrapper, self