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.4.tar.gz (8.8 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.4-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ygglib-0.1.4.tar.gz
  • Upload date:
  • Size: 8.8 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.4.tar.gz
Algorithm Hash digest
SHA256 3b0b76896e9979f917951abc6282f2760249e1538ab7c7d0feb532531a1ea107
MD5 2da53063a43a9ba1c1129d3f77b9f29a
BLAKE2b-256 9e90fe37a313a363d180f8892f7c9648ac5736b23fc031422f6ed757af2cfae1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ygglib-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.4 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e7d790aa9b12186603e35bbb4ec17f55d62c8431daf9ee10a969ea2d33ed7ab4
MD5 e43e25a3de9726f75e22d10bcb0f566e
BLAKE2b-256 50ed428626f3c4f59d668858d100648e81132cd5f9094227bc28641f1c365148

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