Rename stdlib files to match Python module names by youknowone · Pull Request #7397 · RustPython/RustPython
No actionable comments were generated in the recent review. 🎉
ℹ️ Recent review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: 5a4dff2d-803e-4fcd-8168-e88ff6a92591
📒 Files selected for processing (72)
crates/stdlib/src/array.rscrates/stdlib/src/faulthandler.rscrates/stdlib/src/fcntl.rscrates/stdlib/src/select.rscrates/stdlib/src/ssl.rscrates/vm/src/builtins/complex.rscrates/vm/src/builtins/genericalias.rscrates/vm/src/builtins/tuple.rscrates/vm/src/builtins/union.rscrates/vm/src/frame.rscrates/vm/src/ospath.rscrates/vm/src/protocol/number.rscrates/vm/src/signal.rscrates/vm/src/stdlib/_ast.rscrates/vm/src/stdlib/_ast/argument.rscrates/vm/src/stdlib/_ast/basic.rscrates/vm/src/stdlib/_ast/constant.rscrates/vm/src/stdlib/_ast/elif_else_clause.rscrates/vm/src/stdlib/_ast/exception.rscrates/vm/src/stdlib/_ast/expression.rscrates/vm/src/stdlib/_ast/module.rscrates/vm/src/stdlib/_ast/node.rscrates/vm/src/stdlib/_ast/operator.rscrates/vm/src/stdlib/_ast/other.rscrates/vm/src/stdlib/_ast/parameter.rscrates/vm/src/stdlib/_ast/pattern.rscrates/vm/src/stdlib/_ast/pyast.rscrates/vm/src/stdlib/_ast/python.rscrates/vm/src/stdlib/_ast/repr.rscrates/vm/src/stdlib/_ast/statement.rscrates/vm/src/stdlib/_ast/string.rscrates/vm/src/stdlib/_ast/type_ignore.rscrates/vm/src/stdlib/_ast/type_parameters.rscrates/vm/src/stdlib/_ast/validate.rscrates/vm/src/stdlib/_codecs.rscrates/vm/src/stdlib/_collections.rscrates/vm/src/stdlib/_ctypes.rscrates/vm/src/stdlib/_ctypes/array.rscrates/vm/src/stdlib/_ctypes/base.rscrates/vm/src/stdlib/_ctypes/function.rscrates/vm/src/stdlib/_ctypes/library.rscrates/vm/src/stdlib/_ctypes/pointer.rscrates/vm/src/stdlib/_ctypes/simple.rscrates/vm/src/stdlib/_ctypes/structure.rscrates/vm/src/stdlib/_ctypes/union.rscrates/vm/src/stdlib/_functools.rscrates/vm/src/stdlib/_imp.rscrates/vm/src/stdlib/_io.rscrates/vm/src/stdlib/_operator.rscrates/vm/src/stdlib/_signal.rscrates/vm/src/stdlib/_sre.rscrates/vm/src/stdlib/_stat.rscrates/vm/src/stdlib/_string.rscrates/vm/src/stdlib/_symtable.rscrates/vm/src/stdlib/_sysconfig.rscrates/vm/src/stdlib/_sysconfigdata.rscrates/vm/src/stdlib/_thread.rscrates/vm/src/stdlib/_typing.rscrates/vm/src/stdlib/_warnings.rscrates/vm/src/stdlib/_weakref.rscrates/vm/src/stdlib/_winapi.rscrates/vm/src/stdlib/builtins.rscrates/vm/src/stdlib/mod.rscrates/vm/src/stdlib/os.rscrates/vm/src/stdlib/posix.rscrates/vm/src/stdlib/sys.rscrates/vm/src/stdlib/typevar.rscrates/vm/src/types/zoo.rscrates/vm/src/vm/context.rscrates/vm/src/vm/mod.rscrates/vm/src/vm/thread.rscrates/vm/src/vm/vm_ops.rs
📝 Walkthrough
Walkthrough
This pull request systematically renames internal stdlib modules by adding underscore prefixes (e.g., ast → _ast, typing → _typing, warnings → _warnings). All corresponding import paths and call sites throughout the codebase are updated consistently to reference the new underscore-prefixed module paths.
Changes
| Cohort / File(s) | Summary |
|---|---|
Module Declaration Reorganization crates/vm/src/stdlib/mod.rs |
Renamed and re-exported stdlib modules with underscore prefixes (ast→_ast, io→_io, typing→_typing, warnings→_warnings, thread→_thread, signal→_signal, ctypes→_ctypes, and 10+ others). Updated builtin_module_defs registrations to reference underscore-prefixed module definitions. |
Warnings Module Refactoring crates/stdlib/src/array.rs, crates/stdlib/src/ssl.rs, crates/vm/src/builtins/complex.rs, crates/vm/src/stdlib/_ctypes/structure.rs, crates/vm/src/stdlib/_ctypes/union.rs, crates/vm/src/stdlib/_io.rs, crates/vm/src/stdlib/os.rs, crates/vm/src/stdlib/posix.rs, crates/vm/src/stdlib/sys.rs, crates/vm/src/vm/vm_ops.rs |
Replaced stdlib::warnings with stdlib::_warnings in import paths and updated warn() call sites to use the new internal warnings path. |
Thread Module Migration crates/stdlib/src/faulthandler.rs, crates/vm/src/_imp.rs, crates/vm/src/_winapi.rs, crates/vm/src/stdlib/mod.rs, crates/vm/src/stdlib/posix.rs, crates/vm/src/stdlib/sys.rs, crates/vm/src/vm/mod.rs, crates/vm/src/vm/thread.rs |
Updated all thread-related imports and function calls from stdlib::thread to stdlib::_thread (e.g., get_ident(), get_all_current_frames(), CurrentFrameSlot, HandleEntry). |
IO Module Path Updates crates/stdlib/src/fcntl.rs, crates/stdlib/src/select.rs, crates/vm/src/stdlib/mod.rs, crates/vm/src/stdlib/posix.rs, crates/vm/src/vm/mod.rs |
Replaced references to stdlib::io with stdlib::_io including type usages (Fildes, OpenArgs) and function calls (open()). |
Typing Module Migration crates/vm/src/builtins/genericalias.rs, crates/vm/src/builtins/union.rs, crates/vm/src/frame.rs, crates/vm/src/stdlib/typevar.rs, crates/vm/src/types/zoo.rs, crates/vm/src/vm/context.rs |
Updated all typing-related imports and constructors from stdlib::typing to stdlib::_typing, including TypeVar, ParamSpec, TypeVarTuple, TypeAliasType, and NoDefault references. |
AST Module Relocation crates/vm/src/builtins/genericalias.rs, crates/vm/src/stdlib/_ast.rs, crates/vm/src/stdlib/_ast/expression.rs, crates/vm/src/stdlib/_ast/module.rs, crates/vm/src/stdlib/_ast/python.rs, crates/vm/src/stdlib/_ast/repr.rs, crates/vm/src/stdlib/_ast/statement.rs, crates/vm/src/stdlib/builtins.rs |
Systematically updated AST module imports from stdlib::ast to stdlib::_ast across all AST-related code, including NodeAst, mode types, and validation functions. |
Signal Module Path Update crates/vm/src/signal.rs, crates/vm/src/stdlib/posix.rs |
Updated internal signal module path from stdlib::signal::_signal to stdlib::_signal::_signal and related references. |
Minor Formatting crates/vm/src/builtins/tuple.rs |
Reflowed multi-line field access in freelist_len calculation without behavioral changes. |
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
- Refactor warn.rs and _warnings module #7023: Refactors the warnings API with updated signature that returns
PyResultand acceptsvmparameter, which this PR adapts to throughout the codebase. - initial sandbox #7035: Modifies stdlib module declarations and
module_defwiring, intersecting with the module reorganization and feature-gating changes inmod.rs. - Refactor _ast module for clarity #7031: Refactors AST module internals and APIs, directly related to the systematic
ast→_astmigration across the codebase.
Suggested reviewers
- ShaharNaveh
- fanninpm
- coolreader18
Poem
🐰 A rabbit's ode to module names
With underscores bold, the modules now hide,
From public sight, yet steady provide,
Internal pathways, cleaner and clean,
The finest refactor this rabbit has seen! ✨
🚥 Pre-merge checks | ✅ 3
✅ 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 'Rename stdlib files to match Python module names' clearly and accurately describes the main change: renaming Rust stdlib source files with leading underscores to correspond to their Python module names. |
| Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. |
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
✨ Finishing Touches
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Post copyable unit tests in a comment
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.