-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Labels
enhancementNew feature or requestNew feature or request
Description
At the moment, patching of StringIdx values fails. Consider the following example:
parameters.yaml:
cells:
- cellType: FOO
running
python -mfpga_interchange.patch --schema_dir ~/fpga-interchange-schema/interchange --patch_path parameterDefs --schema device --patch_format yaml LIFCL-17.device parameters.yaml LIFCL-17-patched.device
fails with
Traceback (most recent call last):
File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/david/python-fpga-interchange/fpga_interchange/patch.py", line 72, in <module>
main()
File "/home/david/python-fpga-interchange/fpga_interchange/patch.py", line 65, in main
patch_capnp(message, patch_path, args.patch_format, f)
File "/home/david/python-fpga-interchange/fpga_interchange/patch.py", line 37, in patch_capnp
read_format_to_message(message_to_populate, patch_format, in_f)
File "/home/david/python-fpga-interchange/fpga_interchange/convert.py", line 83, in read_format_to_message
from_rapidyaml(message, yaml_tree)
File "/home/david/python-fpga-interchange/fpga_interchange/rapidyaml_support.py", line 393, in from_rapidyaml
from_reader(message, data, RapidYamlReader)
File "/home/david/python-fpga-interchange/fpga_interchange/converters.py", line 458, in from_reader
from_reader(
File "/home/david/python-fpga-interchange/fpga_interchange/converters.py", line 479, in from_reader
value = reader.read_scalar(field_which, value)
File "/home/david/python-fpga-interchange/fpga_interchange/rapidyaml_support.py", line 335, in read_scalar
return int(field_data)
ValueError: invalid literal for int() with base 10: 'FOO'
As there is no special casing for indexed strings, it is expecting an index into the string pool rather than a string (which isn't feasibly human-writeable). These will need to be handled by looking into, and updating if needed, the list of strings. This is also a prerequisite to fixing chipsalliance/fpga-interchange-schema#46, hitherto this has been worked around in the schema by using Text instead of StringIdx where the patching tool needs to be used.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request