
def 		_UpperCAmelCase   (	UpperCamelCase:     str  ):






	"""simple docstring"""


	return credit_card_number.startswith(("34", "35", "37", "4", "5", "6")  )






def 		_UpperCAmelCase   (	UpperCamelCase:     str  ):






	"""simple docstring"""


	__lowerCAmelCase         =							credit_card_number
	__lowerCAmelCase         =							0
	__lowerCAmelCase         =							len(UpperCamelCase  ) - 2
	for i in range(UpperCamelCase			,							-1			,							-2  ):
		#  double the value of every second digit
		__lowerCAmelCase         =							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 %= 1_0
			digit += 1
		__lowerCAmelCase         =							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 % 1_0 == 0






def 		_UpperCAmelCase   (	UpperCamelCase:     str  ):






	"""simple docstring"""


	__lowerCAmelCase         =							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 1_3 <= len(UpperCamelCase  ) <= 1_6:
		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")








import fire

from utils import calculate_rouge, save_json






def 		_UpperCAmelCase   (	UpperCamelCase:     Any			,							UpperCamelCase:     Union[str, Any]			,							UpperCamelCase:     List[Any]=None			,							**UpperCamelCase:     Optional[int]  ):






	"""simple docstring"""


	__lowerCAmelCase         =							[x.strip() for x in open(UpperCamelCase  ).readlines()]
	__lowerCAmelCase         =							[x.strip() for x in open(UpperCamelCase  ).readlines()][: len(UpperCamelCase  )]
	__lowerCAmelCase         =							calculate_rouge(UpperCamelCase			,							UpperCamelCase			,							**UpperCamelCase  )
	if save_path is not None:
		save_json(UpperCamelCase			,							UpperCamelCase			,							indent=UpperCamelCase  )
	return metrics  # these print nicely


if __name__ == "__main__":
					fire.Fire(calculate_rouge_path)






