Skip to content

Updating main with (1) subclassed version of hallmark, (2) test suite and (3) ci pipeline#14

Merged
nayera16 merged 7 commits intomainfrom
Subclassing_test
Nov 21, 2025
Merged

Updating main with (1) subclassed version of hallmark, (2) test suite and (3) ci pipeline#14
nayera16 merged 7 commits intomainfrom
Subclassing_test

Conversation

@HaydenMarchinek
Copy link
Contributor

Summary

  1. Replaced the legacy monkey patched version of hallmark with a fully encapsulated ParaFrame subclass of Pandas DataFrame. Issue Make ParaFrame a subclass of Pandas DataFrame? #5.
  2. Implemented our test suite, including the unit test and end-to-end test, to operate on the subclassed version of hallmark. Issue Write Hallmark test suite #10.
  3. Created a .yml file that contains the code for the continuous integration pipeline that helps to incorporate testing and formatting automatically in the hallmark code. Issue Write CI pipeline yaml file for Git workflow #12.

Details

  1. ParaFrame is now a subclass of a pandas DataFrame. The parsing capabilities have been incorporated as a class method, while the filtering operations are now an instance method accessed via call for simplicity. The Demo notebook has been updated to be compatible with the subclassed version of hallmark.
  2. The end-to-end tests follow a user story, checking the filter functionality of ParaFrame and the operation of the Debug feature. The unit tests check the structural features of the constructed ParaFrame. A separate conftest file introduces the file directory construction that the tests will operate on.
  3. This .yml file consists of ruff for the linter to check the formatting and pytest to check if the code runs correctly. This file also ensures Python version 3.13 for continuous integration.

Testing

  1. All tests pass in our updated test suite.
  2. All tests pass for both legacy and updated version of hallmark.
  3. This .yml file is based off of another CI pipeline which is @hfoote's SnapAnalysis repo. We also manually tested it by adding a workflow_dispatch line in the .yml file on the ci_pipeline branch to check that it ran on the repo.

Follow On

  1. The globbing and parsing could be separated out into separate methods for more modular code structure.
  2. The test suite will undergo continuous updates as the source code evolves. The debugger test should be updated depending on the direction we choose to go with for Issue Improve ParaFrame Debugging #3.
  3. The Ci pipeline will undergo continuous updates as the source code evolves

Copy link
Member

@hfoote hfoote left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, nice work! CI is failing on a linter error - I've marked the line with a comment. That should be a quick fix and then we can merge this once CI passes.

One more follow-up task: We should add a unit test for ParaFrame.filter() soon. For now you've got this covered in the e2e test so I'm not worried about it.


# users want to filter files to see those with a = 0 or b = 10
tuple_filter = pf(a=0, b=10)
# splitting columns with a=0 value and b=10 value to check that the correct number of
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ruff is complaining that this line is too long, let's split this comment more evenly between the lines.

@nayera16 nayera16 merged commit ccaa0ce into main Nov 21, 2025
1 check passed
@rohinsant rohinsant deleted the Subclassing_test branch January 21, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants