Other



examples/argparse/accept_date.py
import argparse
import datetime

def vali_date(text: str) -> datetime.datetime:
    #return datetime.datetime.strptime(text, "%Y-%m-%d")
    try:
        return datetime.datetime.strptime(text, "%Y-%m-%d")
    except ValueError:
        raise argparse.ArgumentTypeError(f"This {text!r} is not a valid date.")

parser = argparse.ArgumentParser()
parser.add_argument(
        "--date",
        help = "Date in format YYYY-MM-DD",
        required = True,
        type = vali_date
)

args = parser.parse_args()
print(args.date)

examples/argparse/positive_number.py
import argparse

def is_age(age: str) -> float:
    try:
        new_age = float(age)
    except ValueError:
        raise argparse.ArgumentTypeError(f"This: {age!r} is not a valid number.")

    if new_age < 0:
        raise argparse.ArgumentTypeError(f"It must be a non-negative number. We received {age!r} ")

    return new_age

parser = argparse.ArgumentParser()
parser.add_argument("--age", type=is_age, required=True)

args = parser.parse_args()
print(args.age)

examples/argparse/pw.py
import getpass

secret = getpass.getpass()
print(secret)