





import argparse
import os
import re

import packaging.version


__lowercase	: Tuple       ="""examples/"""
__lowercase	: Optional[Any]       ={
    """examples""": (re.compile(R"""^check_min_version\(\"[^\"]+\"\)\s*$""", re.MULTILINE), """check_min_version(\"VERSION\")\n"""),
    """init""": (re.compile(R"""^__version__\s+=\s+\"([^\"]+)\"\s*$""", re.MULTILINE), """__version__ = \"VERSION\"\n"""),
    """setup""": (re.compile(R"""^(\s*)version\s*=\s*\"[^\"]+\",""", re.MULTILINE), R"""\1version=\"VERSION\","""),
    """doc""": (re.compile(R"""^(\s*)release\s*=\s*\"[^\"]+\"$""", re.MULTILINE), """release = \"VERSION\"\n"""),
}
__lowercase	: Union[str, Any]       ={
    """init""": """src/transformers/__init__.py""",
    """setup""": """setup.py""",
}
__lowercase	: Any       ="""README.md"""




def      a__			(       lowercase__	,     lowercase__	,     lowercase__	):






   '''simple docstring'''






   with open(lowercase__	,     "r"	,     encoding="utf-8"	,     newline="\n"	) as f:
      UpperCAmelCase_           =f.read()
   UpperCAmelCase_    ,							UpperCAmelCase_           =REPLACE_PATTERNS[pattern]
   UpperCAmelCase_           =replace.replace("VERSION"	,     lowercase__	)
   UpperCAmelCase_           =re_pattern.sub(lowercase__	,     lowercase__	)
   with open(lowercase__	,     "w"	,     encoding="utf-8"	,     newline="\n"	) as f:
      f.write(lowercase__	)




def      a__			(       lowercase__	):






   '''simple docstring'''






   for folder, directories, fnames in os.walk(lowercase__	):
      # Removing some of the folders with non-actively maintained examples from the walk
      if "research_projects" in directories:
         directories.remove("research_projects"	)
      if "legacy" in directories:
         directories.remove("legacy"	)
      for fname in fnames:
         if fname.endswith(".py"	):
            update_version_in_file(os.path.join(lowercase__	,     lowercase__	)	,     lowercase__	,     pattern="examples"	)




def      a__			(       lowercase__	,     lowercase__=False	):






   '''simple docstring'''






   for pattern, fname in REPLACE_FILES.items():
      update_version_in_file(lowercase__	,     lowercase__	,     lowercase__	)
   if not patch:
      update_version_in_examples(lowercase__	)




def      a__			(       ):






   '''simple docstring'''






   UpperCAmelCase_           ="🤗 Transformers currently provides the following architectures"
   UpperCAmelCase_           ="1. Want to contribute a new model?"
   with open(lowercase__	,     "r"	,     encoding="utf-8"	,     newline="\n"	) as f:
      UpperCAmelCase_           =f.readlines()

   # Find the start of the list.
   UpperCAmelCase_           =0
   while not lines[start_index].startswith(_start_prompt	):
      start_index += 1
   start_index += 1

   UpperCAmelCase_           =start_index
   # Update the lines in the model list.
   while not lines[index].startswith(_end_prompt	):
      if lines[index].startswith("1."	):
         UpperCAmelCase_           =lines[index].replace(
             "https://huggingface.co/docs/transformers/main/model_doc"	,     "https://huggingface.co/docs/transformers/model_doc"	,     )
      index += 1

   with open(lowercase__	,     "w"	,     encoding="utf-8"	,     newline="\n"	) as f:
      f.writelines(lowercase__	)




def      a__			(       ):






   '''simple docstring'''






   with open(REPLACE_FILES["init"]	,     "r"	) as f:
      UpperCAmelCase_           =f.read()
   UpperCAmelCase_           =REPLACE_PATTERNS["init"][0].search(lowercase__	).groups()[0]
   return packaging.version.parse(lowercase__	)




def      a__			(       lowercase__=False	):






   '''simple docstring'''






   UpperCAmelCase_           =get_version()
   if patch and default_version.is_devrelease:
      raise ValueError("Can't create a patch version from the dev branch, checkout a released version!"	)
   if default_version.is_devrelease:
      UpperCAmelCase_           =default_version.base_version
   elif patch:
      UpperCAmelCase_           =F'{default_version.major}.{default_version.minor}.{default_version.micro + 1}'
   else:
      UpperCAmelCase_           =F'{default_version.major}.{default_version.minor + 1}.0'

   # Now let's ask nicely if that's the right one.
   UpperCAmelCase_           =input(F'Which version are you releasing? [{default_version}]'	)
   if len(lowercase__	) == 0:
      UpperCAmelCase_           =default_version

   print(F'Updating version to {version}.'	)
   global_version_update(lowercase__	,     patch=lowercase__	)
   if not patch:
      print("Cleaning main README, don't forget to run `make fix-copies`."	)
      clean_main_ref_in_model_list()




def      a__			(       ):






   '''simple docstring'''






   UpperCAmelCase_           =get_version()
   UpperCAmelCase_           =F'{current_version.major}.{current_version.minor + 1}.0.dev0'
   UpperCAmelCase_           =current_version.base_version

   # Check with the user we got that right.
   UpperCAmelCase_           =input(F'Which version are we developing now? [{dev_version}]'	)
   if len(lowercase__	) == 0:
      UpperCAmelCase_           =dev_version

   print(F'Updating version to {version}.'	)
   global_version_update(lowercase__	)
   print("Cleaning main README, don't forget to run `make fix-copies`."	)
   clean_main_ref_in_model_list()


if __name__ == "__main__":
     __lowercase	: Union[str, Any]       =argparse.ArgumentParser()
     parser.add_argument("""--post_release""", action="""store_true""", help="""Whether this is pre or post release.""")
     parser.add_argument("""--patch""", action="""store_true""", help="""Whether or not this is a patch release.""")
     __lowercase	: List[Any]       =parser.parse_args()
     if not args.post_release:
          pre_release_work(patch=args.patch)
     elif args.patch:
          print("""Nothing to do after a patch :-)""")
     else:
          post_release_work()









from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


a      :  Dict			     =			{
    'configuration_lxmert': ['LXMERT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'LxmertConfig'],
    'tokenization_lxmert': ['LxmertTokenizer'],
}

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	a      :  Any			     =			['LxmertTokenizerFast']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	a      :  str			     =			[
	    'LxmertEncoder',
	    'LxmertForPreTraining',
	    'LxmertForQuestionAnswering',
	    'LxmertModel',
	    'LxmertPreTrainedModel',
	    'LxmertVisualFeatureEncoder',
	    'LxmertXLayer',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	a      :  str			     =			[
	    'TF_LXMERT_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'TFLxmertForPreTraining',
	    'TFLxmertMainLayer',
	    'TFLxmertModel',
	    'TFLxmertPreTrainedModel',
	    'TFLxmertVisualFeatureEncoder',
	]


if TYPE_CHECKING:
	from .configuration_lxmert import LXMERT_PRETRAINED_CONFIG_ARCHIVE_MAP, LxmertConfig
	from .tokenization_lxmert import LxmertTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_lxmert_fast import LxmertTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_lxmert import (
		    LxmertEncoder,
		    LxmertForPreTraining,
		    LxmertForQuestionAnswering,
		    LxmertModel,
		    LxmertPreTrainedModel,
		    LxmertVisualFeatureEncoder,
		    LxmertXLayer,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_lxmert import (
		    TF_LXMERT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFLxmertForPreTraining,
		    TFLxmertMainLayer,
		    TFLxmertModel,
		    TFLxmertPreTrainedModel,
		    TFLxmertVisualFeatureEncoder,
		)

else:
	import sys

	a      :  str			     =			_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)






