



"""simple docstring"""





import json
import os
import tempfile

import datasets
from utils import generate_example_dataset, get_duration


lowerCamelCase       	=						50_000
lowerCamelCase       	=						5_000

lowerCamelCase	,						lowerCamelCase       	=						os.path.split(__file__)
lowerCamelCase       	=						os.path.join(RESULTS_BASEPATH, """results""", RESULTS_FILENAME.replace(""".py""", """.json"""))
@get_duration
def        a__     (				lowerCAmelCase__     ,      lowerCAmelCase__				):
      for i in range(lowerCAmelCase__				):
            UpperCAmelCase_      			=							dataset[i]
@get_duration
def        a__     (				lowerCAmelCase__     ,      lowerCAmelCase__     ,      lowerCAmelCase__				):
      for i in range(0     ,      len(lowerCAmelCase__				)     ,      lowerCAmelCase__				):
            UpperCAmelCase_      			=							dataset[i : i + batch_size]
@get_duration
def        a__     (				lowerCAmelCase__     ,      lowerCAmelCase__     ,      lowerCAmelCase__				):
      with dataset.formatted_as(type=lowerCAmelCase__				):
            for i in range(lowerCAmelCase__				):
                  UpperCAmelCase_      			=							dataset[i]
@get_duration
def        a__     (				lowerCAmelCase__     ,      lowerCAmelCase__     ,      lowerCAmelCase__     ,      lowerCAmelCase__				):
      with dataset.formatted_as(type=lowerCAmelCase__				):
            for i in range(0     ,      lowerCAmelCase__     ,      lowerCAmelCase__				):
                  UpperCAmelCase_      			=							dataset[i : i + batch_size]
def        a__     (				):
      UpperCAmelCase_      			=							{"num examples": SPEED_TEST_N_EXAMPLES}
      UpperCAmelCase_      			=							[
          (read, {"length": SMALL_TEST}),
          (read, {"length": SPEED_TEST_N_EXAMPLES}),
          (read_batch, {"length": SPEED_TEST_N_EXAMPLES, "batch_size": 10}),
          (read_batch, {"length": SPEED_TEST_N_EXAMPLES, "batch_size": 100}),
          (read_batch, {"length": SPEED_TEST_N_EXAMPLES, "batch_size": 1000}),
          (read_formatted, {"type": "numpy", "length": SMALL_TEST}),
          (read_formatted, {"type": "pandas", "length": SMALL_TEST}),
          (read_formatted, {"type": "torch", "length": SMALL_TEST}),
          (read_formatted, {"type": "tensorflow", "length": SMALL_TEST}),
          (read_formatted_batch, {"type": "numpy", "length": SMALL_TEST, "batch_size": 10}),
          (read_formatted_batch, {"type": "numpy", "length": SMALL_TEST, "batch_size": 1000}),
      ]

      UpperCAmelCase_      			=							[
          (read, {"length": SMALL_TEST}),
          (read, {"length": SPEED_TEST_N_EXAMPLES}),
          (read_batch, {"length": SPEED_TEST_N_EXAMPLES, "batch_size": 10}),
          (read_batch, {"length": SPEED_TEST_N_EXAMPLES, "batch_size": 100}),
          (read_batch, {"length": SPEED_TEST_N_EXAMPLES, "batch_size": 1000}),
          (read_formatted, {"type": "numpy", "length": SMALL_TEST}),
          (read_formatted_batch, {"type": "numpy", "length": SMALL_TEST, "batch_size": 10}),
          (read_formatted_batch, {"type": "numpy", "length": SMALL_TEST, "batch_size": 1000}),
      ]
      with tempfile.TemporaryDirectory() as tmp_dir:
            print("generating dataset"				)
            UpperCAmelCase_      			=							datasets.Features(
                {"list": datasets.Sequence(datasets.Value("float32"				)				), "numbers": datasets.Value("float32"				)}				)
            UpperCAmelCase_      			=							generate_example_dataset(
                os.path.join(lowerCAmelCase__     ,      "dataset.arrow"				)     ,      lowerCAmelCase__     ,      num_examples=lowerCAmelCase__     ,      seq_shapes={"list": (100,)}     ,      )
            print("first set of iterations"				)
            for func, kwargs in functions:
                  print(func.__name__     ,      str(lowerCAmelCase__				)				)
                  UpperCAmelCase_      			=							func(lowerCAmelCase__     ,      **lowerCAmelCase__				)

            print("shuffling dataset"				)
            UpperCAmelCase_      			=							dataset.shuffle()
            print("Second set of iterations (after shuffling"				)
            for func, kwargs in functions_shuffled:
                  print("shuffled "     ,      func.__name__     ,      str(lowerCAmelCase__				)				)
                  UpperCAmelCase_      			=							func(
                      lowerCAmelCase__     ,      **lowerCAmelCase__				)

      with open(lowerCAmelCase__     ,      "wb"				) as f:
            f.write(json.dumps(lowerCAmelCase__				).encode("utf-8"				)				)


if __name__ == "__main__":  # useful to run the profiler
  benchmark_iterating()









"""simple docstring"""





# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCamelCase       	=						{
    """configuration_mgp_str""": ["""MGP_STR_PRETRAINED_CONFIG_ARCHIVE_MAP""", """MgpstrConfig"""],
    """processing_mgp_str""": ["""MgpstrProcessor"""],
    """tokenization_mgp_str""": ["""MgpstrTokenizer"""],
}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  lowerCamelCase       	=						[
      """MGP_STR_PRETRAINED_MODEL_ARCHIVE_LIST""",
      """MgpstrModel""",
      """MgpstrPreTrainedModel""",
      """MgpstrForSceneTextRecognition""",
  ]

if TYPE_CHECKING:
  from .configuration_mgp_str import MGP_STR_PRETRAINED_CONFIG_ARCHIVE_MAP, MgpstrConfig
  from .processing_mgp_str import MgpstrProcessor
  from .tokenization_mgp_str import MgpstrTokenizer

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_mgp_str import (
        MGP_STR_PRETRAINED_MODEL_ARCHIVE_LIST,
        MgpstrForSceneTextRecognition,
        MgpstrModel,
        MgpstrPreTrainedModel,
    )
else:
  import sys

  lowerCamelCase       	=						_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)




