



"""simple docstring"""






import os
import tempfile
from functools import partial
from unittest import TestCase
from unittest.mock import patch

import datasets
import datasets.config

from .utils import require_beam






class 	__snake_case	(     datasets.BeamBasedBuilder):




  def 						SCREAMING_SNAKE_CASE    (			self					:						Optional[Any]		):






         """simple docstring"""






         return datasets.DatasetInfo(
             features=datasets.Features({'''content''': datasets.Value('''string'''		)}		)						, supervised_keys=__lowerCAmelCase						, )




  def 						SCREAMING_SNAKE_CASE    (			self					:						Optional[Any]						, __lowerCAmelCase					:						List[Any]						, __lowerCAmelCase					:						Dict		):






         """simple docstring"""






         return [datasets.SplitGenerator(name=datasets.Split.TRAIN						, gen_kwargs={'''examples''': get_test_dummy_examples()}		)]




  def 						SCREAMING_SNAKE_CASE    (			self					:						int						, __lowerCAmelCase					:						List[str]						, __lowerCAmelCase					:						Optional[int]		):






         """simple docstring"""






         import apache_beam as beam

         return pipeline | "Load Examples" >> beam.Create(__lowerCAmelCase		)






class 	__snake_case	(     datasets.BeamBasedBuilder):




  def 						SCREAMING_SNAKE_CASE    (			self					:						List[Any]		):






         """simple docstring"""






         return datasets.DatasetInfo(
             features=datasets.Features({'''a''': datasets.Sequence({'''b''': datasets.Value('''string'''		)}		)}		)						, supervised_keys=__lowerCAmelCase						, )




  def 						SCREAMING_SNAKE_CASE    (			self					:						str						, __lowerCAmelCase					:						str						, __lowerCAmelCase					:						int		):






         """simple docstring"""






         return [
             datasets.SplitGenerator(name=datasets.Split.TRAIN						, gen_kwargs={'''examples''': get_test_nested_examples()}		)
         ]




  def 						SCREAMING_SNAKE_CASE    (			self					:						Tuple						, __lowerCAmelCase					:						Tuple						, __lowerCAmelCase					:						Optional[int]		):






         """simple docstring"""






         import apache_beam as beam

         return pipeline | "Load Examples" >> beam.Create(__lowerCAmelCase		)






def 	snake_case_  (				):


       '''simple docstring'''





       return [(i, {"content": content}) for i, content in enumerate(['''foo''', '''bar''', '''foobar''']						)]






def 	snake_case_  (				):


       '''simple docstring'''





       return [(i, {"a": {"b": [content]}}) for i, content in enumerate(['''foo''', '''bar''', '''foobar''']						)]







class 	__snake_case	(     _lowercase):




  @require_beam
  def 						SCREAMING_SNAKE_CASE    (			self					:						Tuple		):






         """simple docstring"""






         _lowerCamelCase						:    List[Any]         =			len(get_test_dummy_examples()		)
         with tempfile.TemporaryDirectory() as tmp_cache_dir:
                _lowerCamelCase						:    Dict         =			DummyBeamDataset(cache_dir=__lowerCAmelCase						, beam_runner='''DirectRunner'''		)
                builder.download_and_prepare()
                self.assertTrue(
                    os.path.exists(
                        os.path.join(__lowerCAmelCase						, builder.name						, '''default'''						, '''0.0.0'''						, f'''{builder.name}-train.arrow'''		)		)		)
                self.assertDictEqual(builder.info.features						, datasets.Features({'''content''': datasets.Value('''string'''		)}		)		)
                _lowerCamelCase						:    Any         =			builder.as_dataset()
                self.assertEqual(dset['''train'''].num_rows						, __lowerCAmelCase		)
                self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples						, __lowerCAmelCase		)
                self.assertDictEqual(dset['''train'''][0]						, get_test_dummy_examples()[0][1]		)
                self.assertDictEqual(
                    dset['''train'''][expected_num_examples - 1]						, get_test_dummy_examples()[expected_num_examples - 1][1]		)
                self.assertTrue(
                    os.path.exists(os.path.join(__lowerCAmelCase						, builder.name						, '''default'''						, '''0.0.0'''						, '''dataset_info.json'''		)		)		)
                del dset




  @require_beam
  def 						SCREAMING_SNAKE_CASE    (			self					:						Optional[int]		):






         """simple docstring"""






         import apache_beam as beam

         _lowerCamelCase						:    str         =			beam.io.parquetio.WriteToParquet

         _lowerCamelCase						:    Optional[Any]         =			len(get_test_dummy_examples()		)
         with tempfile.TemporaryDirectory() as tmp_cache_dir:
                _lowerCamelCase						:    List[Any]         =			DummyBeamDataset(cache_dir=__lowerCAmelCase						, beam_runner='''DirectRunner'''		)
                with patch('''apache_beam.io.parquetio.WriteToParquet'''		) as write_parquet_mock:
                       _lowerCamelCase						:    Tuple         =			partial(__lowerCAmelCase						, num_shards=2		)
                       builder.download_and_prepare()
                self.assertTrue(
                    os.path.exists(
                        os.path.join(
                            __lowerCAmelCase						, builder.name						, '''default'''						, '''0.0.0'''						, f'''{builder.name}-train-00000-of-00002.arrow'''		)		)		)
                self.assertTrue(
                    os.path.exists(
                        os.path.join(
                            __lowerCAmelCase						, builder.name						, '''default'''						, '''0.0.0'''						, f'''{builder.name}-train-00000-of-00002.arrow'''		)		)		)
                self.assertDictEqual(builder.info.features						, datasets.Features({'''content''': datasets.Value('''string'''		)}		)		)
                _lowerCamelCase						:    List[str]         =			builder.as_dataset()
                self.assertEqual(dset['''train'''].num_rows						, __lowerCAmelCase		)
                self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples						, __lowerCAmelCase		)
                # Order is not preserved when sharding, so we just check that all the elements are there
                self.assertListEqual(sorted(dset['''train''']['''content''']		)						, sorted(['''foo''', '''bar''', '''foobar''']		)		)
                self.assertTrue(
                    os.path.exists(os.path.join(__lowerCAmelCase						, builder.name						, '''default'''						, '''0.0.0'''						, '''dataset_info.json'''		)		)		)
                del dset




  @require_beam
  def 						SCREAMING_SNAKE_CASE    (			self					:						Tuple		):






         """simple docstring"""






         with tempfile.TemporaryDirectory() as tmp_cache_dir:
                _lowerCamelCase						:    List[Any]         =			DummyBeamDataset(cache_dir=__lowerCAmelCase		)
                self.assertRaises(datasets.builder.MissingBeamOptions						, builder.download_and_prepare		)




  @require_beam
  def 						SCREAMING_SNAKE_CASE    (			self					:						List[str]		):






         """simple docstring"""






         _lowerCamelCase						:    List[str]         =			len(get_test_nested_examples()		)
         with tempfile.TemporaryDirectory() as tmp_cache_dir:
                _lowerCamelCase						:    Dict         =			NestedBeamDataset(cache_dir=__lowerCAmelCase						, beam_runner='''DirectRunner'''		)
                builder.download_and_prepare()
                self.assertTrue(
                    os.path.exists(
                        os.path.join(__lowerCAmelCase						, builder.name						, '''default'''						, '''0.0.0'''						, f'''{builder.name}-train.arrow'''		)		)		)
                self.assertDictEqual(
                    builder.info.features						, datasets.Features({'''a''': datasets.Sequence({'''b''': datasets.Value('''string'''		)}		)}		)		)
                _lowerCamelCase						:    List[Any]         =			builder.as_dataset()
                self.assertEqual(dset['''train'''].num_rows						, __lowerCAmelCase		)
                self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples						, __lowerCAmelCase		)
                self.assertDictEqual(dset['''train'''][0]						, get_test_nested_examples()[0][1]		)
                self.assertDictEqual(
                    dset['''train'''][expected_num_examples - 1]						, get_test_nested_examples()[expected_num_examples - 1][1]		)
                self.assertTrue(
                    os.path.exists(os.path.join(__lowerCAmelCase						, builder.name						, '''default'''						, '''0.0.0'''						, '''dataset_info.json'''		)		)		)
                del dset







"""simple docstring"""






from itertools import permutations






def 	snake_case_  (				A_ :		tuple						):


       '''simple docstring'''





       if num[3] % 2 != 0:
              return False

       if (num[2] + num[3] + num[4]) % 3 != 0:
              return False

       if num[5] % 5 != 0:
              return False

       _lowerCamelCase						:    Any         =			[7, 11, 13, 17]
       for i, test in enumerate(A_						):
              if (num[i + 4] * 1_00 + num[i + 5] * 10 + num[i + 6]) % test != 0:
                     return False
       return True






def 	snake_case_  (				A_ :		int = 10						):


       '''simple docstring'''





       return sum(
           int(''''''.join(map(A_,    A_						)						)						)
           for num in permutations(range(A_						)						)
           if is_substring_divisible(A_						)						)


if __name__ == "__main__":
   print(F"""{solution() = }""")


