Skip to content

Commit 3650b17

Browse files
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

File tree

2 files changed

+2
-0
lines changed

2 files changed

+2
-0
lines changed

global-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ ironic-lib!=4.6.0 # Apache-2.0
329329
keystoneauth1 # Apache-2.0
330330
keystonemiddleware # Apache-2.0
331331
kuryr-lib # Apache-2.0
332+
lark # MIT
332333
metalsmith # Apache-2.0
333334
microversion-parse # Apache-2.0
334335
mistral-lib # Apache-2.0

upper-constraints.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ cliff===4.9.1;python_version=='3.9'
247247
cliff===4.11.0;python_version>='3.10'
248248
os-brick===6.13.0
249249
scp===0.15.0
250+
lark===1.3.0
250251
python-zaqarclient===3.0.1;python_version=='3.9'
251252
python-zaqarclient===4.1.0;python_version>='3.10'
252253
ldappool===3.0.0

0 commit comments

Comments
 (0)