Core utilities for UnifyOps Python projects
Project description
UnifyOps Core
Core utilities for UnifyOps Python projects. This package provides shared functionality that can be used across all UnifyOps Python applications.
Features
- Logging: Standardized logging configuration with JSON support and OpenTelemetry integration
- Exceptions: Common exception classes with proper HTTP status code mapping
- OpenTelemetry: Centralized observability setup for tracing and logging
Installation
Basic Installation
pip install unifyops-core
With OpenTelemetry Support
For observability and monitoring with Signoz:
# Basic OpenTelemetry support
pip install unifyops-core[otel]
# Full FastAPI + OpenTelemetry support (recommended for APIs)
pip install unifyops-core[fastapi-otel]
# All optional dependencies
pip install unifyops-core[all]
Using Pipenv
# In your Pipfile
[packages]
unifyops-core = {extras = ["fastapi-otel"], version = "*"}
Then install with:
pipenv install
Usage
OpenTelemetry Setup (New!)
Replace complex OpenTelemetry setup in your service with a single function call:
from unifyops_core.logging import setup_otel_for_service
# Simple setup - replaces 40+ lines of boilerplate
otel_success = setup_otel_for_service(
service_name="my-api",
service_version="1.0.0",
environment="production",
additional_resource_attributes={
"team": "backend",
"domain": "user-management"
}
)
Logging
from unifyops_core.logging import get_logger
# Create a standard logger
logger = get_logger("my_app")
logger.info("This is a log message")
# Create a JSON logger
json_logger = get_logger("my_app.json", json_format=True)
json_logger.info("This is a structured log", extra={"props": {"user_id": "123", "action": "login"}})
# Log with context
from unifyops_core.logging import log_with_context
log_with_context(logger, logger.INFO, "User logged in", user_id="123", action="login")
Exceptions
from unifyops_core.exceptions import NotFoundError, ValidationError
# Raise standard exceptions
raise NotFoundError("User not found")
raise ValidationError("Invalid email format", details={"email": "Invalid format"})
# Custom exception with details
from unifyops_core.exceptions import UnifyOpsException
raise UnifyOpsException(
message="Payment processing failed",
code="PAYMENT_ERROR",
status_code=400,
details={"payment_id": "123", "reason": "Insufficient funds"}
)
Installation Options
| Extra | Description | Use Case |
|---|---|---|
otel |
Basic OpenTelemetry support | Services needing observability |
fastapi-otel |
FastAPI + OpenTelemetry instrumentation | FastAPI applications |
all |
All optional dependencies | Development or full-featured deployments |
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unifyops_core-2.0.0.tar.gz.
File metadata
- Download URL: unifyops_core-2.0.0.tar.gz
- Upload date:
- Size: 20.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b42c147be058253102049309855bca6701902983ee5f7a0e59a8c32c865af9d
|
|
| MD5 |
2e6d52f5ba4e8161cd45af174a732795
|
|
| BLAKE2b-256 |
73e35267292a16158c789d1e2a35b80d97eb402346a152564ec6089b9c2963d8
|
File details
Details for the file unifyops_core-2.0.0-py3-none-any.whl.
File metadata
- Download URL: unifyops_core-2.0.0-py3-none-any.whl
- Upload date:
- Size: 25.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bc5613e21ed0f014484baff2542e0fc93d15ce60a732c5d543a0eb967ec2800
|
|
| MD5 |
b362d4751028ec224a7cd318b2955733
|
|
| BLAKE2b-256 |
b0df898b9ad8a1631c27fbd26090865b4442da5a5fb6a47971e0a2466374f59b
|