




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


 '''simple docstring'''







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



 def  lowerCAmelCase_    (				self    :						Any							,							_lowerCAmelCase    :						List[Any]							,							_lowerCAmelCase    :						Optional[Any]		):
       return [datasets.SplitGenerator(name=datasets.Split.TRAIN							,							gen_kwargs={'examples': get_test_dummy_examples()}		)]




 def  lowerCAmelCase_    (				self    :						Any							,							_lowerCAmelCase    :						List[str]							,							_lowerCAmelCase    :						List[Any]		):
       import apache_beam as beam

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





class 			lowerCamelCase_				( datasets.BeamBasedBuilder   ):


 '''simple docstring'''







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



 def  lowerCAmelCase_    (				self    :						Tuple							,							_lowerCAmelCase    :						Union[str, Any]							,							_lowerCAmelCase    :						Tuple		):
       return [
           datasets.SplitGenerator(name=datasets.Split.TRAIN							,							gen_kwargs={'examples': get_test_nested_examples()}		)
       ]




 def  lowerCAmelCase_    (				self    :						List[str]							,							_lowerCAmelCase    :						Any							,							_lowerCAmelCase    :						Optional[Any]		):
       import apache_beam as beam

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


def    UpperCAmelCase_				( )   ->					Optional[Any]:
      return [(i, {"content": content}) for i, content in enumerate(['foo', 'bar', 'foobar']				)]

def    UpperCAmelCase_				( )   ->					Union[str, Any]:
      return [(i, {"a": {"b": [content]}}) for i, content in enumerate(['foo', 'bar', 'foobar']				)]





class 			lowerCamelCase_				( _SCREAMING_SNAKE_CASE   ):


 '''simple docstring'''







 @require_beam
 def  lowerCAmelCase_    (				self    :						List[Any]		):
       SCREAMING_SNAKE_CASE_      		=     len(get_test_dummy_examples()		)
       with tempfile.TemporaryDirectory() as tmp_cache_dir:
             SCREAMING_SNAKE_CASE_      		=     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'		)}		)		)
             SCREAMING_SNAKE_CASE_      		=     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  lowerCAmelCase_    (				self    :						List[str]		):
       import apache_beam as beam

       SCREAMING_SNAKE_CASE_      		=     beam.io.parquetio.WriteToParquet

       SCREAMING_SNAKE_CASE_      		=     len(get_test_dummy_examples()		)
       with tempfile.TemporaryDirectory() as tmp_cache_dir:
             SCREAMING_SNAKE_CASE_      		=     DummyBeamDataset(cache_dir=_lowerCAmelCase							,							beam_runner='DirectRunner'		)
             with patch('apache_beam.io.parquetio.WriteToParquet'		) as write_parquet_mock:
                   SCREAMING_SNAKE_CASE_      		=     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'		)}		)		)
             SCREAMING_SNAKE_CASE_      		=     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  lowerCAmelCase_    (				self    :						Optional[int]		):
       with tempfile.TemporaryDirectory() as tmp_cache_dir:
             SCREAMING_SNAKE_CASE_      		=     DummyBeamDataset(cache_dir=_lowerCAmelCase		)
             self.assertRaises(datasets.builder.MissingBeamOptions							,							builder.download_and_prepare		)




 @require_beam
 def  lowerCAmelCase_    (				self    :						str		):
       SCREAMING_SNAKE_CASE_      		=     len(get_test_nested_examples()		)
       with tempfile.TemporaryDirectory() as tmp_cache_dir:
             SCREAMING_SNAKE_CASE_      		=     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'		)}		)}		)		)
             SCREAMING_SNAKE_CASE_      		=     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





import warnings

from ...utils import logging
from .image_processing_layoutlmva import LayoutLMvaImageProcessor


lowerCamelCase__					:  Union[str, Any]      							=				logging.get_logger(__name__)





class 			lowerCamelCase_				( _SCREAMING_SNAKE_CASE   ):


 '''simple docstring'''







 def __init__(				self    :						Dict							,							*_lowerCAmelCase    :						Optional[Any]							,							**_lowerCAmelCase    :						Any		):
       warnings.warn(
           'The class LayoutLMv2FeatureExtractor is deprecated and will be removed in version 5 of Transformers.'
           ' Please use LayoutLMv2ImageProcessor instead.'							,							_lowerCAmelCase							,							)
       super().__init__(*_lowerCAmelCase							,							**_lowerCAmelCase		)