You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

27 line
731 B

  1. # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
  2. # MIT License. See license.txt
  3. from __future__ import unicode_literals
  4. import memcache, webnotes
  5. class MClient(memcache.Client):
  6. """memcache client that will automatically prefix conf.db_name"""
  7. def n(self, key):
  8. return (webnotes.conf.db_name + ":" + key.replace(" ", "_")).encode('utf-8')
  9. def set_value(self, key, val):
  10. self.set(self.n(key), val)
  11. def get_value(self, key, builder=None):
  12. val = self.get(self.n(key))
  13. if not val and builder:
  14. val = builder()
  15. self.set_value(key, val)
  16. return val
  17. def delete_value(self, keys):
  18. if not isinstance(keys, (list, tuple)):
  19. keys = (keys,)
  20. for key in keys:
  21. self.delete(self.n(key))