diff options
-rw-r--r-- | src/fabio/compression/compression.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/fabio/compression/compression.py b/src/fabio/compression/compression.py index 8fa6689..80a8a39 100644 --- a/src/fabio/compression/compression.py +++ b/src/fabio/compression/compression.py @@ -107,8 +107,9 @@ def endianness(): class ExternalCompressors(object): """Class to handle lazy discovery of external compression programs""" - COMMANDS = OrderedDict(((".bz2", ("bzip2" "-dcf")), - (".gz", ("gzip", "-dcf")))) + COMMANDS = ((".bz2", ["bzip2" "-dcf"]), + (".gz", ["gzip", "-dcf"]), + ) def __init__(self): """Empty constructor""" @@ -117,8 +118,9 @@ class ExternalCompressors(object): def __getitem__(self, key): """Implement the dict-like behavior""" if key not in self.compressors: - commandline = self.COMMANDS.get(key) - if commandline: + for candidate, commandline in self.COMMANDS: + if key != candidate: + continue testline = [commandline[0], "-h"] try: lines = subprocess.check_output(testline, |