Skip to main content

Engine library for dazzlecmd-pattern tool aggregators

Project description

dazzlecmd-lib

PyPI Release Date Python 3.9+ License: GPL-3.0 Platform

The aggregator/dispatch engine behind the dazzlecmd pattern: tool discovery, kit/FQCN dispatch, the runtime registry, and the DazzleEntity continuum object model. It is a standalone framework — it does not require dazzlecmd to be installed; dazzlecmd is just its first consumer.

Build your own dz-pattern CLI in ~10 lines

from dazzlecmd_lib import AggregatorEngine

def main():
    engine = AggregatorEngine(
        name="my-tools",
        command="mt",
        tools_dir="tools",
        manifest=".mt.json",
        version_info=("1.0", "1.0.0_main_1"),
    )
    return engine.run()

That gives you mt list, mt info <tool>, mt kit, mt version, mt tree, mt setup — plus the whole FQCN surface: a property store (mt .note=hi, mt prop list), bang-path addressing (mt :.meta, mt :core:tool.version), and a derived tree where every axis, verb, and rung is inspectable (mt info <anything>) — for free. Customize via the meta-command registry:

engine.meta_registry.register("mycmd", parser_factory, handler)
engine.meta_registry.override("list", handler=my_custom_list)
engine.meta_registry.unregister("tree")

What's inside

  • AggregatorEngine — a configurable CLI tool aggregator (discovery + dispatch).
  • FQCNIndex — dual-index lookup for Fully-Qualified Collection Names (kit:tool, aggregator:kit:tool).
  • RunnerRegistry — extensible runtime dispatch (Python, PowerShell, passthrough, …).
  • MetaCommandRegistry — per-engine meta-command registry (override/extend the stock commands).
  • default_meta_commands — stock list / info / kit / version / tree / setup.
  • ConfigManager — per-aggregator config reading/writing.
  • The mode subsystem — embedded / submodule / symlink tool-source detection and the dev↔publish toggle.
  • The DazzleEntity object model and the kit/continuum machinery (built on the dazzle-lib bedrock).
  • fqcn_grammar — the bang-path address grammar: : selects a child, . reads a property, :. steps into a fiber (hidden machinery), :+ steps to the parent. Forgiving canonicalization with visible rewrites (-> dz.note (canonical)), never silent.
  • property_store / prop_commands — the property surface (mt .note=hi, mt prop get/set/add/delete/list) over a discoverable properties.json: validated keys, registered defaults (tool (default)), one-node value aliases, and derived read-only properties (engine.derived_reads — values answered from an item's own data, shadow-proof).
  • fqcn_tree — the derived tree: every axis, rung, verb pole, and (via engine extensions) instance becomes an addressable node, derived from the live structures rather than hand-listed. Channels-by-existing, the verbosity cascade (one write on an outer node quiets its subtree), prefix-aware aliases with lazy key migration, and the seams an aggregator customizes: engine.tree_extensions, engine.tree_mounts, engine.tree_aliases.
  • verb_axis — verbs as poles on signed-rank axes (enable↔disable, attach↔detach, …) with universal on/off synonyms, the containment ladder (fiber < lib < internaltool < tool < kit < aggregator < supra), and the composed verb×level space that routes mt <verb> <target> with zero per-verb branches.
  • interrogation — the identity/state card machinery behind mt info at every level.

The DazzleLib stack

dazzlecmd-lib is an upper-layer member of the DazzleLib library stack. It builds on the bedrock and file-ops layers:

  • dazzle-lib — Protocols, TypedDict schemas, the continuum/state primitives.
  • dazzle-filekit — cross-platform file operations + metadata preservation.
  • unctools — UNC / drive-type path tools (Windows volume routing).

Consumers built on dazzlecmd-lib include dazzlecmd, amdead, and wtf-windows.

Install

pip install dazzlecmd-lib

Developing alongside a consumer (editable, shadow-proof)

When a consumer (e.g. dazzlecmd) is installed from PyPI, its dazzlecmd-lib dependency comes from PyPI too. To develop against a local checkout, install it editable with --no-deps so the local copy wins over any PyPI copy:

pip install -e C:/code/dazzlecmd-lib --no-deps

Versioning

Pre-1.0: the library reserves the right to make breaking changes during MINOR bumps until 1.0. Consumers should pin dazzlecmd-lib>=0.X.Y,<1.0.

History through 0.8.55 lives in the dazzlecmd monorepo git log (under packages/dazzlecmd-lib/), from which this repository was extracted on 2026-06-24. See CHANGELOG.md.

Contributing

See CONTRIBUTING.md. Issues and roadmap: Issue #1 (Roadmap).

License

GPL-3.0-or-later. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dazzlecmd_lib-0.10.32a0.tar.gz (349.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dazzlecmd_lib-0.10.32a0-py3-none-any.whl (326.6 kB view details)

Uploaded Python 3

File details

Details for the file dazzlecmd_lib-0.10.32a0.tar.gz.

File metadata

  • Download URL: dazzlecmd_lib-0.10.32a0.tar.gz
  • Upload date:
  • Size: 349.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dazzlecmd_lib-0.10.32a0.tar.gz
Algorithm Hash digest
SHA256 f7987e7b6c74c2dce358d7940dc254d8c58bd00c885100b00142dad27040da71
MD5 4beb30d43ef0aadd7dd71328ad6cbfbf
BLAKE2b-256 782aaca44b92ef103f593825df0ac860772a6184082379547fc5200a2a8ae888

See more details on using hashes here.

Provenance

The following attestation bundles were made for dazzlecmd_lib-0.10.32a0.tar.gz:

Publisher: release.yml on DazzleLib/dazzlecmd-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dazzlecmd_lib-0.10.32a0-py3-none-any.whl.

File metadata

File hashes

Hashes for dazzlecmd_lib-0.10.32a0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f72fa220758818c6c5237890142d56030b1f50b4af8941c6f12cf2103306625
MD5 84e3b9b3357f0a60c8bed65067867054
BLAKE2b-256 2ce4f99ca8bd82c8133d15a2ed7147b1e6f47f502bcb6dd88c5c61a55d7d36c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for dazzlecmd_lib-0.10.32a0-py3-none-any.whl:

Publisher: release.yml on DazzleLib/dazzlecmd-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page