From fd3f0b51590a3f2f530859eff7cef629b3adcb83 Mon Sep 17 00:00:00 2001 From: Johnny Robeson Date: Mon, 20 Jun 2016 06:17:20 -0400 Subject: [PATCH] disable compiled functemplates if not using PY2 The AST code needs rewritten for PY3. This is tracked in https://github.com/beetbox/beets/issues/2058 --- beets/util/functemplate.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/beets/util/functemplate.py b/beets/util/functemplate.py index 1dc704020..2b32971e2 100644 --- a/beets/util/functemplate.py +++ b/beets/util/functemplate.py @@ -508,7 +508,8 @@ class Template(object): def __init__(self, template): self.expr = _parse(template) self.original = template - self.compiled = self.translate() + if six.PY2: + self.compiled = self.translate() def __eq__(self, other): return self.original == other.original @@ -524,9 +525,12 @@ class Template(object): def substitute(self, values={}, functions={}): """Evaluate the template given the values and functions. """ - try: - res = self.compiled(values, functions) - except: # Handle any exceptions thrown by compiled version. + if six.PY2: + try: + res = self.compiled(values, functions) + except: # Handle any exceptions thrown by compiled version. + res = self.interpret(values, functions) + else: res = self.interpret(values, functions) return res