|
"""Various utilities to help with development.""" |
|
|
|
|
|
|
|
|
|
import platform |
|
import warnings |
|
from collections.abc import Sequence |
|
|
|
import numpy as np |
|
|
|
from ..exceptions import DataConversionWarning |
|
from . import _joblib, metadata_routing |
|
from ._bunch import Bunch |
|
from ._chunking import gen_batches, gen_even_slices |
|
from ._estimator_html_repr import estimator_html_repr |
|
|
|
|
|
|
|
|
|
|
|
|
|
from ._indexing import ( |
|
_safe_indexing, |
|
resample, |
|
shuffle, |
|
) |
|
from ._mask import safe_mask |
|
from ._tags import ( |
|
ClassifierTags, |
|
InputTags, |
|
RegressorTags, |
|
Tags, |
|
TargetTags, |
|
TransformerTags, |
|
get_tags, |
|
) |
|
from .class_weight import compute_class_weight, compute_sample_weight |
|
from .deprecation import deprecated |
|
from .discovery import all_estimators |
|
from .extmath import safe_sqr |
|
from .murmurhash import murmurhash3_32 |
|
from .validation import ( |
|
as_float_array, |
|
assert_all_finite, |
|
check_array, |
|
check_consistent_length, |
|
check_random_state, |
|
check_scalar, |
|
check_symmetric, |
|
check_X_y, |
|
column_or_1d, |
|
indexable, |
|
) |
|
|
|
|
|
msg = "deprecated in 1.5 to be removed in 1.7. Use joblib.{} instead." |
|
register_parallel_backend = deprecated(msg)(_joblib.register_parallel_backend) |
|
|
|
|
|
|
|
@deprecated(msg) |
|
class parallel_backend(_joblib.parallel_backend): |
|
pass |
|
|
|
|
|
__all__ = [ |
|
"murmurhash3_32", |
|
"as_float_array", |
|
"assert_all_finite", |
|
"check_array", |
|
"check_random_state", |
|
"compute_class_weight", |
|
"compute_sample_weight", |
|
"column_or_1d", |
|
"check_consistent_length", |
|
"check_X_y", |
|
"check_scalar", |
|
"indexable", |
|
"check_symmetric", |
|
"deprecated", |
|
"parallel_backend", |
|
"register_parallel_backend", |
|
"resample", |
|
"shuffle", |
|
"all_estimators", |
|
"DataConversionWarning", |
|
"estimator_html_repr", |
|
"Bunch", |
|
"metadata_routing", |
|
"safe_sqr", |
|
"safe_mask", |
|
"gen_batches", |
|
"gen_even_slices", |
|
"Tags", |
|
"InputTags", |
|
"TargetTags", |
|
"ClassifierTags", |
|
"RegressorTags", |
|
"TransformerTags", |
|
"get_tags", |
|
] |
|
|
|
|
|
|
|
def __getattr__(name): |
|
if name == "IS_PYPY": |
|
warnings.warn( |
|
"IS_PYPY is deprecated and will be removed in 1.7.", |
|
FutureWarning, |
|
) |
|
return platform.python_implementation() == "PyPy" |
|
raise AttributeError(f"module {__name__} has no attribute {name}") |
|
|
|
|
|
|
|
@deprecated("tosequence was deprecated in 1.5 and will be removed in 1.7") |
|
def tosequence(x): |
|
"""Cast iterable x to a Sequence, avoiding a copy if possible. |
|
|
|
Parameters |
|
---------- |
|
x : iterable |
|
The iterable to be converted. |
|
|
|
Returns |
|
------- |
|
x : Sequence |
|
If `x` is a NumPy array, it returns it as a `ndarray`. If `x` |
|
is a `Sequence`, `x` is returned as-is. If `x` is from any other |
|
type, `x` is returned casted as a list. |
|
""" |
|
if isinstance(x, np.ndarray): |
|
return np.asarray(x) |
|
elif isinstance(x, Sequence): |
|
return x |
|
else: |
|
return list(x) |
|
|