code: def _tile_no_partitioned(cls, op: "DataFrameReadParquet"):
      chunk_index = 0
      out_chunks = []
      out_df = op.outputs[0]
  
      dtypes = cls._to_arrow_dtypes(out_df.dtypes, op)
      shape = (np.nan, out_df.shape[1])
  
      path_prefix = ""
      if isinstance(op.path, (tuple, list)):
          paths = op.path
      elif get_fs(op.path, op.storage_options).isdir(op.path):
          parsed_path = urlparse(op.path)
          if parsed_path.scheme.lower() == "hdfs":
              path_prefix = (
                  f"{parsed_path.scheme}://{parsed_path.netloc}"
              )
          paths = get_fs(op.path, op.storage_options).ls(op.path)
      else:
          paths = glob(op.path, storage_options=op.storage_options)
  
      first_chunk_row_num, first_chunk_raw_bytes = None, None
      for i, pth in enumerate(paths):
          pth = path_prefix + pth
          if i == 0:
              with open_file(
                  pth, storage_options=op.storage_options
              ) as f:
                  first_chunk_row_num = get_engine(
                      op.engine
                  ).get_row_num(f)
              first_chunk_raw_bytes = file_size(
                  pth, storage_options=op.storage_options
              )
  
          if op.groups_as_chunks:
              num_row_groups = pq.ParquetFile(pth).num_row_groups
              for group_idx in range(num_row_groups):
                  chunk_op = op.copy().reset_key()
                  chunk_op.path = pth
                  chunk_op.group_index = group_idx
                  chunk_op.first_chunk_row_num = first_chunk_row_num
                  chunk_op.first_chunk_raw_bytes = first_chunk_raw_bytes
                  chunk_op.num_group_rows = num_row_groups
                  new_chunk = chunk_op.new_chunk(
                      None,
                      shape=shape,
                      index=(chunk_index, 0),
                      index_value=out_df.index_value,
                      columns_value=out_df.columns_value,
                      dtypes=dtypes,
                  )
                  out_chunks.append(new_chunk)
                  chunk_index += 1
          else:
              chunk_op = op.copy().reset_key()
              chunk_op.path = pth
              chunk_op.first_chunk_row_num = first_chunk_row_num
              chunk_op.first_chunk_raw_bytes = first_chunk_raw_bytes
              new_chunk = chunk_op.new_chunk(
                  None,
                  shape=shape,
                  index=(chunk_index, 0),
                  index_value=out_df.index_value,
                  columns_value=out_df.columns_value,
                  dtypes=dtypes,
              )
              out_chunks.append(new_chunk)
              chunk_index += 1
  
      new_op = op.copy()
      nsplits = ((np.nan,) * len(out_chunks), (out_df.shape[1],))
      return new_op.new_dataframes(
          None,
          out_df.shape,
          dtypes=dtypes,
          index_value=out_df.index_value,
          columns_value=out_df.columns_value,
          chunks=out_chunks,
          nsplits=nsplits,
      )
  
imports: import os
  from typing import Dict
  from urllib.parse import urlparse
  import numpy
  import pandas
  from ...None import opcodes
  from ...config import options
  from ...lib.filesystem import file_size, get_fs, glob, open_file, FileSystem
  from ...serialization.serializables import AnyField, BoolField, DictField, ListField, StringField, Int32Field, Int64Field
  from ...utils import is_object_dtype, lazy_import
  from ..arrays import ArrowStringDtype
  from ..operands import OutputType
  from ..utils import parse_index, to_arrow_dtypes, contain_arrow_dtype
  from .core import IncrementalIndexDatasource, ColumnPruneSupportedDataSourceMixin, IncrementalIndexDataSourceMixin, merge_small_files
label_desc: Use image node_id 5 for calling the DataFrameReadParquet obj's underlying member method code with example usage: obj._tile_no_partitioned(cls, op) and returns: new_op