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.1.9.tar.gz (14.7 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.1.9-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

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

Hashes for cmon2lib-0.1.9.tar.gz
Algorithm Hash digest
SHA256 953f2b848819274a5fb8808a1a3cd08188b098710ca1d8dd2ceb6a0a97ce1213
MD5 093d2854cb742c98c0d0b4f4d989b143
BLAKE2b-256 8059085bef4835eb59373b9b5f4290f95df5c3478cdcac03be15d30c96b37e55

See more details on using hashes here.

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

Hashes for cmon2lib-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 95409e6eca755700fb3a8e1149d7032b13952afd830bc0af88e9fd8ed1f46e26
MD5 9df8543d0affbcc2c98798632f2d6bbc
BLAKE2b-256 b8dac34e4ba1cb310a59545d2ca4e74e1939f318ff80abd32aec12a954002fa6

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