Metadata-Version: 2.4
Name: sylriekit
Version: 0.27.8
Summary: A personal Python toolbox of utilities.
Author: Kasterfly
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: tiktoken
Requires-Dist: redis
Requires-Dist: cryptography
Requires-Dist: bcrypt
Requires-Dist: uvicorn
Requires-Dist: starlette
Requires-Dist: webviewpy
Requires-Dist: python-telegram-bot
Requires-Dist: maturin
Requires-Dist: pyinstaller
Requires-Dist: numpy
Requires-Dist: scikit-learn
Requires-Dist: joblib
Requires-Dist: pandas
Requires-Dist: boto3
Requires-Dist: moto[dynamodb]
Dynamic: license-file

## Sylriekit
A personal kitchen sink toolset I made for myself to speed up the creation of some random personal projects.

**Warning**: This is a personal project and may contain bugs or incomplete features. It is mainly coded for convenience over optimization. Use at your own risk.

---
## Tools
### API
 - Simple API server and client with optional end-to-end encryption, sessions, rate limiting, and fingerprinting.
### ConfigLoader
 - A lightweight configuration manager that merges default values with optional external config data.
### Database
 - SQLite-first instance-based database utility with schema helpers, CRUD/query methods, and algorithm transforms.
### Diff
 - Multi-source text diff tool with configurable output formats including JSON, Git, and HTML.
### Files
 - A cross-platform file and directory utility with path shortcut syntax.
### FakeTerminal
 - Cross-platform Linux-like terminal emulator for running command packages with dynamic output, interactive prompts, and custom command definitions.
### FancyTerminal
 - Cross-platform CLI builder with coloured output, Unicode box-drawing, interactive arrow-key selectors, dynamic in-place updates, and a rich inline format engine.
### FnPak
 - Function endpoint packager that stores one-argument Python functions as `/endpoint/` handlers inside Base65k-compressed `.fn.pak` documents.
### JHL
 - Compiles HTML files by running `.jhl` scripts linked to or embedded in them, allowing for dynamic content generation.
### JHtml
 - Bidirectional converter between HTML strings and a structured JSON node tree.
### JMD
 - Compact, structured format (JSON Markdown) that converts losslessly to/from JSON. Drop-in replacement for the built-in `json` module with `loads`, `dumps`, `load`, and `dump`.
### Learn
 - Automatic machine-learning regression module that searches ~12,000 model + hyperparameter + scaler + polynomial-feature combinations (30 sklearn models across 7 families) and keeps the best one. Supports numeric, boolean, and string/enum columns, CSV loading, train/test split scoring, a fully-trained `_ut` prediction model, and continuous background optimization via `auto_optimize`.
### Logging
 - Structured log manager with named JSON log files, automatic size-capping (oldest entries removed first), convenience level methods (debug/info/warning/error/critical), an `auto_log` decorator that captures function arguments, return values, timing, and exception tracebacks, and filtered retrieval by level or count.
### LLM
 - Multi-provider LLM client with tool calling, streaming, chat management, and threaded background processing.
### PyIndex
 - Python source code indexer that parses `.py` files using AST analysis and returns structured data about classes, functions, imports, and cross-file symbol usage with configurable levels of detail.
### Redis
 - Redis client with session storage, rate limiting, function caching, and auto-start.
### ReLib
 - A chainable regex builder and text extraction utility.
### Rust
 - Compile Rust code into importable Python modules via PyO3 and maturin.
### Shell
 - Persistent interactive shell handler for running commands, interacting with REPLs, and managing long-lived shell sessions.
### SMS
 - Multi-provider SMS client (TextBelt and Twilio) with single/batch sending, fire-and-forget async sends, whitelist/blacklist filtering, message length capping, and per-second rate limiting.
### StartUp
 - Cross-platform startup manager for registering scripts to run at login via Task Scheduler, systemd, launchd, XDG autostart, Startup folder, or crontab.
### Static Helpers
 - Stateless helper classes under `sylriekit.Helpers.Static`, currently including `Base65k` for high-Unicode text/byte encoding and decoding.
### Telegram
 - Telegram Bot API wrapper with background polling, message caching, rate limiting, and media support.
### ToExecutable
 - Compile Python scripts into standalone executables via PyInstaller with configurable bundling options.
### TTS
 - Multi-provider text-to-speech client with voice management, playback queues, and audio file support.
### Window
 - HTML-based GUI application powered by webview with optional API hooks and JHL compilation.
---

### Change Log:
**0.27.8**:
- Added FnPak, a function endpoint packager for storing one-argument Python functions as executable `/endpoint/` handlers in Base65k-compressed `.fn.pak` documents.
- Added FnPak tests and documentation, including README, function reference, and LLM usage notes.

**0.27.7**:
- Added conversion between JSON and JMD inside the JMD tool.
- Removed the Learn tool
- Removed the Website tool

**0.27.6**:

- Reworked the FakeTerminal tool entirely, now working with command packages instead of hardcoded commands.
- Remove Agent tool (Due to it breaking after FakeTerminal rework)
- Added JMD tool
- Added PyIndex tool

**0.27.5**:
 - StartUp: Added tools for managing startup scripts, including startups for non-existing scripts / deleted scripts.
 - JHL: Added a new command for layouts so it can be used with a certain JSON file to form the layout of the HTML page.
 - Added Agent tool
 - Added FakeTerminal tool
 - Added Website tool

**0.27.4**:
 - Added FancyTerminal tool
 - Added Learn tool
 - Added Logging tool
 - Added SMS tool

**0.27.3**:
 - Added Shell tool
- Added StartUp tool

**Previous change log entries are visible in the description of older versions**
