Configpile: a modern, typed argparse replacement
I started documenting astronomy code written by a PhD student, and wanted a command-line parsing library that would be self documenting.

Thus [ConfigPile](https://denisrosset.github.io/configpile/) was born! It's based on dataclasses with annotated types.

Sample code (imports omitted):

    @dataclass(frozen=True)
    class Calc(Config):
        """
        A simple calculator
        """

        #: First number to add
        x: Annotated[float, Param.store(parsers.float_parser, short_flag_name="-x")]

        #: Second number to add
        y: Annotated[float, Param.store(parsers.float_parser, short_flag_name="-y")]

    c = Calc.from_command_line_()
    print(f"{c.x} + {c.y} = {c.x+c.y}")

Running this with "-h", you can a nice usage help automatically generated (through a legacy ArgumentParser). The same can feed the [sphinx-argparse](https://sphinx-argparse.readthedocs.io/en/latest/) extension to include documentation in the project web pages.

Configpile is based on modern Python, is written in mostly functional style, has user-friendly error reporting which accumulates errors instead of bailing out immediately, supports environment variables and INI files.

I'd be super grateful for comments, especially about the documentation and the Python style.

Follow a tutorial here: https://denisrosset.github.io/configpile/tutorial/index.html

Learn about the main concepts here: https://denisrosset.github.io/configpile/concepts/index.html

The package can be easily installed using `pip install configpile`

(Note: many edits for formatting)