Metadata-Version: 2.1
Name: yapx
Version: 0.0.1a1.dev4
Home-page: https://www.fresh2.dev/code/r/yapx
Author: donald
Author-email: hello@fresh2.dev
Project-URL: Bug Tracker, https://www.fresh2.dev/code/r/yapx/issues
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typing-extensions ; python_version < "3.10"
Provides-Extra: build
Requires-Dist: build ; extra == 'build'
Requires-Dist: setuptools ; extra == 'build'
Requires-Dist: twine ; extra == 'build'
Requires-Dist: wheel ; extra == 'build'
Requires-Dist: mkdocs ; extra == 'build'
Requires-Dist: pdoc ; extra == 'build'
Provides-Extra: dev
Requires-Dist: black ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: flake8-bugbear ; extra == 'dev'
Requires-Dist: flake8-comprehensions ; extra == 'dev'
Requires-Dist: flake8-pytest-style ; extra == 'dev'
Requires-Dist: flake8-simplify ; extra == 'dev'
Requires-Dist: importlib-metadata (<5.0) ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: mypy[reports] ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: pylint-pytest ; extra == 'dev'
Requires-Dist: rope ; extra == 'dev'
Requires-Dist: tox ; extra == 'dev'
Provides-Extra: pydantic
Requires-Dist: pydantic (==1.*) ; extra == 'pydantic'
Provides-Extra: tests
Requires-Dist: pytest (==7.*) ; extra == 'tests'
Requires-Dist: pytest-cov ; extra == 'tests'
Requires-Dist: pytest-html ; extra == 'tests'
Requires-Dist: pytest-sugar ; extra == 'tests'
Requires-Dist: hypothesis (==6.*) ; extra == 'tests'
Requires-Dist: packaging ; extra == 'tests'
Requires-Dist: pydantic (==1.*) ; extra == 'tests'

# yapx

```python
import yapx

@dataclass
class ArgsModel:
    ...

parser = yapx.ArgumentParser()

parser.add_arguments(ArgsModel)

parser.print_help()
```

```python
@dataclass
class CmdArgsModel:
    ...

parser.add_command('run-command', CmdArgsModel)

parser.print_help()
```

```python
import yapx

def setup(...):
    ...

def run_it(...):
    ...


yapx.run(setup, run_it)
# or
yapx.run(setup, run_command=run_it)
# or
yapx.run(setup, **{
    'run-command': run_it
})
```

```python
yapx.run(setup, run_it, _print_help=True)
```

```python
yapx.run(lambda value: value * 5)
```
