Update `{site,sysconfig}.py` from 3.13.7 by ShaharNaveh · Pull Request #6132 · RustPython/RustPython · GitHub
Skip to content

Update {site,sysconfig}.py from 3.13.7#6132

Merged
youknowone merged 5 commits into
RustPython:mainfrom
ShaharNaveh:update-site
Sep 8, 2025
Merged

Update {site,sysconfig}.py from 3.13.7#6132
youknowone merged 5 commits into
RustPython:mainfrom
ShaharNaveh:update-site

Conversation

@ShaharNaveh

@ShaharNaveh ShaharNaveh commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features
    • Added a built-in Python module "_sysconfig" exposing runtime configuration.
    • Provides config_vars() which returns a dict of interpreter config flags (e.g., Py_GIL_DISABLED=True).
    • Allows packages and scripts to query interpreter configuration programmatically.

@coderabbitai

coderabbitai Bot commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

@ShaharNaveh ShaharNaveh marked this pull request as ready for review September 5, 2025 18:33

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
vm/src/stdlib/sysconfig.rs (2)

1-4: Avoid a redundant sysconfig::sysconfig path; use a conventional inner module name.

Align with existing pattern (module/decl) to improve clarity.

-pub(crate) use sysconfig::make_module;
-
-#[pymodule(name = "_sysconfig")]
-pub(crate) mod sysconfig {
+pub(crate) use module::make_module;
+
+#[pymodule(name = "_sysconfig")]
+pub(crate) mod module {

7-13: Return PyResult and drop unwrap for better error hygiene.

Matches common style in stdlib shims and keeps exceptions propagatable.

-    #[pyfunction]
-    fn config_vars(vm: &VirtualMachine) -> PyDictRef {
-        let vars = vm.ctx.new_dict();
-        vars.set_item("Py_GIL_DISABLED", false.to_pyobject(vm), vm)
-            .unwrap();
-        vars
-    }
+    use crate::PyResult;
+
+    #[pyfunction]
+    fn config_vars(vm: &VirtualMachine) -> PyResult<PyDictRef> {
+        let vars = vm.ctx.new_dict();
+        vars.set_item("Py_GIL_DISABLED", vm.ctx.new_bool(false), vm)?;
+        Ok(vars)
+    }
📜 Review details

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 85ca280 and 02320d5.

⛔ Files ignored due to path filters (5)
  • Lib/site.py is excluded by !Lib/**
  • Lib/sysconfig/__init__.py is excluded by !Lib/**
  • Lib/sysconfig/__main__.py is excluded by !Lib/**
  • Lib/test/test_site.py is excluded by !Lib/**
  • Lib/test/test_sysconfig.py is excluded by !Lib/**
📒 Files selected for processing (2)
  • vm/src/stdlib/mod.rs (2 hunks)
  • vm/src/stdlib/sysconfig.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rs

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.rs: Follow the default rustfmt code style (cargo fmt to format)
Always run clippy to lint code (cargo clippy) before completing tasks. Fix any warnings or lints that are introduced by your changes
Follow Rust best practices for error handling and memory management
Use the macro system (pyclass, pymodule, pyfunction, etc.) when implementing Python functionality in Rust

Files:

  • vm/src/stdlib/mod.rs
  • vm/src/stdlib/sysconfig.rs
🧬 Code graph analysis (1)
vm/src/stdlib/mod.rs (2)
vm/src/stdlib/nt.rs (1)
  • make_module (7-11)
vm/src/stdlib/time.rs (1)
  • make_module (10-17)
🔇 Additional comments (3)
vm/src/stdlib/mod.rs (2)

21-21: Wiring the new stdlib module looks correct.

Unconditional mod sysconfig; is consistent with other always-available stdlib shims.


101-101: Registered initializer for "_sysconfig".

Entry points to sysconfig::make_module as expected; ordering among other entries is fine.

vm/src/stdlib/sysconfig.rs (1)

7-13: Verify that all required sysconfig config_vars keys are provided
Could not locate the vendored Python 3.13.7 sysconfig.py in this repo; please manually confirm that no additional keys beyond Py_GIL_DISABLED are expected by config_vars to prevent runtime failures.

@youknowone youknowone left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment thread Lib/site.py

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 finally this is shipped

Comment thread vm/src/stdlib/sysconfig.rs Outdated
@youknowone youknowone merged commit 7044d43 into RustPython:main Sep 8, 2025
12 checks passed
@ShaharNaveh ShaharNaveh deleted the update-site branch September 12, 2025 07:47
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.

2 participants