



import pytest

from datasets.parallel import ParallelBackendConfig, parallel_backend
from datasets.utils.py_utils import map_nested

from .utils import require_dill_gt_0_3_2, require_joblibspark, require_not_windows



def __lowerCAmelCase	(       SCREAMING_SNAKE_CASE_					):  # picklable for multiprocessing
			return i + 1



@require_dill_gt_0_3_2
@require_joblibspark
@require_not_windows
def __lowerCAmelCase	(       ):
			with parallel_backend("spark"					):
						assert ParallelBackendConfig.backend_name == "spark"

			lowercase__   					=			[1, 2, 3]
			with pytest.raises(SCREAMING_SNAKE_CASE_					):
						with parallel_backend("unsupported backend"					):
									map_nested(SCREAMING_SNAKE_CASE_  ,					SCREAMING_SNAKE_CASE_  ,					num_proc=2					)

			with pytest.raises(SCREAMING_SNAKE_CASE_					):
						with parallel_backend("unsupported backend"					):
									map_nested(SCREAMING_SNAKE_CASE_  ,					SCREAMING_SNAKE_CASE_  ,					num_proc=-1					)




@require_dill_gt_0_3_2
@require_joblibspark
@require_not_windows
@pytest.mark.parametrize("num_proc"  ,					[2, -1]					)
def __lowerCAmelCase	(       SCREAMING_SNAKE_CASE_					):
			lowercase__   					=			[1, 2]
			lowercase__   					=			{"a": 1, "b": 2}
			lowercase__   					=			{"a": [1, 2], "b": [3, 4]}
			lowercase__   					=			{"a": {"1": 1}, "b": 2}
			lowercase__   					=			{"a": 1, "b": 2, "c": 3, "d": 4}
			lowercase__   					=			[2, 3]
			lowercase__   					=			{"a": 2, "b": 3}
			lowercase__   					=			{"a": [2, 3], "b": [4, 5]}
			lowercase__   					=			{"a": {"1": 2}, "b": 3}
			lowercase__   					=			{"a": 2, "b": 3, "c": 4, "d": 5}

			with parallel_backend("spark"					):
						assert map_nested(SCREAMING_SNAKE_CASE_  ,					SCREAMING_SNAKE_CASE_  ,					num_proc=SCREAMING_SNAKE_CASE_					) == expected_map_nested_sa
						assert map_nested(SCREAMING_SNAKE_CASE_  ,					SCREAMING_SNAKE_CASE_  ,					num_proc=SCREAMING_SNAKE_CASE_					) == expected_map_nested_sa
						assert map_nested(SCREAMING_SNAKE_CASE_  ,					SCREAMING_SNAKE_CASE_  ,					num_proc=SCREAMING_SNAKE_CASE_					) == expected_map_nested_sa
						assert map_nested(SCREAMING_SNAKE_CASE_  ,					SCREAMING_SNAKE_CASE_  ,					num_proc=SCREAMING_SNAKE_CASE_					) == expected_map_nested_sa
						assert map_nested(SCREAMING_SNAKE_CASE_  ,					SCREAMING_SNAKE_CASE_  ,					num_proc=SCREAMING_SNAKE_CASE_					) == expected_map_nested_sa









from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowercase_						=       logging.get_logger(__name__)

lowercase_						=       {
    """facebook/dpr-ctx_encoder-single-nq-base""": (
        """https://huggingface.co/facebook/dpr-ctx_encoder-single-nq-base/resolve/main/config.json"""
    ),
    """facebook/dpr-question_encoder-single-nq-base""": (
        """https://huggingface.co/facebook/dpr-question_encoder-single-nq-base/resolve/main/config.json"""
    ),
    """facebook/dpr-reader-single-nq-base""": (
        """https://huggingface.co/facebook/dpr-reader-single-nq-base/resolve/main/config.json"""
    ),
    """facebook/dpr-ctx_encoder-multiset-base""": (
        """https://huggingface.co/facebook/dpr-ctx_encoder-multiset-base/resolve/main/config.json"""
    ),
    """facebook/dpr-question_encoder-multiset-base""": (
        """https://huggingface.co/facebook/dpr-question_encoder-multiset-base/resolve/main/config.json"""
    ),
    """facebook/dpr-reader-multiset-base""": (
        """https://huggingface.co/facebook/dpr-reader-multiset-base/resolve/main/config.json"""
    ),
}
class 			_snake_case     (   lowercase__):
				UpperCamelCase__			:   str       						="""dpr"""




				def __init__(  self   :  int,   __lowercase   :  List[str]=3_0522,   __lowercase   :  Any=768,   __lowercase   :  Union[str, Any]=12,   __lowercase   :  Optional[int]=12,   __lowercase   :  List[Any]=3072,   __lowercase   :  List[str]="gelu",   __lowercase   :  Union[str, Any]=0.1,   __lowercase   :  str=0.1,   __lowercase   :  List[str]=512,   __lowercase   :  Optional[int]=2,   __lowercase   :  Dict=0.02,   __lowercase   :  Any=1e-1_2,   __lowercase   :  List[Any]=0,   __lowercase   :  str="absolute",   __lowercase   :  int = 0,   **__lowercase   :  str,   ):
							super().__init__(pad_token_id=__lowercase,   **__lowercase  )

							lowercase__   					=			vocab_size
							lowercase__   					=			hidden_size
							lowercase__   					=			num_hidden_layers
							lowercase__   					=			num_attention_heads
							lowercase__   					=			hidden_act
							lowercase__   					=			intermediate_size
							lowercase__   					=			hidden_dropout_prob
							lowercase__   					=			attention_probs_dropout_prob
							lowercase__   					=			max_position_embeddings
							lowercase__   					=			type_vocab_size
							lowercase__   					=			initializer_range
							lowercase__   					=			layer_norm_eps
							lowercase__   					=			projection_dim
							lowercase__   					=			position_embedding_type




