mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
* Create rustpython-host-env crate; move host abstractions out of common
Move os, crt_fd, fileutils, windows, macros modules from
rustpython-common into the new rustpython-host-env crate.
This isolates host OS API wrappers behind a crate boundary
with zero Python runtime dependency.
- Add crates/host_env to workspace
- Drop nix, windows-sys, widestring deps from common
- Wire vm and stdlib to depend on rustpython-host-env
- Migrate all imports from common::{os,crt_fd,fileutils,windows}
to rustpython_host_env::
* refactor: extract host helpers
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/48d1e64d-37ce-409f-b511-8e61a349665c
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* lint: enforce direct host API boundaries
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/97225fb7-7b3d-4197-a77c-eb44aead5b13
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* refactor: extract remaining host env helpers
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/d96f57e1-b196-4460-9983-97d5ff118835
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* fix: clean extracted host env follow-up
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/d96f57e1-b196-4460-9983-97d5ff118835
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* fix: document env mutation safety
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/d96f57e1-b196-4460-9983-97d5ff118835
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* refactor: split host fs helpers from fileutils
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/c57424c5-0e1d-490a-82b3-2d2f6c8cf2cd
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* fix: resolve latest host env ci regressions
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/899eb717-ebc6-4a4a-870c-2a15c5f33e02
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* fix: resolve remaining windows clippy host fs calls
Agent-Logs-Url: https://github.com/RustPython/RustPython/sessions/12f32740-8173-4b10-a1d6-00b29e90a8ec
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
* host_env
---------
Co-authored-by: Jeong, YunWon <jeong@youknowone.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: youknowone <69878+youknowone@users.noreply.github.com>
31 lines
1.1 KiB
Rust
31 lines
1.1 KiB
Rust
use rustpython_vm as vm;
|
|
use std::process::ExitCode;
|
|
use vm::{Interpreter, builtins::PyStrRef};
|
|
|
|
fn py_main(interp: &Interpreter) -> vm::PyResult<PyStrRef> {
|
|
interp.enter(|vm| {
|
|
// Add local library path
|
|
vm.insert_sys_path(vm.new_pyobj("examples"))
|
|
.expect("add examples to sys.path failed");
|
|
let module = vm.import("package_embed", 0)?;
|
|
let name_func = module.get_attr("context", vm)?;
|
|
let result = name_func.call((), vm)?;
|
|
let result: PyStrRef = result.get_attr("name", vm)?.try_into_value(vm)?;
|
|
vm::PyResult::Ok(result)
|
|
})
|
|
}
|
|
|
|
fn main() -> ExitCode {
|
|
// Add standard library path
|
|
let mut settings = vm::Settings::default();
|
|
settings.path_list.push("Lib".to_owned());
|
|
let builder = vm::Interpreter::builder(settings);
|
|
let defs = rustpython_stdlib::stdlib_module_defs(&builder.ctx);
|
|
let interp = builder.add_native_modules(&defs).build();
|
|
let result = py_main(&interp);
|
|
let result = result.map(|result| {
|
|
println!("name: {result}");
|
|
});
|
|
vm::host_env::os::exit_code(interp.run(|_vm| result))
|
|
}
|