Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(core): Support __replace__ in general #26

Merged
merged 2 commits into from
Mar 6, 2025

Conversation

potatomashed
Copy link
Collaborator

This PR adds mlc.dataclasses.replace method that mimics the behavior of Python's native dataclasses.replace.

In principle, we do want something fully compatible with Python's native dataclass, but for now, there are certain limitations:

  • __post_init__ will not be called upon replacement;
  • POD types, such as mlc.DataType, mlc.Device, do not support __replace__. Something we could always add support case by case if needed later

This PR adds `mlc.dataclasses.replace` method that mimics the behavior
of Python's native `dataclasses.replace`.

In principle, we do want something fully compatible with Python's native
dataclass, but for now, there are certain limitations:
- `__post_init__` will not be called upon replacement;
- POD types, such as `mlc.DataType`, `mlc.Device`, do not support
  `__replace__`. Something we could always add support case by case if
  needed later
@potatomashed potatomashed merged commit 2cbb314 into mlc-ai:main Mar 6, 2025
4 checks passed
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.

1 participant