

'''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 						__magic_name__   (							datasets.BeamBasedBuilder ):







 def 						_A(       self   ):
   return datasets.DatasetInfo(
       features=datasets.Features({'''content''': datasets.Value('''string'''   )}   )  , supervised_keys=_UpperCamelCase  , )







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







 def 						_A(       self  , snake_case_  , snake_case_   ):
   import apache_beam as beam

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

class 						__magic_name__   (							datasets.BeamBasedBuilder ):







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







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







 def 						_A(       self  , snake_case_  , snake_case_   ):
   import apache_beam as beam

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




def 	UpperCamelCase   (       )		->	Dict:




  '''simple docstring'''



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




def 	UpperCamelCase   (       )		->	Dict:




  '''simple docstring'''



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




class 						__magic_name__   (							A__ ):







 @require_beam
 def 						_A(       self   ):
   lowercase									=len(get_test_dummy_examples()   )
   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     lowercase									=DummyBeamDataset(cache_dir=_UpperCamelCase  , beam_runner='''DirectRunner'''   )
     builder.download_and_prepare()
     self.assertTrue(
         os.path.exists(
             os.path.join(_UpperCamelCase  , builder.name  , '''default'''  , '''0.0.0'''  , f'{builder.name}-train.arrow'   )   )   )
     self.assertDictEqual(builder.info.features  , datasets.Features({'''content''': datasets.Value('''string'''   )}   )   )
     lowercase									=builder.as_dataset()
     self.assertEqual(dset['''train'''].num_rows  , _UpperCamelCase   )
     self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples  , _UpperCamelCase   )
     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(_UpperCamelCase  , builder.name  , '''default'''  , '''0.0.0'''  , '''dataset_info.json'''   )   )   )
     del dset







 @require_beam
 def 						_A(       self   ):
   import apache_beam as beam

   lowercase									=beam.io.parquetio.WriteToParquet

   lowercase									=len(get_test_dummy_examples()   )
   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     lowercase									=DummyBeamDataset(cache_dir=_UpperCamelCase  , beam_runner='''DirectRunner'''   )
     with patch('''apache_beam.io.parquetio.WriteToParquet'''   ) as write_parquet_mock:
       lowercase									=partial(_UpperCamelCase  , num_shards=2   )
       builder.download_and_prepare()
     self.assertTrue(
         os.path.exists(
             os.path.join(
                 _UpperCamelCase  , builder.name  , '''default'''  , '''0.0.0'''  , f'{builder.name}-train-00000-of-00002.arrow'   )   )   )
     self.assertTrue(
         os.path.exists(
             os.path.join(
                 _UpperCamelCase  , 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'''   )}   )   )
     lowercase									=builder.as_dataset()
     self.assertEqual(dset['''train'''].num_rows  , _UpperCamelCase   )
     self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples  , _UpperCamelCase   )
     # 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(_UpperCamelCase  , builder.name  , '''default'''  , '''0.0.0'''  , '''dataset_info.json'''   )   )   )
     del dset







 @require_beam
 def 						_A(       self   ):
   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     lowercase									=DummyBeamDataset(cache_dir=_UpperCamelCase   )
     self.assertRaises(datasets.builder.MissingBeamOptions  , builder.download_and_prepare   )







 @require_beam
 def 						_A(       self   ):
   lowercase									=len(get_test_nested_examples()   )
   with tempfile.TemporaryDirectory() as tmp_cache_dir:
     lowercase									=NestedBeamDataset(cache_dir=_UpperCamelCase  , beam_runner='''DirectRunner'''   )
     builder.download_and_prepare()
     self.assertTrue(
         os.path.exists(
             os.path.join(_UpperCamelCase  , 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'''   )}   )}   )   )
     lowercase									=builder.as_dataset()
     self.assertEqual(dset['''train'''].num_rows  , _UpperCamelCase   )
     self.assertEqual(dset['''train'''].info.splits['''train'''].num_examples  , _UpperCamelCase   )
     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(_UpperCamelCase  , builder.name  , '''default'''  , '''0.0.0'''  , '''dataset_info.json'''   )   )   )
     del dset







import baseaa
def      A__       (    SCREAMING_SNAKE_CASE_   :      str						)  ->  bytes:






   """simple docstring"""







   return baseaa.baaencode(string.encode('''utf-8'''						)						)
def      A__       (    SCREAMING_SNAKE_CASE_   :      bytes						)  ->  str:






   """simple docstring"""







   return baseaa.baadecode(SCREAMING_SNAKE_CASE_						).decode('''utf-8'''						)


if __name__ == "__main__":
   UpperCAmelCase_           =	"Hello World!"
   UpperCAmelCase_           =	baseaa_encode(test)
   print(encoded)

   UpperCAmelCase_           =	baseaa_decode(encoded)
   print(decoded)