ich bin gerade dabei ein kleines Tool für mich zu konzeptualisieren und stecke etwas fest bei den Überlegungen meiner Command Line Commands:
Aktuell habe ich es so mir vorgestellt:
Code: Alles auswählen
- Group 1: Load Data Sheet
- Argument: --load (DIR)
- Group 2: Contracts Manager:
- Arguments: --contracts
- Sub-Arguments
- --list
- --insert (NAME, CATEGORY [bereits vorgeschriebene Werte], DATE, AMOUNT --> all required)
- --delete (ID)
- --update (ID, NAME, CATEGORY [Optional values], DATE, AMOUNT --> all required)
- --check
- Group 3: Plots:
- Argument --plot
- Sub-Arguments
- --total
- --category (CATEGORY=optional) (TIMESPAN=optional)
Code: Alles auswählen
myscript.py --load [DIR] # Load Sheets
myscript.py --contracts --list # List all contracts
myscript.py --contracts --insert (NAME) (CATEGORY) (DATE) (AMOUNT) # Insert contract entry
myscript.py --contracts --delete (ID) # delete contract entry
myscript.py --contracts --update (ID) (NAME) (CATEGORY) (DATE) (AMOUNT) # update contract entry
myscript.py --contracts --check # show upcoming contracts
myscript.py --plot --total # show financial situation
myscript.py ---plot --category (CATEGORY) (TIMESPAN)
Also insbesondere, dass --load, --contracts, --plot Argumente darstellen und die anderen, wie oben beschrieben Sub Arguments und das alles dann in Gruppen gesammelt werden?
Mein Versuch sieht aktuell so aus:
Code: Alles auswählen
import logging
import pprint
from typing import Optional
from typing import Sequence
import argparse
logger = logging.getLogger('__main__')
def main(argv: Optional[Sequence[str]] = None) -> int:
parser = argparse.ArgumentParser(
prog='BudgetManager',
add_help=True,
description='An program to evaluate Finanzguru sheet ')
group_load = parser.add_argument_group('Load')
group_load.add_argument(
'-l', '--load',
nargs='?',
type=argparse.FileType('r'),
metavar='Path',
help='Refresh database with new sheet')
group_contracts = parser.add_argument_group('Contracts Management')
group_contracts.add_argument(
'-c', '--contracts',
help='Manage your contracts')
group_contracts = parser.add_argument_group('Plot')
group_contracts.add_argument(
'-p', '--plot',
help='Plot your financial situation')
args = parser.parse_args(argv)
pprint.pprint(vars(args))
return 0
if __name__ == '__main__':
exit(main())
Ich frage mich dann aber auch, wie Sub Arguments gruppiert werden?