From 4ddad649569de4352725b8d1943088ea49b54e8e Mon Sep 17 00:00:00 2001 From: Christoph Reiter Date: Thu, 4 May 2017 16:07:24 +0200 Subject: [PATCH] examples/snippets: fix error in case .pyc files of snippets are present. Fixes #35 The code assumed that module.__file__ points to the source, but it points to the .pyc file in case it exists. Use inspect.getsource() instead. --- examples/cairo_snippets/snippets/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/cairo_snippets/snippets/__init__.py b/examples/cairo_snippets/snippets/__init__.py index 33ea3ad..58ba3d1 100644 --- a/examples/cairo_snippets/snippets/__init__.py +++ b/examples/cairo_snippets/snippets/__init__.py @@ -1,4 +1,5 @@ import os +import inspect import importlib @@ -30,7 +31,9 @@ def get_snippets(): s.name = name mod = importlib.import_module("." + name, __package__) s.draw_func = getattr(mod, "draw") - with open(mod.__file__, "rb") as h: - s.code = h.read().decode("utf-8") + code = inspect.getsource(mod) + if isinstance(code, bytes): + code = code.decode("utf-8") + s.code = code snippets[s.name] = s return snippets