diff options
author | Doug Hellmann <doug.hellmann@gmail.com> | 2012-08-30 07:39:26 -0700 |
---|---|---|
committer | Doug Hellmann <doug.hellmann@gmail.com> | 2012-08-30 07:39:26 -0700 |
commit | c21a2ba51f607699215e362191476ce2385003a8 (patch) | |
tree | ec77d71901ad2ce65570963ed06974efc2cd6615 | |
parent | 774ce20ad10b70276b7b3045198ead4a757f8172 (diff) | |
parent | 6e8b642aa31b0e3ca0b3e00b6c18773cff9bfa4e (diff) | |
download | cliff-c21a2ba51f607699215e362191476ce2385003a8.tar.gz |
Merge pull request #18 from markmcclain/py26
Add python2.6 support
-rw-r--r-- | cliff/app.py | 18 | ||||
-rw-r--r-- | cliff/lister.py | 11 | ||||
-rw-r--r-- | tox.ini | 2 |
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, @@ -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 [] |