Пример #1
0
 def __init__(self, left, right):
     super().__init__()
     self.left = left
     self.right = right
     if self.left.row_count != self.right.row_count:
         raise ValueError(
             f'Merging datasets with unequal row counts ({self.left.row_count} != {self.right.row_count})'
         )
     self._row_count = self.left.row_count
     overlap = set(left) & set(right)
     if overlap:
         raise NameError(f'Duplicate names: {overlap}')
     # TODO: for DatasetArray, we might want to just do this?
     # self._columns = frozendict({**left._columns, **right._columns})
     self._columns = {
         **{
             name: ColumnProxy(self.left, name, data_type(col))
             for name, col in self.left._columns.items()
         },
         **{
             name: ColumnProxy(self.right, name, data_type(col))
             for name, col in self.right._columns.items()
         }
     }
     self._ids = frozendict({**left._ids, **right._ids})
     self._set_row_count()
Пример #2
0
 def _create_columns(self):
     # TODO: for DatasetArray, we might want to just do this?
     # self._columns = frozendict({**left._columns, **right._columns})
     self._columns = {
         **{
             name: ColumnProxy(self.left, name, data_type(col))
             for name, col in self.left._columns.items()
         },
         **{
             name: ColumnProxy(self.right, name, data_type(col))
             for name, col in self.right._columns.items()
         }
     }