A personal Python toolbox of utilities.
Project description
Sylriekit
A versatile Python utility kit designed to accelerate the development of personal projects. It provides a collection of modular tools for common tasks, ranging from file management and logging to GUI development and LLM integration.
Disclaimer
Warning: This is a personal kitchen-sink project. It is mainly coded for convenience and rapid prototyping over peak optimization. Features may be incomplete or experimental. Use at your own risk.
Installation
pip install sylriekit
Tool Reference
| Tool | Type | Description |
|---|---|---|
| LLM | Normal | Multi-provider single-chat client (Anthropic, OpenAI, Google, etc.) with tool calling and streaming. |
| ThreadedLLM | Normal | LLM subclass that runs sends on a background worker thread and delivers results via callbacks. |
| Background | Normal | Launch detached background processes that survive the script exiting, and stop/list them later (even from another run). |
| Archive | Normal | Create, extract, inspect, and validate .tar.zst archives. |
| Logging | Normal | Tiny timestamped file logger with log() and an auto() function-call decorator. |
| StaticUtils | Static | Small static helpers: Cache.ttl(), Timeout.ttl(), and extension-aware Files.read() / Files.write(). |
| Network | Static | Simple TCP/UDP senders, UDP broadcast, decorator listeners, and public/LAN IP helpers. |
| NetworkDiagnosis | Normal | PID-aware connection tracker, new-PID watcher, TCP port scanner, and network event/message recorder. |
Change Log
0.38.0
- NetworkDiagnosis: new PID-aware network diagnosis tool with
start(),stop(),add(),drop(),@OnNewPID(),connections(),messages(),scan(), andsave(); packet capture is optional via scapy when enabled
0.37.0
- Network: new simple network helper with
TCP(),UDP(),UDP_Broadcast(),@listen(),GetPublicIP(), andGetLANIP(); packet capture/diagnostics intentionally left for a separate tool
0.36.0
- Archive: new
.tar.zstarchive tool withcreate(),extract(),contents(), andis_archive() - Logging: re-added as a simplified timestamped file logger with
log()andauto() - StaticUtils: added
Cache.ttl(),Timeout.ttl(), and extension-awareFiles.read()/Files.write(); package now requires Python 3.14+
0.35.0
- Background: new tool —
start()launches a detached background process (e.g. a server) that keeps running after your script exits;stop()/stop_all()/list()/is_running()manage them via a shared JSON state file, so any later run can stop them
0.34.0
- LLM: major simplification — split into smaller classes. Each
LLMinstance is now a single chat (removedgenerate_chat,use_chat, and per-callchat_idhandling); create multiple instances for multiple chats - LLM: added
copy(other)to duplicate another instance's chat contents (config, tools, message history); works acrossLLMandThreadedLLM - LLM: removed all threading from the base class (
threaded(),on_reply(),on_live_reply());send()/send_live()are now synchronous-only andget_current_context_length()takes no arguments - ThreadedLLM: new tool — an
LLMsubclass that enqueuessend()/send_live()on a background worker and delivers results viaon_reply()/on_live_reply()callbacks
0.33.0
- Major slimming pass: the kit is now just
LLM - Removed tools:
ConfigLoader—LLMnow handles its own config data without depending on a shared config loader - Removed tools:
Logging,PyIndex,SMS,StartUp,Telegram,ToExecutable,TTS,Window,ComputerControl,JHtml— all niche/unused; src, docs, and tests deleted - Packaging: dependencies reduced to
requestsandPyYAML; removed JavaScript package data
0.32.0
- Rust: removed the tool entirely (PyO3/maturin compile-and-import helper) — too niche for this kit; src, docs, and tests deleted
0.31.1
- Window:
LINK_PYTHON/component discovery no longer lets an imported module kill the host app — a module that callssys.exit()(or raises anyBaseException) at import time is now skipped with a stderr warning instead of propagatingSystemExit;KeyboardInterruptstill propagates. Docs now note that discovery executes module top-level code.
0.31.0
- All tools: simplification + cleanup pass; UPPER_CASE config keys everywhere; one plain
pytestnow runs the full suite - ConfigLoader:
class_nameis now required (auto-detection removed);get_defaults()returns plain values; unparseable string configs raise - Files: unified return conventions (
None/Falseinstead of raising on missing sources); removed the@iNshortcut - Logging: removed
LoggingError;log()narrowed to(message, level, log_name) - StartUp:
purge()merged intoremove(name, force=True) - LLM: removed response cache, presets, MCP stub, and tiktoken; added
MAX_TOKENS; compat adapters collapsed - Window: removed
register_class,layouts.specswriting, and dead JS paths; pylink JS extracted to a template file - Telegram: removed
send_formatted; addedRESOLVE_TIMEOUTconfig key - SMS:
batch_sendis now sequential (fixes double rate-limiting) - TTS: added one-call
speak()convenience - PyIndex: folder indexing always returns a list
- Rust / ToExecutable: toolchain checks deferred to
compile(); maturin/pyinstaller installed on demand - ComputerControl / JHtml: now top-level imports (
from sylriekit.JHtml import JHtml) - Packaging: pruned unused dependencies; added missing
miniaudio; new development guidelines
0.30.2
- Window:
EXTRA_PYTHON_FEATURESpolishing
Previous change log entries are available in the description of older versions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sylriekit-0.38.0.tar.gz.
File metadata
- Download URL: sylriekit-0.38.0.tar.gz
- Upload date:
- Size: 28.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b262f6166680fe2ef682ce3d51c0529a3edc7ebf09ed026c9cd9e9327cb472b
|
|
| MD5 |
f18489946e66c739a12db437d74f0743
|
|
| BLAKE2b-256 |
2223d2d82d4f978d5bfb35a5bd010ece63679b3602f74196137fce9c840fce6d
|
File details
Details for the file sylriekit-0.38.0-py3-none-any.whl.
File metadata
- Download URL: sylriekit-0.38.0-py3-none-any.whl
- Upload date:
- Size: 30.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb52c8e223ceeac65d9717f87c032398018595550150cb6df70dc8bad0c2b80b
|
|
| MD5 |
7e05ec8f156b977adbd94d9a8a65b9c8
|
|
| BLAKE2b-256 |
89300354cd89e281bd6d6b3e2fb04709bd36400949a9334a8fb3ec2d7e066c9a
|