(dsk, check_names=True, check_dtypes=True, result=None, scheduler=None)
| 428 | |
| 429 | |
| 430 | def _check_dask(dsk, check_names=True, check_dtypes=True, result=None, scheduler=None): |
| 431 | import dask.dataframe as dd |
| 432 | |
| 433 | if hasattr(dsk, "__dask_graph__"): |
| 434 | graph = dsk.__dask_graph__() |
| 435 | if hasattr(graph, "validate"): |
| 436 | graph.validate() |
| 437 | if result is None: |
| 438 | result = dsk.compute(scheduler=scheduler) |
| 439 | if isinstance(dsk, dd.Index) or is_index_like(dsk._meta): |
| 440 | assert "Index" in type(result).__name__, type(result) |
| 441 | # assert type(dsk._meta) == type(result), type(dsk._meta) |
| 442 | if check_names: |
| 443 | assert dsk.name == result.name |
| 444 | assert dsk._meta.name == result.name |
| 445 | if isinstance(result, pd.MultiIndex): |
| 446 | assert result.names == dsk._meta.names |
| 447 | if check_dtypes: |
| 448 | assert_dask_dtypes(dsk, result) |
| 449 | elif isinstance(dsk, dd.Series) or is_series_like(dsk._meta): |
| 450 | assert "Series" in type(result).__name__, type(result) |
| 451 | assert type(dsk._meta) == type(result), type(dsk._meta) |
| 452 | if check_names: |
| 453 | assert dsk.name == result.name, (dsk.name, result.name) |
| 454 | assert dsk._meta.name == result.name |
| 455 | if check_dtypes: |
| 456 | assert_dask_dtypes(dsk, result) |
| 457 | _check_dask( |
| 458 | dsk.index, |
| 459 | check_names=check_names, |
| 460 | check_dtypes=check_dtypes, |
| 461 | result=result.index, |
| 462 | ) |
| 463 | elif isinstance(dsk, dd.DataFrame) or is_dataframe_like(dsk._meta): |
| 464 | assert "DataFrame" in type(result).__name__, type(result) |
| 465 | assert isinstance(dsk.columns, pd.Index), type(dsk.columns) |
| 466 | assert type(dsk._meta) == type(result), type(dsk._meta) |
| 467 | if check_names: |
| 468 | # Treat RangeIndex and Index as equivalent as long as they express the |
| 469 | # same values and have the same dtype |
| 470 | tm.assert_index_equal(dsk.columns, result.columns, exact=False) |
| 471 | tm.assert_index_equal(dsk._meta.columns, result.columns, exact=False) |
| 472 | assert dsk.columns.dtype == result.columns.dtype |
| 473 | assert dsk._meta.columns.dtype == result.columns.dtype |
| 474 | if check_dtypes: |
| 475 | assert_dask_dtypes(dsk, result) |
| 476 | _check_dask( |
| 477 | dsk.index, |
| 478 | check_names=check_names, |
| 479 | check_dtypes=check_dtypes, |
| 480 | result=result.index, |
| 481 | ) |
| 482 | else: |
| 483 | if not np.isscalar(result) and not isinstance( |
| 484 | result, (pd.Timestamp, pd.Timedelta) |
| 485 | ): |
| 486 | raise TypeError( |
| 487 | "Expected object of type dataframe, series, index, or scalar.\n" |
no test coverage detected
searching dependent graphs…