2 import os.path as _os_path
5 """Openers by file extention.
7 Values should be callables such that::
9 for line in opener(filename, mode):
19 def open(filename, openers=None):
20 """Utility method that decompresses files based on their extension.
22 Uses ``OPENERS`` to determine the appropriate opener for the
23 file's extension. If the extension is not listed in ``OPENERS``,
24 fall back to the ``open`` builtin.
28 extension = _os_path.splitext(filename)[-1]
29 opener = openers.get(extension, open)
30 return opener(filename, 'r')