my personal python library for convenient personalized functionality
Project description
cmon2lib
Personal Python library for convenient personalized functionality.
Logging
cmon2lib provides a unified logging system with cross-language compatibility (Python and Bash).
Dual-Output Logging
cmon2lib logs to both console (terminal) and file simultaneously:
| Output | Format | When |
|---|---|---|
| Console | Just the message (colored) | Always |
| Console (WARNING/ERROR) | WARN: message or ERR: message |
For WARNING/ERROR |
| File | Full metadata: `YYYY-MM-DD HH:mm:ss | LEVEL |
Console Colors:
- INFO: No color (clean output)
- DEBUG/TRACE: Dim gray
- SUCCESS: Green
- WARNING: Yellow +
WARN:prefix - ERROR: Red +
ERR:prefix
File Format Example:
2026-04-12 18:14:00 | INFO | ctaiga:get_authenticated_user:33 | simon | Authenticated user ID: 123
Console Output Example (same message):
Authenticated user ID: 123
For WARNING:
WARN: something went wrong
For ERROR:
ERR: connection failed
Python Usage (clog)
from cmon2lib import clog
# Basic logging
clog('info', 'message')
clog('debug', 'value: {}', 42)
# With exception
try:
raise ValueError("test error")
except ValueError as e:
clog('error', 'Operation failed', exception=e)
# Output: Operation failed: ValueError: test error
# Log levels: trace, debug, info, success, warning, error, critical
clog('warning', 'Something might be wrong')
clog('success', 'Operation completed')
Python Usage (cprint - Rich UI Output)
from cmon2lib import cprint
# Rich console output - no file logging
# Supports Rich markup tags for colors and formatting
cprint('info', '[green]✓[/green] Item synced successfully')
cprint('info', '[cyan]Source:[/cyan] {}", source_name)
cprint('warning', '[yellow]![/yellow] Something may be wrong')
cprint('error', '[red]✗[/red] Operation failed')
# cprint is for UI output (trees, tables, formatted messages)
# clog is for operational logs (process info, errors, warnings)
### Bash Usage
```bash
source cmon_lib/cmon_logging.sh
init_clog "my_script"
clog_info "message"
clog_error "error message"
clog_warn "warning message"
clog_success "success message"
Log Levels
| Level | Python | Bash | Description |
|---|---|---|---|
| TRACE | clog('trace', ...) |
N/A | Detailed diagnostic |
| DEBUG | clog('debug', ...) |
N/A | Debug information |
| INFO | clog('info', ...) |
clog_info |
General information |
| SUCCESS | clog('success', ...) |
clog_success |
Success messages |
| WARNING | clog('warning', ...) |
clog_warn |
Warnings |
| ERROR | clog('error', ...) |
clog_error |
Errors |
| CRITICAL | clog('critical', ...) |
N/A | Critical errors |
File Logging
Logs are automatically written to _clog/ directory next to the module:
- Archive log:
{timestamp}_{module}.log- all log messages - Summary log:
{module}_csummary.log- INFO, SUCCESS, ERROR only
If WARN or ERROR is logged, the archive is renamed to *_WARN.log or *_ERR.log.
Log Cleanup
Archive logs older than 30 days are automatically deleted on initialization.
Protected files (never deleted automatically):
*_WARN.log- renamed warning archives*_ERR.log- renamed error archives*_csummary.log- summary logs
Features
- Auto-init on first
clog()call (Python) - Executing user tracking (via
USERorUSERNAMEenv vars) - Single-line exception formatting
- Age-based cleanup (30 days for archives)
- No external dependencies (uses loguru for Python)
Module Structure
cmon2lib/utils/
├── lib/
│ ├── cmon_collect_metadata.py # User, module, caller info collection
│ └── cmon_logging_formatters.py # Log format functions (console, file)
├── cmon_logging_clog.py # clog() - file + console logging
└── cmon_logging_cprint.py # cprint() - Rich console output
Modules
ccaldav
Calendar integration for planning digests.
from cmon2lib.ccaldav import digest_schedule
schedule = digest_schedule(url, username, password)
ctaiga
Taiga project management integration.
from cmon2lib.ctaiga import get_authenticated_user, get_authenticated_user_projects
user = get_authenticated_user(username, password)
projects = get_authenticated_user_projects(username, password)
cowui
Open WebUI utilities for function injection.
from cmon2lib.cowui import inject_string_into_system_message
inject_string_into_system_message(body, "injected text", prefix="\n")
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 cmon2lib-0.1.9.tar.gz.
File metadata
- Download URL: cmon2lib-0.1.9.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
953f2b848819274a5fb8808a1a3cd08188b098710ca1d8dd2ceb6a0a97ce1213
|
|
| MD5 |
093d2854cb742c98c0d0b4f4d989b143
|
|
| BLAKE2b-256 |
8059085bef4835eb59373b9b5f4290f95df5c3478cdcac03be15d30c96b37e55
|
File details
Details for the file cmon2lib-0.1.9-py3-none-any.whl.
File metadata
- Download URL: cmon2lib-0.1.9-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95409e6eca755700fb3a8e1149d7032b13952afd830bc0af88e9fd8ed1f46e26
|
|
| MD5 |
9df8543d0affbcc2c98798632f2d6bbc
|
|
| BLAKE2b-256 |
b8dac34e4ba1cb310a59545d2ca4e74e1939f318ff80abd32aec12a954002fa6
|