planetarypy / pvl

Python implementation of PVL (Parameter Value Language)
BSD 3-Clause "New" or "Revised" License
19 stars 19 forks source link

Fixed StopIteration error with nested Aggregation Blocks with mis-matched Block Names #101

Closed rbeyer closed 2 years ago

rbeyer commented 2 years ago

Description

Deeply nested Aggregation Blocks (Object or Group) which had mis-matched Block Names should cleanly emit a LexerError, but instead after that, the parser kept trying to parse and eventually terminated with a StopIteration Exception.

LexerErrors are derived from ValueErrors, but these two different exceptions can signal different behaviors in the code, and there were some places where only ValueErrors were being caught (which also scooped up the LexerErrors). Now properly also dealing with LexerErrors.

Related Issue

100

How Has This Been Tested?

Types of changes

Checklist:

Licensing:

This project is released under the LICENSE.

codecov[bot] commented 2 years ago

Codecov Report

Merging #101 (31d36be) into main (763fe05) will decrease coverage by 0.09%. The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #101      +/-   ##
==========================================
- Coverage   94.99%   94.89%   -0.10%     
==========================================
  Files          12       12              
  Lines        1937     1941       +4     
==========================================
+ Hits         1840     1842       +2     
- Misses         97       99       +2     
Impacted Files Coverage Δ
pvl/__init__.py 96.15% <100.00%> (ø)
pvl/parser.py 96.41% <100.00%> (-0.57%) :arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 763fe05...31d36be. Read the comment docs.