@@ -526,7 +526,7 @@ print(Settings().model_dump())
526
526
```
527
527
528
528
To enable CLI parsing, we simply set the ` cli_parse_args ` flag to a valid value, which retains similar conotations as
529
- defined in ` argparse ` . Alternatively, we can also directly provided the args to parse at time of instantiation:
529
+ defined in ` argparse ` . Alternatively, we can also directly provide the args to parse at time of instantiation:
530
530
531
531
``` py
532
532
from pydantic_settings import BaseSettings
@@ -619,7 +619,7 @@ CLI argument parsing of dictionaries supports intermixing of any of the below tw
619
619
620
620
These can be used in conjunction with list forms as well, e.g:
621
621
622
- * ` --field k1=1,k2=2 --field k3=3 --field '{"k4: 4}' ` etc.
622
+ * ` --field k1=1,k2=2 --field k3=3 --field '{"k4" : 4}' ` etc.
623
623
624
624
``` py
625
625
import sys
@@ -671,7 +671,7 @@ print(Settings().model_dump())
671
671
672
672
#### Aliases
673
673
674
- Pydantic field aliases are added as CLI argument aliases.
674
+ Pydantic field aliases are added as CLI argument aliases. Aliases of length one are converted into short options.
675
675
676
676
``` py
677
677
import sys
@@ -683,15 +683,21 @@ from pydantic_settings import BaseSettings
683
683
684
684
class User (BaseSettings , cli_parse_args = True ):
685
685
first_name: str = Field(
686
- validation_alias = AliasChoices(' fname' , AliasPath(' name' , 0 ))
686
+ validation_alias = AliasChoices(' f' , ' fname' , AliasPath(' name' , 0 ))
687
+ )
688
+ last_name: str = Field(
689
+ validation_alias = AliasChoices(' l' , ' lname' , AliasPath(' name' , 1 ))
687
690
)
688
- last_name: str = Field(validation_alias = AliasChoices(' lname' , AliasPath(' name' , 1 )))
689
691
690
692
691
693
sys.argv = [' example.py' , ' --fname' , ' John' , ' --lname' , ' Doe' ]
692
694
print (User().model_dump())
693
695
# > {'first_name': 'John', 'last_name': 'Doe'}
694
696
697
+ sys.argv = [' example.py' , ' -f' , ' John' , ' -l' , ' Doe' ]
698
+ print (User().model_dump())
699
+ # > {'first_name': 'John', 'last_name': 'Doe'}
700
+
695
701
sys.argv = [' example.py' , ' --name' , ' John,Doe' ]
696
702
print (User().model_dump())
697
703
# > {'first_name': 'John', 'last_name': 'Doe'}
0 commit comments