✨ Implement __dir__ to surface dynamic properties in dir() and - #419
Merged
Conversation
tab-completion The new `__dir__` method merges standard class attributes with dynamically-added property names from `self._properties`, returning a sorted, deduplicated list. This enables IDE/REPL tab-completion to discover scalar, vector, and array properties that are added at runtime.
Contributor
There was a problem hiding this comment.
Pull request overview
Adds LaserFrame.__dir__ so Python dir() (and IDE/REPL tab-completion) surfaces dynamically-added scalar/vector property names stored in self._properties, and introduces tests that pin the expected dir() behavior.
Changes:
- Implement
LaserFrame.__dir__to merge default attribute names with dynamic property names fromself._properties. - Add comprehensive tests covering inclusion/exclusion, sorting/uniqueness, kwargs attributes, and growth behavior when properties are added.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
src/laser/core/laserframe.py |
Adds __dir__ to include dynamically-added property names in dir() output. |
tests/test_laserframe.py |
Adds tests validating dir(LaserFrame) behavior for dynamic and standard attributes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
jonathanhhb
previously approved these changes
Jun 27, 2026
jonathanhhb
left a comment
Collaborator
There was a problem hiding this comment.
4 lines of code. 150 lines of tests. :) Seriously though, looks good. Part of me wants a doc string even though it's a completely private function.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tab-completion
The new
__dir__method merges standard class attributes with dynamically-addedproperty names from
self._properties, returning a sorted, deduplicated list.This enables IDE/REPL tab-completion to discover scalar, vector, and array
properties that are added at runtime.