41 lines
599 B
Python
41 lines
599 B
Python
|
from dataclasses import dataclass, field
|
||
|
from typing import Set, List
|
||
|
|
||
|
|
||
|
class Parsed:
|
||
|
...
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class Option:
|
||
|
name: str
|
||
|
shortcuts: List[str]
|
||
|
optional: bool
|
||
|
types: Set[type] = field(default_factory=lambda: {str})
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class OptionGroup:
|
||
|
options: List[Option]
|
||
|
optional: bool = True
|
||
|
exclusive: bool = False
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class Argument:
|
||
|
name: str
|
||
|
types: Set[type] = field(default_factory=lambda: {str})
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class Flag:
|
||
|
name: str
|
||
|
shortcuts: List[str]
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class FlagGroup:
|
||
|
flags: List[Flag]
|
||
|
exclusive: bool = False
|
||
|
|