Skip to content

Conversation

@youknowone
Copy link
Member

@youknowone youknowone commented Nov 29, 2025

Summary by CodeRabbit

  • Refactor
    • Improved class creation and metaclass resolution handling
    • Updated error messages related to class instantiation

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 29, 2025

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (2)
  • Lib/test/test_descr.py is excluded by !Lib/**
  • Lib/test/test_super.py is 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

Poem

🐰 A class by any other name still builds true,
No more qualified names to confuse or construe,
With name so 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@youknowone youknowone marked this pull request as ready for review November 29, 2025 01:58
@youknowone youknowone merged commit 95b8c60 into RustPython:main Nov 29, 2025
13 checks passed
@youknowone youknowone deleted the build-class branch November 29, 2025 02:54
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