Arguments
Todo
Naming convention
- Basic classes → Argument 
- Named arguments → Flag 
- Character prefixes → Short, Long, Windows 
Overview
        graph LR;
  CLA[CommandLineArgument]
  style CLA stroke-dasharray: 5 5
  EA[ExecutableArgument]
  NA[NamedArgument]
  style NA stroke-dasharray: 5 5
  VA[ValuedArgument]
  style VA stroke-dasharray: 5 5
  NVA[NamedAndValuedArgument]
  style NVA stroke-dasharray: 5 5
  BF[BooleanFlag]
  style NVA stroke-dasharray: 5 5
  NTA[NamedTupledArgument]
  style NTA stroke-dasharray: 5 5
  NKVPA[NamedKeyValuePairsArgument]
  style NKVPA stroke-dasharray: 5 5
  CLA ----> EA
  CLA --> NA
  CLA --> VA
  NA --> NVA
  VA --> NVA
  NA --> BF
  VA --> BF
  NA --> NTA
  VA --> NTA
  NA --> NKVPA
  VA --> NKVPA
  CA["<b>CommandArgument</b><br/><div style='font-family: monospace'>command</div>"]
  FA[FlagArgument]
  style FA stroke-dasharray: 5 5
  NA ---> CA
  NA ---> FA
  SA["<b>StringArgument</b><br/><div style='font-family: monospace'>value</div>"]
  SLA["<b>StringListArgument</b><br/><div style='font-family: monospace'>value1 value2</div>"]
  PA["<b>PathArgument</b><br/><div style='font-family: monospace'>file1.txt</div>"]
  PLA["<b>PathListArgument</b><br/><div style='font-family: monospace'>file1.txt file2.txt</div>"]
  VA ---> SA
  VA ---> SLA
  VA ---> PA
  VA ---> PLA
  NVFA["<b>NamedAndValuedFlagArgument</b><br/><div style='font-family: monospace'>output=file.txt</div>"]
  style NVFA stroke-dasharray: 5 5
  NOVFA["<b>NamedAndOptionalValuedFlagArgument</b><br/><div style='font-family: monospace'>output=file.txt</div>"]
  style NOVFA stroke-dasharray: 5 5
  NVA --> NVFA
  NVA --> NOVFA
    Without Prefix Character(s)
| RAW Format | Examples | Argument Class | 
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | 
Executable
An executable argument represents a program/executable. The internal value is a Path object.
Command
Commands are (usually) mutually exclusive arguments and the first argument in a list of arguments to a program. They are used to logically group arguments.
While commands can or cannot have prefix characters, they shouldn’t be confused with flag arguments or string arguments.
Example:
- prog command -arg1 --argument2
See also
- For simple flags (various formats). 
 →- Flag
- For string arguments. 
 →- StringArgument
String
A simple argument accepting any string value. If a string has a predefined format, more specific argument classes should
be used like Command, Flag or
PathArgument.
See also
- For path argument. 
 →- PathArgument
List of Strings
Like StringArgument but supporting a list of strings.
See also
- For list of path arguments. 
 →- PathListArgument
Path
An argument accepting a Path object.
List of Paths
Like PathArgument but supporting a list of paths.
With Prefix Character(s)
Commonly used prefix characters are: single and double dash, single slash, or plus character(s).
| Single Dash Argument Format | Double Dash Argument Format | Single Slash Argument Format | Argument Class | 
| 
 | 
 | 
 | |
| 
 | 
 | 
 | |
| 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
 | 
 | 
Command
Todo
Write documentation.
        graph LR;
  CLA[CommandLineArgument]
  style CLA stroke-dasharray: 5 5
  CLA --> NA[NamedArgument]
  style NA stroke-dasharray: 5 5
  NA --> CA["<b>CommandArgument</b><br/><div style='font-family: monospace'>command</div>"];
  CA --> SCA["<b>ShortCommand</b><br/><div style='font-family: monospace'>-command</div>"];
  CA --> LCA["<b>LongCommand</b><br/><div style='font-family: monospace'>--command</div>"];
  CA --> WCA["<b>WindowsCommand</b><br/><div style='font-family: monospace'>/command</div>"];
    Flag
A flag is a command line argument that is either present or not. If present that argument is said to be activated or true.
3 variants are predefined with prefixes -, -- and /.
Variants
        graph LR;
  CLA[CommandLineArgument]
  style CLA stroke-dasharray: 5 5
  CLA --> NA[NamedArgument]
  style NA stroke-dasharray: 5 5
  NA --> FA[FlagArgument]
  style FA stroke-dasharray: 5 5
  FA --> SFA["<b>ShortFlag</b><br/><div style='font-family: monospace'>-flag</div>"]
  FA --> LFA["<b>LongFlag</b><br/><div style='font-family: monospace'>--flag</div>"]
  FA --> WFA["<b>WindowsFlag</b><br/><div style='font-family: monospace'>/flag</div>"]
    Flag with Value
Todo
Write documentation.
Boolean Flag
Todo
Write documentation.
Flag with Optional Value
Todo
Write documentation.
List of Flags with Value
Todo
Write documentation.
Flag with Value as a Tuple
Todo
Write documentation.