Skip to main content

AutoBridge Systems Utility Library

Project description

Utils Package

This package provides utility functions and classes for common operations in the application, including logging and Azure Service Bus integration.

Installation

The package is managed using Poetry. To install dependencies:

poetry install

Features

Logger

A simple logging utility that provides a standardized way to set up logging across the application.

Usage

from abs_utils.logger import setup_logger

# Create a logger instance
logger = setup_logger("my_module")

# Use the logger
logger.info("This is an info message")
logger.error("This is an error message")

Azure Service Bus Integration

Provides functionality to interact with Azure Service Bus for message queuing and event handling.

AzureServiceBus Class

A wrapper class for Azure Service Bus operations.

from abs_utils.azure_service_bus import AzureServiceBus

# Initialize the service bus client
service_bus = AzureServiceBus(
    connection_string="your_connection_string",
    queue_name="your_queue_name"
)

# Send a message
await service_bus.send({"key": "value"})

Event Decorator

A decorator that automatically sends events to Azure Service Bus after function execution. This is particularly useful for tracking entity operations in your application.

from fastapi import APIRouter, Depends, Request
from dependency_injector.wiring import inject, Provide
from abs_utils.azure_service_bus import azure_event_decorator, AzureServiceBus

router = APIRouter()

@router.post("/{entity_name}/records")
@inject
@azure_event_decorator(event_type="record_created")
async def create_record(
    entity_name: str,
    data: dict,
    request: Request,
    azure_service_bus: AzureServiceBus = Depends(Provide[Container.azure_service_bus]),
    service: YourService = Depends(Provide[Container.yourService])
):
    # Your function logic here
    return await service.create(data, entity_name)

The decorator automatically creates and sends an event payload with the following structure:

{
    "event_id": "uuid",
    "event_type": "record_created",
    "entity_name": "your_entity_name",
    "entity_id": "record_id",
    "payload": {
        // Your data payload
    },
    "user": {
        "id": "user_id",
        "uuid": "user_uuid",
        "email": "user_email",
        "name": "user_name"
    }
}

Key features of the decorator:

  1. Automatically captures the entity name from the route parameters
  2. Extracts user information from the request state
  3. Generates a unique event ID for each event
  4. Handles errors gracefully with logging
  5. Works seamlessly with FastAPI dependency injection

Dependencies

  • Python 3.x
  • azure-servicebus
  • fastapi
  • logging
  • dependency-injector

Contributing

When adding new utilities to this package:

  1. Place new modules in the appropriate subdirectory under abs_utils/
  2. Add proper documentation and type hints
  3. Update this README with usage examples
  4. Add tests for new functionality

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

abs_utils-0.1.12.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

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

abs_utils-0.1.12-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file abs_utils-0.1.12.tar.gz.

File metadata

  • Download URL: abs_utils-0.1.12.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Darwin/23.6.0

File hashes

Hashes for abs_utils-0.1.12.tar.gz
Algorithm Hash digest
SHA256 2b7e64e4366a76824c5e78294e6cdefca49effd26aac138e9c102127006e6c64
MD5 5c6aa14bbf056b19032951ed06208d3e
BLAKE2b-256 0411cdc1b23a5321d0dde17b05f10d26f1b2bc31d4ad881c6e3f32f3ce7a0849

See more details on using hashes here.

File details

Details for the file abs_utils-0.1.12-py3-none-any.whl.

File metadata

  • Download URL: abs_utils-0.1.12-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Darwin/23.6.0

File hashes

Hashes for abs_utils-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 307c37bba64e94afee11288797ac2d7911116159b4f5bf05ebe75dd0b7b91329
MD5 9e0e7452c6fc0d7bf581c105eef40c7e
BLAKE2b-256 1107292b770e15b639c56485a45c53ea11594fc3b8ef1365718aa802c5f26995

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