Validate that an xarray object satisfies its own internal invariants. This exists for the benefit of xarray's own test suite, but may be useful in external projects if they (ill-advisedly) create objects using xarray's private APIs.
(
xarray_obj: DataArray | Dataset | Variable, check_default_indexes: bool
)
| 487 | |
| 488 | |
| 489 | def _assert_internal_invariants( |
| 490 | xarray_obj: DataArray | Dataset | Variable, check_default_indexes: bool |
| 491 | ): |
| 492 | """Validate that an xarray object satisfies its own internal invariants. |
| 493 | |
| 494 | This exists for the benefit of xarray's own test suite, but may be useful |
| 495 | in external projects if they (ill-advisedly) create objects using xarray's |
| 496 | private APIs. |
| 497 | """ |
| 498 | if isinstance(xarray_obj, Variable): |
| 499 | _assert_variable_invariants(xarray_obj) |
| 500 | elif isinstance(xarray_obj, DataArray): |
| 501 | _assert_dataarray_invariants( |
| 502 | xarray_obj, check_default_indexes=check_default_indexes |
| 503 | ) |
| 504 | elif isinstance(xarray_obj, Dataset): |
| 505 | _assert_dataset_invariants( |
| 506 | xarray_obj, check_default_indexes=check_default_indexes |
| 507 | ) |
| 508 | elif isinstance(xarray_obj, Coordinates): |
| 509 | _assert_dataset_invariants( |
| 510 | xarray_obj.to_dataset(), check_default_indexes=check_default_indexes |
| 511 | ) |
| 512 | else: |
| 513 | raise TypeError( |
| 514 | f"{type(xarray_obj)} is not a supported type for xarray invariant checks" |
| 515 | ) |
searching dependent graphs…