{"library":"pottery","title":"Pottery","description":"Pottery is a Python library that provides Pythonic interfaces to Redis, enabling developers to use Redis data structures and patterns like distributed locks, caches, and queues with familiar Python `dict`, `list`, and `set` semantics. Currently at version 3.0.1, it maintains an active release cadence with frequent updates and bug fixes, supporting modern Python versions.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pottery"],"cli":null},"imports":["from pottery import RedisDict","from pottery import RedisList","from pottery import RedisDeque","from pottery import RedisSet","from pottery import RedisCounter","from pottery import RedisSimpleQueue","from pottery import Redlock","from pottery import AIORedlock","from pottery import NextID","from pottery import AIONextID","from pottery import redis_cache","from pottery import BloomFilter"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom redis import Redis\nfrom pottery import RedisDict\n\n# Ensure Redis is running, e.g., via Docker: docker run -p 6379:6379 redis\n# For demonstration, we connect to a local Redis instance.\n# In production, use environment variables for Redis URL.\nredis_url = os.environ.get('REDIS_URL', 'redis://localhost:6379/1')\nredis = Redis.from_url(redis_url)\n\n# Create a Redis-backed dictionary\ntel = RedisDict({'jack': 4098, 'sape': 4139}, redis=redis, key='telephone_book')\n\n# Use it like a regular Python dictionary\ntel['guido'] = 4127\nprint(f\"Current telephone book: {tel}\")\nprint(f\"Jack's number: {tel['jack']}\")\n\ndel tel['sape']\nprint(f\"After deleting sape: {tel}\")\n\n# Check if a key exists\nprint(f\"'guido' in tel: {'guido' in tel}\")\n\n# Clean up (optional for quickstart)\nredis.delete('telephone_book')","lang":"python","description":"This quickstart demonstrates how to connect to Redis and use `Pottery`'s `RedisDict` which behaves like a standard Python dictionary but is backed by Redis. It covers initialization, adding, accessing, and deleting elements.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"3.0.1","pypi_latest":"3.0.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.1,"avg_import_s":0.47,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.36,"mem_mb":11.6,"disk_size":"23.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.26,"mem_mb":11.6,"disk_size":"24M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.48,"mem_mb":13.9,"disk_size":"26.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.42,"mem_mb":13.9,"disk_size":"27M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.64,"mem_mb":13.8,"disk_size":"17.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.65,"mem_mb":13.8,"disk_size":"18M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.64,"mem_mb":13.3,"disk_size":"17.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.61,"mem_mb":13.3,"disk_size":"18M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.32,"mem_mb":10.9,"disk_size":"21.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pottery","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0.29,"mem_mb":10.9,"disk_size":"22M"}]}}