Metadata-Version: 2.4
Name: pydantic-parse
Version: 0.1.0
Summary: Pydantic adaptor for argparse
License-File: LICENSE
Author: sagitta42
Author-email: mariia.redchuk@gmail.com
Requires-Python: >=3.12
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: pydantic (>=2.13.5,<3.0.0)
Description-Content-Type: text/markdown

# pydantic-parse

Pydantic adaptor for argparse

Example
```python

def main():

    class TestChoices(enum.StrEnum):
        alice = "Alice"
        bob = "Bob"

    class TestModel(ArgModel):
        name: TestChoices = ArgField(description="Name")
        some_value: Optional[str] = ArgField(
            description="value",
            optional=True,
            default=None,
            flag=True
        )
        flag: bool = ArgField(description="flag", default=False, flag=True)

    parser = PydanticArgParser()
    parser.add_arguments_from_model(TestModel)
    args = parser.parse_args()
```

CLI
```bash
my-package Alice --some-value 42
```

Results in `vars(args)`:

```python
{
  'name': <TestChoices.alice: 'Alice'>,
  'some_value': '42',
  'flag': False
}
```

Or of course
```python
model = TestModel(**vars(args))
```

gives
```python
TestModel
name=<TestChoices.alice: 'Alice'> some_value='42' flag=False
```

-----
*Made with [poetiq](https://pypi.org/project/poetiq)*

