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.33a0.tar.gz (349.6 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.33a0-py3-none-any.whl (326.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dazzlecmd_lib-0.10.33a0.tar.gz
  • Upload date:
  • Size: 349.6 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.33a0.tar.gz
Algorithm Hash digest
SHA256 7acce001339ca9883cdb8545020d3636b42cdc507fbe3105c158024502552c2c
MD5 e35ab661d4d0757a2ea9f2a6c7c2ff91
BLAKE2b-256 4ebeb2d6026885cbe2e2810719f15ba654d39110ddd1ff4c8869547a8c802820

See more details on using hashes here.

Provenance

The following attestation bundles were made for dazzlecmd_lib-0.10.33a0.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.33a0-py3-none-any.whl.

File metadata

File hashes

Hashes for dazzlecmd_lib-0.10.33a0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ef1bd22f7e0a2975e33d6cbf85c82da9d0f070c364d67952d2680fa4675a6c1
MD5 ab25549c8c7ad7d542709aa01ef03305
BLAKE2b-256 2bbab5db99b0781f44e88de89d0deb8dcffe4f6f2091541bd5536ed39cb32f4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for dazzlecmd_lib-0.10.33a0-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