




import argparse
from collections import defaultdict

import yaml


UpperCamelCase__					    =    """docs/source/en/_toctree.yml"""







def 			_a   (		SCREAMING_SNAKE_CASE_							:       int  ):
					__lowerCAmelCase            = defaultdict(SCREAMING_SNAKE_CASE_  )
					__lowerCAmelCase            = []
					__lowerCAmelCase            = []
					for doc in doc_list:
										if "local" in doc:
															counts[doc["local"]] += 1

										if doc["title"].lower() == "overview":
															overview_doc.append({"local": doc["local"], "title": doc["title"]}  )
										else:
															new_doc_list.append(SCREAMING_SNAKE_CASE_  )

					__lowerCAmelCase            = new_doc_list
					__lowerCAmelCase            = [key for key, value in counts.items() if value > 1]

					__lowerCAmelCase            = []
					for duplicate_key in duplicates:
										__lowerCAmelCase            = list({doc["title"] for doc in doc_list if doc["local"] == duplicate_key}  )
										if len(SCREAMING_SNAKE_CASE_  ) > 1:
															raise ValueError(
															    F"""{duplicate_key} is present several times in the documentation table of content at """
															    "`docs/source/en/_toctree.yml` with different *Title* values. Choose one of those and remove the "
															    "others."  )
										# Only add this once
										new_doc.append({"local": duplicate_key, "title": titles[0]}  )

					# Add none duplicate-keys
					new_doc.extend([doc for doc in doc_list if "local" not in counts or counts[doc["local"]] == 1]  )
					__lowerCAmelCase            = sorted(SCREAMING_SNAKE_CASE_   ,   key=lambda SCREAMING_SNAKE_CASE_  : s["title"].lower()  )

					# "overview" gets special treatment and is always first
					if len(SCREAMING_SNAKE_CASE_  ) > 1:
										raise ValueError("{doc_list} has two 'overview' docs which is not allowed."  )

					overview_doc.extend(SCREAMING_SNAKE_CASE_  )

					# Sort
					return overview_doc







def 			_a   (		SCREAMING_SNAKE_CASE_							:       Optional[int]=False  ):
					with open(SCREAMING_SNAKE_CASE_   ,   encoding="utf-8"  ) as f:
										__lowerCAmelCase            = yaml.safe_load(f.read()  )

					# Get to the API doc
					__lowerCAmelCase            = 0
					while content[api_idx]["title"] != "API":
										api_idx += 1
					__lowerCAmelCase            = content[api_idx]["sections"]

					# Then to the model doc
					__lowerCAmelCase            = 0
					while api_doc[scheduler_idx]["title"] != "Schedulers":
										scheduler_idx += 1

					__lowerCAmelCase            = api_doc[scheduler_idx]["sections"]
					__lowerCAmelCase            = clean_doc_toc(SCREAMING_SNAKE_CASE_  )

					__lowerCAmelCase            = False
					if new_scheduler_doc != scheduler_doc:
										__lowerCAmelCase            = True
										if overwrite:
															__lowerCAmelCase            = new_scheduler_doc

					if diff:
										if overwrite:
															__lowerCAmelCase            = api_doc
															with open(SCREAMING_SNAKE_CASE_   ,   "w"   ,   encoding="utf-8"  ) as f:
																				f.write(yaml.dump(SCREAMING_SNAKE_CASE_   ,   allow_unicode=SCREAMING_SNAKE_CASE_  )  )
										else:
															raise ValueError(
															    "The model doc part of the table of content is not properly sorted, run `make style` to fix this."  )







def 			_a   (		SCREAMING_SNAKE_CASE_							:       List[str]=False  ):
					with open(SCREAMING_SNAKE_CASE_   ,   encoding="utf-8"  ) as f:
										__lowerCAmelCase            = yaml.safe_load(f.read()  )

					# Get to the API doc
					__lowerCAmelCase            = 0
					while content[api_idx]["title"] != "API":
										api_idx += 1
					__lowerCAmelCase            = content[api_idx]["sections"]

					# Then to the model doc
					__lowerCAmelCase            = 0
					while api_doc[pipeline_idx]["title"] != "Pipelines":
										pipeline_idx += 1

					__lowerCAmelCase            = False
					__lowerCAmelCase            = api_doc[pipeline_idx]["sections"]
					__lowerCAmelCase            = []

					# sort sub pipeline docs
					for pipeline_doc in pipeline_docs:
										if "section" in pipeline_doc:
															__lowerCAmelCase            = pipeline_doc["section"]
															__lowerCAmelCase            = clean_doc_toc(SCREAMING_SNAKE_CASE_  )
															if overwrite:
																				__lowerCAmelCase            = new_sub_pipeline_doc
										new_pipeline_docs.append(SCREAMING_SNAKE_CASE_  )

					# sort overall pipeline doc
					__lowerCAmelCase            = clean_doc_toc(SCREAMING_SNAKE_CASE_  )

					if new_pipeline_docs != pipeline_docs:
										__lowerCAmelCase            = True
										if overwrite:
															__lowerCAmelCase            = new_pipeline_docs

					if diff:
										if overwrite:
															__lowerCAmelCase            = api_doc
															with open(SCREAMING_SNAKE_CASE_   ,   "w"   ,   encoding="utf-8"  ) as f:
																				f.write(yaml.dump(SCREAMING_SNAKE_CASE_   ,   allow_unicode=SCREAMING_SNAKE_CASE_  )  )
										else:
															raise ValueError(
															    "The model doc part of the table of content is not properly sorted, run `make style` to fix this."  )


if __name__ == "__main__":
					UpperCamelCase__					    =    argparse.ArgumentParser()
					parser.add_argument("""--fix_and_overwrite""", action="""store_true""", help="""Whether to fix inconsistencies.""")
					UpperCamelCase__					    =    parser.parse_args()

					check_scheduler_doc(args.fix_and_overwrite)
					check_pipeline_doc(args.fix_and_overwrite)










def 			_a   (		SCREAMING_SNAKE_CASE_							:       int   ,   SCREAMING_SNAKE_CASE_							:       int  ):
					if b == 0:
										return 1
					if (b % 2) == 0:
										return actual_power(SCREAMING_SNAKE_CASE_   ,   int(b / 2  )  ) * actual_power(SCREAMING_SNAKE_CASE_   ,   int(b / 2  )  )
					else:
										return a * actual_power(SCREAMING_SNAKE_CASE_   ,   int(b / 2  )  ) * actual_power(SCREAMING_SNAKE_CASE_   ,   int(b / 2  )  )







def 			_a   (		SCREAMING_SNAKE_CASE_							:       int   ,   SCREAMING_SNAKE_CASE_							:       int  ):
					if b < 0:
										return 1 / actual_power(SCREAMING_SNAKE_CASE_   ,   SCREAMING_SNAKE_CASE_  )
					return actual_power(SCREAMING_SNAKE_CASE_   ,   SCREAMING_SNAKE_CASE_  )


if __name__ == "__main__":
					print(power(-2, -3))




