Fix __build_class__ compatibility by youknowone · Pull Request #6308 · RustPython/RustPython
Important
Review skipped
Review was skipped due to path filters
⛔ Files ignored due to path filters (2)
Lib/test/test_descr.pyis excluded by!Lib/**Lib/test/test_super.pyis excluded by!Lib/**
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Walkthrough
The __build_class__ function's public signature in crates/vm/src/stdlib/builtins.rs was updated to use a name parameter instead of qualified_name. Internal logic was refactored to derive the Python class name object directly from the new parameter, along with adjustments to metaclass resolution and argument construction.
Changes
| Cohort / File(s) | Summary |
|---|---|
__build_class__ signature and implementation crates/vm/src/stdlib/builtins.rs |
Parameter renamed from qualified_name: PyStrRef to name: PyStrRef; internal logic adjusted to use the new parameter for class name propagation; metaclass resolution, argument construction, and __classcell__ checks refactored |
Estimated code review effort
🎯 2 (Simple) | ⏱️ ~10 minutes
- Verify that all internal uses of the renamed parameter work correctly across metaclass resolution and class construction logic
- Check that callers of
__build_class__are updated to pass the correct parameter - Confirm the
__classcell__check logic remains valid with the new parameter
Possibly related PRs
- __type_params__ in __build_class__ #5883: Also modifies
__build_class__implementation to add handling for.type_params/__type_params__in the same file.
Poem
🐰 A class by any other name still builds true,
No more qualified names to confuse or construe,
Withnameso simple, the logic flows clean,
The metaclass knows just what we mean! ✨
Pre-merge checks and finishing touches
✅ Passed checks (3 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | The title 'Fix build_class compatibility' directly references the specific function being modified and indicates the nature of the change (a compatibility fix), which aligns with the actual modifications to the build_class function signature and internal implementation. |
| Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. |
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.