Skip to main content

Python utilities for dynamic strings, sandboxed files, multiuse-case classes, and ANSI colors

Project description

ltoolboxLib

A Swiss Army knife for Python scripting and automation

PyPI version

ltoolboxLib is a powerful utility library for Python that simplifies file operations, text manipulation, encoding, system tasks, and more, with built-in sandbox mode for safe testing.


Features

  • File Operations - Read, write, copy, grep, and manage files (with sandbox support).
  • Dynamic Strings - S() and M() for runtime string interpolation.
  • Encoding/Decoding - Secure encode()/decode() with shadow keys.
  • System Utilities - Cross-platform notifications, clipboard access, and public IP fetching.
  • ANSI Styling - RGB colors and text formatting for terminals.
  • Sandbox Mode - Virtual filesystem for testing without touching real files.
  • Smart Functions - Fuzzy matching, random generators, UUIDs, and more.
  • Temporary Variables - Values that expire over time, after use, or permanently transform.
  • Debugging Tools - Tracebacks, watches, pauses, and safe evaluations.
  • Utility Classes - Including Toggle, Undo, and Lock for stateful logic and memory control.

Quick Start

1. File Operations (Sandbox Supported)

from ltoolboxLib import *

debug.sandbox(True)
rw_file("test.txt", "Hello, sandbox!")
print(file_exists("test.txt"))  # True (in sandbox)

debug.sandbox(False)
rw_file("real_file.txt", "This writes to disk.")

1-B. JSON

data = rwe_json("config.json") # Returns full JSON
rwe_json("config.json", {"a": {"b": 2}}) # Sets entire JSON
print(rwe_json("config.json", E="a/b"))  # Returns a nested value (ie. a: {b: 2})
rwe_json("config.json", 42, E="x/y/z") # Sets that nested value (ie. x: {y: {z: 42}})

2. Dynamic Strings (S and M)

user = "Alice"
id_num = 42

greeting = S("User {user} (ID: {id_num}) logged in at {timestamp()}")
m_greeting = M("User {user} (ID: [id_num]) logged in at {timestamp()}")

user = "Bob"
id_num = 99

print(greeting)     # User Bob (ID: 99) ...
print(m_greeting)   # User Bob (ID: 42) ...

3. Encoding & Security

encoded = encode("Secret Message")
decoded = decode(encoded)
print(decoded.decode())

4. System Utilities

notify("Done!", "Script complete!")
clipboard_copy("Text copied.")
print(censor(get_public_ip(), '-'))  # "118.---.---.93"

5. Temporary Variables

t = Temporary("Code: 1337", delay=5, expiry="Expired")
print(t)  # "Code: 1337"
time.sleep(5)
print(t)  # "Expired"

t2 = Temporary("Limited use", uses=2, expiry="Gone")
print(t2)  # "Limited use"
print(t2)  # "Limited use"
print(t2)  # "Gone"

6. Other Classes

Toggle("A", "B", "C")  # Cycles through values
Undo("Initial").set("Change 1").undo()  # Reverts
Lock("Secret").lock().set("Still secret")  # Cannot overwrite if locked

7. Run the Full Demo

tech_demo()  # Try it all in one shot

API Highlights

Function/Class Description
rw_file() Read/write files (sandbox-aware).
S() / M() Dynamic and static-evaluated strings.
encode() / decode() Secure encoding with shadow keys.
notify() OS-level notification popup.
file_grep() Regex search across files.
ansi() RGB terminal styling.
debug.sandbox() Toggle sandbox mode.
Temporary() Create time/use-expiring or permanent-transform values.
Toggle() Cycle between given values.
Undo() Versioned string that supports undo/redo/history.
Lock() Prevent changes unless explicitly unlocked.

DEBUG Features

debug.sandbox(True/False)        # Enable/disable sandbox
debug.death(True/False)          # Enable/disable forced errors
debug.status()                   # Show sandbox and death state
debug.peek_vars(dict, keys=None) # View contents of variables
debug.safe_eval(expr, ...)       # Evaluate expressions safely
debug.trace(msg="Trace")         # Print a trace stack
debug.pause("...")               # Pause execution
debug.watch("myVar", globals())  # Watch variable value

Why Use ltoolboxLib?

  • All-in-One Utility - A single import covers dozens of use cases.
  • Safe Testing - Sandbox mode protects your real files.
  • Smarter Code - Logic and flow tools like Toggle, Undo, and Temporary.
  • Pretty Output - Styled output for terminal nerds.
  • Quick Start, Quick Results - Minimal setup, maximum value.
  • Batteries included - Not really though. No batteries.

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

ltoolboxlib-1.1.2.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

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

ltoolboxlib-1.1.2-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file ltoolboxlib-1.1.2.tar.gz.

File metadata

  • Download URL: ltoolboxlib-1.1.2.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for ltoolboxlib-1.1.2.tar.gz
Algorithm Hash digest
SHA256 cec95c55ab495dd8095f949ea76f49b0bf997be0f1c3105269946227e0b9440c
MD5 fed6dc9ffc3268d86e42f69f5f7bdd2f
BLAKE2b-256 2a0eeea26a4fd4fac3cacfb7af19eb461e5d2f12d681229a4face2cabaf79f07

See more details on using hashes here.

File details

Details for the file ltoolboxlib-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: ltoolboxlib-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for ltoolboxlib-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8869c1827b669078b6a9a3c2f3b671f08ad973de9d557f29448bbedffc32b1cf
MD5 6b3491a866f06c1bec83ae514bdf9834
BLAKE2b-256 75777fdeca0d74e9b5645160e284d23372f2264e475be74a6504989e8b10c37d

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