Pre-release
This release is a pre-release and may not be stable for production use.
qodalis-cli-server-abstractions
Shared interfaces and base classes for building Qodalis CLI command processors in Python. Zero framework dependencies — install this package when writing plugins, without pulling in FastAPI, uvicorn, or websockets.
Install
pip install qodalis-cli-server-abstractions
Quick Start
Create a custom command processor by subclassing CliCommandProcessor:
from qodalis_cli_server_abstractions import (
CliCommandProcessor,
CliProcessCommand,
CliCommandParameterDescriptor,
)
class GreetCommandProcessor(CliCommandProcessor):
@property
def command(self) -> str:
return "greet"
@property
def description(self) -> str:
return "Greets a user by name"
@property
def parameters(self):
return [
CliCommandParameterDescriptor("--name", "Name to greet", required=True),
]
async def handle_async(self, command: CliProcessCommand) -> str:
name = command.args.get("name", "World")
return f"Hello, {name}!"
Then register the processor with the server package. See qodalis-cli-server for server setup.
API Reference
Abstract Base Classes
| Class | Description |
|---|---|
ICliCommandProcessor |
Abstract base defining the processor contract: command, description, author, parameters, sub-processors, and handle_async() |
CliCommandProcessor |
Convenience subclass of ICliCommandProcessor with sensible defaults |
Protocols
| Protocol | Description |
|---|---|
ICliCommandAuthor |
Author metadata: name and email (runtime-checkable) |
ICliCommandParameterDescriptor |
Parameter declaration: name, type, required, aliases, default value (runtime-checkable) |
Data Classes
| Class | Description |
|---|---|
CliProcessCommand |
Parsed command input: command, value, args, chain_commands, raw_command, data |
CliCommandAuthor |
Simple implementation of ICliCommandAuthor |
CliCommandParameterDescriptor |
Simple implementation of ICliCommandParameterDescriptor |
Constants
| Constant | Description |
|---|---|
DEFAULT_LIBRARY_AUTHOR |
Default CliCommandAuthor instance used when no author is specified |
ICliCommandProcessor Properties
| Property | Type | Default | Description |
|---|---|---|---|
command |
str |
(abstract) | The command name users type to invoke this processor |
description |
str |
(abstract) | Human-readable description shown in help |
author |
ICliCommandAuthor |
DEFAULT_LIBRARY_AUTHOR |
Author metadata |
version |
str |
"1.0.0" |
Processor version |
api_version |
int |
1 |
Minimum API version this processor targets |
allow_unlisted_commands |
bool | None |
None |
Accept sub-commands not in processors list |
value_required |
bool | None |
None |
Whether a positional value argument is required |
processors |
list | None |
None |
Nested sub-command processors |
parameters |
list | None |
None |
Declared parameters for autocompletion and validation |
handle_async(command) |
method | (abstract) | Execute the command, return result string |
License
MIT
Release files for qodalis-cli-server-abstractions 1.0.0b5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qodalis_cli_server_abstractions-1.0.0b5.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qodalis_cli_server_abstractions-1.0.0b5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.8 kB
Release files / qodalis_cli_server_abstractions-1.0.0b5.tar.gz
| Download URL | qodalis_cli_server_abstractions-1.0.0b5.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b58995170ad8e18f898063a297254949dd09ce7f2efdd8c115461fc0be1c94f
|
|
BLAKE2b-256 checksum How to use checksums |
b67d0d9b7145949951814bb9732e0a554351aef24095784fd9763518b6060e45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / qodalis_cli_server_abstractions-1.0.0b5-py3-none-any.whl
| Download URL | qodalis_cli_server_abstractions-1.0.0b5-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4eda967f42d0c29d4433966e1880f166b2092954bd53f34e88378804281c331b
|
|
BLAKE2b-256 checksum How to use checksums |
1ea76351500ec818b3629faf227c0e8c5462e46e9d29ad11516cfbd1732b0b4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|