

"""simple docstring"""




import unittest

from transformers.testing_utils import CaptureStdout
from transformers.tools.python_interpreter import evaluate

def 	A       (     snake_case__    ):




			'''simple docstring'''


			return x + 2





class    lowerCamelCase						(unittest.TestCase			):

			def 					SCREAMING_SNAKE_CASE				(					self				:						Union[str, Any]       )   ->    Tuple:
						SCREAMING_SNAKE_CASE__								=      """x = 3"""
						SCREAMING_SNAKE_CASE__								=      {}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						assert result == 3
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3}       )

						SCREAMING_SNAKE_CASE__								=      """x = y"""
						SCREAMING_SNAKE_CASE__								=      {"""y""": 5}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						# evaluate returns the value of the last assignment.
						assert result == 5
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 5, """y""": 5}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						Union[str, Any]       )   ->    List[Any]:
						SCREAMING_SNAKE_CASE__								=      """y = add_two(x)"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{"""add_two""": add_two}    ,				state=__UpperCAmelCase       )
						assert result == 5
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """y""": 5}       )

						# Won't work without the tool
						with CaptureStdout() as out:
									SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						assert result is None
						assert "tried to execute add_two" in out.out

			def 					SCREAMING_SNAKE_CASE				(					self				:						Tuple       )   ->    Union[str, Any]:
						SCREAMING_SNAKE_CASE__								=      """x = 3"""
						SCREAMING_SNAKE_CASE__								=      {}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						assert result == 3
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						List[str]       )   ->    Optional[Any]:
						SCREAMING_SNAKE_CASE__								=      """test_dict = {'x': x, 'y': add_two(x)}"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{"""add_two""": add_two}    ,				state=__UpperCAmelCase       )
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """y""": 5}       )
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """test_dict""": {"""x""": 3, """y""": 5}}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						int       )   ->    int:
						SCREAMING_SNAKE_CASE__								=      """x = 3\ny = 5"""
						SCREAMING_SNAKE_CASE__								=      {}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						# evaluate returns the value of the last assignment.
						assert result == 5
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """y""": 5}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						List[str]       )   ->    Dict:
						SCREAMING_SNAKE_CASE__								=      """text = f'This is x: {x}.'"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						# evaluate returns the value of the last assignment.
						assert result == "This is x: 3."
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """text""": """This is x: 3."""}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						int       )   ->    Union[str, Any]:
						SCREAMING_SNAKE_CASE__								=      """if x <= 3:\n    y = 2\nelse:\n    y = 5"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						# evaluate returns the value of the last assignment.
						assert result == 2
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """y""": 2}       )

						SCREAMING_SNAKE_CASE__								=      {"""x""": 8}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						# evaluate returns the value of the last assignment.
						assert result == 5
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 8, """y""": 5}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						Optional[int]       )   ->    Optional[Any]:
						SCREAMING_SNAKE_CASE__								=      """test_list = [x, add_two(x)]"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{"""add_two""": add_two}    ,				state=__UpperCAmelCase       )
						self.assertListEqual(__UpperCAmelCase    ,				[3, 5]       )
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """test_list""": [3, 5]}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						Optional[Any]       )   ->    Optional[Any]:
						SCREAMING_SNAKE_CASE__								=      """y = x"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{}    ,				state=__UpperCAmelCase       )
						assert result == 3
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """y""": 3}       )

			def 					SCREAMING_SNAKE_CASE				(					self				:						int       )   ->    Any:
						SCREAMING_SNAKE_CASE__								=      """test_list = [x, add_two(x)]\ntest_list[1]"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{"""add_two""": add_two}    ,				state=__UpperCAmelCase       )
						assert result == 5
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """test_list""": [3, 5]}       )

						SCREAMING_SNAKE_CASE__								=      """test_dict = {'x': x, 'y': add_two(x)}\ntest_dict['y']"""
						SCREAMING_SNAKE_CASE__								=      {"""x""": 3}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{"""add_two""": add_two}    ,				state=__UpperCAmelCase       )
						assert result == 5
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 3, """test_dict""": {"""x""": 3, """y""": 5}}       )





			def 					SCREAMING_SNAKE_CASE				(					self				:						str       )   ->    Any:
						SCREAMING_SNAKE_CASE__								=      """x = 0\nfor i in range(3):\n    x = i"""
						SCREAMING_SNAKE_CASE__								=      {}
						SCREAMING_SNAKE_CASE__								=      evaluate(__UpperCAmelCase    ,				{"""range""": range}    ,				state=__UpperCAmelCase       )
						assert result == 2
						self.assertDictEqual(__UpperCAmelCase    ,				{"""x""": 2, """i""": 2}       )





"""simple docstring"""




# Lint as: python3
# pylint: enable=line-too-long
# pylint: disable=g-import-not-at-top,g-bad-import-order,wrong-import-position

A_							:			Tuple											= "2.13.1"

import platform

import pyarrow
from packaging import version


if version.parse(platform.python_version()) < version.parse("3.7"):
						raise ImportWarning(
						    "To use `datasets`, Python>=3.7 is required, and the current version of Python doesn't match this condition."
						)

if version.parse(pyarrow.__version__).major < 8:
						raise ImportWarning(
						    "To use `datasets`, the module `pyarrow>=8.0.0` is required, and the current version of `pyarrow` doesn't match this condition.\n"
						    "If you are running this in a Google Colab, you should probably just restart the runtime to use the right version of `pyarrow`."
						)

del platform
del pyarrow
del version

from .arrow_dataset import Dataset
from .arrow_reader import ReadInstruction
from .builder import ArrowBasedBuilder, BeamBasedBuilder, BuilderConfig, DatasetBuilder, GeneratorBasedBuilder
from .combine import concatenate_datasets, interleave_datasets
from .dataset_dict import DatasetDict, IterableDatasetDict
from .download import *
from .features import *
from .fingerprint import disable_caching, enable_caching, is_caching_enabled, set_caching_enabled
from .info import DatasetInfo, MetricInfo
from .inspect import (
    get_dataset_config_info,
    get_dataset_config_names,
    get_dataset_infos,
    get_dataset_split_names,
    inspect_dataset,
    inspect_metric,
    list_datasets,
    list_metrics,
)
from .iterable_dataset import IterableDataset
from .load import load_dataset, load_dataset_builder, load_from_disk, load_metric
from .metric import Metric
from .splits import (
    NamedSplit,
    NamedSplitAll,
    Split,
    SplitBase,
    SplitDict,
    SplitGenerator,
    SplitInfo,
    SubSplitInfo,
    percent,
)
from .tasks import *
from .utils import *
from .utils import logging


# deprecated modules
from datasets import arrow_dataset as _arrow_dataset  # isort:skip
from datasets import utils as _utils  # isort:skip
from datasets.utils import download_manager as _deprecated_download_manager  # isort:skip

A_							:			Tuple											= concatenate_datasets
A_							:			List[str]											= DownloadConfig
A_							:			int											= DownloadManager
A_							:			Optional[Any]											= DownloadMode
A_							:			Optional[int]											= DownloadConfig
A_							:			List[Any]											= DownloadMode
A_							:			Any											= DownloadManager

del _arrow_dataset, _utils, _deprecated_download_manager


