diff options
author | Conrad Kostecki <conrad@kostecki.com> | 2020-08-25 00:24:53 +0200 |
---|---|---|
committer | Conrad Kostecki <kostecki@his.de> | 2020-08-25 14:09:26 +0200 |
commit | 9b913229ace838958e51a16cabc41905a2460f7b (patch) | |
tree | 89e55ccea10018615fc1c4373192f49a2a1ab0d5 | |
parent | 7ad4b322653fa849e8171b905baede5fc4469c07 (diff) |
Fix compatibility with >=python-3.8.4
Signed-off-by: Conrad Kostecki <conrad@kostecki.com>
-rw-r--r-- | xdg/Menu.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/xdg/Menu.py b/xdg/Menu.py index 1d03cad..ee406bd 100644 --- a/xdg/Menu.py +++ b/xdg/Menu.py @@ -21,6 +21,7 @@ import os import locale import subprocess import ast +import sys try: import xml.etree.cElementTree as etree except ImportError: @@ -35,6 +36,17 @@ import xdg.Locale import xdg.Config +def _ast_const(name): + if sys.version_info >= (3, 4): + name = ast.literal_eval(name) + if sys.version_info >= (3, 8): + return ast.Constant(name) + else: + return ast.NameConstant(name) + else: + return ast.Name(id=name, ctx=ast.Load()) + + def _strxfrm(s): """Wrapper around locale.strxfrm that accepts unicode strings on Python 2. @@ -754,7 +766,7 @@ class XMLMenuBuilder(object): if expr: tree.body = expr else: - tree.body = ast.Name('False', ast.Load()) + tree.body = _ast_const('False') ast.fix_missing_locations(tree) return Rule(type, tree) @@ -781,7 +793,7 @@ class XMLMenuBuilder(object): expr = self.parse_bool_op(node, ast.Or()) return ast.UnaryOp(ast.Not(), expr) if expr else None elif tag == 'All': - return ast.Name('True', ast.Load()) + return _ast_const('True') elif tag == 'Category': category = node.text return ast.Compare( |