mirror of
https://github.com/beetbox/beets.git
synced 2025-12-10 02:22:25 +01:00
compatibility with breaking changes to the ast module
new in 3.10, also backported to 3.8 and 3.9: https://github.com/python/cpython/pull/20649 In fact, our generation of some Literals has been invalid since Python 3.4, fix that too.
This commit is contained in:
parent
9b47e4fa23
commit
dab0c1f9ab
2 changed files with 21 additions and 9 deletions
|
|
@ -73,15 +73,26 @@ def ex_literal(val):
|
|||
"""An int, float, long, bool, string, or None literal with the given
|
||||
value.
|
||||
"""
|
||||
if val is None:
|
||||
return ast.Name('None', ast.Load())
|
||||
elif isinstance(val, six.integer_types):
|
||||
return ast.Num(val)
|
||||
elif isinstance(val, bool):
|
||||
return ast.Name(bytes(val), ast.Load())
|
||||
elif isinstance(val, six.string_types):
|
||||
return ast.Str(val)
|
||||
raise TypeError(u'no literal for {0}'.format(type(val)))
|
||||
if sys.version_info[:2] < (3, 4):
|
||||
if val is None:
|
||||
return ast.Name('None', ast.Load())
|
||||
elif isinstance(val, six.integer_types):
|
||||
return ast.Num(val)
|
||||
elif isinstance(val, bool):
|
||||
return ast.Name(bytes(val), ast.Load())
|
||||
elif isinstance(val, six.string_types):
|
||||
return ast.Str(val)
|
||||
raise TypeError(u'no literal for {0}'.format(type(val)))
|
||||
elif sys.version_info[:2] < (3, 6):
|
||||
if val in [None, True, False]:
|
||||
return ast.NameConstant(val)
|
||||
elif isinstance(val, six.integer_types):
|
||||
return ast.Num(val)
|
||||
elif isinstance(val, six.string_types):
|
||||
return ast.Str(val)
|
||||
raise TypeError(u'no literal for {0}'.format(type(val)))
|
||||
else:
|
||||
return ast.Constant(val)
|
||||
|
||||
|
||||
def ex_varassign(name, expr):
|
||||
|
|
|
|||
|
|
@ -213,6 +213,7 @@ Fixes:
|
|||
* :doc:`/plugins/lyrics`: Fix crash when writing ReST files for a query without
|
||||
results or fetched lyrics
|
||||
:bug:`2805`
|
||||
* Adapt to breaking changes in Python's ``ast`` module in 3.8
|
||||
|
||||
For plugin developers:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue