def set_atom(self, block, block_items, existing_col, min_itemsize,<EOL>nan_rep, info, encoding=None, errors='<STR_LIT:strict>'):
self.values = list(block_items)<EOL>if block.is_categorical:<EOL><INDENT>return self.set_atom_categorical(block, items=block_items,<EOL>info=info)<EOL><DEDENT>elif block.is_datetimetz:<EOL><INDENT>return self.set_atom_datetime64tz(block, info=info)<EOL><DEDENT>elif block.is_datetime:<EOL><INDENT>return self.set_atom_datetime64(block)<EOL><DEDENT>elif block.is_timedelta:<EOL><INDENT>return self.set_atom_timedelta64(block)<EOL><DEDENT>elif block.is_complex:<EOL><INDENT>return self.set_atom_complex(block)<EOL><DEDENT>dtype = block.dtype.name<EOL>inferred_type = lib.infer_dtype(block.values, skipna=False)<EOL>if inferred_type == '<STR_LIT:date>':<EOL><INDENT>raise TypeError(<EOL>"<STR_LIT>")<EOL><DEDENT>elif inferred_type == '<STR_LIT>':<EOL><INDENT>raise TypeError(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>)<EOL><DEDENT>elif inferred_type == '<STR_LIT>':<EOL><INDENT>raise TypeError(<EOL>"<STR_LIT>")<EOL><DEDENT>elif inferred_type == '<STR_LIT:string>' or dtype == '<STR_LIT:object>':<EOL><INDENT>self.set_atom_string(<EOL>block, block_items,<EOL>existing_col,<EOL>min_itemsize,<EOL>nan_rep,<EOL>encoding,<EOL>errors)<EOL><DEDENT>else:<EOL><INDENT>self.set_atom_data(block)<EOL><DEDENT>
create and setup my atom from the block b