class_docstr: MultiInterface allows wrapping around a list of tabular datasets
  including dataframes, the columnar dictionary format or 2D tabular
  NumPy arrays. Using the split method the list of tabular data can
  be split into individual datasets.
  
  The interface makes the data appear a list of tabular datasets as
  a single dataset. The interface may be used to represent geometries
  so the behavior depends on the type of geometry being represented.
class_docstr_tok: ["MultiInterface","allows","wrapping","around","a","list","of","tabular","datasets","including","dataframes",",","the","columnar","dictionary","format","or","2D","tabular","NumPy","arrays",".","Using","the","split","method","the","list","of","tabular","data","can","be","split","into","individual","datasets",".","The","interface","makes","the","data","appear","a","list","of","tabular","datasets","as","a","single","dataset",".","The","interface","may","be","used","to","represent","geometries","so","the","behavior","depends","on","the","type","of","geometry","being","represented","."]
docstr: Applies selectiong on all the subpaths.
docstr_tok: ["Applies","selectiong","on","all","the","subpaths","."]
code: def select(cls, dataset, selection_mask=None, **selection):
      """
      Applies selectiong on all the subpaths.
      """
      from ...element import Polygons
  
      if not dataset.data:
          return dataset.data
      elif selection_mask is not None:
          return [d for b, d in zip(selection_mask, dataset.data) if b]
      ds = cls._inner_dataset_template(dataset)
      skipped = (Polygons._hole_key,)
      if hasattr(ds.interface, "geo_column"):
          skipped += (ds.interface.geo_column(ds),)
      data = []
      for d in dataset.data:
          ds.data = d
          selection_mask = ds.interface.select_mask(ds, selection)
          sel = ds.interface.select(ds, selection_mask)
          is_dict = isinstance(sel, dict)
          if (not len(sel) and not is_dict) or (
              is_dict
              and any(
                  False if util.isscalar(v) else len(v) == 0
                  for k, v in sel.items()
                  if k not in skipped
              )
          ):
              continue
          data.append(sel)
      return data
  
imports: import numpy
  from ..None import util
  from ..element import Element
  from ..ndmapping import NdMapping, item_check, sorted_context
  from .dictionary import DictInterface
  from .interface import DataError, Interface
label_desc: Use image node_id 11 for calling the MultiInterface obj's underlying member method code with example usage: obj.select(cls, dataset, selection_mask) and returns: data, dataset, unknown