def single_classification(animals: pd.DataFrame,
empty: Optional[pd.DataFrame],
predictions_raw: np.array,
class_list: pd.DataFrame):
should have empty = None for default
and then line 354 will also need to change to accept None in empty:
manifest = pd.concat([animals if not animals.empty else None, empty if not empty.empty else None]).reset_index(drop=True)
None won't have property empty.empty to check for