'''simple docstring'''




import os

import pytest

from datasets import (
    get_dataset_config_info,
    get_dataset_config_names,
    get_dataset_infos,
    get_dataset_split_names,
    inspect_dataset,
    inspect_metric,
)


__lowercase        =    pytest.mark.integration






@pytest.mark.parametrize("""path""" ,  ["""paws""", """csv"""]					)
def 							snake_case__				(     _A:   str ,  _A:   List[Any]					)       ->      Optional[Any]:

		'''simple docstring'''


		inspect_dataset(_A ,  _A					)
		lowerCAmelCase     =    path + """.py"""
		assert script_name in os.listdir(_A					)
		assert "__pycache__" not in os.listdir(_A					)






@pytest.mark.filterwarnings("""ignore:inspect_metric is deprecated:FutureWarning"""					)
@pytest.mark.filterwarnings("""ignore:metric_module_factory is deprecated:FutureWarning"""					)
@pytest.mark.parametrize("""path""" ,  ["""accuracy"""]					)
def 							snake_case__				(     _A:   Optional[Any] ,  _A:   Union[str, Any]					)       ->      Any:

		'''simple docstring'''


		inspect_metric(_A ,  _A					)
		lowerCAmelCase     =    path + """.py"""
		assert script_name in os.listdir(_A					)
		assert "__pycache__" not in os.listdir(_A					)






@pytest.mark.parametrize(
    """path, config_name, expected_splits""" ,  [
        ("""squad""", """plain_text""", ["""train""", """validation"""]),
        ("""dalle-mini/wit""", """dalle-mini--wit""", ["""train"""]),
        ("""paws""", """labeled_final""", ["""train""", """test""", """validation"""]),
    ] ,  )
def 							snake_case__				(     _A:   str ,  _A:   Optional[int] ,  _A:   List[str]					)       ->      Any:

		'''simple docstring'''


		lowerCAmelCase     =    get_dataset_config_info(_A ,  config_name=_A					)
		assert info.config_name == config_name
		assert list(info.splits.keys()					) == expected_splits






@pytest.mark.parametrize(
    """path, config_name, expected_exception""" ,  [
        ("""paws""", None, ValueError),
    ] ,  )
def 							snake_case__				(     _A:   Optional[int] ,  _A:   Union[str, Any] ,  _A:   Optional[int]					)       ->      str:

		'''simple docstring'''


		with pytest.raises(_A					):
				get_dataset_config_info(_A ,  config_name=_A					)






@pytest.mark.parametrize(
    """path, expected""" ,  [
        ("""squad""", """plain_text"""),
        ("""acronym_identification""", """default"""),
        ("""lhoestq/squad""", """plain_text"""),
        ("""lhoestq/test""", """default"""),
        ("""lhoestq/demo1""", """lhoestq--demo1"""),
        ("""dalle-mini/wit""", """dalle-mini--wit"""),
    ] ,  )
def 							snake_case__				(     _A:   Optional[Any] ,  _A:   Dict					)       ->      List[Any]:

		'''simple docstring'''


		lowerCAmelCase     =    get_dataset_config_names(_A					)
		assert expected in config_names






@pytest.mark.parametrize(
    """path, expected_configs, expected_splits_in_first_config""" ,  [
        ("""squad""", ["""plain_text"""], ["""train""", """validation"""]),
        ("""dalle-mini/wit""", ["""dalle-mini--wit"""], ["""train"""]),
        ("""paws""", ["""labeled_final""", """labeled_swap""", """unlabeled_final"""], ["""train""", """test""", """validation"""]),
    ] ,  )
def 							snake_case__				(     _A:   int ,  _A:   Union[str, Any] ,  _A:   Optional[int]					)       ->      Optional[Any]:

		'''simple docstring'''


		lowerCAmelCase     =    get_dataset_infos(_A					)
		assert list(infos.keys()					) == expected_configs
		lowerCAmelCase     =    expected_configs[0]
		assert expected_config in infos
		lowerCAmelCase     =    infos[expected_config]
		assert info.config_name == expected_config
		assert list(info.splits.keys()					) == expected_splits_in_first_config






@pytest.mark.parametrize(
    """path, expected_config, expected_splits""" ,  [
        ("""squad""", """plain_text""", ["""train""", """validation"""]),
        ("""dalle-mini/wit""", """dalle-mini--wit""", ["""train"""]),
        ("""paws""", """labeled_final""", ["""train""", """test""", """validation"""]),
    ] ,  )
def 							snake_case__				(     _A:   Tuple ,  _A:   int ,  _A:   Any					)       ->      Union[str, Any]:

		'''simple docstring'''


		lowerCAmelCase     =    get_dataset_infos(_A					)
		assert expected_config in infos
		lowerCAmelCase     =    infos[expected_config]
		assert info.config_name == expected_config
		assert list(info.splits.keys()					) == expected_splits






@pytest.mark.parametrize(
    """path, config_name, expected_exception""" ,  [
        ("""paws""", None, ValueError),
    ] ,  )
def 							snake_case__				(     _A:   Optional[Any] ,  _A:   List[Any] ,  _A:   Optional[int]					)       ->      int:

		'''simple docstring'''


		with pytest.raises(_A					):
				get_dataset_split_names(_A ,  config_name=_A					)





'''simple docstring'''




import os
from distutils.util import strtobool






def 							snake_case__				(     _A:   int ,  _A:   List[Any]					)       ->      Union[str, Any]:

		'''simple docstring'''


		for e in env_keys:
				lowerCAmelCase     =    int(os.environ.get(_A ,  -1					)					)
				if val >= 0:
						return val
		return default






def 							snake_case__				(     _A:   str ,  _A:   List[Any]=False					)       ->      int:

		'''simple docstring'''


		lowerCAmelCase     =    os.environ.get(_A ,  str(_A					)					)
		return strtobool(_A					) == 1  # As its name indicates `strtobool` actually returns an int...






def 							snake_case__				(     _A:   Dict ,  _A:   List[Any]="no"					)       ->      str:

		'''simple docstring'''


		lowerCAmelCase     =    os.environ.get(_A ,  str(_A					)					)
		return value




