Skip to main content

Statikomand

Python static command parser, with command completion.

Subclasses argparse, but without connection to CLI. Only string to python objects.

Parses a raw string list into a structured object, and proposes completion for options, flags, ...

Getting Started

pip install statikomand

Basic Usage

from statikomand.komand_parser import KomandParser
# Example Usage
parser = KomandParser(prog="my-parser") # subclass of argparse.ArgumentParser

def pos1_completer(word, rank):
    return [f"pos1 completer : {word}-{rank}"]

def pos2_completer(word, rank):
    return [f"pos2 completer : {word}-{rank}"]

def opt1_completer(word, rank):
    return [f"opt1 completer : {word}-{rank}"]

def opt2_completer(word, rank):
    return [f"opt2 completer : {word}-{rank}"]

parser.add_argument("pos1", nargs=1, completer=pos1_completer) # give completer method, which is called when the parser is asked to complete the line

parser.add_argument("pos2", nargs=1, completer=pos2_completer)
parser.add_argument("--opt1", "-o1", nargs=2, completer=opt1_completer)
parser.add_argument("--opt2", "-o2", nargs=2, completer=opt2_completer)

arg_strings = shlex.split("argpos1 argpo")
print(parser.complete(arg_strings))  # ['pos2 completer : argpo-1']

arg_strings = shlex.split("argpos")
print(parser.complete(arg_strings))  # ['pos1 completer : argpos-1']

arg_strings = shlex.split("--")
print(
    parser.complete(arg_strings)
)  # ['--help', '--opt1', '--opt2'] - help flag is by default on all argparse.ArgumentParser

arg_strings = shlex.split("--op")
print(
    parser.complete(arg_strings)
)  # ['--opt1', '--opt2'] - help flag is by default on all argparse.ArgumentParser

arg_strings = shlex.split("argpos1 --opt1 argopt1 arg")
print(
    parser.complete(arg_strings)
)  # ['opt1 completer : arg-2'] - second argument of opt1 needs to be completed

arg_strings = shlex.split("argpos1 --opt1 argopt1 argopt2 arg")
print(
    parser.complete(arg_strings)
)  # ['pos2 completer : arg-1'] - completer of pos2

arg_strings = shlex.split("argpos1 --opt1 argopt1 argopt2 --o")
print(
    parser.complete(arg_strings)
)  # ['--opt2'] - completes flag name among the ones not already seen before

Completion detail

When calling add_argument method of KomandParser, you can add a completer method, which is a function that take a string and an int as argument, and returns a list of strings (proposition of completions).

The 'complete' method of the parser tries to complete the flag names, and calls the complete method of positional and / or flag arguments; according to the position of the last caracter.

Metadata

Release files for statikomand 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for statikomand 0.2.0
File Size Uploaded
statikomand-0.2.0.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for statikomand 0.2.0
File Interpreter ABI Platform
statikomand-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.1 kB

Release files / statikomand-0.2.0.tar.gz

Download URL statikomand-0.2.0.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
637fbe5a86240bff650cf46319791df8595fb2a0ca0013f37514c4718aaf7853
BLAKE2b-256 checksum
How to use checksums
5b0c17da9617999ed3e548a80edb1edd517d01ba32a5ff51815fcca6fa47f610
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.3

Release files / statikomand-0.2.0-py3-none-any.whl

Download URL statikomand-0.2.0-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb818e9364cac79cdcb2e2087cf840246c407cd7b037fc59daf99063d6b3f75f
BLAKE2b-256 checksum
How to use checksums
3eb289fa24d920efd8b357da77dde5031515528cee64c346699a79910bcf45fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.3

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

1 release file

0.1.0

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

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