
import subprocess
import sys

from transformers import BertConfig, BertModel, BertTokenizer, pipeline
from transformers.testing_utils import TestCasePlus, require_torch





class 				UpperCAmelCase (    __SCREAMING_SNAKE_CASE    ):




	'''simple docstring'''





	@require_torch
	def 							UpperCamelCase_    (			self   :					Optional[int]					):
					# this test is a bit tricky since TRANSFORMERS_OFFLINE can only be changed before
					# `transformers` is loaded, and it's too late for inside pytest - so we are changing it
					# while running an external program

					# python one-liner segments

					# this must be loaded before socket.socket is monkey-patched
					__A       =					"\nfrom transformers import BertConfig, BertModel, BertTokenizer, pipeline\n        "

					__A       =					"\nmname = \"hf-internal-testing/tiny-random-bert\"\nBertConfig.from_pretrained(mname)\nBertModel.from_pretrained(mname)\nBertTokenizer.from_pretrained(mname)\npipe = pipeline(task=\"fill-mask\", model=mname)\nprint(\"success\")\n        "

					__A       =					"\nimport socket\ndef offline_socket(*args, **kwargs): raise RuntimeError(\"Offline mode is enabled, we shouldn't access internet\")\nsocket.socket = offline_socket\n        "

					# Force fetching the files so that we can use the cache
					__A       =					"hf-internal-testing/tiny-random-bert"
					BertConfig.from_pretrained(A					)
					BertModel.from_pretrained(A					)
					BertTokenizer.from_pretrained(A					)
					pipeline(task="fill-mask"				,model=A					)

					# baseline - just load from_pretrained with normal network
					__A       =					[sys.executable, "-c", "\n".join([load, run, mock]					)]

					# should succeed
					__A       =					self.get_env()
					# should succeed as TRANSFORMERS_OFFLINE=1 tells it to use local files
					__A       =					"1"
					__A       =					subprocess.run(A				,env=A				,check=A				,capture_output=A					)
					self.assertEqual(result.returncode				,0				,result.stderr					)
					self.assertIn("success"				,result.stdout.decode()					)






	@require_torch
	def 							UpperCamelCase_    (			self   :					Union[str, Any]					):
					# python one-liner segments
					# this must be loaded before socket.socket is monkey-patched
					__A       =					"\nfrom transformers import BertConfig, BertModel, BertTokenizer, pipeline\n        "

					__A       =					"\nmname = \"hf-internal-testing/tiny-random-bert\"\nBertConfig.from_pretrained(mname)\nBertModel.from_pretrained(mname)\nBertTokenizer.from_pretrained(mname)\npipe = pipeline(task=\"fill-mask\", model=mname)\nprint(\"success\")\n        "

					__A       =					"\nimport socket\ndef offline_socket(*args, **kwargs): raise socket.error(\"Faking flaky internet\")\nsocket.socket = offline_socket\n        "

					# Force fetching the files so that we can use the cache
					__A       =					"hf-internal-testing/tiny-random-bert"
					BertConfig.from_pretrained(A					)
					BertModel.from_pretrained(A					)
					BertTokenizer.from_pretrained(A					)
					pipeline(task="fill-mask"				,model=A					)

					# baseline - just load from_pretrained with normal network
					__A       =					[sys.executable, "-c", "\n".join([load, run, mock]					)]

					# should succeed
					__A       =					self.get_env()
					__A       =					subprocess.run(A				,env=A				,check=A				,capture_output=A					)
					self.assertEqual(result.returncode				,0				,result.stderr					)
					self.assertIn("success"				,result.stdout.decode()					)






	@require_torch
	def 							UpperCamelCase_    (			self   :					Optional[int]					):
					# this test is a bit tricky since TRANSFORMERS_OFFLINE can only be changed before
					# `transformers` is loaded, and it's too late for inside pytest - so we are changing it
					# while running an external program

					# python one-liner segments

					# this must be loaded before socket.socket is monkey-patched
					__A       =					"\nfrom transformers import BertConfig, BertModel, BertTokenizer\n        "

					__A       =					"\nmname = \"hf-internal-testing/tiny-random-bert-sharded\"\nBertConfig.from_pretrained(mname)\nBertModel.from_pretrained(mname)\nprint(\"success\")\n        "

					__A       =					"\nimport socket\ndef offline_socket(*args, **kwargs): raise ValueError(\"Offline mode is enabled\")\nsocket.socket = offline_socket\n        "

					# baseline - just load from_pretrained with normal network
					__A       =					[sys.executable, "-c", "\n".join([load, run]					)]

					# should succeed
					__A       =					self.get_env()
					__A       =					subprocess.run(A				,env=A				,check=A				,capture_output=A					)
					self.assertEqual(result.returncode				,0				,result.stderr					)
					self.assertIn("success"				,result.stdout.decode()					)

					# next emulate no network
					__A       =					[sys.executable, "-c", "\n".join([load, mock, run]					)]

					# Doesn't fail anymore since the model is in the cache due to other tests, so commenting this.
					# env["TRANSFORMERS_OFFLINE"] = "0"
					# result = subprocess.run(cmd, env=env, check=False, capture_output=True)
					# self.assertEqual(result.returncode, 1, result.stderr)

					# should succeed as TRANSFORMERS_OFFLINE=1 tells it to use local files
					__A       =					"1"
					__A       =					subprocess.run(A				,env=A				,check=A				,capture_output=A					)
					self.assertEqual(result.returncode				,0				,result.stderr					)
					self.assertIn("success"				,result.stdout.decode()					)






	@require_torch
	def 							UpperCamelCase_    (			self   :					List[str]					):
					__A       =					"\nfrom transformers import pipeline\n        "
					__A       =					"\nmname = \"hf-internal-testing/tiny-random-bert\"\npipe = pipeline(model=mname)\n        "

					__A       =					"\nimport socket\ndef offline_socket(*args, **kwargs): raise socket.error(\"Offline mode is enabled\")\nsocket.socket = offline_socket\n        "
					__A       =					self.get_env()
					__A       =					"1"
					__A       =					[sys.executable, "-c", "\n".join([load, mock, run]					)]
					__A       =					subprocess.run(A				,env=A				,check=A				,capture_output=A					)
					self.assertEqual(result.returncode				,1				,result.stderr					)
					self.assertIn(
					    "You cannot infer task automatically within `pipeline` when using offline mode"				,result.stderr.decode().replace("\n"				,""					)				,)







	@require_torch
	def 							UpperCamelCase_    (			self   :					Union[str, Any]					):
					__A       =					"\nfrom transformers import AutoModel\n        "
					__A       =					"\nmname = \"hf-internal-testing/test_dynamic_model\"\nAutoModel.from_pretrained(mname, trust_remote_code=True)\nprint(\"success\")\n        "

					# baseline - just load from_pretrained with normal network
					__A       =					[sys.executable, "-c", "\n".join([load, run]					)]

					# should succeed
					__A       =					self.get_env()
					__A       =					subprocess.run(A				,env=A				,check=A				,capture_output=A					)
					self.assertEqual(result.returncode				,0				,result.stderr					)
					self.assertIn("success"				,result.stdout.decode()					)

					# should succeed as TRANSFORMERS_OFFLINE=1 tells it to use local files
					__A       =					"1"
					__A       =					subprocess.run(A				,env=A				,check=A				,capture_output=A					)
					self.assertEqual(result.returncode				,0				,result.stderr					)
					self.assertIn("success"				,result.stdout.decode()					)







UpperCAmelCase_           =	{
    "A": ".-", "B": "-...", "C": "-.-.", "D": "-..", "E": ".", "F": "..-.", "G": "--.",
    "H": "....", "I": "..", "J": ".---", "K": "-.-", "L": ".-..", "M": "--", "N": "-.",
    "O": "---", "P": ".--.", "Q": "--.-", "R": ".-.", "S": "...", "T": "-", "U": "..-",
    "V": "...-", "W": ".--", "X": "-..-", "Y": "-.--", "Z": "--..", "1": ".----",
    "2": "..---", "3": "...--", "4": "....-", "5": ".....", "6": "-....", "7": "--...",
    "8": "---..", "9": "----.", "0": "-----", "&": ".-...", "@": ".--.-.",
    ":": "---...", ",": "--..--", ".": ".-.-.-", "'": ".----.", "\"": ".-..-.",
    "?": "..--..", "/": "-..-.", "=": "-...-", "+": ".-.-.", "-": "-....-",
    "(": "-.--.", ")": "-.--.-", "!": "-.-.--", " ": "/"
}  # Exclamation mark is not in ITU-R recommendation
# fmt: on
UpperCAmelCase_           =	{value: key for key, value in MORSE_CODE_DICT.items()}
def      A__       (    SCREAMING_SNAKE_CASE_   :      str						)  ->  str:






   """simple docstring"""







   return " ".join(MORSE_CODE_DICT[char] for char in message.upper()						)
def      A__       (    SCREAMING_SNAKE_CASE_   :      str						)  ->  str:






   """simple docstring"""







   return "".join(REVERSE_DICT[char] for char in message.split()						)
def      A__       (    )  ->  None:






   """simple docstring"""







   _UpperCAmelCase           =   '''Morse code here!'''
   print(SCREAMING_SNAKE_CASE_						)
   _UpperCAmelCase           =   encrypt(SCREAMING_SNAKE_CASE_						)
   print(SCREAMING_SNAKE_CASE_						)
   _UpperCAmelCase           =   decrypt(SCREAMING_SNAKE_CASE_						)
   print(SCREAMING_SNAKE_CASE_						)


if __name__ == "__main__":
   main()