summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-06-07 21:55:48 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-06-07 21:55:48 -0400
commitd4a934ac72fa1e06db5a108c2dc81044327cb58b (patch)
treea46d699299899c4cc355542ff8bc4ea71c0898fe
parent7a2681dd2ca909091ccb1d446f6844ef9efae851 (diff)
downloaddogpile-cache-d4a934ac72fa1e06db5a108c2dc81044327cb58b.tar.gz
- compat.py needs to be in dogpile.cache - we're a namespace package !
- don't import compat's into util if we're going to have compat, keep it clean - fix imports of new compat module
-rw-r--r--dogpile/cache/api.py2
-rw-r--r--dogpile/cache/backends/file.py9
-rw-r--r--dogpile/cache/backends/memcached.py3
-rw-r--r--dogpile/cache/backends/redis.py2
-rw-r--r--dogpile/cache/compat.py (renamed from dogpile/compat.py)6
-rw-r--r--dogpile/cache/util.py16
-rw-r--r--setup.cfg6
-rw-r--r--tests/cache/__init__.py2
8 files changed, 26 insertions, 20 deletions
diff --git a/dogpile/cache/api.py b/dogpile/cache/api.py
index ea28c42..b8e04c3 100644
--- a/dogpile/cache/api.py
+++ b/dogpile/cache/api.py
@@ -1,5 +1,5 @@
import operator
-from dogpile.compat import py3k
+from .compat import py3k
class NoValue(object):
diff --git a/dogpile/cache/backends/file.py b/dogpile/cache/backends/file.py
index 734276e..37e7301 100644
--- a/dogpile/cache/backends/file.py
+++ b/dogpile/cache/backends/file.py
@@ -8,6 +8,7 @@ Provides backends that deal with local filesystem access.
from dogpile.cache.api import CacheBackend, NO_VALUE
from contextlib import contextmanager
+from dogpile.cache import compat
from dogpile.cache import util
import os
import fcntl
@@ -97,7 +98,7 @@ class DBMBackend(CacheBackend):
util.KeyReentrantMutex.factory)
# TODO: make this configurable
- if util.py3k:
+ if compat.py3k:
import dbm
else:
import anydbm as dbm
@@ -165,12 +166,12 @@ class DBMBackend(CacheBackend):
with self._dbm_file(False) as dbm:
value = dbm.get(key, NO_VALUE)
if value is not NO_VALUE:
- value = util.pickle.loads(value)
+ value = compat.pickle.loads(value)
return value
def set(self, key, value):
with self._dbm_file(True) as dbm:
- dbm[key] = util.pickle.dumps(value)
+ dbm[key] = compat.pickle.dumps(value)
def delete(self, key):
with self._dbm_file(True) as dbm:
@@ -188,7 +189,7 @@ class FileLock(object):
"""
def __init__(self, filename):
- self._filedescriptor = util.threading.local()
+ self._filedescriptor = compat.threading.local()
self.filename = filename
def acquire(self, wait=True):
diff --git a/dogpile/cache/backends/memcached.py b/dogpile/cache/backends/memcached.py
index 51dfdcc..2c9f108 100644
--- a/dogpile/cache/backends/memcached.py
+++ b/dogpile/cache/backends/memcached.py
@@ -7,6 +7,7 @@ Provides backends for talking to `memcached <http://memcached.org>`_.
"""
from dogpile.cache.api import CacheBackend, NO_VALUE
+from dogpile.cache import compat
from dogpile.cache import util
import random
import time
@@ -117,7 +118,7 @@ class GenericMemcachedBackend(CacheBackend):
@util.memoized_property
def _clients(self):
backend = self
- class ClientPool(util.threading.local):
+ class ClientPool(compat.threading.local):
def __init__(self):
self.memcached = backend._create_client()
diff --git a/dogpile/cache/backends/redis.py b/dogpile/cache/backends/redis.py
index fbb60ab..d0aa5e6 100644
--- a/dogpile/cache/backends/redis.py
+++ b/dogpile/cache/backends/redis.py
@@ -8,7 +8,7 @@ Provides backends for talking to `Redis <http://redis.io>`_.
from __future__ import absolute_import
from dogpile.cache.api import CacheBackend, NO_VALUE
-from dogpile.cache.util import pickle
+from dogpile.cache.compat import pickle
import random
import time
diff --git a/dogpile/compat.py b/dogpile/cache/compat.py
index 628f4a1..622c86b 100644
--- a/dogpile/compat.py
+++ b/dogpile/cache/compat.py
@@ -5,6 +5,12 @@ py3k = sys.version_info >= (3, 0)
jython = sys.platform.startswith('java')
+try:
+ import threading
+except ImportError:
+ import dummy_threading as threading
+
+
if py3k: # pragma: no cover
string_types = str,
text_type = str
diff --git a/dogpile/cache/util.py b/dogpile/cache/util.py
index ed2d515..8515825 100644
--- a/dogpile/cache/util.py
+++ b/dogpile/cache/util.py
@@ -3,19 +3,13 @@ import inspect
import sys
import re
import collections
-from dogpile.compat import string_types, text_type, pickle
-
-
-try:
- import threading
-except ImportError:
- import dummy_threading as threading
+from . import compat
def coerce_string_conf(d):
result = {}
for k, v in d.items():
- if not isinstance(v, string_types):
+ if not isinstance(v, compat.string_types):
result[k] = v
continue
@@ -86,7 +80,7 @@ def function_key_generator(namespace, fn):
"function does not accept keyword arguments.")
if has_self:
args = args[1:]
- return namespace + "|" + " ".join(map(text_type, args))
+ return namespace + "|" + " ".join(map(compat.text_type, args))
return generate_key
def sha1_mangle_key(key):
@@ -147,7 +141,7 @@ class KeyReentrantMutex(object):
return fac
def acquire(self, wait=True):
- current_thread = threading.current_thread().ident
+ current_thread = compat.threading.current_thread().ident
keys = self.keys.get(current_thread)
if keys is not None and \
self.key not in keys:
@@ -162,7 +156,7 @@ class KeyReentrantMutex(object):
return False
def release(self):
- current_thread = threading.current_thread().ident
+ current_thread = compat.threading.current_thread().ident
keys = self.keys.get(current_thread)
assert keys is not None, "this thread didn't do the acquire"
assert self.key in keys, "No acquire held for key '%s'" % self.key
diff --git a/setup.cfg b/setup.cfg
index 62befee..1c476ff 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,10 @@
[egg_info]
-tag_build = dev
[upload_docs]
upload-dir = docs/build/output/html
+
+[nosetests]
+cover-package = dogpile.cache
+with-coverage = 1
+cover-erase = 1 \ No newline at end of file
diff --git a/tests/cache/__init__.py b/tests/cache/__init__.py
index 2613f08..7ec9a07 100644
--- a/tests/cache/__init__.py
+++ b/tests/cache/__init__.py
@@ -16,4 +16,4 @@ def assert_raises_message(except_cls, msg, callable_, *args, **kwargs):
except except_cls as e:
assert re.search(msg, str(e)), "%r !~ %s" % (msg, e)
-from dogpile.compat import configparser, io
+from dogpile.cache.compat import configparser, io