Skip to content

Instantly share code, notes, and snippets.

@monkut
Last active April 11, 2025 21:27
Show Gist options
  • Save monkut/e60eea811ef085a6540f to your computer and use it in GitHub Desktop.
Save monkut/e60eea811ef085a6540f to your computer and use it in GitHub Desktop.

Revisions

  1. monkut revised this gist Aug 29, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion argparse_date_datetime_custom_types.py
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,7 @@ def valid_datetime_type(arg_datetime_str):

    if __name__ == '__main__':
    import argparse
    parser = argparse.parser(description='Example of custom type usage')
    parser = argparse.ArgumentParser(description='Example of custom type usage')
    parser.add_argument('-s', '--start-datetime',
    dest='start_datetime',
    type=valid_datetime_type,
  2. monkut revised this gist Mar 10, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion argparse_date_datetime_custom_types.py
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@ def valid_datetime_type(arg_datetime_str):
    try:
    return datetime.datetime.strptime(arg_datetime_str, "%Y-%m-%d %H:%M")
    except ValueError:
    msg = "Given Date ({0}) not valid! Expected format, 'YYYY-MM-DD HH:mm'!".format(arg_datetime_str)
    msg = "Given Datetime ({0}) not valid! Expected format, 'YYYY-MM-DD HH:mm'!".format(arg_datetime_str)
    raise argparse.ArgumentTypeError(msg)


  3. monkut revised this gist Mar 10, 2016. 1 changed file with 14 additions and 1 deletion.
    15 changes: 14 additions & 1 deletion argparse_date_datetime_custom_types.py
    Original file line number Diff line number Diff line change
    @@ -13,4 +13,17 @@ def valid_datetime_type(arg_datetime_str):
    except ValueError:
    msg = "Given Date ({0}) not valid! Expected format, 'YYYY-MM-DD HH:mm'!".format(arg_datetime_str)
    raise argparse.ArgumentTypeError(msg)



    if __name__ == '__main__':
    import argparse
    parser = argparse.parser(description='Example of custom type usage')
    parser.add_argument('-s', '--start-datetime',
    dest='start_datetime',
    type=valid_datetime_type,
    default=None,
    required=True,
    help='start datetime in format "YYYY-MM-DD HH:mm"')
    args = parser.parse_args()
    start_datetime_object = args.start_datetime
    print(start_datetime_object)
  4. monkut revised this gist Mar 10, 2016. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions argparse_date_datetime_custom_types.py
    Original file line number Diff line number Diff line change
    @@ -9,8 +9,8 @@ def valid_date_type(arg_date_str):
    def valid_datetime_type(arg_datetime_str):
    """custom argparse type for user datetime values given from the command line"""
    try:
    return datetime.datetime.strptime(arg_date_str, "%Y-%m-%d %H:%M")
    return datetime.datetime.strptime(arg_datetime_str, "%Y-%m-%d %H:%M")
    except ValueError:
    msg = "Given Date ({0}) not valid! Expected format, 'YYYY-MM-DD HH:mm'!".format(arg_date_str)
    msg = "Given Date ({0}) not valid! Expected format, 'YYYY-MM-DD HH:mm'!".format(arg_datetime_str)
    raise argparse.ArgumentTypeError(msg)

  5. monkut created this gist Mar 10, 2016.
    16 changes: 16 additions & 0 deletions argparse_date_datetime_custom_types.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    def valid_date_type(arg_date_str):
    """custom argparse *date* type for user dates values given from the command line"""
    try:
    return datetime.datetime.strptime(arg_date_str, "%Y-%m-%d")
    except ValueError:
    msg = "Given Date ({0}) not valid! Expected format, YYYY-MM-DD!".format(arg_date_str)
    raise argparse.ArgumentTypeError(msg)

    def valid_datetime_type(arg_datetime_str):
    """custom argparse type for user datetime values given from the command line"""
    try:
    return datetime.datetime.strptime(arg_date_str, "%Y-%m-%d %H:%M")
    except ValueError:
    msg = "Given Date ({0}) not valid! Expected format, 'YYYY-MM-DD HH:mm'!".format(arg_date_str)
    raise argparse.ArgumentTypeError(msg)