Object-Key Mapper for Redis
Project description
Object-Key Mapper for Redis
If you’ve used redis on python, you’ve had to deal with redis keys. Sometimes, lots of redis keys. With so many keys, it’s easy to make mistakes, especially since keys are just strings. I built ok so that I didn’t have to work with strings for redis keys.
Here’s how you use it:
import ok
import redis
class User(ok.Key):
fields = ['timeline', 'followers', 'following']
# Get user mixxorz' timeline
r = redis.StrictRedis()
r.zrevrange(User('mixxorz').timeline, 0, 50)
# ZREVRANGE User:mixxorz:timeline 0 50
Managing your keys just became a lot less fragile.
Installation
Install it from pypi
$ pip install ok-redis
Usage
Access fields.
class User(ok.Key):
fields = ['timeline', 'followers', 'following']
print(User('mixxorz').timeline)
# User:mixxorz:timeline
Chain keys.
class City(ok.Key):
fields = ['tweets_hll']
class Country(ok.Key):
subkeys = [City]
print(Country('PH').City('Manila').tweets_hll)
# Country:PH:City:Manila:tweets
Subkeys can be an absolute or relative path to a key.
# mod_one.py
class Refer(Key):
fields = ['elements']
# mod_two.py
class Parent(Key):
subkeys = ['..mod_one.Refer']
print(Parent('foo').Refer('bar').elements)
# Parent:foo:Refer:bar:elements
Access the class key.
class User(ok.Key):
pass
print(User('mixxorz').key)
# User:mixxorz
IDs are optional.
class User(ok.Key):
fields = ['rankings']
print(User().rankings)
# User:rankings
You can change the string used for the key.
class Facebook(ok.Key):
fields = ['all_posts']
class_key = 'fb'
print(Facebook().all_posts)
# fb:all_posts
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ok-redis-0.1.0.tar.gz
(3.4 kB
view details)
File details
Details for the file ok-redis-0.1.0.tar.gz
.
File metadata
- Download URL: ok-redis-0.1.0.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d1824380610702ee4e1803d79e76c75e393810e434d133a9881c3d079f42c85 |
|
MD5 | 6018132ea89a989d00d2f9af284dc777 |
|
BLAKE2b-256 | b5f5d0127acc78f0c132da170c1c0cff6c7feae94bbc35cba1712abb3649f828 |