From 98fa49ea378af0d5485a313386dcaefa4bb17d9d Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 14 May 2015 20:57:01 +1000 Subject: [PATCH] Changed module and codec names --- PIL/features.py | 42 +++++++++++++++++++----------------------- selftest.py | 20 ++++++++++++++++---- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/PIL/features.py b/PIL/features.py index b9ff99ee9..fd87f094f 100644 --- a/PIL/features.py +++ b/PIL/features.py @@ -1,16 +1,19 @@ from PIL import Image modules = { - "PIL CORE": "PIL._imaging", - "TKINTER": "PIL._imagingtk", - "FREETYPE2": "PIL._imagingft", - "LITTLECMS2": "PIL._imagingcms", - "WEBP": "PIL._webp", - "Transparent WEBP": ("WEBP", "WebPDecoderBuggyAlpha") + "pil": "PIL._imaging", + "tkinter": "PIL._imagingtk", + "freetype2": "PIL._imagingft", + "littlecms2": "PIL._imagingcms", + "webp": "PIL._webp", + "transp_webp": ("WEBP", "WebPDecoderBuggyAlpha") } def check_module(feature): + if feature not in modules: + raise ValueError("Unknown module %s" % feature) + module = modules[feature] method_to_call = None @@ -34,38 +37,31 @@ def check_module(feature): def get_supported_modules(): supported_modules = [] - for feature in get_all_modules(): + for feature in modules: if check_module(feature): supported_modules.append(feature) return supported_modules - -def get_all_modules(): - # While the dictionary keys could be used here, - # a static list is used to maintain order - return ["PIL CORE", "TKINTER", "FREETYPE2", - "LITTLECMS2", "WEBP", "Transparent WEBP"] - codecs = { - "JPEG": "jpeg", - "JPEG 2000": "jpeg2k", - "ZLIB (PNG/ZIP)": "zip", - "LIBTIFF": "libtiff" + "jpg": "jpeg", + "jpg_2000": "jpeg2k", + "zlib": "zip", + "libtiff": "libtiff" } def check_codec(feature): + if feature not in codecs: + raise ValueError("Unknown codec %s" % feature) + codec = codecs[feature] + return codec + "_encoder" in dir(Image.core) def get_supported_codecs(): supported_codecs = [] - for feature in get_all_codecs(): + for feature in codecs: if check_codec(feature): supported_codecs.append(feature) return supported_codecs - - -def get_all_codecs(): - return ["JPEG", "JPEG 2000", "ZLIB (PNG/ZIP)", "LIBTIFF"] diff --git a/selftest.py b/selftest.py index 1872d3e97..779e83c90 100644 --- a/selftest.py +++ b/selftest.py @@ -174,8 +174,15 @@ if __name__ == "__main__": print("Python modules loaded from", os.path.dirname(Image.__file__)) print("Binary modules loaded from", os.path.dirname(Image.core.__file__)) print("-"*68) - for feature in features.get_all_modules(): - supported = features.check_module(feature) + for name, feature in [ + ("pil", "PIL CORE"), + ("tkinter", "TKINTER"), + ("freetype2", "FREETYPE2"), + ("littlecms2", "LITTLECMS2"), + ("webp", "WEBP"), + ("transp_webp", "Transparent WEBP") + ]: + supported = features.check_module(name) if supported is None: # A method was being tested, but the module required @@ -185,8 +192,13 @@ if __name__ == "__main__": print("---", feature, "support ok") else: print("***", feature, "support not installed") - for feature in features.get_all_codecs(): - if features.check_codec(feature): + for name, feature in [ + ("jpg", "JPEG"), + ("jpg_2000", "JPEG 2000"), + ("zlib", "ZLIB (PNG/ZIP)"), + ("libtiff", "LIBTIFF") + ]: + if features.check_codec(name): print("---", feature, "support ok") else: print("***", feature, "support not installed")