



import subprocess
from argparse import ArgumentParser
from typing import List, Union

from huggingface_hub.hf_api import HfFolder, create_repo, whoami
from requests.exceptions import HTTPError

from . import BaseTransformersCLICommand

class        _A			(      __UpperCAmelCase       ):



       @staticmethod
       def 						_lowerCamelCase     (						__SCREAMING_SNAKE_CASE				:	ArgumentParser):


           '''simple docstring'''

           __a					=							parser.add_parser('''login'''	,						help='''Log in using the same credentials as on huggingface.co''')
           login_parser.set_defaults(func=lambda __SCREAMING_SNAKE_CASE: LoginCommand(__SCREAMING_SNAKE_CASE))
           __a					=							parser.add_parser('''whoami'''	,						help='''Find out which huggingface.co account you are logged in as.''')
           whoami_parser.set_defaults(func=lambda __SCREAMING_SNAKE_CASE: WhoamiCommand(__SCREAMING_SNAKE_CASE))
           __a					=							parser.add_parser('''logout'''	,						help='''Log out''')
           logout_parser.set_defaults(func=lambda __SCREAMING_SNAKE_CASE: LogoutCommand(__SCREAMING_SNAKE_CASE))

           # new system: git-based repo system
           __a					=							parser.add_parser(
               '''repo'''	,						help='''Deprecated: use `huggingface-cli` instead. Commands to interact with your huggingface.co repos.'''	,						)
           __a					=							repo_parser.add_subparsers(
               help='''Deprecated: use `huggingface-cli` instead. huggingface.co repos related commands''')
           __a					=							repo_subparsers.add_parser(
               '''create'''	,						help='''Deprecated: use `huggingface-cli` instead. Create a new repo on huggingface.co''')
           repo_create_parser.add_argument(
               '''name'''	,						type=__SCREAMING_SNAKE_CASE	,						help='''Name for your model\'s repo. Will be namespaced under your username to build the model id.'''	,						)
           repo_create_parser.add_argument('''--organization'''	,						type=__SCREAMING_SNAKE_CASE	,						help='''Optional: organization namespace.''')
           repo_create_parser.add_argument('''-y'''	,						'''--yes'''	,						action='''store_true'''	,						help='''Optional: answer Yes to the prompt''')
           repo_create_parser.set_defaults(func=lambda __SCREAMING_SNAKE_CASE: RepoCreateCommand(__SCREAMING_SNAKE_CASE))


class        _A			:
       UpperCamelCase__    :       Union[str, Any]		   =		'''\u001b[1m'''
       UpperCamelCase__    :       int		   =		'''\u001b[31m'''
       UpperCamelCase__    :       Optional[int]		   =		'''\u001b[90m'''
       UpperCamelCase__    :       Optional[int]		   =		'''\u001b[0m'''



       @classmethod
       def 						_lowerCamelCase     (						cls				:	List[Any]	,						__SCREAMING_SNAKE_CASE				:	str):


           '''simple docstring'''

           return F'{cls._bold}{s}{cls._reset}'



       @classmethod
       def 						_lowerCamelCase     (						cls				:	Optional[int]	,						__SCREAMING_SNAKE_CASE				:	Tuple):


           '''simple docstring'''

           return F'{cls._bold}{cls._red}{s}{cls._reset}'





       @classmethod
       def 						_lowerCamelCase     (						cls				:	Any	,						__SCREAMING_SNAKE_CASE				:	Dict):


           '''simple docstring'''

           return F'{cls._gray}{s}{cls._reset}'





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase							):
    __a					=							[max(len(str(_UpperCAmelCase							)							) for x in col							) for col in zip(*_UpperCAmelCase  ,					_UpperCAmelCase							)]
    __a					=							('''{{:{}}} ''' * len(_UpperCAmelCase							)).format(*_UpperCAmelCase							)
    __a					=							[]
    lines.append(row_format.format(*_UpperCAmelCase							)							)
    lines.append(row_format.format(*['''-''' * w for w in col_widths]							)							)
    for row in rows:
        lines.append(row_format.format(*_UpperCAmelCase							)							)
    return "\n".join(_UpperCAmelCase							)

class        _A			:



       def __init__(						self				:	Tuple	,						__SCREAMING_SNAKE_CASE				:	int):


           '''simple docstring'''

           __a					=							args


class        _A			(      __UpperCAmelCase       ):



       def 						_lowerCamelCase     (						self				:	Optional[Any]):


           '''simple docstring'''

           print(
               ANSI.red(
                   '''ERROR! `huggingface-cli login` uses an outdated login mechanism '''
                   '''that is not compatible with the Hugging Face Hub backend anymore. '''
                   '''Please use `huggingface-cli login instead.'''))


class        _A			(      __UpperCAmelCase       ):



       def 						_lowerCamelCase     (						self				:	List[Any]):


           '''simple docstring'''

           print(
               ANSI.red(
                   '''WARNING! `transformers-cli whoami` is deprecated and will be removed in v5. Please use '''
                   '''`huggingface-cli whoami` instead.'''))
           __a					=							HfFolder.get_token()
           if token is None:
               print('''Not logged in''')
               exit()
           try:
               __a			,  __a					=							whoami(__SCREAMING_SNAKE_CASE)
               print(__SCREAMING_SNAKE_CASE)
               if orgs:
                   print(ANSI.bold('''orgs: ''')	,						''','''.join(__SCREAMING_SNAKE_CASE))
           except HTTPError as e:
               print(__SCREAMING_SNAKE_CASE)
               print(ANSI.red(e.response.text))
               exit(1)


class        _A			(      __UpperCAmelCase       ):



       def 						_lowerCamelCase     (						self				:	List[str]):


           '''simple docstring'''

           print(
               ANSI.red(
                   '''ERROR! `transformers-cli logout` uses an outdated logout mechanism '''
                   '''that is not compatible with the Hugging Face Hub backend anymore. '''
                   '''Please use `huggingface-cli logout instead.'''))


class        _A			(      __UpperCAmelCase       ):



       def 						_lowerCamelCase     (						self				:	Optional[int]):


           '''simple docstring'''

           print(
               ANSI.red(
                   '''WARNING! Managing repositories through transformers-cli is deprecated. '''
                   '''Please use `huggingface-cli` instead.'''))
           __a					=							HfFolder.get_token()
           if token is None:
               print('''Not logged in''')
               exit(1)
           try:
               __a					=							subprocess.check_output(['''git''', '''--version''']).decode('''utf-8''')
               print(ANSI.gray(stdout.strip()))
           except FileNotFoundError:
               print('''Looks like you do not have git installed, please install.''')

           try:
               __a					=							subprocess.check_output(['''git-lfs''', '''--version''']).decode('''utf-8''')
               print(ANSI.gray(stdout.strip()))
           except FileNotFoundError:
               print(
                   ANSI.red(
                       '''Looks like you do not have git-lfs installed, please install.'''
                       ''' You can install from https://git-lfs.github.com/.'''
                       ''' Then run `git lfs install` (you only have to do this once).'''))
           print('''''')

           __a			,  __a					=							whoami(__SCREAMING_SNAKE_CASE)
           __a					=							self.args.organization if self.args.organization is not None else user
           __a					=							F'{namespace}/{self.args.name}'
           print(F'You are about to create {ANSI.bold(__SCREAMING_SNAKE_CASE)}')

           if not self.args.yes:
               __a					=							input('''Proceed? [Y/n] ''').lower()
               if not (choice == "" or choice == "y" or choice == "yes"):
                   print('''Abort''')
                   exit()
           try:
               __a					=							create_repo(__SCREAMING_SNAKE_CASE	,						name=self.args.name	,						organization=self.args.organization)
           except HTTPError as e:
               print(__SCREAMING_SNAKE_CASE)
               print(ANSI.red(e.response.text))
               exit(1)
           print('''\nYour repo now lives at:''')
           print(F'  {ANSI.bold(__SCREAMING_SNAKE_CASE)}')
           print('''\nYou can clone it locally with the command below, and commit/push as usual.''')
           print(F'\n  git clone {url}')
           print('''''')










def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 9 / 5) + 32  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round(float(_UpperCAmelCase							) + 2_73.15  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 9 / 5) + 4_91.67  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) - 32) * 5 / 9  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round(((float(_UpperCAmelCase							) - 32) * 5 / 9) + 2_73.15  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round(float(_UpperCAmelCase							) + 4_59.67  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round(float(_UpperCAmelCase							) - 2_73.15  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round(((float(_UpperCAmelCase							) - 2_73.15) * 9 / 5) + 32  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 9 / 5)  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) - 4_91.67) * 5 / 9  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round(float(_UpperCAmelCase							) - 4_59.67  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 5 / 9)  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 1.25 + 2_73.15)  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 2.25 + 32)  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 1.25)  ,					_UpperCAmelCase							)





def 	__snake_case      (     _UpperCAmelCase  ,					_UpperCAmelCase = 2							):
    return round((float(_UpperCAmelCase							) * 2.25 + 32 + 4_59.67)  ,					_UpperCAmelCase							)


if __name__ == "__main__":
 import doctest

 doctest.testmod()





