Installation
Prerequisites
Before installing the Python Absurd client, you’ll need:
Python 3.8 or higher
PostgreSQL with the Absurd extension installed
Psycopg3 library for PostgreSQL connectivity
Installation via pip
The easiest way to install the Absurd client is using pip:
pip install absurd
From Source
Alternatively, you can install directly from the source code:
git clone https://github.com/rodmena-limited/python-absurd-client.git
cd python-absurd-client
pip install .
Development Installation
For development purposes, you can install in editable mode with development dependencies:
pip install -e ".[dev]"
Requirements
The Absurd client requires the following Python packages:
psycopg>=3.0- PostgreSQL database adaptertyping-extensions(for older Python versions)
Optionally, for development and testing:
pytest- Testing frameworksphinx- Documentation generationsphinx-rtd-theme- Read the Docs theme for documentation
PostgreSQL Setup
To use the Absurd client effectively, you’ll need to set up the Absurd extension in your PostgreSQL database. See the Absurd documentation for setup instructions.
The Absurd extension will:
Create the
absurdschema in your PostgreSQL databaseSet up necessary extensions like
uuid-osspCreate the required stored procedures and functions
Create the queue management infrastructure
Set up the table structures for tasks, runs, checkpoints, events, and wait registrations
Connection Requirements
The client requires PostgreSQL connection parameters, which can be provided as:
Connection string
Environment variables
Connection pool configuration
For production applications, it’s recommended to use connection pooling for better performance and resource management:
from psycopg_pool import ConnectionPool
from absurd_client import AbsurdClient
# Create a connection pool with appropriate settings
pool = ConnectionPool(
"postgresql://user:password@localhost:5432/database",
min_size=2,
max_size=10,
timeout=30 # Connection timeout in seconds
)
client = AbsurdClient(queue_name="my_queue")
Environment Variables
The client supports the following environment variables for configuration:
ABSURD_DEFAULT_QUEUE: Default queue name when not specified (default:absurd_default)ABSURD_WORKER_ID: Default worker ID (default:absurd_worker_1)
Example:
export ABSURD_DEFAULT_QUEUE="production_tasks"
export ABSURD_WORKER_ID="worker-001"
Virtual Environment Setup
For best practices, set up a virtual environment before installing:
# Create a virtual environment
python -m venv absurd_env
# Activate the virtual environment
source absurd_env/bin/activate # On Linux/Mac
# or
absurd_env\Scripts\activate # On Windows
# Install the package
pip install absurd
# For development
pip install -e ".[dev]"
Upgrade Existing Installation
To upgrade an existing installation:
pip install --upgrade absurd
Verification
After installation, verify that the package is correctly installed:
python -c "from absurd_client import AbsurdClient; print('Installation successful!')"
This should run without error, confirming that the Absurd client is properly installed and accessible.