Skip to main content

High-performance cache client with automatic authentication and multi-tenancy

Project description

YGG Python Client

High-performance cache client with automatic authentication and multi-tenancy support for Python.

Visit ygg.kluglabs.net for more information about the YGG platform.

Installation

pip install ygglib

Import

Import the functions you need:

from ygglib import cache, init, set, get, delete, exists, expire, ttl, pipeline, close

Or import specific functions:

from ygglib import cache  # For cache operations
from ygglib import init   # For initialization

Quick Start

import os
from ygglib import cache, init, set, get, delete, exists, expire, ttl, pipeline, close

# Initialize with your API key
init(os.environ.get("YGG_API_KEY"))

# Basic operations
set("greeting", "Hello, World!")
set("user:123:name", "John Doe")
set("session:abc", "active", 3600)  # 1 hour expiration

# Retrieve values
greeting = get("greeting")
user_name = get("user:123:name")
session = get("session:abc")

print(f"Greeting: {greeting}")
print(f"User name: {user_name}")
print(f"Session: {session}")

# Check if keys exist
exists_greeting = exists("greeting")
print(f"Greeting exists: {exists_greeting}")

# Get TTL
ttl_value = ttl("session:abc")
print(f"Session TTL: {ttl_value} seconds")

# Cleanup
delete("greeting")
delete("user:123:name")
delete("session:abc")

# Close connection
close()

Advanced Operations

Custom Cache Commands

from ygglib import cache

# Hash operations
cache("HMSET", "user:123:profile", "age", "30", "city", "New York")
profile = cache("HMGET", "user:123:profile", "age", "city")
print(f"User profile: {profile}")

# List operations
cache("LPUSH", "notifications:123", "Welcome message")
cache("LPUSH", "notifications:123", "System update")
notifications = cache("LRANGE", "notifications:123", 0, -1)
print(f"Notifications: {notifications}")

Pipeline Operations

from ygglib import pipeline

# Batch operations for better performance
with pipeline() as pipe:
    pipe.set("batch:1", "value1")
    pipe.set("batch:2", "value2")
    pipe.set("batch:3", "value3")
    results = pipe.execute()

print(f"Pipeline results: {results}")

Configuration

Configure the client using environment variables:

  • YGG_API_KEY: Your authentication API key (required)
  • YGG_TIMEOUT: Request timeout in seconds (default: 30)
  • YGG_MAX_RETRIES: Maximum retry attempts (default: 3)
  • YGG_RETRY_DELAY: Delay between retries in seconds (default: 1.0)
  • YGG_POOL_SIZE: Connection pool size (default: 10)

Note: The API base URL is always https://ygg-api.kluglabs.net and cannot be changed.

API Reference

Operation Method Description
set set(key, value, ex?) Set key-value pair with optional expiration
get get(key) Get value by key
delete delete(key) Delete a key
exists exists(key) Check if key exists
expire expire(key, seconds) Set expiration for key
ttl ttl(key) Get time to live for key
cache cache(command, *args) Execute any cache command
pipeline pipeline() Create pipeline for batch operations

Import with: from ygglib import cache, set, get, delete, exists, expire, ttl, pipeline, init

Requirements

  • Python 3.7+
  • requests >= 2.25.0

Development

# Clone the repository
git clone https://github.com/Klug-Labs/ygg.git
cd ygg/clients/python

# Install in development mode
pip install -e .

# Run tests
python -m pytest tests/

License

MIT License - see LICENSE file for details.

Support

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

ygglib-0.1.2.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

ygglib-0.1.2-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file ygglib-0.1.2.tar.gz.

File metadata

  • Download URL: ygglib-0.1.2.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for ygglib-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f1ba6bee38aefd66c79e70ab7f49dd0436dd5ae5dda4499ffc34532a8ef72818
MD5 85fba6ddf47f53d0a63ce8171356531e
BLAKE2b-256 7b7c87345dca9340762409900eeb3495a9ed61785d329f0fb667983364930ee7

See more details on using hashes here.

File details

Details for the file ygglib-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ygglib-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for ygglib-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 16b3099a5fe5381a24a1c00bb94a4d1e42b9c484f090a0d4de8ae575f69adc99
MD5 2cd9dc1055620c64d6853d514031c96c
BLAKE2b-256 07723fb2f3b025b6b793618c43b2e7bd848e64d34829bb17a97708f8c8adf1dd

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