






"""simple docstring"""







from __future__ import annotations


def      UpperCamelCase       ( _A = 4 )     ->       list[list[int]]:
				lowercase    :      Tuple       = abs(_A ) or 4
				return [[1 + x + y * row_size for x in range(_A )] for y in range(_A )]


def      UpperCamelCase       ( _A )     ->       list[list[int]]:
				return reverse_row(transpose(_A ) )
				# OR.. transpose(reverse_column(matrix))


def      UpperCamelCase       ( _A )     ->       list[list[int]]:
				return reverse_row(reverse_column(_A ) )
				# OR.. reverse_column(reverse_row(matrix))


def      UpperCamelCase       ( _A )     ->       list[list[int]]:
				return reverse_column(transpose(_A ) )
				# OR.. transpose(reverse_row(matrix))


def      UpperCamelCase       ( _A )     ->       list[list[int]]:
				lowercase    :      Optional[int]       = [list(_A ) for x in zip(*_A )]
				return matrix


def      UpperCamelCase       ( _A )     ->       list[list[int]]:
				lowercase    :      List[Any]       = matrix[::-1]
				return matrix


def      UpperCamelCase       ( _A )     ->       list[list[int]]:
				lowercase    :      Tuple       = [x[::-1] for x in matrix]
				return matrix


def      UpperCamelCase       ( _A )     ->       None:
				for i in matrix:
								print(*_A )


if __name__ == "__main__":
				_lowerCAmelCase            =	make_matrix()
				print('\norigin:\n')
				print_matrix(matrix)
				print('\nrotate 90 counterclockwise:\n')
				print_matrix(rotate_aa(matrix))

				_lowerCAmelCase            =	make_matrix()
				print('\norigin:\n')
				print_matrix(matrix)
				print('\nrotate 180:\n')
				print_matrix(rotate_aaa(matrix))

				_lowerCAmelCase            =	make_matrix()
				print('\norigin:\n')
				print_matrix(matrix)
				print('\nrotate 270 counterclockwise:\n')
				print_matrix(rotate_aaa(matrix))








"""simple docstring"""







import argparse
import logging
import pickle
from collections import Counter


logging.basicConfig(
    format='%(asctime)s - %(levelname)s - %(name)s - %(message)s', datefmt='%m/%d/%Y %H:%M:%S', level=logging.INFO
)
_lowerCAmelCase            =	logging.getLogger(__name__)

if __name__ == "__main__":
				_lowerCAmelCase            =	argparse.ArgumentParser(
				    description='Token Counts for smoothing the masking probabilities in MLM (cf XLM/word2vec)'
				)
				parser.add_argument(
				    '--data_file', type=str, default='data/dump.bert-base-uncased.pickle', help='The binarized dataset.'
				)
				parser.add_argument(
				    '--token_counts_dump', type=str, default='data/token_counts.bert-base-uncased.pickle', help='The dump file.'
				)
				parser.add_argument('--vocab_size', default=3_05_22, type=int)
				_lowerCAmelCase            =	parser.parse_args()

				logger.info(F'Loading data from {args.data_file}')
				with open(args.data_file, 'rb') as fp:
								_lowerCAmelCase            =	pickle.load(fp)

				logger.info('Counting occurrences for MLM.')
				_lowerCAmelCase            =	Counter()
				for tk_ids in data:
								counter.update(tk_ids)
				_lowerCAmelCase            =	[0] * args.vocab_size
				for k, v in counter.items():
								_lowerCAmelCase            =	v

				logger.info(F'Dump to {args.token_counts_dump}')
				with open(args.token_counts_dump, 'wb') as handle:
								pickle.dump(counts, handle, protocol=pickle.HIGHEST_PROTOCOL)
