"""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


__A			   = {
    "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:
       __A			   = [
           "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

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

"""simple docstring"""






__A			   = [
    (1_0_0_0, "M"),
    (9_0_0, "CM"),
    (5_0_0, "D"),
    (4_0_0, "CD"),
    (1_0_0, "C"),
    (9_0, "XC"),
    (5_0, "L"),
    (4_0, "XL"),
    (1_0, "X"),
    (9, "IX"),
    (5, "V"),
    (4, "IV"),
    (1, "I"),
]



def SCREAMING_SNAKE_CASE__			(   __UpperCAmelCase )  ->  int:
   lowercase__:   Dict					=      {'''I''': 1, '''V''': 5, '''X''': 1_0, '''L''': 5_0, '''C''': 1_0_0, '''D''': 5_0_0, '''M''': 1_0_0_0}
   lowercase__:   List[str]					=      0
   lowercase__:   List[Any]					=      0
   while place < len(__UpperCAmelCase ):
      if (place + 1 < len(__UpperCAmelCase )) and (vals[roman[place]] < vals[roman[place + 1]]):
         total += vals[roman[place + 1]] - vals[roman[place]]
         place += 2
      else:
         total += vals[roman[place]]
         place += 1
   return total



def SCREAMING_SNAKE_CASE__			(   __UpperCAmelCase )  ->  str:
   lowercase__:   Optional[Any]					=      []
   for arabic, roman in ROMAN:
      ((lowercase__), (lowercase__)):   Tuple					=      divmod(__UpperCAmelCase       ,    __UpperCAmelCase )
      result.append(roman * factor )
      if number == 0:
         break
   return "".join(__UpperCAmelCase )


if __name__ == "__main__":
       import doctest

       doctest.testmod()
