Skip to main content

Simple Python utility functions to save and load data

Project description

utilitz

utilitz is a versatile Python utility library designed to simplify common tasks such as data persistence, Excel table manipulation, system automation, and advanced pattern matching.

It is built with a modular approach, keeping the core library lightweight while providing powerful specialized modules through optional dependencies.

Current release: 0.9.1

🚀 Installation

Core (Lightweight)

Installs only the essential utilities for text, JSON, and object serialization.

pip install utilitz

With Specialized Modules

Install specific modules as needed to keep your environment lean:

# For Excel and Dataframe support
pip install utilitz[office]

# For GUI automation and Activity monitoring
pip install utilitz[gui]

# For Encryption and Decryption
pip install utilitz[crypto]

# Install everything
pip install utilitz[all]

✨ Key Features

📁 Core IO Utilities

Simple functions for saving and loading data without boilerplates.

  • save_text / load_text: Handle lists of strings.
  • save_json / load_json: Work with dictionary and list structures.
  • save_object / load_object: Convenient pickle serialization.

📊 Excel & Data (Optional: [office])

  • read_excel_table: Intelligently reads tables from Excel files, with support for row filtering based on regex patterns and dynamic range detection.
  • encode_column / decode_column: Convert between Excel column names (e.g., "A", "AB") and numeric indices.

🛡️ Crypto (Optional: [crypto])

  • Encryptor / Decryptor: Class-based encryption and decryption workflows using cryptography (Fernet) with password-based key derivation (PBKDF2).
  • CryptoInput / CryptoOutput: Normalize input data and preserve encrypted artifacts with the minimum metadata needed to restore the original payload.
  • Supports strings, files, directories, and picklable Python values.

🖥️ System & GUI (Optional: [gui])

  • monitor_keep_alive: Prevent system sleep by simulating activity when no user input is detected.
  • MonitorActivity: A simple class to track keyboard and mouse events.

🔍 Advanced Regex (utilitz.regex)

  • A specialized framework for building complex, readable, and reusable regex patterns with built-in decoding for common types like integers, decimal numbers, currencies, and dates.

🗺️ Path Management (utilitz.path)

  • locate_project: Easily find and set the project root directory.
  • set_source: Dynamically manage sys.path entries.

🛠 Usage Examples

Reading an Excel Table

from utilitz.excel import read_excel_table

# Read a table from an Excel file starting from column A
# and filtering rows that match a specific pattern.
df = read_excel_table("data.xlsx", checkcol="A", patterncol=r"^\d+")

Encrypting Data

from utilitz.crypto import Encryptor

secret = "My secret message"
password = "strong-password"

encrypted = Encryptor.from_string(secret).encrypt(password)
token = encrypted.to_string()
original = encrypted.to_decryptor().decrypt(password).to_string()

Encrypting Python Values

from utilitz.crypto import Encryptor

payload = {"name": "ana", "roles": ["admin", "editor"]}
password = "strong-password"

encrypted = Encryptor.from_value(payload).encrypt(password)
restored = encrypted.to_decryptor().decrypt(password).to_value()

Keeping the System Awake

from utilitz.sys import monitor_keep_alive

# Press 'ctrl' every 60 seconds if no activity is detected
monitor_keep_alive(seconds=60, key='ctrl')

📄 License

This project is licensed under the GNU General Public License v3 (GPLv3).

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

utilitz-0.9.2.tar.gz (40.2 kB view details)

Uploaded Source

Built Distribution

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

utilitz-0.9.2-py3-none-any.whl (45.8 kB view details)

Uploaded Python 3

File details

Details for the file utilitz-0.9.2.tar.gz.

File metadata

  • Download URL: utilitz-0.9.2.tar.gz
  • Upload date:
  • Size: 40.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for utilitz-0.9.2.tar.gz
Algorithm Hash digest
SHA256 1f5809e2726a45582c53c2add6f129fa67dc72b204fe29843502f57f4311e121
MD5 7f0f1a72bb842d05206b1715a31f0e95
BLAKE2b-256 feec9202ac477e55e717aa59518e794ae34c609979a1be6a005c98f881d22a0e

See more details on using hashes here.

File details

Details for the file utilitz-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: utilitz-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 45.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for utilitz-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ae9d72c5da7a3f2ced250e0d709e815cb668f6e6432926cd8d1fb1662fa4ca7e
MD5 39aa096ecd1dddcfdc0a57fbbdf2891b
BLAKE2b-256 4e4e8c1b5ee9c579bcc5a604ebc4a8bd7b57b8de85cfc2acce839ee668004f5d

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