Skip to main content
OpsGuild Logo
                🚀 Multi-Language Utilities Pack 🚀
                🐍 Python • 🔷 Node.js • 🦀 Rust • 🐹 Go
                ☕ Java • 🔵 C# • 🐘 PHP • 🦎 Python
                📦 Configuration • 🔍 Monitoring • 🛠️ Operations

OpsGuild Utilities Pack

License: GPL v3 Python 3.9+ Poetry

A comprehensive multi-language utilities pack providing essential tools and helper functions for modern software development. Currently featuring Python utilities with plans to expand to multiple programming languages.

🚀 What is OpsGuild Pack?

OpsGuild Pack is a collection of utility libraries designed to solve common development challenges across different programming languages and platforms. Think of it as your Swiss Army knife for software development operations.

Current Components

📦 Installation

Prerequisites

  • Python 3.9 or higher
  • Poetry (recommended) or pip
poetry add oguild

Using pip

pip install oguild

🎯 Quick Start

Python Logger

# You can import from either singular or plural forms:
from oguild.logs import logger  # or from oguild.log import logger

# Simple logging
logger.info("Hello, World!")
logger.debug("Debug information")

# The logger automatically detects the module name
# Output: INFO: (your_module_name) == Hello, World! [timestamp]

📖 Full Python Logger Documentation

Python Response Handling

# You can import from either singular or plural forms:
from oguild.response import Ok, Error, police  # or from oguild.responses import Ok, Error, police

# Success response
def get_user(user_id: int):
    user = {"id": user_id, "name": "John Doe"}
    return Ok("User retrieved successfully", user, status_code=200)

# Error handling with decorator
@police(default_msg="Failed to process request", default_code=500)
def process_data(data):
    # Your function logic here
    return processed_data

📖 Full Python Response Documentation

Python Utils

from oguild.utils import encode_json_fields, sanitize_fields

# JSON field processing
data = [{"id": 1, "metadata": {"key": "value"}}]
encoded = await encode_json_fields(data, ["metadata"])

# Data sanitization
clean_data = await sanitize_fields({
    "id": 1, "name": "John", "email": "", "age": None
})
# Result: {"id": 1, "name": "John"} - empty values removed

📖 Full Python Utils Documentation

🔄 Flexible Import Options

OGuild provides flexible import options to accommodate different coding preferences:

Logger Imports

# Both of these work identically:
from oguild.logs import Logger, logger      # Original plural form
from oguild.log import Logger, logger       # New singular form

Response Imports

# Both of these work identically:
from oguild.response import Ok, Error, police        # Original singular form
from oguild.responses import Ok, Error, police       # New plural form

This flexibility ensures that users can import using their preferred naming convention while maintaining full backward compatibility.

🤝 Contributing

We welcome contributions across all planned languages! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

# Clone and setup
git clone https://github.com/OpsGuild/guildpack.git
cd guildpack

# Install development dependencies
poetry install --with dev

# Run tests
poetry run pytest

Contributing to New Languages

When contributing utilities for new languages:

  1. Create a new directory for the language (e.g., javascript/, go/, rust/)
  2. Follow the established project structure
  3. Include comprehensive tests
  4. Create a dedicated README.md for the package
  5. Update this main README with links to the new package
  6. Ensure consistent API design across languages

📄 License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

🆘 Support

🔄 Changelog

Version 0.2.1

  • 🔄 Flexible Import Options - Added support for both singular and plural import forms
    • oguild.logs and oguild.log - both work identically for logger imports
    • oguild.response and oguild.responses - both work identically for response imports
    • Full backward compatibility maintained
    • Enhanced developer experience with preferred naming conventions

Version 0.2.0

  • 🛡️ Response Module - Universal response handling and error management
    • Framework-agnostic error handling (FastAPI, Django, Flask, Starlette)
    • Smart error classification with specialized handlers
    • Async/sync support with automatic context detection
    • Comprehensive logging and stack trace capture
    • @police decorator for automatic error handling
  • 🔧 Utils Module - Data processing and sanitization utilities
    • JSON field encoding/decoding for database operations
    • Advanced data sanitization with customizable rules
    • Pydantic model integration
    • Type-safe async operations
    • Flexible field processors and mapping

Version 0.1.4

  • Initial release with Python logging utilities
  • Smart logger with automatic formatting
  • Logstash integration support
  • Multi-output logging (console, file, logstash)
  • Automatic module detection
  • Foundation for multi-language utilities pack

🌟 Why OpsGuild Pack?

OpsGuild Pack is designed to solve common development challenges across multiple programming languages:

  • Multi-Language Support - Consistent utilities across different tech stacks
  • Production Ready - Built with enterprise needs in mind
  • Developer Friendly - Automatic configuration and intelligent defaults
  • Extensible - Easy to customize and extend for specific use cases
  • Performance - Efficient utilities with minimal overhead
  • Standards Compliant - Follows best practices for each language
  • Unified Experience - Consistent API design across all supported languages

🎯 Use Cases

  • Microservices Architecture - Consistent logging, error handling, and data processing across services
  • Web API Development - Universal response handling and error management for any Python framework
  • Data Processing Pipelines - JSON encoding/decoding and data sanitization for ETL operations
  • Polyglot Teams - Unified utilities regardless of language choice
  • DevOps & SRE - Standardized operational tools across infrastructure
  • Enterprise Development - Consistent patterns for large-scale applications with robust error handling
  • Database Operations - JSON field processing and data normalization for database interactions
  • Open Source Projects - Reusable utilities for community projects

Made with ❤️ by the OpsGuild team

Metadata

Release files for oguild 0.1.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oguild 0.1.14
File Size Uploaded
oguild-0.1.14.tar.gz 50.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oguild 0.1.14
File Interpreter ABI Platform
oguild-0.1.14-py3-none-any.whl Python 3 none any Details

Total release size: 108.5 kB

Release files / oguild-0.1.14.tar.gz

Download URL oguild-0.1.14.tar.gz
Size 50.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2be32c882bbb6a653617e8d0f35095dbe355d6a9ebb0ca147eddfe3f2b052b04
BLAKE2b-256 checksum
How to use checksums
a98d091a039f95be97bc4eb37f4fd53a2a1b8b0f4fa12f4325e2ee60ccb01413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.11.14 Linux/6.11.0-1018-azure

Release files / oguild-0.1.14-py3-none-any.whl

Download URL oguild-0.1.14-py3-none-any.whl
Size 57.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
215828b6720731c6dca5ed260779f4116a2db01003145f930bad7ddb080f6b61
BLAKE2b-256 checksum
How to use checksums
a4aea2ca761ecb62b139865c6324004124ae8ef791f2889823572ee55545e525
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.11.14 Linux/6.11.0-1018-azure

Release history Release notifications | RSS feed

This release

0.1.14 This release

2 release files

0.1.13

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page