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 ygg

Quick Start

import os
import ygg

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

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

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

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

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

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

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

# Close connection
ygg.close()

Advanced Operations

Custom Cache Commands

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

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

Pipeline Operations

# Batch operations for better performance
with ygg.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 ygg.set(key, value, ex?) Set key-value pair with optional expiration
get ygg.get(key) Get value by key
delete ygg.delete(key) Delete a key
exists ygg.exists(key) Check if key exists
expire ygg.expire(key, seconds) Set expiration for key
ttl ygg.ttl(key) Get time to live for key
cache ygg.cache(command, *args) Execute any cache command
pipeline ygg.pipeline() Create pipeline for batch operations

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.1.tar.gz (8.4 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.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ygglib-0.1.1.tar.gz
  • Upload date:
  • Size: 8.4 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.1.tar.gz
Algorithm Hash digest
SHA256 8cb269a95875019a44174f838f833669d9b530c51346679d811cfe8b03074d3b
MD5 bdefb46166a03691f33b6b36d349acce
BLAKE2b-256 9db312f9bfbc02b723a1a789e64cada962c109960bf122f54c14eb9d9d3a7dc7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ygglib-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.1 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8ade80e35ef30eb2eb433d0656432d32fa954c79ae54bd4d18478353e5677b61
MD5 387c5957a8f36b8739db73a0153cd545
BLAKE2b-256 85be48f09e24bf5fc80d4c100e7b9bf46917dbf6d5bfaae205da6d6362eed58f

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