Tags: OpenCyphal/pydsdl
Tags
Allow relative target paths (#110) Fix for issue #109. This relaxes some logic that required existing paths before creating a DSDLFile abstraction while adding a requirement that ReadableDSDLFile(s) are created with files that exist (i.e. it can't be "readable" if it doesn't exist). At the same time, we clarified (and fixed) the difference between the `root_namespace_directories_or_names` and `lookup_directories arguments` of read_files. Our new guidance is to dis-use `lookup_directories` unless there is a need to separate target lookup paths from dependent type look up paths. This was an unstated design goal that I forgot about and subsequently mis-implemented. This does change the behaviour of the API slightly which is why I've bumped the minor version instead of just the patch.
Fix for Issue #104 (#107) This changes our logic for detecting duplicate definitions on case-sensitive file-systems to only operate on files of interest and to fix this detection logic per issue #104. If globular searches find duplicates we do not waste time detecting this until/unless these duplicates are actually considered when parsing target definitions. --------- Co-authored-by: Pavel Kirienko <pavel.kirienko@gmail.com>
Adding support for file-based reads and externalized type dependencies ( #103) This is non-breaking change that adds a new public method: read_files - a file-oriented entry point to the front end. This takes a list of target DSDL files allowing the user to maintain an explicit list instead of depending on globular filesystem discovery. Furthermore this method returns a set which is the transitive closure of types depended on by the target list of types. This allows consumers to track dependencies and compiler back ends to generate .d files and otherwise support incremental builds. The new method may increase performance for systems with large pools of messages when generating code for a small sub-set as it only considers the target and dependencies of the target when parsing dsdl files. --------- Co-authored-by: Pavel Kirienko <pavel.kirienko@gmail.com>
Cleanup dependencies and fix #94 (#95) Upgrade Parsimonious to `v0.10.0+39b3d71ee827ba6a19a7226fddfe6b6e51535794`; fix #92. Compare the bundled version of Parsimonious against its latest release, v0.10.0: erikrose/parsimonious@0.10.0...39b3d71 Remove dependency on `six.py` Fix #94 and add a new error class -- `DataTypeCollisionError`; remove `MultipleDefinitionsUnderSameVersionError`. This does not affect the API compatibility because the specific error classes are private. Bump the minor version number.
Cleanup (#93) - Update the development-related dependencies. - Demote Python v3.6 and v3.7 to minimally supported versions (no linting, no coverage). - Fix #84. `os.path` is no longer used, and dependency on the text representations of paths is minimized. - Refactor the test suite to eliminate the global state and simplify the internal APIs. - The library now logs a warning when it encounters a `*.uavcan` file, suggesting renaming it to `*.dsdl`. See https://forum.opencyphal.org/t/uavcan-file-extension/438/8. There are no plans to remove support for `*.uavcan` but it is desirable to push users towards consistency. - Bump the minor version.
PreviousNext