
    t]eW5                        d Z ddlZddlZddlmZ ddlZddlmZ  eej                  Z	e	 ed          k     r e
ej                            dd                     eej                            dd	                    d
d eej                            dd                    d
dddd	Z ej                    Zd Zd Z	 	 	 	 	 	 	 	 	 ddZedddddddddd	d            ZdS ddlmZmZmZmZ dS )zThis is copy of sklearn/_config.py
# TODO: remove this file when scikit-learn minimum version is 1.3
We remove the array_api_dispatch for the moment.
    N)contextmanager)parse_versionz1.3SKLEARN_ASSUME_FINITEFSKLEARN_WORKING_MEMORYi   Tdiagram SKLEARN_PAIRWISE_DIST_CHUNK_SIZE   default	assume_finiteworking_memoryprint_changed_onlydisplaypairwise_dist_chunk_sizeenable_cython_pairwise_disttransform_outputenable_metadata_routingskip_parameter_validationc                  ~    t          t          d          st          j                    t          _        t          j        S )zGet a threadlocal **mutable** configuration. If the configuration
        does not exist, copy the default global configuration.global_config)hasattr_threadlocal_global_configcopyr        0lib/python3.11/site-packages/imblearn/_config.py_get_threadlocal_configr      s0     |_55 	?)7)<)>)>L&))r   c                  B    t                                                      S )a  Retrieve current values for configuration set by :func:`set_config`.

        Returns
        -------
        config : dict
            Keys are parameter names that can be passed to :func:`set_config`.

        See Also
        --------
        config_context : Context manager for global scikit-learn configuration.
        set_config : Set global scikit-learn configuration.
        )r   r   r   r   r   
get_configr    %   s     '((--///r   c	                     t                      }	| | |	d<   |||	d<   |||	d<   |||	d<   |||	d<   |||	d<   |||	d<   |||	d	<   |||	d
<   dS dS )a  Set global scikit-learn configuration

        .. versionadded:: 0.19

        Parameters
        ----------
        assume_finite : bool, default=None
            If True, validation for finiteness will be skipped,
            saving time, but leading to potential crashes. If
            False, validation for finiteness will be performed,
            avoiding error.  Global default: False.

            .. versionadded:: 0.19

        working_memory : int, default=None
            If set, scikit-learn will attempt to limit the size of temporary arrays
            to this number of MiB (per job when parallelised), often saving both
            computation time and memory on expensive operations that can be
            performed in chunks. Global default: 1024.

            .. versionadded:: 0.20

        print_changed_only : bool, default=None
            If True, only the parameters that were set to non-default
            values will be printed when printing an estimator. For example,
            ``print(SVC())`` while True will only print 'SVC()' while the default
            behaviour would be to print 'SVC(C=1.0, cache_size=200, ...)' with
            all the non-changed parameters.

            .. versionadded:: 0.21

        display : {'text', 'diagram'}, default=None
            If 'diagram', estimators will be displayed as a diagram in a Jupyter
            lab or notebook context. If 'text', estimators will be displayed as
            text. Default is 'diagram'.

            .. versionadded:: 0.23

        pairwise_dist_chunk_size : int, default=None
            The number of row vectors per chunk for the accelerated pairwise-
            distances reduction backend. Default is 256 (suitable for most of
            modern laptops' caches and architectures).

            Intended for easier benchmarking and testing of scikit-learn internals.
            End users are not expected to benefit from customizing this configuration
            setting.

            .. versionadded:: 1.1

        enable_cython_pairwise_dist : bool, default=None
            Use the accelerated pairwise-distances reduction backend when
            possible. Global default: True.

            Intended for easier benchmarking and testing of scikit-learn internals.
            End users are not expected to benefit from customizing this configuration
            setting.

            .. versionadded:: 1.1

        transform_output : str, default=None
            Configure output of `transform` and `fit_transform`.

            See :ref:`sphx_glr_auto_examples_miscellaneous_plot_set_output.py`
            for an example on how to use the API.

            - `"default"`: Default output format of a transformer
            - `"pandas"`: DataFrame output
            - `None`: Transform configuration is unchanged

            .. versionadded:: 1.2

        enable_metadata_routing : bool, default=None
            Enable metadata routing. By default this feature is disabled.

            Refer to :ref:`metadata routing user guide <metadata_routing>` for more
            details.

            - `True`: Metadata routing is enabled
            - `False`: Metadata routing is disabled, use the old syntax.
            - `None`: Configuration is unchanged

            .. versionadded:: 1.3

        skip_parameter_validation : bool, default=None
            If `True`, disable the validation of the hyper-parameters' types
            and values in the fit method of estimators and for arguments passed
            to public helper functions. It can save time in some situations but
            can lead to low level crashes and exceptions with confusing error
            messages.

            Note that for data parameters, such as `X` and `y`, only type validation is
            skipped but validation with `check_array` will continue to run.

            .. versionadded:: 1.3

        See Also
        --------
        config_context : Context manager for global scikit-learn configuration.
        get_config : Retrieve current values of the global configuration.
        Nr   r   r   r   r   r   r   r   r   )r   )
r   r   r   r   r   r   r   r   r   local_configs
             r   
set_configr#   6   s    ^ /00$,9L)%-;L)*)1CL-.&-L##/7OL34&2:UL67'/?L+,".6ML23$08QL4555 10r   c        	      #      K   t                      }	t          | ||||||||	  	         	 dV  t          di |	 dS # t          di |	 w xY w)a  Context manager for global scikit-learn configuration.

        Parameters
        ----------
        assume_finite : bool, default=None
            If True, validation for finiteness will be skipped,
            saving time, but leading to potential crashes. If
            False, validation for finiteness will be performed,
            avoiding error. If None, the existing value won't change.
            The default value is False.

        working_memory : int, default=None
            If set, scikit-learn will attempt to limit the size of temporary arrays
            to this number of MiB (per job when parallelised), often saving both
            computation time and memory on expensive operations that can be
            performed in chunks. If None, the existing value won't change.
            The default value is 1024.

        print_changed_only : bool, default=None
            If True, only the parameters that were set to non-default
            values will be printed when printing an estimator. For example,
            ``print(SVC())`` while True will only print 'SVC()', but would print
            'SVC(C=1.0, cache_size=200, ...)' with all the non-changed parameters
            when False. If None, the existing value won't change.
            The default value is True.

            .. versionchanged:: 0.23
            Default changed from False to True.

        display : {'text', 'diagram'}, default=None
            If 'diagram', estimators will be displayed as a diagram in a Jupyter
            lab or notebook context. If 'text', estimators will be displayed as
            text. If None, the existing value won't change.
            The default value is 'diagram'.

            .. versionadded:: 0.23

        pairwise_dist_chunk_size : int, default=None
            The number of row vectors per chunk for the accelerated pairwise-
            distances reduction backend. Default is 256 (suitable for most of
            modern laptops' caches and architectures).

            Intended for easier benchmarking and testing of scikit-learn internals.
            End users are not expected to benefit from customizing this configuration
            setting.

            .. versionadded:: 1.1

        enable_cython_pairwise_dist : bool, default=None
            Use the accelerated pairwise-distances reduction backend when
            possible. Global default: True.

            Intended for easier benchmarking and testing of scikit-learn internals.
            End users are not expected to benefit from customizing this configuration
            setting.

            .. versionadded:: 1.1

        transform_output : str, default=None
            Configure output of `transform` and `fit_transform`.

            See :ref:`sphx_glr_auto_examples_miscellaneous_plot_set_output.py`
            for an example on how to use the API.

            - `"default"`: Default output format of a transformer
            - `"pandas"`: DataFrame output
            - `None`: Transform configuration is unchanged

            .. versionadded:: 1.2

        enable_metadata_routing : bool, default=None
            Enable metadata routing. By default this feature is disabled.

            Refer to :ref:`metadata routing user guide <metadata_routing>` for more
            details.

            - `True`: Metadata routing is enabled
            - `False`: Metadata routing is disabled, use the old syntax.
            - `None`: Configuration is unchanged

            .. versionadded:: 1.3

        skip_parameter_validation : bool, default=None
            If `True`, disable the validation of the hyper-parameters' types
            and values in the fit method of estimators and for arguments passed
            to public helper functions. It can save time in some situations but
            can lead to low level crashes and exceptions with confusing error
            messages.

            Note that for data parameters, such as `X` and `y`, only type validation is
            skipped but validation with `check_array` will continue to run.

            .. versionadded:: 1.3

        Yields
        ------
        None.

        See Also
        --------
        set_config : Set global scikit-learn configuration.
        get_config : Retrieve current values of the global configuration.

        Notes
        -----
        All settings, not just those presently modified, will be returned to
        their previous values when the context manager is exited.

        Examples
        --------
        >>> import sklearn
        >>> from sklearn.utils.validation import assert_all_finite
        >>> with sklearn.config_context(assume_finite=True):
        ...     assert_all_finite([float('nan')])
        >>> with sklearn.config_context(assume_finite=True):
        ...     with sklearn.config_context(assume_finite=False):
        ...         assert_all_finite([float('nan')])
        Traceback (most recent call last):
        ...
        ValueError: Input contains NaN...
        r   Nr   )r    r#   )
r   r   r   r   r   r   r   r   r   
old_configs
             r   config_contextr&      s      L  \\
')1%=(C-$;&?
	
 
	
 
	
 
	
	%EEE$$$$$$$J$$$$$$s	   < A
)r   r   r&   r    )	NNNNNNNNN)__doc__os	threading
contextlibr   sklearnsklearn.utilsr   __version__sklearn_versionboolenvirongetintr   localr   r   r    r#   r&   sklearn._configr   r   r   <module>r5      s    
			     7 7 7 7 7 7  ' ' ' ' ' '- 344]]5))))bjnn-DeLLMM#bjnn-EtLLMM"$'CJNN=sCC%
 %
 (,%#(%* N #9?$$L* * *0 0 0$ !%$( $"&BR BR BR BRH  !%$( $"&U% U% U% U% ^U% U% U%p             r   