Skip to main content
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)

Source distribution for qodalis-cli-server-abstractions 1.0.0b5
File Size Uploaded
qodalis_cli_server_abstractions-1.0.0b5.tar.gz 8.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qodalis-cli-server-abstractions 1.0.0b5
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page