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, and mt setup 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).

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.8.55.tar.gz (246.5 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.8.55-py3-none-any.whl (254.7 kB view details)

Uploaded Python 3

File details

Details for the file dazzlecmd_lib-0.8.55.tar.gz.

File metadata

  • Download URL: dazzlecmd_lib-0.8.55.tar.gz
  • Upload date:
  • Size: 246.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dazzlecmd_lib-0.8.55.tar.gz
Algorithm Hash digest
SHA256 e7bc8e04725e8cadcb20285de8cf5cf5acc1d17670da492e69dd80febafb57fe
MD5 ef25f7d649bb12a83a35f01dfd2ce16d
BLAKE2b-256 1179864d418158cc5c924db13519433a7434fa2ef62873f9744f164bb7d19f46

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: dazzlecmd_lib-0.8.55-py3-none-any.whl
  • Upload date:
  • Size: 254.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dazzlecmd_lib-0.8.55-py3-none-any.whl
Algorithm Hash digest
SHA256 8cd077bad7a799ce82e07d8c0cdc536ccb65decd05f0dafd2d202fff74f5f003
MD5 310ae42fec5bc87cd207720611968df2
BLAKE2b-256 1f9843a70bdb43936a00f787200bb2184e2d2b044bef7318f99958aa13d1802e

See more details on using hashes here.

Provenance

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