Commit 3650b17
committed
Add lark to global-requirements
lark is a pure-Python parser toolkit/library.
Is the library actively maintained?
Yes - Last version release was 3 weeks ago (22 September 2025).
Is the library good code?
Yes - The interface for defining a parser and generating a parse tree from
said parser is straight-forward and works as expected. There is a robust
unit test suite included in lark's repository. PRs to lark's codebase
must pass CI checks which include tests for Python 3.{8-12}.
Is the library Python 3 compatible?
Yes - demonstrably so through lark's unit tests.
Is the library license compatible?
Yes - MIT.
Is the library already packaged in the distros we target?
Yes:
- debuntu: https://packages.ubuntu.com/noble/python3-lark
- others: https://pkgs.org/search/?q=lark
Is the function of this library already covered by other libraries
in global-requirements.txt?
Partially yes. Pyparsing exists already but only provides support for PEGs
(Parsing Expression Grammars) whereas lark supports CFGs
(Context-Free Grammars), ambiguous grammars, and builds parse-trees.
Lark is also significantly faster and less memory intensive than
Pyparsing. Based on: https://github.com/goodmami/python-parsing-benchmarks
Is the library required for OpenStack project or related dev or
infrastructure setup? Which?
Yes. Ironic. Lark is being used to parse filter expressions as outlined
in this approved spec for ironic:
https://opendev.org/openstack/ironic-specs/src/branch/master/specs/approved/trait-based-port-scheduling.rst#Filters
If the library release is managed by the Openstack release process does it use
the cycle-with-intermediary release type?
No - N/A
Change-Id: Id4d91b5297b04cf680ed6d52e1c9eb08a8ae3830
Signed-off-by: Clif Houck <me@clifhouck.com>1 parent af5fa8a commit 3650b17
2 files changed
+2
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
329 | 329 | | |
330 | 330 | | |
331 | 331 | | |
| 332 | + | |
332 | 333 | | |
333 | 334 | | |
334 | 335 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
| 250 | + | |
250 | 251 | | |
251 | 252 | | |
252 | 253 | | |
| |||
0 commit comments