def shared_dict(name=None, nodes=['127.0.0.1:11211'], memcached_debug=0): '''Shared memcached-based dictionary. ''' if name is None: name = app_shared_key() name = str(name) dicts_ck = name + str(object_hash(nodes)) try: return _dicts[dicts_ck] except KeyError: pass client = memcache.Client(nodes, debug=memcached_debug) d = MCDict(client, name) _dicts[dicts_ck] = d return d
from tempfile import gettempdir _dicts = {} def shared_dict(filename=None, homedir=None, name=None, mode=0600, dbenv=None, type=db.DB_HASH, flags=db.DB_CREATE, persistent=False): orig_name = name is_tempdir = False if filename: filename = os.path.abspath(filename) homedir = os.path.dirname(filename) name = os.path.basename(filename) else: if name is None: name = app_shared_key() if homedir is None: is_tempdir = True homedir = os.path.join(gettempdir(), '%s.ipc' % name) filename = os.path.abspath(os.path.join(homedir, name)) try: return _dicts[filename] except KeyError: pass if not persistent and os.path.isdir(homedir): try: shutil.rmtree(homedir, True) os.mkdir(homedir) except: