Skip to content

Instantly share code, notes, and snippets.

@vncsna
Last active December 6, 2024 12:57
Show Gist options
  • Save vncsna/90f7d33df5df9b7a8b04d4d79deff07f to your computer and use it in GitHub Desktop.
Save vncsna/90f7d33df5df9b7a8b04d4d79deff07f to your computer and use it in GitHub Desktop.
SRC_PATH = "../backend"
ENV_PATH = "../backend/.env.loc"
import redis
import random
import pickle
import pprint
import zlib
import os
import sys
repo_root = os.path.abspath(SRC_PATH)
sys.path.insert(0, f"{repo_root}")
from dotenv import load_dotenv
load_dotenv(ENV_PATH)
import src
import src.main
pp = pprint.PrettyPrinter(indent=2)
r = redis.Redis(host='localhost', port=16379, decode_responses=False)
all_hashes = [
key.decode("utf-8") for key in r.keys('*')
if r.type(key) == b'hash' # and r.hexists(key, b'exc_info')
]
def get_data(hash_id: str = None):
if not all_hashes:
return
data = {"id": hash_id.split(":")[-1]}
raw_data = r.hgetall(hash_id)
for field, value in raw_data.items():
field_name = field.decode('utf-8') if isinstance(field, bytes) else field
try:
if field_name == 'meta':
data[field_name] = pickle.loads(value)
elif field_name == "exc_info":
data[field_name] = zlib.decompress(value)
elif field_name == 'data':
data[field_name] = pickle.loads(zlib.decompress(value))
else:
data[field_name] = value
except Exception as e:
data[field_name] = value
if isinstance(data.get(field_name), bytes):
data[field_name] = data[field_name].decode('utf-8')
return data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment