Skip to content

Conversation

davepeck
Copy link
Contributor

This PR represents a big set of changes to support class-based components, as described in #53. When merged, this resolves #53 .

The README.md is updated to reflect these changes, all tests are updated, and there are very many new tests.

For a basic description of these changes from a user's perspective, see my comments to #53 here.

There is also a new CallableInfo facility: a frozen dataclass that holds on to just the information we need when inspecting a callable (using inspect.signature() now) to understand how to invoke it. We do this (rather than holding on to inspect.Signature instances directly) for cachability; get_callable_info(c: Callable) sits behind an @lru_cache().

@davepeck davepeck self-assigned this Sep 15, 2025
@davepeck davepeck merged commit 7c2d6c9 into main Sep 15, 2025
2 checks passed
@davepeck davepeck deleted the dave/callable-updates branch September 15, 2025 20:38
davepeck added a commit that referenced this pull request Oct 4, 2025
This PR represents a big set of changes to support class-based components, as described in #53. When merged, this resolves #53 .

The `README.md` is updated to reflect these changes, all tests are updated, and there are very many new tests.

For a basic description of these changes from a user's perspective, see [my comments to #53 here](#53 (comment)). 

There is also a new `CallableInfo` facility: a frozen dataclass that holds on to _just_ the information we need when inspecting a callable (using `inspect.signature()` now) to understand how to invoke it. We do this (rather than holding on to `inspect.Signature` instances directly) for cachability; `get_callable_info(c: Callable)` sits behind an `@lru_cache()`.
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.

Support class-based components

1 participant