Skip to main content

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 USER or USERNAME env 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cmon2lib-0.2.0.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

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

cmon2lib-0.2.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file cmon2lib-0.2.0.tar.gz.

File metadata

  • Download URL: cmon2lib-0.2.0.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cmon2lib-0.2.0.tar.gz
Algorithm Hash digest
SHA256 17a956be3ccfeda2f6577497d58b2ea6544564b433ed5b9f186129b1c102ecda
MD5 12a82f1797dbd8a5349560733cfa9176
BLAKE2b-256 eecb4f4cad0080df4b2f159e8998cd3f21061dc9e35fa334acf197cc95e461c9

See more details on using hashes here.

File details

Details for the file cmon2lib-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: cmon2lib-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cmon2lib-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0836a0b289b847d46c2c71331af6db6883313d0c164c20589ef975f1e307dff6
MD5 2ae54008e4c3c130f9eab9f2d8342a32
BLAKE2b-256 f80f514c49a790101961ebef74d9fd78eebe98994d5c60e0dede719f8f4d2836

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