




def     lowercase		(  _lowerCAmelCase   ):
  return credit_card_number.startswith(("""34""", """35""", """37""", """4""", """5""", """6""")   )


def     lowercase		(  _lowerCAmelCase   ):
  UpperCAmelCase__         = credit_card_number
  UpperCAmelCase__         = 0
  UpperCAmelCase__         = len(_UpperCAmelCase   ) - 2
  for i in range(_UpperCAmelCase ,  -1 ,  -2   ):
    #  double the value of every second digit
    UpperCAmelCase__         = int(cc_number[i]   )
    digit *= 2
    # If doubling of a number results in a two digit number
    # i.e greater than 9(e.g., 6 × 2 = 12),
    # then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
    # to get a single digit number.
    if digit > 9:
      digit %= 10
      digit += 1
    UpperCAmelCase__         = cc_number[:i] + str(_UpperCAmelCase   ) + cc_number[i + 1 :]
    total += digit

  # Sum up the remaining digits
  for i in range(len(_UpperCAmelCase   ) - 1 ,  -1 ,  -2   ):
    total += int(cc_number[i]   )

  return total % 10 == 0


def     lowercase		(  _lowerCAmelCase   ):
  UpperCAmelCase__         = F'''{credit_card_number} is an invalid credit card number because'''
  if not credit_card_number.isdigit():
    print(F'''{error_message} it has nonnumerical characters.'''   )
    return False

  if not 13 <= len(_UpperCAmelCase   ) <= 16:
    print(F'''{error_message} of its length.'''   )
    return False

  if not validate_initial_digits(_UpperCAmelCase   ):
    print(F'''{error_message} of its first two digits.'''   )
    return False

  if not luhn_validation(_UpperCAmelCase   ):
    print(F'''{error_message} it fails the Luhn check.'''   )
    return False

  print(F'''{credit_card_number} is a valid credit card number.'''   )
  return True


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   validate_credit_card_number('''4111111111111111''')
   validate_credit_card_number('''32323''')






from dataclasses import dataclass, field
from typing import Optional




@dataclass
class   __lowercase						:
	_A       =   field(
	    default="codeparrot/codeparrot"   , metadata={"help": "Model name or path of model to be trained."}       )
	_A       =   field(
	    default="./"   , metadata={"help": "Save dir where model repo is cloned and models updates are saved to."}       )
	_A       =   field(
	    default="codeparrot/codeparrot-clean-train"   , metadata={"help": "Name or path of training dataset."}       )
	_A       =   field(
	    default="codeparrot/codeparrot-clean-valid"   , metadata={"help": "Name or path of validation dataset."}       )
	_A       =   field(default=2   , metadata={"help": "Batch size for training."}       )
	_A       =   field(default=2   , metadata={"help": "Batch size for evaluation."}       )
	_A       =   field(default=0.1   , metadata={"help": "Value of weight decay."}       )
	_A       =   field(
	    default=10000   , metadata={"help": "Size of buffer used to shuffle streaming dataset."}       )
	_A       =   field(default=2e-4   , metadata={"help": "Learning rate fo training."}       )
	_A       =   field(default="cosine"   , metadata={"help": "Learning rate."}       )
	_A       =   field(
	    default=750   , metadata={"help": "Number of warmup steps in the learning rate schedule."}       )
	_A       =   field(
	    default=16   , metadata={"help": "Number of gradient accumulation steps."}       )
	_A       =   field(
	    default=__snake_case   , metadata={"help": "Use gradient checkpointing to reduce memory footprint."}       )
	_A       =   field(default=50000   , metadata={"help": "Maximum number of training steps."}       )
	_A       =   field(
	    default=-1   , metadata={"help": "Maximum number of evaluation steps. If -1 the full dataset is evaluated."}       )
	_A       =   field(default=1024   , metadata={"help": "Sequence lengths used for training."}       )
	_A       =   field(default=1   , metadata={"help": "Training seed."}       )
	_A       =   field(
	    default=1024   , metadata={"help": "Interval to save checkpoints. Measured as number of forward passes not training steps."}   , )
	_A       =   field(
	    default=__snake_case   , metadata={"help": "States path if the training should continue from a checkpoint folder."}       )
	_A       =   field(default=__snake_case   , metadata={"help": "If True the data is pretokenized."}       )




@dataclass
class   __lowercase						:
	_A       =   field(
	    default="codeparrot/codeparrot"   , metadata={"help": "Model name or path of model to be evaluated."}       )
	_A       =   field(
	    default="codeparrot/codeparrot-clean-valid"   , metadata={"help": "Name or path of validation dataset."}       )
	_A       =   field(default=2   , metadata={"help": "Batch size used for evaluation."}       )
	_A       =   field(
	    default=-1   , metadata={"help": "Maximum number of evaluation steps. If -1 the full dataset is evaluated."}       )
	_A       =   field(default=1024   , metadata={"help": "Length of sequences to be evaluated."}       )
	_A       =   field(default=1   , metadata={"help": "Random seed used for evaluation."}       )




@dataclass
class   __lowercase						:
	_A       =   field(
	    default="codeparrot/codeparrot"   , metadata={"help": "Model name or path of model to be evaluated."}       )
	_A       =   field(default=__snake_case   , metadata={"help": "Number of workers used for code evaluation."}       )
	_A       =   field(
	    default=__snake_case   , metadata={"help": "The number of human-eval tasks to run. If not included all tasks are evaluated."}   , )
	_A       =   field(
	    default=__snake_case   , metadata={"help": "Sample from the language model's output distribution."}       )
	_A       =   field(default=0.2   , metadata={"help": "Sampling temperature used for generation."}       )
	_A       =   field(default=256   , metadata={"help": "Maximum number of newly generated tokens."}       )
	_A       =   field(default=0   , metadata={"help": "Top-k parameter used for generation."}       )
	_A       =   field(default=0.95   , metadata={"help": "Top-p parameter used for nucleus sampling."}       )
	_A       =   field(default=10   , metadata={"help": "Number of generations to run in parallel."}       )
	_A       =   field(
	    default=200   , metadata={"help": "Number of completions to generate for each sample."}       )
	_A       =   field(default=1   , metadata={"help": "Random seed used for evaluation."}       )
	_A       =   field(
	    default="eval_results.json"   , metadata={"help": "Random seed used for evaluation."}       )
	_A       =   field(
	    default="0"   , metadata={"help": "Allow `code_eval` to execute Python code on machine"}       )
	_A       =   field(
	    default=-1   , metadata={
	        "help": (
	            "Determine which device to run the `text-generation` Pipeline on. -1 is CPU and any zero or positive"
	            " number corresponds to which GPU device id to run on."
	        )
	    }   , )




@dataclass
class   __lowercase						:
	_A       =   field(
	    default=__snake_case   , metadata={
	        "help": "The number of CPU cores to use for parallel preprocessing. Default uses the maximum available."
	    }   , )
	_A       =   field(
	    default="transformersbook/codeparrot"   , metadata={"help": "Folder or name of dataset to process."}       )
	_A       =   field(
	    default="codeparrot-clean"   , metadata={"help": "Folder to save processed processed dataset."}       )
	_A       =   field(
	    default=100000   , metadata={"help": "Number of files to save per JSON output file."}       )
	_A       =   field(default="content"   , metadata={"help": "Column containing text data to process."}       )
	_A       =   field(
	    default=1000   , metadata={"help": "Maximum line length in file, otherwise file is filtered."}       )
	_A       =   field(
	    default=100   , metadata={"help": "Maximum mean line length in file, otherwise file is filtered."}       )
	_A       =   field(
	    default=0.25   , metadata={"help": "Maximum fraction of non-alphanumeric characters, otherwise file is filtered."}       )
	_A       =   field(
	    default=1.5   , metadata={"help": "Minimum character token ratio for the file, otherwise file is filtered."}       )
	_A       =   field(
	    default=0.7   , metadata={"help": "Probability for filtering config, test and uncommon files."}       )
	_A       =   field(
	    default="codeparrot/codeparrot"   , metadata={"help": "Name or path to the tokenizer."}   , )
	_A       =   field(
	    default=__snake_case   , metadata={"help": "If True, near-duplicate samples are removed."}       )
	_A       =   field(
	    default=0.85   , metadata={"help": "Jaccard threshold for near-duplicate samples."}       )




@dataclass
class   __lowercase						:
	_A       =   field(
	    default="gpt2"   , metadata={"help": "Base tokenizer to build new tokenizer from."}       )
	_A       =   field(
	    default="transformersbook/codeparrot-train"   , metadata={"help": "Dataset to train tokenizer on."}       )
	_A       =   field(default="content"   , metadata={"help": "Column containing text data to process."}       )
	_A       =   field(default=200000   , metadata={"help": "Number of examples to train tokenizer on."}       )
	_A       =   field(
	    default=32768   , metadata={"help": "Number of examples to train the tokenizer on."}       )
	_A       =   field(default="codeparrot"   , metadata={"help": "Name of new tokenizer."}       )
	_A       =   field(default=__snake_case   , metadata={"help": "Push saved tokenizer to the hub."}       )




@dataclass
class   __lowercase						:
	_A       =   field(
	    default="codeparrot/codeparrot"   , metadata={"help": "Name or path to the tokenizer."}       )
	_A       =   field(
	    default="codeparrot/codeparrot-clean-train"   , metadata={"help": "Name or path to the dataset to pretokenize."}       )
	_A       =   field(
	    default="tokenized-codeparrot-train"   , metadata={"help": "Repo name of the pretokenized data."}       )
	_A       =   field(default=__snake_case   , metadata={"help": "Number of workers used for code evaluation."}       )




@dataclass
class   __lowercase						:
	_A       =   field(
	    default="gpt2-large"   , metadata={"help": "Configuration to use for model initialization."}       )
	_A       =   field(
	    default="codeparrot/codeparrot"   , metadata={"help": "Tokenizer attached to model."}       )
	_A       =   field(default="codeparrot"   , metadata={"help": "Name of the created model."}       )
	_A       =   field(default=__snake_case   , metadata={"help": "Push saved tokenizer to the hub."}       )




