@@ -526,7 +526,7 @@ print(Settings().model_dump())
526526```
527527
528528To 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:
530530
531531``` py
532532from pydantic_settings import BaseSettings
@@ -619,7 +619,7 @@ CLI argument parsing of dictionaries supports intermixing of any of the below tw
619619
620620These can be used in conjunction with list forms as well, e.g:
621621
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.
623623
624624``` py
625625import sys
@@ -671,7 +671,7 @@ print(Settings().model_dump())
671671
672672#### Aliases
673673
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.
675675
676676``` py
677677import sys
@@ -683,15 +683,21 @@ from pydantic_settings import BaseSettings
683683
684684class User (BaseSettings , cli_parse_args = True ):
685685 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 ))
687690 )
688- last_name: str = Field(validation_alias = AliasChoices(' lname' , AliasPath(' name' , 1 )))
689691
690692
691693sys.argv = [' example.py' , ' --fname' , ' John' , ' --lname' , ' Doe' ]
692694print (User().model_dump())
693695# > {'first_name': 'John', 'last_name': 'Doe'}
694696
697+ sys.argv = [' example.py' , ' -f' , ' John' , ' -l' , ' Doe' ]
698+ print (User().model_dump())
699+ # > {'first_name': 'John', 'last_name': 'Doe'}
700+
695701sys.argv = [' example.py' , ' --name' , ' John,Doe' ]
696702print (User().model_dump())
697703# > {'first_name': 'John', 'last_name': 'Doe'}
0 commit comments