I am trying to build firmware and I keep getting this error when attempting to build most firmware. I've looked around and it looks like it was due to it being deprecated in Python 3.14+. I have checked with upstream already and it appears that it has already been updated there.
From what I can tell, based on the traceback is it is in the qmk scripts in lib, lib/python/qmk/math.py. I'm just trying to recompile firmware to support per layer backlighting.
☒ module 'ast' has no attribute 'Num'
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/milc/milc.py", line 606, in __call__
return self.__call__()
~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/milc/milc.py", line 611, in __call__
return self._subcommand(self)
~~~~~~~~~~~~~~~~^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/decorators.py", line 43, in wrapper
return func(*args, **kwargs)
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/cli/list/layouts.py", line 21, in list_layouts
info_data = info_json(cli.config.list_layouts.keyboard)
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 258, in info_json
info_data = _extract_config_h(info_data, config_h(str(keyboard)))
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 678, in _extract_config_h
_extract_matrix_info(info_data, config_c)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 564, in _extract_matrix_info
'cols': compute(config_c.get('MATRIX_COLS', '0')),
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/math.py", line 22, in compute
return _eval(ast.parse(expr, mode='eval').body)
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/math.py", line 26, in _eval
if isinstance(node, ast.Num): # <number>
^^^^^^^
AttributeError: module 'ast' has no attribute 'Num'
Making borne/m57 with keymap via
☒ module 'ast' has no attribute 'Num'
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/milc/milc.py", line 606, in __call__
return self.__call__()
~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/milc/milc.py", line 611, in __call__
return self._subcommand(self)
~~~~~~~~~~~~~~~~^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/cli/generate/rules_mk.py", line 74, in generate_rules_mk
kb_info_json = dotty(info_json(cli.args.keyboard))
~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 258, in info_json
info_data = _extract_config_h(info_data, config_h(str(keyboard)))
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 678, in _extract_config_h
_extract_matrix_info(info_data, config_c)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 564, in _extract_matrix_info
'cols': compute(config_c.get('MATRIX_COLS', '0')),
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/math.py", line 22, in compute
return _eval(ast.parse(expr, mode='eval').body)
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/math.py", line 26, in _eval
if isinstance(node, ast.Num): # <number>
^^^^^^^
AttributeError: module 'ast' has no attribute 'Num'
☒ module 'ast' has no attribute 'Num'
Traceback (most recent call last):
File "/usr/lib/python3.14/site-packages/milc/milc.py", line 606, in __call__
return self.__call__()
~~~~~~~~~~~~~^^
File "/usr/lib/python3.14/site-packages/milc/milc.py", line 611, in __call__
return self._subcommand(self)
~~~~~~~~~~~~~~~~^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/cli/generate/community_modules.py", line 182, in generate_community_modules_rules_mk
rules_mk_lines.extend(_generate_modules_rules(cli.args.keyboard, cli.args.filename))
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/cli/generate/community_modules.py", line 145, in _generate_modules_rules
modules = get_modules(keyboard, filename)
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 1069, in get_modules
kb_info_json = info_json(keyboard)
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 258, in info_json
info_data = _extract_config_h(info_data, config_h(str(keyboard)))
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 678, in _extract_config_h
_extract_matrix_info(info_data, config_c)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/info.py", line 564, in _extract_matrix_info
'cols': compute(config_c.get('MATRIX_COLS', '0')),
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/math.py", line 22, in compute
return _eval(ast.parse(expr, mode='eval').body)
File "/home/nephitejnf/Projects/githubs/vial-qmk/lib/python/qmk/math.py", line 26, in _eval
if isinstance(node, ast.Num): # <number>
^^^^^^^
AttributeError: module 'ast' has no attribute 'Num'
* [ERRORS]
builddefs/build_keyboard.mk:303: *** Platform not defined. Stop.
Make finished with errors
make: *** [Makefile:428: borne/m57:via] Error 1
I am trying to build firmware and I keep getting this error when attempting to build most firmware. I've looked around and it looks like it was due to it being deprecated in Python 3.14+. I have checked with upstream already and it appears that it has already been updated there.
From what I can tell, based on the traceback is it is in the qmk scripts in lib,
lib/python/qmk/math.py. I'm just trying to recompile firmware to support per layer backlighting.The error output I get when attempting to build is this: