MCPcopy
hub / github.com/dask/dask / _check_dask

Function _check_dask

dask/dataframe/utils.py:430–493  ·  view source on GitHub ↗
(dsk, check_names=True, check_dtypes=True, result=None, scheduler=None)

Source from the content-addressed store, hash-verified

428
429
430def _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"

Callers 1

assert_eqFunction · 0.85

Calls 7

is_index_likeFunction · 0.90
is_series_likeFunction · 0.90
is_dataframe_likeFunction · 0.90
assert_dask_dtypesFunction · 0.85
validateMethod · 0.80
__dask_graph__Method · 0.45
computeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…