


import argparse
import os
import re

import packaging.version


lowerCAmelCase       		=    """examples/"""
lowerCAmelCase       		=    {
    """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"""),
}
lowerCAmelCase       		=    {
    """init""": """src/diffusers/__init__.py""",
    """setup""": """setup.py""",
}
lowerCAmelCase       		=    """README.md"""




def     __SCREAMING_SNAKE_CASE							(       lowercase_      ,       lowercase_      ,       lowercase_      )		->     Any:




						'''simple docstring'''







						with open(lowercase_      ,       '''r'''      ,       encoding='''utf-8'''      ,       newline='''\n'''      ) as f:
												__UpperCAmelCase			:							Tuple	    =	f.read()
						__UpperCAmelCase    ,      __UpperCAmelCase			:							List[str]	    =	REPLACE_PATTERNS[pattern]
						__UpperCAmelCase			:							Dict	    =	replace.replace('''VERSION'''      ,       lowercase_      )
						__UpperCAmelCase			:							Optional[Any]	    =	re_pattern.sub(lowercase_      ,       lowercase_      )
						with open(lowercase_      ,       '''w'''      ,       encoding='''utf-8'''      ,       newline='''\n'''      ) as f:
												f.write(lowercase_      )




def     __SCREAMING_SNAKE_CASE							(       lowercase_      )		->     List[str]:




						'''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     __SCREAMING_SNAKE_CASE							(       lowercase_      ,       lowercase_=False      )		->     Optional[Any]:




						'''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     __SCREAMING_SNAKE_CASE							(       )		->     Optional[Any]:




						'''simple docstring'''







						__UpperCAmelCase			:							Optional[Any]	    =	'''🤗 Transformers currently provides the following architectures'''
						__UpperCAmelCase			:							List[str]	    =	'''1. Want to contribute a new model?'''
						with open(lowercase_      ,       '''r'''      ,       encoding='''utf-8'''      ,       newline='''\n'''      ) as f:
												__UpperCAmelCase			:							Union[str, Any]	    =	f.readlines()

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

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

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




def     __SCREAMING_SNAKE_CASE							(       )		->     int:




						'''simple docstring'''







						with open(REPLACE_FILES['''init''']      ,       '''r'''      ) as f:
												__UpperCAmelCase			:							List[Any]	    =	f.read()
						__UpperCAmelCase			:							Any	    =	REPLACE_PATTERNS['''init'''][0].search(lowercase_      ).groups()[0]
						return packaging.version.parse(lowercase_      )




def     __SCREAMING_SNAKE_CASE							(       lowercase_=False      )		->     Tuple:




						'''simple docstring'''







						__UpperCAmelCase			:							int	    =	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			:							int	    =	default_version.base_version
						elif patch:
												__UpperCAmelCase			:							Optional[Any]	    =	f"{default_version.major}.{default_version.minor}.{default_version.micro + 1}"
						else:
												__UpperCAmelCase			:							Union[str, Any]	    =	f"{default_version.major}.{default_version.minor + 1}.0"

						# Now let's ask nicely if that's the right one.
						__UpperCAmelCase			:							Union[str, Any]	    =	input(f"Which version are you releasing? [{default_version}]"      )
						if len(lowercase_      ) == 0:
												__UpperCAmelCase			:							str	    =	default_version

						print(f"Updating version to {version}."      )
						global_version_update(lowercase_      ,       patch=lowercase_      )




def     __SCREAMING_SNAKE_CASE							(       )		->     Optional[Any]:




						'''simple docstring'''







						__UpperCAmelCase			:							Tuple	    =	get_version()
						__UpperCAmelCase			:							List[str]	    =	f"{current_version.major}.{current_version.minor + 1}.0.dev0"
						__UpperCAmelCase			:							List[Any]	    =	current_version.base_version

						# Check with the user we got that right.
						__UpperCAmelCase			:							Dict	    =	input(f"Which version are we developing now? [{dev_version}]"      )
						if len(lowercase_      ) == 0:
												__UpperCAmelCase			:							int	    =	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__":
				lowerCAmelCase       		=    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.""")
				lowerCAmelCase       		=    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()





def     __SCREAMING_SNAKE_CASE							(       lowercase_      ,       lowercase_      )		->     int:




						'''simple docstring'''







						return 1 if input_a == input_a else 0




def     __SCREAMING_SNAKE_CASE							(       )		->     None:




						'''simple docstring'''







						assert xnor_gate(0      ,       0      ) == 1
						assert xnor_gate(0      ,       1      ) == 0
						assert xnor_gate(1      ,       0      ) == 0
						assert xnor_gate(1      ,       1      ) == 1


if __name__ == "__main__":
				print(xnor_gate(0, 0))
				print(xnor_gate(0, 1))
				print(xnor_gate(1, 0))
				print(xnor_gate(1, 1))

