summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Hellmann <doug.hellmann@gmail.com>2012-08-30 07:39:26 -0700
committerDoug Hellmann <doug.hellmann@gmail.com>2012-08-30 07:39:26 -0700
commitc21a2ba51f607699215e362191476ce2385003a8 (patch)
treeec77d71901ad2ce65570963ed06974efc2cd6615
parent774ce20ad10b70276b7b3045198ead4a757f8172 (diff)
parent6e8b642aa31b0e3ca0b3e00b6c18773cff9bfa4e (diff)
downloadcliff-c21a2ba51f607699215e362191476ce2385003a8.tar.gz
Merge pull request #18 from markmcclain/py26
Add python2.6 support
-rw-r--r--cliff/app.py18
-rw-r--r--cliff/lister.py11
-rw-r--r--tox.ini2
3 files changed, 27 insertions, 4 deletions
diff --git a/cliff/app.py b/cliff/app.py
index f83b97a..4b6fb9d 100644
--- a/cliff/app.py
+++ b/cliff/app.py
@@ -12,7 +12,23 @@ from .interactive import InteractiveApp
# Make sure the cliff library has a logging handler
# in case the app developer doesn't set up logging.
-logging.getLogger('cliff').addHandler(logging.NullHandler())
+# For py26 compat, create a NullHandler
+
+if hasattr(logging, 'NullHandler'):
+ NullHandler = logging.NullHandler
+else:
+ class NullHandler(logging.Handler):
+ def handle(self, record):
+ pass
+
+ def emit(self, record):
+ pass
+
+ def createLock(self):
+ self.lock = None
+
+logging.getLogger('cliff').addHandler(NullHandler())
+
LOG = logging.getLogger(__name__)
diff --git a/cliff/lister.py b/cliff/lister.py
index 406be97..d4b4f2e 100644
--- a/cliff/lister.py
+++ b/cliff/lister.py
@@ -1,7 +1,14 @@
"""Application base class for providing a list of data as output.
"""
import abc
-import itertools
+
+try:
+ from itertools import compress
+except ImportError:
+ # for py26 compat
+ def compress(data, selectors):
+ return (d for d, s in izip(data, selectors) if s)
+
import logging
from .display import DisplayCommandBase
@@ -47,7 +54,7 @@ class Lister(DisplayCommandBase):
# of data that the user has expressed interest in
# seeing. We have to convert the compress() output to a
# list so the table formatter can ask for its length.
- data_gen = (list(itertools.compress(row, selector))
+ data_gen = (list(compress(row, selector))
for row in data)
self.formatter.emit_list(columns_to_include,
data_gen,
diff --git a/tox.ini b/tox.ini
index 89ad368..6fa5c48 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py27,py32,pep8
+envlist = py26,py27,py32,pep8
[testenv]
commands = nosetests -d --with-coverage --cover-inclusive --cover-package cliff []