32 lines
1.6 KiB
Python
32 lines
1.6 KiB
Python
import argparse
|
|
from datetime import datetime
|
|
import os
|
|
|
|
def parse_arguments(with_subcommands=True):
|
|
def valid_date(s):
|
|
try:
|
|
return datetime.strptime(s, "%Y-%m")
|
|
except ValueError:
|
|
msg = "Not a valid date: '{0}'.".format(s)
|
|
raise argparse.ArgumentTypeError(msg)
|
|
|
|
parser = argparse.ArgumentParser('accelerated_stats',
|
|
description='Get port stats from Accelerated Customer Interface (e.g. interface.datafabrik.de)')
|
|
parser.add_argument('--debug', '-d', type=bool, default=False)
|
|
parser.add_argument('--format', '-f', choices=['raw', 'json'], default='json')
|
|
parser.add_argument('--field', '-F', type=str)
|
|
parser.add_argument('--no-coerce', '-c', action='store_true', default=False)
|
|
parser.add_argument('--unit-volume', type=str, default='B')
|
|
parser.add_argument('--unit-speed', type=str, default='bit/s')
|
|
parser.add_argument('--unit-time', type=str, default='s')
|
|
parser.add_argument('--kdnummer', '-u', type=str, default=os.environ.get('KDNUMMER'))
|
|
parser.add_argument('--password', '-p', type=str, default=os.environ.get('PASSWORD'))
|
|
parser.add_argument('--url', '-U', type=str, default='https://interface.datafabrik.de/')
|
|
parser.add_argument('--server', '-s', type=int)
|
|
parser.add_argument('--date', '-D', type=valid_date, default=datetime.now())
|
|
parser.add_argument('--prefix', '-P', type=str, default='accelerated_')
|
|
|
|
if with_subcommands:
|
|
parser.add_argument('cmd', metavar='CMD', choices=['stats', 'usage', 'usage_sum', 'servers'])
|
|
|
|
return parser.parse_args()
|