code: 
  
  
  import os
  import shutil
  import unittest
  from unittest.mock import patch
  
  from transformers.testing_utils import CaptureStd, is_pt_tf_cross_test, require_torch
  
  
  
  
  class 					_UpperCamelCase (      unittest.TestCase	):
  
  
  
  
  
  
  
  							'''simple docstring'''
  
  
  
  
  
  
  
  							@patch('sys.argv'		,				['fakeprogrampath', 'env']		)
  							def 		_UpperCAmelCase	(		self  :				Optional[Any]		):
  													# test transformers-cli env
  													import transformers.commands.transformers_cli
  
  													with CaptureStd() as cs:
  																			transformers.commands.transformers_cli.main()
  													self.assertIn('Python version'		,				cs.out		)
  													self.assertIn('Platform'		,				cs.out		)
  													self.assertIn('Using distributed or parallel set-up in script?'		,				cs.out		)
  
  
  
  
  
  
  
  							@is_pt_tf_cross_test
  							@patch(
  							    'sys.argv'		,				['fakeprogrampath', 'pt-to-tf', '--model-name', 'hf-internal-testing/tiny-random-gptj', '--no-pr']		)
  							def 		_UpperCAmelCase	(		self  :				int		):
  													import transformers.commands.transformers_cli
  
  													shutil.rmtree('/tmp/hf-internal-testing/tiny-random-gptj'		,				ignore_errors=SCREAMING_SNAKE_CASE_		)  # cleans potential past runs
  													transformers.commands.transformers_cli.main()
  
  													# The original repo has no TF weights -- if they exist, they were created by the CLI
  													self.assertTrue(os.path.exists('/tmp/hf-internal-testing/tiny-random-gptj/tf_model.h5'		)		)
  
  
  
  
  
  
  
  							@require_torch
  							@patch('sys.argv'		,				['fakeprogrampath', 'download', 'hf-internal-testing/tiny-random-gptj', '--cache-dir', '/tmp']		)
  							def 		_UpperCAmelCase	(		self  :				str		):
  													import transformers.commands.transformers_cli
  
  													# # remove any previously downloaded model to start clean
  													shutil.rmtree('/tmp/models--hf-internal-testing--tiny-random-gptj'		,				ignore_errors=SCREAMING_SNAKE_CASE_		)
  
  													# run the command
  													transformers.commands.transformers_cli.main()
  
  													# check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--tiny-random-gptj
  													self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--tiny-random-gptj/blobs'		)		)
  													self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--tiny-random-gptj/refs'		)		)
  													self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--tiny-random-gptj/snapshots'		)		)
  
  
  
  
  
  
  
  							@require_torch
  							@patch(
  							    'sys.argv'		,				[
  							        'fakeprogrampath',
  							        'download',
  							        'hf-internal-testing/test_dynamic_model_with_tokenizer',
  							        '--trust-remote-code',
  							        '--cache-dir',
  							        '/tmp',
  							    ]		,				)
  							def 		_UpperCAmelCase	(		self  :				Dict		):
  													import transformers.commands.transformers_cli
  
  													# # remove any previously downloaded model to start clean
  													shutil.rmtree('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer'		,				ignore_errors=SCREAMING_SNAKE_CASE_		)
  
  													# run the command
  													transformers.commands.transformers_cli.main()
  
  													# check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer
  													self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/blobs'		)		)
  													self.assertTrue(os.path.exists('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/refs'		)		)
  													self.assertTrue(
  													    os.path.exists('/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/snapshots'		)		)
  
  
  
style_context: 
  
  
  def 							SCREAMING_SNAKE_CASE					(  _UpperCAmelCase				)    ->  bool:
  						# must be
  						_a     =			[list(_UpperCAmelCase				) for row in matrix]
  						if matrix and isinstance(_UpperCAmelCase							,     _UpperCAmelCase				):
  												if isinstance(matrix[0]							,     _UpperCAmelCase				):
  																		_a     =			0
  																		for row in matrix:
  																								if prev_len == 0:
  																														_a     =			len(_UpperCAmelCase				)
  																														_a     =			True
  																								else:
  																														_a     =			prev_len == len(_UpperCAmelCase				)
  												else:
  																		_a     =			True
  						else:
  												_a     =			False
  
  						return result
  
  
  def 							SCREAMING_SNAKE_CASE					(  _UpperCAmelCase				)    ->  None:
  						if check_matrix(_UpperCAmelCase				) and len(_UpperCAmelCase				) > 0:
  												_a     =			[list(_UpperCAmelCase				) for row in a]
  												_a     =			len(_UpperCAmelCase				)
  												if isinstance(a[0]							,     _UpperCAmelCase				):
  																		_a     =			len(a[0]				)
  												else:
  																		for dat in a:
  																								print(_UpperCAmelCase				)
  																		return
  
  												# horizotal printing increasing
  												for i in range(0							,     _UpperCAmelCase				):
  																		print(a[0][i]				)
  												# vertical printing down
  												for i in range(1							,     _UpperCAmelCase				):
  																		print(a[i][mat_col - 1]				)
  												# horizotal printing decreasing
  												if mat_row > 1:
  																		for i in range(mat_col - 2							,     -1							,     -1				):
  																								print(a[mat_row - 1][i]				)
          # vertical printing up
  												for i in range(mat_row - 2							,     0							,     -1				):
  																		print(a[i][0]				)
  												_a     =			[row[1 : mat_col - 1] for row in a[1 : mat_row - 1]]
  												if len(_UpperCAmelCase				) > 0:
  																		spiral_print_clockwise(_UpperCAmelCase				)
  												else:
  																		return
  						else:
  												print('Not a valid matrix'				)
  												return
  
  
  def 							SCREAMING_SNAKE_CASE					(  _UpperCAmelCase				)    ->  list[int]:
  						if matrix:
  												return list(matrix.pop(0				)				) + spiral_traversal(list(zip(*_UpperCAmelCase				)				)[::-1]				)
  						else:
  												return []
  
  
  # driver code
  if __name__ == "__main__":
  		import doctest
  
  		doctest.testmod()
  
  		lowercase_								=    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
  		spiral_print_clockwise(a)
  
  
  