🚀 Multi-Language Utilities Pack 🚀
🐍 Python • 🔷 Node.js • 🦀 Rust • 🐹 Go
☕ Java • 🔵 C# • 🐘 PHP • 🦎 Python
📦 Configuration • 🔍 Monitoring • 🛠️ Operations
OpsGuild Utilities Pack
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
- 🐍 Python Logger Package - Enhanced logging, helpers, and utilities
- 🛡️ Python Response Package - Universal response handling and error management
- 🔧 Python Utils Package - Data processing, encoding, and sanitization utilities
- 🔮 More Coming Soon - Go, Rust, and other language support planned
📦 Installation
Prerequisites
- Python 3.9 or higher
- Poetry (recommended) or pip
Using Poetry (Recommended)
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:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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:
- Create a new directory for the language (e.g.,
javascript/,go/,rust/) - Follow the established project structure
- Include comprehensive tests
- Create a dedicated README.md for the package
- Update this main README with links to the new package
- 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
- Issues: GitHub Issues
- Documentation: GitHub README
- Team: OpsGuild Hordunlarmy@gmail.com
🔄 Changelog
Version 0.2.1
- 🔄 Flexible Import Options - Added support for both singular and plural import forms
oguild.logsandoguild.log- both work identically for logger importsoguild.responseandoguild.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
@policedecorator 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)
| File | Size | Uploaded | |
|---|---|---|---|
| oguild-0.1.14.tar.gz | 50.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|