def set_atom(self, block, block_items, existing_col, min_itemsize,
                 nan_rep, info, encoding=None, errors='strict'):
        """ create and setup my atom from the block b """

        self.values = list(block_items)

        # short-cut certain block types
        if block.is_categorical:
            return self.set_atom_categorical(block, items=block_items,
                                             info=info)
        elif block.is_datetimetz:
            return self.set_atom_datetime64tz(block, info=info)
        elif block.is_datetime:
            return self.set_atom_datetime64(block)
        elif block.is_timedelta:
            return self.set_atom_timedelta64(block)
        elif block.is_complex:
            return self.set_atom_complex(block)

        dtype = block.dtype.name
        inferred_type = lib.infer_dtype(block.values, skipna=False)

        if inferred_type == 'date':
            raise TypeError(
                "[date] is not implemented as a table column")
        elif inferred_type == 'datetime':
            # after 8260
            # this only would be hit for a mutli-timezone dtype
            # which is an error

            raise TypeError(
                "too many timezones in this block, create separate "
                "data columns"
            )
        elif inferred_type == 'unicode':
            raise TypeError(
                "[unicode] is not implemented as a table column")

        # this is basically a catchall; if say a datetime64 has nans then will
        # end up here ###
        elif inferred_type == 'string' or dtype == 'object':
            self.set_atom_string(
                block, block_items,
                existing_col,
                min_itemsize,
                nan_rep,
                encoding,
                errors)

        # set as a data block
        else:
            self.set_atom_data(block)
def set_atom ( self , block , block_items , existing_col , min_itemsize , nan_rep , info , encoding = None , errors = 'strict' ) : self . values = list ( block_items ) if block . is_categorical : return self . set_atom_categorical ( block , items = block_items , info = info ) elif block . is_datetimetz : return self . set_atom_datetime64tz ( block , info = info ) elif block . is_datetime : return self . set_atom_datetime64 ( block ) elif block . is_timedelta : return self . set_atom_timedelta64 ( block ) elif block . is_complex : return self . set_atom_complex ( block ) dtype = block . dtype . name inferred_type = lib . infer_dtype ( block . values , skipna = False ) if inferred_type == 'date' : raise TypeError ( "[date] is not implemented as a table column" ) elif inferred_type == 'datetime' : raise TypeError ( "too many timezones in this block, create separate " "data columns" ) elif inferred_type == 'unicode' : raise TypeError ( "[unicode] is not implemented as a table column" ) elif inferred_type == 'string' or dtype == 'object' : self . set_atom_string ( block , block_items , existing_col , min_itemsize , nan_rep , encoding , errors ) else : self . set_atom_data ( block )
create and setup my atom from the block b