
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   __snake_case				(			self		):
					# 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__  :	Optional[Any]         =							'''
from transformers import BertConfig, BertModel, BertTokenizer, pipeline
        '''

					A__  :	int         =							'''
mname = "hf-internal-testing/tiny-random-bert"
BertConfig.from_pretrained(mname)
BertModel.from_pretrained(mname)
BertTokenizer.from_pretrained(mname)
pipe = pipeline(task="fill-mask", model=mname)
print("success")
        '''

					A__  :	Dict         =							'''
import socket
def offline_socket(*args, **kwargs): raise RuntimeError("Offline mode is enabled, we shouldn\'t access internet")
socket.socket = offline_socket
        '''

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

					# baseline - just load from_pretrained with normal network
					A__  :	List[Any]         =							[sys.executable, '''-c''', '''\n'''.join([load, run, mock]		)]

					# should succeed
					A__  :	List[Any]         =							self.get_env()
					# should succeed as TRANSFORMERS_OFFLINE=1 tells it to use local files
					A__  :	Any         =							'''1'''
					A__  :	List[str]         =							subprocess.run(UpperCamelCase__				,       env=UpperCamelCase__				,       check=UpperCamelCase__				,       capture_output=UpperCamelCase__		)
					self.assertEqual(result.returncode				,       0				,       result.stderr		)
					self.assertIn('''success'''				,       result.stdout.decode()		)





	@require_torch
	def   __snake_case				(			self		):
					# python one-liner segments
					# this must be loaded before socket.socket is monkey-patched
					A__  :	str         =							'''
from transformers import BertConfig, BertModel, BertTokenizer, pipeline
        '''

					A__  :	List[str]         =							'''
mname = "hf-internal-testing/tiny-random-bert"
BertConfig.from_pretrained(mname)
BertModel.from_pretrained(mname)
BertTokenizer.from_pretrained(mname)
pipe = pipeline(task="fill-mask", model=mname)
print("success")
        '''

					A__  :	str         =							'''
import socket
def offline_socket(*args, **kwargs): raise socket.error("Faking flaky internet")
socket.socket = offline_socket
        '''

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

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

					# should succeed
					A__  :	Optional[int]         =							self.get_env()
					A__  :	int         =							subprocess.run(UpperCamelCase__				,       env=UpperCamelCase__				,       check=UpperCamelCase__				,       capture_output=UpperCamelCase__		)
					self.assertEqual(result.returncode				,       0				,       result.stderr		)
					self.assertIn('''success'''				,       result.stdout.decode()		)





	@require_torch
	def   __snake_case				(			self		):
					# 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__  :	List[str]         =							'''
from transformers import BertConfig, BertModel, BertTokenizer
        '''

					A__  :	Union[str, Any]         =							'''
mname = "hf-internal-testing/tiny-random-bert-sharded"
BertConfig.from_pretrained(mname)
BertModel.from_pretrained(mname)
print("success")
        '''

					A__  :	Dict         =							'''
import socket
def offline_socket(*args, **kwargs): raise ValueError("Offline mode is enabled")
socket.socket = offline_socket
        '''

					# baseline - just load from_pretrained with normal network
					A__  :	int         =							[sys.executable, '''-c''', '''\n'''.join([load, run]		)]

					# should succeed
					A__  :	Dict         =							self.get_env()
					A__  :	Optional[int]         =							subprocess.run(UpperCamelCase__				,       env=UpperCamelCase__				,       check=UpperCamelCase__				,       capture_output=UpperCamelCase__		)
					self.assertEqual(result.returncode				,       0				,       result.stderr		)
					self.assertIn('''success'''				,       result.stdout.decode()		)

					# next emulate no network
					A__  :	List[Any]         =							[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__  :	List[Any]         =							'''1'''
					A__  :	Dict         =							subprocess.run(UpperCamelCase__				,       env=UpperCamelCase__				,       check=UpperCamelCase__				,       capture_output=UpperCamelCase__		)
					self.assertEqual(result.returncode				,       0				,       result.stderr		)
					self.assertIn('''success'''				,       result.stdout.decode()		)





	@require_torch
	def   __snake_case				(			self		):
					A__  :	int         =							'''
from transformers import pipeline
        '''
					A__  :	str         =							'''
mname = "hf-internal-testing/tiny-random-bert"
pipe = pipeline(model=mname)
        '''

					A__  :	Optional[int]         =							'''
import socket
def offline_socket(*args, **kwargs): raise socket.error("Offline mode is enabled")
socket.socket = offline_socket
        '''
					A__  :	int         =							self.get_env()
					A__  :	Optional[int]         =							'''1'''
					A__  :	int         =							[sys.executable, '''-c''', '''\n'''.join([load, mock, run]		)]
					A__  :	Dict         =							subprocess.run(UpperCamelCase__				,       env=UpperCamelCase__				,       check=UpperCamelCase__				,       capture_output=UpperCamelCase__		)
					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   __snake_case				(			self		):
					A__  :	str         =							'''
from transformers import AutoModel
        '''
					A__  :	List[Any]         =							'''
mname = "hf-internal-testing/test_dynamic_model"
AutoModel.from_pretrained(mname, trust_remote_code=True)
print("success")
        '''

					# baseline - just load from_pretrained with normal network
					A__  :	int         =							[sys.executable, '''-c''', '''\n'''.join([load, run]		)]

					# should succeed
					A__  :	Tuple         =							self.get_env()
					A__  :	str         =							subprocess.run(UpperCamelCase__				,       env=UpperCamelCase__				,       check=UpperCamelCase__				,       capture_output=UpperCamelCase__		)
					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__  :	Any         =							'''1'''
					A__  :	Any         =							subprocess.run(UpperCamelCase__				,       env=UpperCamelCase__				,       check=UpperCamelCase__				,       capture_output=UpperCamelCase__		)
					self.assertEqual(result.returncode				,       0				,       result.stderr		)
					self.assertIn('''success'''				,       result.stdout.decode()		)

def 				SCREAMING_SNAKE_CASE     (      ) ->       Optional[int]:

				"""simple docstring"""







				A__  :	Optional[Any]         =							0
				for i in range(1							,						10_01       ):
								total += i**i
				return str(__UpperCamelCase       )[-10:]


if __name__ == "__main__":
					print(solution())