We require that we have a dtype compat for the values. If we are passed a non-dtype compat, then coerce using the constructor. Must be careful not to recurse.
(
cls,
values: ArrayLike,
name: Hashable | None = None,
refs: BlockValuesRefs | None = None,
)
| 651 | |
| 652 | @classmethod |
| 653 | def _simple_new( |
| 654 | cls, |
| 655 | values: ArrayLike, |
| 656 | name: Hashable | None = None, |
| 657 | refs: BlockValuesRefs | None = None, |
| 658 | ) -> Self: |
| 659 | """ |
| 660 | We require that we have a dtype compat for the values. If we are passed |
| 661 | a non-dtype compat, then coerce using the constructor. |
| 662 | |
| 663 | Must be careful not to recurse. |
| 664 | """ |
| 665 | assert isinstance(values, cls._data_cls), type(values) |
| 666 | |
| 667 | result = object.__new__(cls) |
| 668 | result._data = values |
| 669 | result._name = name |
| 670 | result._cache = {} |
| 671 | result._reset_identity() |
| 672 | if refs is not None: |
| 673 | result._references = refs |
| 674 | else: |
| 675 | result._references = BlockValuesRefs() |
| 676 | result._references.add_index_reference(result) |
| 677 | |
| 678 | return result |
| 679 | |
| 680 | @classmethod |
| 681 | def _with_infer(cls, *args, **kwargs): |