diff --git a/pandas/core/computation/pytables.py b/pandas/core/computation/pytables.py index 13a4814068d6a..4eb39898214c5 100644 --- a/pandas/core/computation/pytables.py +++ b/pandas/core/computation/pytables.py @@ -2,7 +2,7 @@ import ast from functools import partial -from typing import Optional +from typing import Any, Optional, Tuple import numpy as np @@ -72,7 +72,6 @@ def __init__(self, op, lhs, rhs, queryables, encoding): super().__init__(op, lhs, rhs) self.queryables = queryables self.encoding = encoding - self.filter = None self.condition = None def _disallow_scalar_only_bool_ops(self): @@ -230,7 +229,11 @@ def convert_values(self): class FilterBinOp(BinOp): + filter: Optional[Tuple[Any, Any, pd.Index]] = None + def __repr__(self) -> str: + if self.filter is None: + return "Filter: Not Initialized" return pprint_thing( "[Filter : [{lhs}] -> [{op}]".format(lhs=self.filter[0], op=self.filter[1]) ) diff --git a/pandas/io/pytables.py b/pandas/io/pytables.py index 7c7b78720d46d..f41c767d0b13a 100644 --- a/pandas/io/pytables.py +++ b/pandas/io/pytables.py @@ -3868,30 +3868,21 @@ def get_blk_items(mgr, blocks): else: existing_col = None - try: - col = klass.create_for_block(i=i, name=name, version=self.version) - col.set_atom( - block=b, - block_items=b_items, - existing_col=existing_col, - min_itemsize=min_itemsize, - nan_rep=nan_rep, - encoding=self.encoding, - errors=self.errors, - info=self.info, - ) - col.set_pos(j) + col = klass.create_for_block(i=i, name=name, version=self.version) + col.set_atom( + block=b, + block_items=b_items, + existing_col=existing_col, + min_itemsize=min_itemsize, + nan_rep=nan_rep, + encoding=self.encoding, + errors=self.errors, + info=self.info, + ) + col.set_pos(j) + + self.values_axes.append(col) - self.values_axes.append(col) - except (NotImplementedError, ValueError, TypeError) as e: - raise e - except Exception as detail: - raise Exception( - "cannot find the correct atom type -> " - "[dtype->{name},items->{items}] {detail!s}".format( - name=b.dtype.name, items=b_items, detail=detail - ) - ) j += 1 # validate our min_itemsize