Python Fire
docopt
Our great sponsors
Python Fire | docopt | |
---|---|---|
37 | 29 | |
26,266 | 7,894 | |
0.9% | 0.1% | |
6.8 | 0.0 | |
14 days ago | 17 days ago | |
Python | Python | |
GNU General Public License v3.0 or later | MIT License |
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.
Python Fire
-
CLI tools hidden in the Python standard library
The cli tool [fire](https://github.com/google/python-fire/blob/master/docs/guide...) has a nifty feature where it can generate a cli for any file for you.
So random and math are somewhat usable that way
$ python -m fire random uniform 0 1
-
Build CLI blazingly fast with python-fire 🔥
With python-fire you can use either function or class to create your subcommands. But I find working with classes more intuitive and manageable. Our first command is going to be a sub-command that shows us the UTC time.
- What is the status of Python 3.11?
-
I am sick of writing argparse boilerplate code, so I made "duckargs" to do it for me
Have you checked out fire? Personally, I think it's a really elegant solution to turning a callable object into command line. Plus, the chaining function calls feature lets you build some pretty complex command line patterns likes you never seen with other frameworks. Definitely worth giving it a try!
-
What is your favorite ,most underrated 3rd party python module that made your programming 10 times more easier and less code ? so we can also try that out :-) .as a beginner , mine is pyinputplus
I started with click but found python fire to be so much easier to use.
-
Best way to get data into python scripts
I highly recommend checking out fire for adding a CLI quickly to little utility scripts that aren't going to be published to the world but just for you.
-
What are your coolest tools for one-liners ?
python fire autogenerates CLI wrappers for python modules, which really synergizes with method-chaining APIs like pandas.
-
Show HN: Rocketry – Modern scheduler to power your Python projects
Fire can basically do the first step (object -> CLI):
https://github.com/google/python-fire
Gooey can do (CLI -> GUI):
-
What packages replaced standard library modules in your workflow?
also, while we're on the subject, fire may not be the same kind of workhorse as argparse or click, but for really simple stuff it's pretty awesome
-
Eclipse: python-fire inspired library to simplify creating CLIs in Go, on top of Cobra
I'm relatively new to Go (coming from Python) so I haven't been using Cobra (or Go, for that matter) for long but it's clearly very polished -- only friction I was experiencing with it is there's a lot of boilerplate to creating commands and subcommands, that IMO (idea as proven by python-fire) can be naturally (better) expressed as types / fields / methods that are already built into the language.
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.
-
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?
-
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.
What are some alternatives?
click - Python composable command line interface toolkit
typer - Typer, build great CLIs. Easy to code. Based on Python type hints.
Gooey - Turn (almost) any Python command line program into a full GUI application with one line
PyInquirer - A Python module for common interactive command line user interfaces
Argh - An argparse wrapper that doesn't make you say "argh" each time you deal with it.
pydantic-cli - Turn Pydantic defined Data Models into CLI Tools
cement - Application Framework for Python
plumbum - Plumbum: Shell Combinators
python-prompt-toolkit - Library for building powerful interactive command line applications in Python