Skip to content

python-project-templates/p2a

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

p2a

pydantic models to argparse CLIs

Build Status codecov License PyPI

Overview

A function is provided to automatically expose fields as command line arguments.

import sys
from pydantic import BaseModel
from p2a import parse_extra_args_model


class MyPluginConfig(BaseModel, validate_assignment=True):
    extra_arg: bool = False
    extra_arg_with_value: str = "default"
    extra_arg_literal: Literal["a", "b", "c"] = "a"


model = MyPluginConfig()
parse_extra_args_model(model, sys.argv)

# > my-cli --extra-arg --extra-arg-with-value "test" --extra-arg-literal b

For integration with existing argparse CLIs, a helper function to create an argparse.SubParser is also provided: p2a.create_model_parser.

Note

This library was generated using copier from the Base Python Project Template repository.