



"""simple docstring"""
import os

import pytest
import yaml

from datasets.features.features import Features, Value
from datasets.info import DatasetInfo, DatasetInfosDict
@pytest.mark.parametrize(
    """files""",					[
        ["""full:README.md""", """dataset_infos.json"""],
        ["""empty:README.md""", """dataset_infos.json"""],
        ["""dataset_infos.json"""],
        ["""full:README.md"""],
    ],					)
def    A_  (			_lowercase,					_lowercase	):







						'''simple docstring'''


						snake_case_ :Union[str, Any]						=			tmp_path_factory.mktemp("""dset_infos_dir"""	)
						if "full:README.md" in files:
												with open(dataset_infos_dir / """README.md""",					"""w"""	) as f:
																		f.write("""---\ndataset_info:\n  dataset_size: 42\n---"""	)
						if "empty:README.md" in files:
												with open(dataset_infos_dir / """README.md""",					"""w"""	) as f:
																		f.write(""""""	)
    # we want to support dataset_infos.json for backward compatibility
						if "dataset_infos.json" in files:
												with open(dataset_infos_dir / """dataset_infos.json""",					"""w"""	) as f:
																		f.write("""{\"default\": {\"dataset_size\": 42}}"""	)
						snake_case_ :Any						=			DatasetInfosDict.from_directory(_lowercase	)
						assert dataset_infos
						assert dataset_infos["default"].dataset_size == 42
@pytest.mark.parametrize(
    """dataset_info""",					[
        DatasetInfo(),
        DatasetInfo(
            description="""foo""",					features=Features({"""a""": Value("""int32"""	)}	),					builder_name="""builder""",					config_name="""config""",					version="""1.0.0""",					splits=[{"""name""": """train"""}],					download_size=42,					),
    ],					)
def    A_  (			_lowercase,					_lowercase	):







						'''simple docstring'''


						snake_case_ :int						=			str(_lowercase	)
						dataset_info.write_to_directory(_lowercase	)
						snake_case_ :List[Any]						=			DatasetInfo.from_directory(_lowercase	)
						assert dataset_info == reloaded
						assert os.path.exists(os.path.join(_lowercase,					"""dataset_info.json"""	)	)
def    A_  (			):







						'''simple docstring'''


						snake_case_ :int						=			DatasetInfo(
						    description="""foo""",					citation="""bar""",					homepage="""https://foo.bar""",					license="""CC0""",					features=Features({"""a""": Value("""int32"""	)}	),					post_processed={},					supervised_keys=(),					task_templates=[],					builder_name="""builder""",					config_name="""config""",					version="""1.0.0""",					splits=[{"""name""": """train""", """num_examples""": 42}],					download_checksums={},					download_size=1337,					post_processing_size=442,					dataset_size=1234,					size_in_bytes=1337 + 442 + 1234,					)
						snake_case_ :List[Any]						=			dataset_info._to_yaml_dict()
						assert sorted(_lowercase	) == sorted(DatasetInfo._INCLUDED_INFO_IN_YAML	)
						for key in DatasetInfo._INCLUDED_INFO_IN_YAML:
												assert key in dataset_info_yaml_dict
												assert isinstance(dataset_info_yaml_dict[key],					(list, dict, int, str)	)
						snake_case_ :Any						=			yaml.safe_dump(_lowercase	)
						snake_case_ :Optional[Any]						=			yaml.safe_load(_lowercase	)
						assert dataset_info_yaml_dict == reloaded
def    A_  (			):







						'''simple docstring'''


						snake_case_ :int						=			DatasetInfo()
						snake_case_ :Optional[Any]						=			dataset_info._to_yaml_dict()
						assert dataset_info_yaml_dict == {}

@pytest.mark.parametrize(
    """dataset_infos_dict""",					[
        DatasetInfosDict(),
        DatasetInfosDict({"""default""": DatasetInfo()}	),
        DatasetInfosDict({"""my_config_name""": DatasetInfo()}	),
        DatasetInfosDict(
            {
                """default""": DatasetInfo(
                    description="""foo""",					features=Features({"""a""": Value("""int32"""	)}	),					builder_name="""builder""",					config_name="""config""",					version="""1.0.0""",					splits=[{"""name""": """train"""}],					download_size=42,					)
            }	),
        DatasetInfosDict(
            {
                """v1""": DatasetInfo(dataset_size=42	),
                """v2""": DatasetInfo(dataset_size=1337	),
            }	),
    ],					)
def    A_  (			_lowercase,					_lowercase	):







						'''simple docstring'''


						snake_case_ :str						=			str(_lowercase	)
						dataset_infos_dict.write_to_directory(_lowercase	)
						snake_case_ :Dict						=			DatasetInfosDict.from_directory(_lowercase	)

						# the config_name of the dataset_infos_dict take over the attribute
						for config_name, dataset_info in dataset_infos_dict.items():
												snake_case_ :Tuple						=			config_name
												# the yaml representation doesn't include fields like description or citation
												# so we just test that we can recover what we can from the yaml
												snake_case_ :List[str]						=			DatasetInfo._from_yaml_dict(dataset_info._to_yaml_dict()	)
						assert dataset_infos_dict == reloaded

						if dataset_infos_dict:
												assert os.path.exists(os.path.join(_lowercase,					"""README.md"""	)	)





"""simple docstring"""
import re
def    A_  (			_lowercase	):







						'''simple docstring'''


						snake_case_ :Optional[int]						=			re.compile(
						    r"""^(?:0|94|\+94|0{2}94)""" r"""7(0|1|2|4|5|6|7|8)""" r"""(-| |)""" r"""\d{7}$"""	)

						return bool(re.search(_lowercase,					_lowercase	)	)


if __name__ == "__main__":
						__a      =				"0094702343221"

						print(is_sri_lankan_phone_number(phone))
