This release is a pre-release and may not be stable for production use.
Bistrot
A cli tool that transforms any Python function into an executable, or can easily print any constant in a codebase or library
It takes an existing Python function in a project and allows you to call it as an independent executable. All the function arguments become cli arguments with argparse.
Examples
Let's consider this example from examples/ops.py:
#examples/ops.py
def add(a: int, b: int) -> int:
return a + b
We can call this function from the command line using bistrot:
$ bistrot examples.ops:add --x=2 --y=3
bistrot> 5
Or it can use positional arguments if they are defined as such in the function:
$ bistrot examples.ops:add 2 3
bistrot> 5
However, the mandatory arguments must all be either positional or named in a cli call.
It also works with static and class methods
#examples/klass.py
import bistrot
class UsefulClass:
@staticmethod
def version():
return bistrot.__version__
$ bistrot examples.klass:UsefulClass.version
bistrot> 0.1.0a1
The same result can be achieved by targeting directly the __version__ variable:
$ bistrot bistrot:__version__
bistrot> 0.1.0a1
It is also possible to call methods on strings
$ bistrot '{\"hello\"}:upper'
bistrot> HELLO
Install
Bistrot is on pypi and it has no dependencies! Install it simply with
$ pip install bistrot
Or you may want to install it with pipx for global usage
$ pipx install bistrot
$ bistrot <cmds>
And verify your installation with
$ bistrot --version
bistrot> 0.1.0a1
Warning
This project is still experimental and is guaranteed to work only with primitive Python types.
Links
- Source Code: https://github.com/mattiadg/bistrot
- PyPI Releases: https://pypi.org/project/bistrot/
Release files for bistrot 0.1.0a4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bistrot-0.1.0a4.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bistrot-0.1.0a4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.1 kB
Release files / bistrot-0.1.0a4.tar.gz
| Download URL | bistrot-0.1.0a4.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b1f0ba685d38242386877f309c8f5366ab1c1f05fb8df0c7566e80f9782a87e5
|
|
BLAKE2b-256 checksum How to use checksums |
b442f113c1b9fe3badfaaac0965c2de679ae8bac426c49fd4ccac1c86ba20ba4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.23.3
|
Release files / bistrot-0.1.0a4-py3-none-any.whl
| Download URL | bistrot-0.1.0a4-py3-none-any.whl |
|---|---|
| Size | 5.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4827d0fb029ded49f7a77c460609e43c677f3b7cd652bca0187e3deec95924fb
|
|
BLAKE2b-256 checksum How to use checksums |
454b37e1698ca96ef0ac3f3bb098500d4e1efc4d01655249aad856656adf553c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.23.3
|