






"""simple docstring"""




from string import ascii_uppercase






def 							lowerCAmelCase			(   UpperCamelCase_:				str  ,			UpperCamelCase_:				str  ,			UpperCamelCase_:				bool = False  ,			UpperCamelCase_:				str = ascii_uppercase       )							->				str:







  '''simple docstring'''







  _a					      =						keyword.upper()
  _a					      =						plaintext.upper()
  _a					      =						set(UpperCamelCase_       )

  # create a list of unique characters in the keyword - their order matters
  # it determines how we will map plaintext characters to the ciphertext
  _a					      =						[]
  for char in keyword:
    if char in alphabet_set and char not in unique_chars:
      unique_chars.append(UpperCamelCase_       )
    # the number of those unique characters will determine the number of rows
  _a					      =						len(UpperCamelCase_       )

  # create a shifted version of the alphabet
  _a					      =						unique_chars + [
      char for char in alphabet if char not in unique_chars
  ]

  # create a modified alphabet by splitting the shifted alphabet into rows
  _a					      =						[
      shifted_alphabet[k : k + num_unique_chars_in_keyword]
      for k in range(0  ,			26  ,			UpperCamelCase_       )
  ]

  # map the alphabet characters to the modified alphabet characters
  # going 'vertically' through the modified alphabet - consider columns first
  _a					      =						{}
  _a					      =						0
  for column in range(UpperCamelCase_       ):
    for row in modified_alphabet:
      # if current row (the last one) is too short, break out of loop
      if len(UpperCamelCase_       ) <= column:
        break

      # map current letter to letter in modified alphabet
      _a					      =						row[column]
      letter_index += 1

  if verbose:
    print(UpperCamelCase_       )
  # create the encrypted text by mapping the plaintext to the modified alphabet
  return "".join(mapping[char] if char in mapping else char for char in plaintext       )


if __name__ == "__main__":
     # example use
     print(mixed_keyword("""college""", """UNIVERSITY"""))




"""simple docstring"""




import argparse

import torch
from flax.training.checkpoints import restore_checkpoint

from transformers import FNetConfig, FNetForPreTraining
from transformers.utils import logging


logging.set_verbosity_info()



def 				a__			(					lowerCAmelCase						:							Optional[Any]							,     lowerCAmelCase						:							Dict							,     lowerCAmelCase						:							Tuple		):






     '''simple docstring'''
     # Initialise PyTorch model
     UpperCAmelCase__				:			int							=    FNetConfig.from_json_file(lowerCAmelCase		)
     print(F"Building PyTorch model from configuration: {config}"		)
     UpperCAmelCase__				:			Union[str, Any]							=    FNetForPreTraining(lowerCAmelCase		)

     UpperCAmelCase__				:			int							=    restore_checkpoint(lowerCAmelCase							,     lowerCAmelCase		)
     UpperCAmelCase__				:			List[str]							=    checkpoint_dict["target"]

     # Embeddings
     # Position IDs
     UpperCAmelCase__				:			Union[str, Any]							=    fnet_pretraining_model.state_dict()

     UpperCAmelCase__				:			Optional[Any]							=    state_dict["fnet.embeddings.position_ids"]
     UpperCAmelCase__				:			Dict							=    {"fnet.embeddings.position_ids": position_ids}
     # Embedding Layers
     UpperCAmelCase__				:			Dict							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["word"]["embedding"]		)
     UpperCAmelCase__				:			Any							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["position"]["embedding"][0]		)
     UpperCAmelCase__				:			Tuple							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["type"]["embedding"]		)
     UpperCAmelCase__				:			int							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["hidden_mapping_in"]["kernel"]		).T
     UpperCAmelCase__				:			List[Any]							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["hidden_mapping_in"]["bias"]		)
     UpperCAmelCase__				:			Optional[Any]							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["layer_norm"]["scale"]		)
     UpperCAmelCase__				:			Union[str, Any]							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["layer_norm"]["bias"]		)

     # Encoder Layers
     for layer in range(config.num_hidden_layers		):
          UpperCAmelCase__				:			Any							=    torch.tensor(
              pretrained_model_params["encoder"][F"encoder_{layer}"]["mixing_layer_norm"]["scale"]		)
          UpperCAmelCase__				:			List[str]							=    torch.tensor(
              pretrained_model_params["encoder"][F"encoder_{layer}"]["mixing_layer_norm"]["bias"]		)

          UpperCAmelCase__				:			List[Any]							=    torch.tensor(
              pretrained_model_params["encoder"][F"feed_forward_{layer}"]["intermediate"]["kernel"]		).T
          UpperCAmelCase__				:			List[Any]							=    torch.tensor(
              pretrained_model_params["encoder"][F"feed_forward_{layer}"]["intermediate"]["bias"]		)

          UpperCAmelCase__				:			Dict							=    torch.tensor(
              pretrained_model_params["encoder"][F"feed_forward_{layer}"]["output"]["kernel"]		).T
          UpperCAmelCase__				:			List[str]							=    torch.tensor(
              pretrained_model_params["encoder"][F"feed_forward_{layer}"]["output"]["bias"]		)

          UpperCAmelCase__				:			List[Any]							=    torch.tensor(
              pretrained_model_params["encoder"][F"encoder_{layer}"]["output_layer_norm"]["scale"]		)
          UpperCAmelCase__				:			Union[str, Any]							=    torch.tensor(
              pretrained_model_params["encoder"][F"encoder_{layer}"]["output_layer_norm"]["bias"]		)

     # Pooler Layers
     UpperCAmelCase__				:			Optional[Any]							=    torch.tensor(pretrained_model_params["encoder"]["pooler"]["kernel"]		).T
     UpperCAmelCase__				:			Optional[int]							=    torch.tensor(pretrained_model_params["encoder"]["pooler"]["bias"]		)

     # Masked LM Layers
     UpperCAmelCase__				:			Any							=    torch.tensor(
         pretrained_model_params["predictions_dense"]["kernel"]		).T
     UpperCAmelCase__				:			int							=    torch.tensor(
         pretrained_model_params["predictions_dense"]["bias"]		)
     UpperCAmelCase__				:			Tuple							=    torch.tensor(
         pretrained_model_params["predictions_layer_norm"]["scale"]		)
     UpperCAmelCase__				:			List[str]							=    torch.tensor(
         pretrained_model_params["predictions_layer_norm"]["bias"]		)
     UpperCAmelCase__				:			List[Any]							=    torch.tensor(
         pretrained_model_params["encoder"]["embedder"]["word"]["embedding"]		)
     UpperCAmelCase__				:			Optional[int]							=    torch.tensor(
         pretrained_model_params["predictions_output"]["output_bias"]		)
     UpperCAmelCase__				:			Any							=    torch.tensor(pretrained_model_params["predictions_output"]["output_bias"]		)

     # Seq Relationship Layers
     UpperCAmelCase__				:			Any							=    torch.tensor(
         pretrained_model_params["classification"]["output_kernel"]		)
     UpperCAmelCase__				:			str							=    torch.tensor(
         pretrained_model_params["classification"]["output_bias"]		)

     # Load State Dict
     fnet_pretraining_model.load_state_dict(lowerCAmelCase		)

     # Save PreTrained
     print(F"Saving pretrained model to {save_path}"		)
     fnet_pretraining_model.save_pretrained(lowerCAmelCase		)


if __name__ == "__main__":
    A__   :						Union[str, Any] 							=     argparse.ArgumentParser()
    # Required parameters
    parser.add_argument(
        """--flax_checkpoint_path""", default=None, type=str, required=True, help="""Path to the TensorFlow checkpoint path."""
    )
    parser.add_argument(
        """--fnet_config_file""",
        default=None,
        type=str,
        required=True,
        help=(
            """The config json file corresponding to the pre-trained FNet model. \n"""
            """This specifies the model architecture."""
        ),
    )
    parser.add_argument("""--save_path""", default=None, type=str, required=True, help="""Path to the output model.""")
    A__   :						Dict 							=     parser.parse_args()
    convert_flax_checkpoint_to_pytorch(args.flax_checkpoint_path, args.fnet_config_file, args.save_path)



