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

Uploaded Python 3

File details

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

File metadata

  • Download URL: cmon2lib-0.1.7.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.7.tar.gz
Algorithm Hash digest
SHA256 9ef54114f7d5b7bb2a3b929c002f4e7f1a86e32d6fb5490b401372a7bf39572d
MD5 2ceee58b774a99ad0c068689a15cae6f
BLAKE2b-256 f127d414c8be595a343edcdcc9e7e81a1a5903ad21e473ba8913a3a22f7c5f86

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cmon2lib-0.1.7-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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 15cae801b6b36b185efec97932c3e5e2073820bb9e5b4cfd0225b17f7722cdda
MD5 0becd4cab4da61f8fb98946364251bba
BLAKE2b-256 5ad615e71227cdf7d03110885e6d5704fb0c4c4e421111b0b620a4c0b7cd3c0a

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