code: def _new_chunks(self, inputs, kws=None, **kw):
      property_inputs = [
          inp
          for inp in inputs
          if isinstance(
              inp,
              (
                  DATAFRAME_CHUNK_TYPE,
                  SERIES_CHUNK_TYPE,
                  TENSOR_CHUNK_TYPE,
              ),
          )
      ]
      # use first two to infer(for tree operand)
      property_inputs = property_inputs[:2]
      if len(property_inputs) == 1:
          properties = self._calc_properties(*property_inputs)
      elif any(inp.ndim == 2 for inp in property_inputs):
          df1, df2 = (
              property_inputs
              if isinstance(property_inputs[0], DATAFRAME_CHUNK_TYPE)
              else reversed(property_inputs)
          )
          properties = self._calc_properties(df1, df2, axis=self.axis)
      else:
          if property_inputs[0].ndim < property_inputs[
              1
          ].ndim or isinstance(
              property_inputs[0], (TENSOR_TYPE, TENSOR_CHUNK_TYPE)
          ):
              property_inputs = reversed(property_inputs)
          properties = self._calc_properties(*property_inputs)
  
      inputs = [
          inp for inp in inputs if isinstance(inp, (Chunk, ChunkData))
      ]
  
      shape = properties.pop("shape")
      if "shape" in kw:
          shape = kw.pop("shape")
  
      for prop, value in properties.items():
          if kw.get(prop, None) is None:
              kw[prop] = value
  
      return super()._new_chunks(inputs, shape=shape, kws=kws, **kw)
  
imports: import itertools
  import copy
  from functools import reduce
  import numpy
  import pandas
  from ...core import ENTITY_TYPE, CHUNK_TYPE, recursive_tile
  from ...serialization.serializables import AnyField
  from ...tensor.core import TENSOR_TYPE, TENSOR_CHUNK_TYPE, ChunkData, Chunk
  from ...utils import classproperty, get_dtype
  from ..align import align_series_series, align_dataframe_series, align_dataframe_dataframe
  from ..core import DATAFRAME_TYPE, SERIES_TYPE, DATAFRAME_CHUNK_TYPE, SERIES_CHUNK_TYPE, is_chunk_meta_lazy
  from ..operands import DataFrameOperandMixin, DataFrameOperand
  from ..ufunc.tensor import TensorUfuncMixin
  from ..utils import parse_index, infer_dtypes, infer_dtype, infer_index_value, build_empty_df
label_desc: Use image node_id 11 for calling the DataFrameBinOpMixin obj's underlying member method code with example usage: obj._new_chunks(inputs, kws) and returns: super