Welcome to Invokify
Invokify is a lightweight library that allows you to run functions from a string or list of values.
Installing
Invokify is published on PyPI so you can easily install it with either pip or poetry.
pip install invokify
poetry add invokify
This package is for python 3.10+
Getting started
Let's create a simple command-line command.
We can start by importing the InvokeEngine from invokify:
from invokify import InvokeEngine
Now we need to create an engine to hold our commands:
engine = InvokeEngine()
Once we have our engine set up, all we need to do is decorate our target function using the engine's command method:
@engine.command
def greet(user: str):
print(f"Hello {user}!")
Congrats, that's all you need to do to create a command! Our next goal will be to parse our command by feeding our engine's parse method a list of values.
cmd, args, callstack = engine.parse(["greet", "Jeff"])
The parse method will return a tuple containing three values:
- The command if one was found. If no command was found, it will return
None - Any remaining arguments that were passed. The
parsemethod will recursively look for subcommands until it cannot find any, and the remaining arguments will be passed back. - The callstack. A list of the commands and subcommands that were passed in.
Once you have your command, you can execute it easily just by calling it. If your command accept arguments, you can pass args to it.
cmd(*args)
Output:
Hello Jeff!
To actually run commands on the command line, we can just set up a simple input loop.
Invokify has a simple built-in parser called string_to_args() that can turn a string into a list of arguments, keeping things like strings and lists intact, and converting numbers automatically.
while True:
user = input()
cleaned = string_to_args(user)
cmd, args, cs = engine.parse(cleaned)
if cmd:
cmd(*args)
else:
print("No command was found.")
Metadata
Release files for invokify 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| invokify-0.1.4.tar.gz | 5.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| invokify-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.2 kB
Release files / invokify-0.1.4.tar.gz
| Download URL | invokify-0.1.4.tar.gz |
|---|---|
| Size | 5.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8495bd40294d1b21dbf80a321a6ad01beaa2157de25498e91e6fd2cd0162be9e
|
|
BLAKE2b-256 checksum How to use checksums |
3537475a9cbbf2d0d4646280e2ca30d8583df6c8454c43d4a40448c948e9f2da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.2 CPython/3.12.2 Windows/11
|
Release files / invokify-0.1.4-py3-none-any.whl
| Download URL | invokify-0.1.4-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a426bcca8ff09397b6fabc35d28bab901e3e5bcc13c737f6f8b961c61f5100a7
|
|
BLAKE2b-256 checksum How to use checksums |
106a273ce86afa345e6fb2fcaa5f8badc576cd874574f27137ca4347a852c1b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.2 CPython/3.12.2 Windows/11
|