home.social

#cappa — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #cappa, aggregated by home.social.

fetched live
  1. Also, use 😛 Cappa leaves your functions/dataclasses (commands) intact.

    cappa.readthedocs.io/en/latest/

  2. Rewriting an argparse-based CLI with . It's much cleaner:

    - less verbose
    - better contained (single module instead of using submodules for subcommands)
    - better typed (dataclasses!)
    - as reusable, or more reusable in other CLIs (classes instead of functions that modify an argparse parser)
    - much easier to use programmatically (no need to call `main` or build an `argparse.Namespace` manually)
    - better documented
    - better output (rich!)

    github.com/DanCardin/cappa

  3. Rewriting an argparse-based CLI with #Cappa. It's much cleaner:

    - less verbose
    - better contained (single module instead of using submodules for subcommands)
    - better typed (dataclasses!)
    - as reusable, or more reusable in other CLIs (classes instead of functions that modify an argparse parser)
    - much easier to use programmatically (no need to call `main` or build an `argparse.Namespace` manually)
    - better documented
    - better output (rich!)

    github.com/DanCardin/cappa

  4. is awesome. @dancardin does a fantastic job on this project.

    Command descriptions can be written in Markdown and are rendered with , so code blocks are syntax highlighted, and you can even add links. Amazing CLI experience.

    Look at this beauty:

  5. What a rabbit hole. Even though uses internally, forcing colors with `FORCE_COLOR=1` did not work.

    After a super painful investigation, turns out my code imports a module from which uses `colorama.init()`.

    Changing that to `colorama.just_fix_windows_console()` fixed it, but the output still had an extra reset sequence at the end.

    Turns out Copier imports colors module, which registers a function to reset styles at exit.

    Don't run things at import time!

  6. I started sponsoring @dancardin (@[email protected]?) for their great work on , a super elegant declarative CLI argument parser for Python: github.com/DanCardin/cappa. It makes all the right choices, allowing users to build good, reusable CLIs for their libraries, with support!

  7. I started sponsoring @dancardin (@[email protected]?) for their great work on #Cappa, a super elegant declarative CLI argument parser for Python: github.com/DanCardin/cappa. It makes all the right choices, allowing users to build good, reusable CLIs for their libraries, with #Rich support!

  8. puts the finger on what I dislike about : cappa.readthedocs.io/en/latest. I'll try Cappa right now in a new project.

    I was also strongly tempted by (github.com/treykeown/arguably), but Cappa's use of `Annotated` instead of docstrings makes it super attractive given my recent work on supporting PEP 727 (from @tiangolo) with a extension.