Skip to content

Add filter() method to TransitionTable - #49

Merged
bjmorgan merged 5 commits into
mainfrom
add-transition-table-filter
Mar 19, 2026
Merged

Add filter() method to TransitionTable#49
bjmorgan merged 5 commits into
mainfrom
add-transition-table-filter

Conversation

@bjmorgan

Copy link
Copy Markdown
Owner

Summary

  • Add TransitionTable.filter(keys) method for extracting a sub-table containing only the specified keys (rows and columns)
  • Does not re-normalise — users who want re-normalised probabilities should filter the counts table first, then normalise
  • Preserves the order of the provided keys
  • Validates against unknown and duplicate keys

Allows extracting a sub-table for a subset of keys without
re-normalising. Preserves the order of the provided keys.
Avoids TypeError on mixed key types when building error messages
in reorder() and filter().

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR extends TransitionTable with a filter(keys) API to extract a square sub-table (rows/columns) for a specified subset of keys while preserving the caller-provided order and validating unknown/duplicate keys.

Changes:

  • Added TransitionTable.filter(keys) implementation (subset extraction without re-normalization).
  • Updated TransitionTable docstring to include the new API.
  • Added a dedicated unittest suite covering filtering behavior and key validation.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
site_analysis/transition_table.py Adds filter() and adjusts reorder() error reporting details.
tests/test_transition_table.py Adds test coverage for the new filter() behavior and chaining with reorder().

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread site_analysis/transition_table.py Outdated
- Add API docs page for transition_table module
- Add transition tables guide covering usage, filtering, reordering,
  and the distinction between counts and probabilities
- Update tutorial and notebook generator to use filter() instead of
  manual np.ix_ slicing
- Simplify print_transition_table helper to use table.keys directly
@bjmorgan
bjmorgan merged commit e553d0f into main Mar 19, 2026
6 checks passed
@bjmorgan
bjmorgan deleted the add-transition-table-filter branch March 19, 2026 20:46
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.

2 participants