mosquito / argclass

A wrapper around the standard argparse module that allows you to describe argument parsers declaratively
Apache License 2.0
12 stars 3 forks source link

How to add arguments from group with empty prefix? #1

Open whiord opened 2 years ago

whiord commented 2 years ago

I would like to do something like:

class AddressPort(Group):
    address: str
    port: int 

...
class Args(Parser):
    api: AddressPort = AddressPort(
        title="Main options",
        prefix="",
        defaults=dict(address="localhost", port=80)
    )

   telemetry: AddressPort = AddressPort(defaults=dict(address="localhost", port=8082))

Now for api group I can only pass such args as --api-address and --api-port. How can I pass plain --address and --port in that case ?

mosquito commented 2 years ago

The simple solution is using inheritance.

class AddressPort(argclass.Group):
    address: str
    port: int

class Parser(argclass.Parser, AddressPort):
    pass

parser = Parser()
parser.parse_args(['--address=0.0.0.0', '--port=9876'])
assert parser.address == '0.0.0.0'
assert parser.port == 9876