1 changed files with 47 additions and 0 deletions
			
			
		@ -0,0 +1,47 @@ | 
				
			|||
# Deprecated | 
				
			|||
 | 
				
			|||
## enissue.py | 
				
			|||
### argparse | 
				
			|||
Why: making mutually exclusive arguments or subcommands optional | 
				
			|||
doesn't seem to work. | 
				
			|||
- Use the Poikilos argparsebetter module such as from | 
				
			|||
  <https://github.com/poikilos/argparsebetter> instead if such features | 
				
			|||
  are necessary. | 
				
			|||
``` | 
				
			|||
def main(): | 
				
			|||
    import argparse | 
				
			|||
    parser = argparse.ArgumentParser(description='Process issues.') | 
				
			|||
    subparsers = parser.add_subparsers() | 
				
			|||
    # vParser = subparsers.add_parser('--verbose', aliases=['--debug']) | 
				
			|||
    # vParser.add_argument('foo') | 
				
			|||
    # qG = parser.add_mutually_exclusive_group(required=False) | 
				
			|||
    # qG.add_argument('open', action='store_true') | 
				
			|||
    # qG.add_argument('closed', action='store_false') | 
				
			|||
    # ^ They have to be required, so see | 
				
			|||
    #   <https://stackoverflow.com/questions/59773946/argparse-required-add-mutually-exclusive-group-parameters-list-as-optional>: | 
				
			|||
    state_help = {} | 
				
			|||
    for api_name, api in apis.items(): | 
				
			|||
        default_query = api.get('default_query') | 
				
			|||
        default_query_state = default_query.get('state') | 
				
			|||
        state_help[api_name] = default_query_state | 
				
			|||
    ''' | 
				
			|||
    parser.add_argument('state', choices=['open', 'closed'], | 
				
			|||
                        default="open", | 
				
			|||
                        help=('Show open or closed issues only' | 
				
			|||
                              ' (defaults are {}).'.format(state_help))) | 
				
			|||
    ''' | 
				
			|||
    # ^ Makes it required so see | 
				
			|||
    #   <https://stackoverflow.com/a/40324928/4541104> | 
				
			|||
    #   on <https://stackoverflow.com/questions/40324356/python-argparse-choices-with-a-default-choice> | 
				
			|||
 | 
				
			|||
    parser_list = subparsers.add_parser('open') | 
				
			|||
    # parser_open.add_argument('open_type', default='all', const='all', nargs='?', choices=['all', 'servers', 'storage']) | 
				
			|||
 | 
				
			|||
    parser_closed = subparsers.add_parser('closed') | 
				
			|||
    # parser_closed.add_argument('closed_type', default='server', const='server', nargs='?', choices=['server', 'storage']) | 
				
			|||
 | 
				
			|||
    # parser.print_help() | 
				
			|||
    parser.parse_args(sys.argv) | 
				
			|||
    print("open: {}".format(parser.get("open"))) | 
				
			|||
    sys.exit(0) | 
				
			|||
``` | 
				
			|||
					Loading…
					
					
				
		Reference in new issue