


# Copyright 2021 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.

import argparse

from .config import config_command_parser
from .config_args import default_config_file, load_config_from_file  # noqa: F401
from .default import default_command_parser
from .update import update_command_parser
def 							_UpperCAmelCase				(UpperCamelCase__     :  Optional[Any]=None						):
       _A      :       Tuple				    = argparse.ArgumentParser(add_help=UpperCamelCase__				,							allow_abbrev=UpperCamelCase__						)
       # The main config parser
       _A      :       Union[str, Any]				    = config_command_parser(UpperCamelCase__						)
       # The subparser to add commands to
       _A      :       List[str]				    = config_parser.add_subparsers(title="subcommands"				,							dest="subcommand"						)

       # Then add other parsers with the parent parser
       default_command_parser(UpperCamelCase__				,							parents=[parent_parser]						)
       update_command_parser(UpperCamelCase__				,							parents=[parent_parser]						)

       return config_parser
def 							_UpperCAmelCase				():
       _A      :       Optional[int]				    = get_config_parser()
       _A      :       Union[str, Any]				    = config_parser.parse_args()

       if not hasattr(UpperCamelCase__				,							"func"						):
              config_parser.print_help()
              exit(1						)

       # Run
       args.func(UpperCamelCase__						)


if __name__ == "__main__":
    main()




def 							_UpperCAmelCase				(UpperCamelCase__     :  str				,							UpperCamelCase__     :  bool = False						):

       if not isinstance(UpperCamelCase__				,							UpperCamelCase__						):
              _A      :       Optional[Any]				    = f"Expected string as input, found {type(UpperCamelCase__						)}"
              raise ValueError(UpperCamelCase__						)
       if not isinstance(UpperCamelCase__				,							UpperCamelCase__						):
              _A      :       Union[str, Any]				    = f"Expected boolean as use_pascal parameter, found {type(UpperCamelCase__						)}"
              raise ValueError(UpperCamelCase__						)

       _A      :       int				    = input_str.split("_"						)

       _A      :       str				    = 0 if use_pascal else 1

       _A      :       str				    = words[start_index:]

       _A      :       Optional[Any]				    = [word[0].upper() + word[1:] for word in words_to_capitalize]

       _A      :       Any				    = "" if use_pascal else words[0]

       return "".join([initial_word, *capitalized_words]						)


if __name__ == "__main__":
    from doctest import testmod

    testmod()
