Skip to main content

Calmlib

Project description

🧘 Calmlib v2.0

A Python library for calm and productive development

Python Version Poetry License

Calmlib is a comprehensive Python utility library designed to make development more productive and less stressful. It provides clean, well-organized modules for common development tasks including LLM interactions, audio processing, logging, user interactions, Telegram bot development, and more.

✨ Features

🤖 LLM Integration (calmlib.llm)

  • Simple, unified interface for multiple LLM providers via LiteLLM
  • Support for both synchronous and asynchronous operations
  • Structured output parsing with Pydantic
  • Built-in validation and error handling

🎵 Audio Processing (calmlib.audio)

  • Audio file manipulation and conversion
  • Whisper integration for speech-to-text
  • Audio utility functions for common operations

📝 Smart Logging (calmlib.logging)

  • Enhanced logging with multiple output formats
  • Structured logging support
  • Easy configuration and setup

💬 User Interactions (calmlib.user_interactions)

  • Interactive CLI prompts and confirmations
  • Multiple input engines (CLI, GUI, etc.)
  • Type-safe user input collection

🤖 Telegram Bot Tools (calmlib.telegram)

  • Telegram bot development utilities
  • Secure bot key management
  • Telethon client integration
  • Service bot templates

🌐 Translation (calmlib.translate)

  • DeepL API integration
  • Simple translation workflows
  • Multi-language support

🛠️ Utilities (calmlib.utils)

  • Path handling and file operations
  • Environment variable discovery
  • Check mode for safe operations
  • DotDict for easy nested data access
  • Enum casting and comparison utilities

🚀 Installation

Using Poetry (Recommended)

# Clone the repository
git clone https://github.com/calmmage/calmlib.git
cd calmlib

# Install with poetry
poetry install

# For development with all extras
poetry install --with extras,test,dev

Using pip

pip install git+https://github.com/calmmage/calmlib.git

📖 Quick Start

LLM Queries

import calmlib

# Simple text query
response = calmlib.query_llm_text("Explain quantum computing in simple terms")
print(response)

# Structured output
from pydantic import BaseModel

class Summary(BaseModel):
    title: str
    key_points: list[str]
    sentiment: str

summary = calmlib.query_llm_structured(
    "Summarize this text: ...", 
    response_model=Summary
)
print(f"Title: {summary.title}")

User Interactions

import calmlib

# Ask for user input
name = calmlib.ask_user("What's your name?")
age = calmlib.ask_user("What's your age?", int)

# Multiple choice
choice = calmlib.ask_user_choice(
    "Choose your preferred language:",
    ["Python", "JavaScript", "Rust", "Go"]
)

# Confirmation
if calmlib.ask_user_confirmation("Delete all files?"):
    print("Confirmed!")

Logging Setup

import calmlib

# Setup enhanced logging
logger = calmlib.setup_logger(
    name="my_app",
    mode=calmlib.LogMode.BOTH,  # Console + file
    format=calmlib.LogFormat.DETAILED
)

logger.info("Application started")
logger.error("Something went wrong", extra={"user_id": 123})

Utilities

import calmlib
from pathlib import Path

# Path handling
safe_path = calmlib.fix_path("~/documents/file.txt")

# Environment discovery
api_key = calmlib.find_env_key(["OPENAI_API_KEY", "OPENAI_TOKEN"])

# Check mode (safe operations)
from calmlib.utils.check_mode import check_mode

@check_mode.enabled
def dangerous_operation():
    # This will be skipped in check mode
    delete_important_files()

📂 Module Overview

Core Modules

Module Description Key Features
llm LLM integration and utilities LiteLLM wrapper, structured outputs, async support
audio Audio processing tools Whisper integration, audio manipulation
logging Enhanced logging capabilities Multiple formats, structured logging
user_interactions CLI and user input tools Interactive prompts, type validation
telegram Telegram bot development Bot management, secure key storage
translate Translation services DeepL integration, multi-language support
utils General utilities Path handling, environment discovery, data structures

🏗️ Architecture

Calmlib v2.0 features a clean, modular architecture:

calmlib/
├── llm/           # LLM integration (LiteLLM, structured outputs)
├── audio/         # Audio processing (Whisper, audio utils)  
├── logging/       # Enhanced logging capabilities
├── telegram/      # Telegram bot development tools
├── translate/     # Translation services (DeepL)
├── user_interactions/  # Interactive CLI tools
└── utils/         # Core utilities and helpers

🔧 Configuration

Calmlib uses environment variables for configuration. Create a .env file:

# LLM Configuration
OPENAI_API_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key

# Translation
DEEPL_AUTH_KEY=your_deepl_key

# Telegram
TELEGRAM_BOT_TOKEN=your_bot_token

🧪 Testing

# Run tests
poetry run pytest

# Run tests with coverage
poetry run pytest --cov=calmlib

# Run specific test module
poetry run pytest tests/test_llm.py

🛠️ Development

Setting up development environment

# Clone the repository
git clone https://github.com/calmmage/calmlib.git
cd calmlib

# Install development dependencies
poetry install --with extras,test,dev

# Setup pre-commit hooks
poetry run pre-commit install

# Run code quality checks
poetry run ruff check .
poetry run black .

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and add tests
  4. Run the test suite: poetry run pytest
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built with Poetry for dependency management
  • LLM integration powered by LiteLLM
  • Audio processing using Whisper
  • Telegram integration via Aiogram

🔗 Links


Made with ❤️ for productive and calm development

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

calmlib-2.0.14.tar.gz (322.5 kB view details)

Uploaded Source

Built Distribution

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

calmlib-2.0.14-py3-none-any.whl (166.0 kB view details)

Uploaded Python 3

File details

Details for the file calmlib-2.0.14.tar.gz.

File metadata

  • Download URL: calmlib-2.0.14.tar.gz
  • Upload date:
  • Size: 322.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for calmlib-2.0.14.tar.gz
Algorithm Hash digest
SHA256 e0e125ad14467f857de2546d41cc75fd7f8cb4922208f8725c143124a75c5e70
MD5 70b2309b014ddf7ad65734e7fcd3557e
BLAKE2b-256 adb8533a9b50ea515f2d8313d3a58b33d50ce21ca57efa1556469541b06a8fe7

See more details on using hashes here.

File details

Details for the file calmlib-2.0.14-py3-none-any.whl.

File metadata

  • Download URL: calmlib-2.0.14-py3-none-any.whl
  • Upload date:
  • Size: 166.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for calmlib-2.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 498e3e6505de45b99fda29ca6fd62e325dc0e7925b120f84462746fcf0996129
MD5 4131a94f2929a2a95e33ea8b6d290eb3
BLAKE2b-256 c041040318c6bb509a315e6a2bfd2146e40f872629ccad2a90a268a7b58608cf

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