OpenCyphal / pycyphal

Python implementation of the Cyphal protocol stack.
https://pycyphal.readthedocs.io/
MIT License
119 stars 106 forks source link

DSDL compiler fails if the DSDL namespace is empty #130

Closed pavel-kirienko closed 3 years ago

pavel-kirienko commented 3 years ago

The tuple unpacking here fails if the list of data types is empty:

https://github.com/UAVCAN/pyuavcan/blob/ac2ed338d215e62d125d6858cd44bb3154336c31/pyuavcan/dsdl/_compiler.py#L188

https://forum.uavcan.org/t/unknown-directive-sealed-error-when-trying-to-generate-from-dsdl/955/16?u=pavel.kirienko

aentinger commented 3 years ago

Same issue here, I'm not sure how to proceed, I've cloned public_regulated_data_types locally and call pyuavcan like this pyuavcan -v dsdl-gen-pkg public_regulated_data_types/ --output test/but it's still not working.

pydsdl._data_type_builder.UndefinedDataTypeError: /home/alex/projects/107-systems/public_regulated_data_types/reg/drone/phy/acoustics/Note.0.1.uavcan:6: Data type uavcan.si.unit.frequency.Scalar.1.0 could not be found in the following root namespaces: {'public_regulated_data_types'}.  Please make sure that you specified the directories correctly.

Sorry to bother you about this @pavel-kirienko but what parameter sequence am I supposed to feed to pyuavcan?

pavel-kirienko commented 3 years ago

You were close:

- pyuavcan -v dsdl-gen-pkg public_regulated_data_types/ --output test/
+ pyuavcan -v dsdl-gen-pkg public_regulated_data_types/uavcan --output test/