in #34875 several checks were added to the main Dataframe construction to handle extension arrays, in particular extension scalars
this introduced multiple checks like
if is_extensions_drype(,,): ... else: ...
these should be refactored and pushed down to more understandable functions
this construction is now so complicated that bugs are certain to happen
Comment From: jbrockmendel
constructor has been nicely-ish refactored since OP, closing.