Skip to content

Commit b71cab4

Browse files
jbrockmendeljreback
authored andcommitted
CLN: pytables create_axes cleanup (#30127)
1 parent 989a415 commit b71cab4

File tree

1 file changed

+16
-30
lines changed

1 file changed

+16
-30
lines changed

pandas/io/pytables.py

+16-30
Original file line numberDiff line numberDiff line change
@@ -2097,7 +2097,7 @@ def update_info(self, info):
20972097
for key in self._info_fields:
20982098

20992099
value = getattr(self, key, None)
2100-
idx = _get_info(info, self.name)
2100+
idx = info.setdefault(self.name, {})
21012101

21022102
existing_value = idx.get(key)
21032103
if key in idx and value is not None and existing_value != value:
@@ -3725,7 +3725,6 @@ def create_axes(
37253725

37263726
# create according to the new data
37273727
new_non_index_axes: List = []
3728-
new_data_columns: List[Optional[str]] = []
37293728

37303729
# nan_representation
37313730
if nan_rep is None:
@@ -3768,8 +3767,6 @@ def create_axes(
37683767
new_index.update_info(self.info)
37693768
new_index.maybe_set_size(min_itemsize) # check for column conflicts
37703769

3771-
self.non_index_axes = new_non_index_axes
3772-
37733770
new_index_axes = [new_index]
37743771
j = len(new_index_axes) # i.e. 1
37753772
assert j == 1
@@ -3788,22 +3785,21 @@ def get_blk_items(mgr, blocks):
37883785
block_obj = self.get_object(obj, transposed)._consolidate()
37893786
blocks = block_obj._data.blocks
37903787
blk_items = get_blk_items(block_obj._data, blocks)
3791-
if len(new_non_index_axes):
3788+
3789+
data_columns = self.validate_data_columns(
3790+
data_columns, min_itemsize, new_non_index_axes
3791+
)
3792+
if len(data_columns):
37923793
axis, axis_labels = new_non_index_axes[0]
3793-
data_columns = self.validate_data_columns(
3794-
data_columns, min_itemsize, new_non_index_axes
3795-
)
3796-
if len(data_columns):
3797-
mgr = block_obj.reindex(
3798-
Index(axis_labels).difference(Index(data_columns)), axis=axis
3799-
)._data
3800-
3801-
blocks = list(mgr.blocks)
3802-
blk_items = get_blk_items(mgr, blocks)
3803-
for c in data_columns:
3804-
mgr = block_obj.reindex([c], axis=axis)._data
3805-
blocks.extend(mgr.blocks)
3806-
blk_items.extend(get_blk_items(mgr, mgr.blocks))
3794+
new_labels = Index(axis_labels).difference(Index(data_columns))
3795+
mgr = block_obj.reindex(new_labels, axis=axis)._data
3796+
3797+
blocks = list(mgr.blocks)
3798+
blk_items = get_blk_items(mgr, blocks)
3799+
for c in data_columns:
3800+
mgr = block_obj.reindex([c], axis=axis)._data
3801+
blocks.extend(mgr.blocks)
3802+
blk_items.extend(get_blk_items(mgr, mgr.blocks))
38073803

38083804
# reorder the blocks in the same order as the existing_table if we can
38093805
if existing_table is not None:
@@ -3843,7 +3839,6 @@ def get_blk_items(mgr, blocks):
38433839
if not (name is None or isinstance(name, str)):
38443840
# TODO: should the message here be more specifically non-str?
38453841
raise ValueError("cannot have non-object label DataIndexableCol")
3846-
new_data_columns.append(name)
38473842

38483843
# make sure that we match up the existing columns
38493844
# if we have an existing table
@@ -3890,7 +3885,7 @@ def get_blk_items(mgr, blocks):
38903885
j += 1
38913886

38923887
self.nan_rep = nan_rep
3893-
self.data_columns = new_data_columns
3888+
self.data_columns = [col.name for col in vaxes if col.is_data_indexable]
38943889
self.values_axes = vaxes
38953890
self.index_axes = new_index_axes
38963891
self.non_index_axes = new_non_index_axes
@@ -4582,15 +4577,6 @@ def _reindex_axis(obj, axis: int, labels: Index, other=None):
45824577
return obj
45834578

45844579

4585-
def _get_info(info, name):
4586-
""" get/create the info for this name """
4587-
try:
4588-
idx = info[name]
4589-
except KeyError:
4590-
idx = info[name] = dict()
4591-
return idx
4592-
4593-
45944580
# tz to/from coercion
45954581

45964582

0 commit comments

Comments
 (0)