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.
  • Discord Message Simulation - For when you want to test out a discord bot, but without actually making one.

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. Discord Fake Messages

message = FakeMessage("This is a demonstation.", author="You")
print(message.content) # Would print: This is a demonstation.
message.reply("Hello demonstation") # Would print a fake reply message.

8. 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.2.0.tar.gz (22.0 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.2.0-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ltoolboxlib-1.2.0.tar.gz
Algorithm Hash digest
SHA256 1d6e987588a4c87023f72ac354517309ea422f74311c890e696d65ebc9a4ee5e
MD5 35bf38a9861f27ac11536d729ef1c3a5
BLAKE2b-256 f3ed6b49265c8c608fb8ea41f3b6df28d8f9adba05a6c7396dade3012709e167

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ltoolboxlib-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.5 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53e692347998377b56696c3faacb22e070bbc6ffca070b8b7cf5669aeda2100f
MD5 8906ff01e6276152c60ef1e48e80f012
BLAKE2b-256 4b01bf41a76934e4795c36596d2a2c8e15d7a5786956d19b1e752bf12555d86a

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