Skip to main content

A modular Python toolkit with JSON diff utilities and optional Textual and WBS helpers.

Reason this release was yanked:

migrats to another package

Project description

luvmagiToolKits

luvmagiToolKits is a modular Python toolkit.

The current public release includes:

  • json_diff: compare two JSON-serializable documents and write JSON or Markdown reports
  • decotextual: a decorator-driven helper layer for building small Textual-based tool panels quickly
  • wbs: WBS-oriented helpers that depend on the wbs extra

Installation

Install the lightweight base package:

pip install luvmagitoolkits

The base install is intended for dependency-light modules such as json_diff.

Install the Textual TUI helpers:

pip install "luvmagitoolkits[tui]"

Install the WBS helpers:

pip install "luvmagitoolkits[wbs]"

Install every optional dependency:

pip install "luvmagitoolkits[all]"

Upgrade the package:

pip install -U luvmagitoolkits

What json_diff Provides

  • Structured diffs for dictionaries, lists, and nested JSON-like payloads.
  • Configurable array matching by key, inferred key, hash, or index.
  • JSON and Markdown output writers with explicit encoding parameters.

What decotextual Provides

  • A class decorator to register tools into a navigable tree.
  • A method decorator to define labels, descriptions, and placeholders.
  • A simple Linear(...) helper for select-style choices.
  • A ready-to-run Textual application launcher with run_tui().

run_tui() requires the tui extra.

Quick Start

from pathlib import Path

from luvmagitoolkits.decotextual import Linear, register_tool, run_tui, tool_method


@register_tool(category="File Tools", tool_name="File Utilities")
class FileTool:
    @tool_method(
        name="Read File",
        description="Read a file and return the first N lines",
        placeholders={
            "file_path": "Full path, e.g. ./demo.txt",
            "tags": "One tag per line, or comma-separated",
        },
    )
    def read_file(self, file_path: Path, line_count: int = 20, tags: list | None = None):
        print(f"Reading {file_path} - first {line_count} lines")
        if tags:
            print(f"Tags: {tags}")
        return "Done"

    @tool_method(
        name="Batch Rename",
        description="Batch rename files in a directory",
        placeholders={"directory": "Target directory path"},
    )
    def batch_rename(
        self,
        directory: Path,
        prefix: str = "file_",
        mode: Linear = Linear("Sequential", "Timestamp", "MD5"),
    ):
        print(f"Scanning: {directory}")
        print(f"Prefix: {prefix}, Mode: {mode}")
        return "Rename complete"


if __name__ == "__main__":
    run_tui()

Release Status

  • Package version: 0.1.1
  • Stability: alpha
  • Recommended audience: early adopters and internal experimentation

Roadmap

  • Expand the decotextual examples and tests.
  • Add module-specific documentation under docs/.
  • Gradually fill in the database, dataframe, excel, image, and utils modules.

Project Links

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

luvmagitoolkits-0.1.1.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

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

luvmagitoolkits-0.1.1-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

Details for the file luvmagitoolkits-0.1.1.tar.gz.

File metadata

  • Download URL: luvmagitoolkits-0.1.1.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for luvmagitoolkits-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1178d1227e4c93b76c6cfbaadd1c0087a341e238dd25bbcc709698c9ba3f3721
MD5 27984132b8cc240330a5aeff60072019
BLAKE2b-256 336372992ad78d5d67fa081283733b4e0b08d0a81159bf7dcab85121fa0bc388

See more details on using hashes here.

File details

Details for the file luvmagitoolkits-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for luvmagitoolkits-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 71f1c3e0df6f4fa963eac22e579a0732163906d7a78836434669cc4eccf889ac
MD5 7c211dbf81721716f83fd3c500c8f7aa
BLAKE2b-256 59f4f367760c5a21ac5b1b02d0a4cd5c3b50447a5870663d40a21f5752c8af0a

See more details on using hashes here.

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