docopt
complgen
docopt | complgen | |
---|---|---|
29 | 5 | |
7,892 | 191 | |
-0.0% | - | |
2.5 | 9.3 | |
about 1 month ago | 22 days ago | |
Python | Rust | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
docopt
- Docopt: Command-line interface description language
-
Building a Command Line Tool with PHP and Symfony Console
Symfony Console closely follows the well-established docopt conventions. Docopt, based on longstanding conventions from help messages and man pages, ensures a consistent and intuitive interface for describing a program's interface. Symfony Console's adherence to docopt conventions guarantees that your command line tools maintain a standardized and predictable user experience, simplifying development and user interaction.
-
CLI user experience case study
You probably already know, but just in case you don't, you might read about http://docopt.org/ It seems to me a lot of your usage ideas could be refinements of / tooling around docopt-style interfaces.
-
Gooey: Turn almost any Python command line program into a full GUI application
http://docopt.org/
Not quite what you asked for, but close: type example invocations to generate the CLI, and just pull the arguments from a dictionary at runtime.
-
Things I've learned about building CLI tools in Python
I've been using docopt to handle CLI arguments for years now.
http://docopt.org/
-
What's up, Python? The GIL removed, a new compiler, optparse deprecated
If you aren't averse to using a third party package, on my personal projects I always found https://github.com/docopt/docopt to be nice.
You can kill 2 birds with one stone by documenting your scripts while also providing the argument structure / parsing.
-
adaszko/complgen: Generate {bash,fish,zsh} completions from a single EBNF-like grammar
As for the implementation differences, complgen uses a trivial DSL that’s everybody is already familiar with more or less because it’s a slightly more rigorous version of what tools usually spit out when you do command --help (projects like docopt even use that for command line arguments parsing). Those happen to be regular languages and therefore can be represented as a Deterministic Finite Automata. complgen compiles the grammars to DFAs, minimizes the DFA and spits out shell-specific shell completions scripts that simply walk the DFA to match and complete the current input.
-
[Media] shrs: a shell that is configurable and extensible in rust
The current completion system has a list of rules of which completions to use at which time. It's purposely simple to make it as flexible as possible. The current things I'm planning is a derive macro like what clap has to generate these rules. I'm also considering introducing a plugin that let's you write rules in the format of docopt
-
Docopt.sh – Command-Line Argument Parser for Bash 3.2, 4, and 5
For anyone unfamiliar, docopt is an established standard for specifying arguments in a script’s doc string. I use it for Python and it’s lovely. You’re going to write a docstring with examples anyway, why not make them functional?
http://docopt.org/
-
I am sick of writing argparse boilerplate code, so I made "duckargs" to do it for me
I like http://docopt.org/ a lot. You seem like someone who might have opinions on that.
complgen
- complgen: Generate bash/fish/zsh completions from a single declarative grammar
-
adaszko/complgen: Generate {bash,fish,zsh} completions from a single EBNF-like grammar
The advantage complgen has over clap_complete (currently) is that it can generate completions based on an external command output. For example for cargo, you can have this (incomplete yet) grammar that not only completes +toolchains in cargo but also suggest test names in cargo test .
- Show HN: Complgen: Generate {bash,fish,zsh} completions from a EBNF-like grammar
- Complgen: Generate shell completions based on a BNF-like grammar
What are some alternatives?
click - Python composable command line interface toolkit
dotfiles - :computer: *n*x dotfiles for a user shell. Targets primarily desktop Linux. Uses: i3, fish, pywal, vim, fzf and dirp.
Python Fire - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
intellicomp - YAML-based specifications for providing cross-shell command completions
typer - Typer, build great CLIs. Easy to code. Based on Python type hints.
rspark - ▁▂▆▇▁▄█▁ Sparklines for Rust apps
Gooey - Turn (almost) any Python command line program into a full GUI application with one line
zoxide - A smarter cd command. Supports all major shells.
cement - Application Framework for Python
vifi-prompt - A super simple prompt for Fish shell, just shows git info and Vi mode. That's it.
Argh - An argparse wrapper that doesn't make you say "argh" each time you deal with it.
emuriscv