mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
Add sys.warn_default_encoding
This commit is contained in:
@@ -386,6 +386,7 @@ fn create_settings(matches: &ArgMatches) -> Settings {
|
||||
}
|
||||
|
||||
let mut dev_mode = false;
|
||||
let mut warn_default_encoding = false;
|
||||
if let Some(xopts) = matches.values_of("implementation-option") {
|
||||
settings.xopts.extend(xopts.map(|s| {
|
||||
let mut parts = s.splitn(2, '=');
|
||||
@@ -393,11 +394,19 @@ fn create_settings(matches: &ArgMatches) -> Settings {
|
||||
if name == "dev" {
|
||||
dev_mode = true
|
||||
}
|
||||
if name == "warn_default_encoding" {
|
||||
warn_default_encoding = true
|
||||
}
|
||||
let value = parts.next().map(ToOwned::to_owned);
|
||||
(name, value)
|
||||
}));
|
||||
}
|
||||
settings.dev_mode = dev_mode;
|
||||
if warn_default_encoding
|
||||
|| (!ignore_environment && env::var_os("PYTHONWARNDEFAULTENCODING").is_some())
|
||||
{
|
||||
settings.warn_default_encoding = true;
|
||||
}
|
||||
|
||||
if dev_mode {
|
||||
settings.warnopts.push("default".to_owned())
|
||||
|
||||
@@ -603,6 +603,8 @@ mod sys {
|
||||
dev_mode: bool,
|
||||
/// -X utf8
|
||||
utf8_mode: u8,
|
||||
/// -X warn_default_encoding, PYTHONWARNDEFAULTENCODING
|
||||
warn_default_encoding: u8,
|
||||
}
|
||||
|
||||
#[pyimpl(with(PyStructSequence))]
|
||||
@@ -624,6 +626,7 @@ mod sys {
|
||||
isolated: settings.isolated as u8,
|
||||
dev_mode: settings.dev_mode,
|
||||
utf8_mode: 1,
|
||||
warn_default_encoding: settings.warn_default_encoding as u8,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,9 @@ pub struct Settings {
|
||||
/// -Xdev
|
||||
pub dev_mode: bool,
|
||||
|
||||
/// -X warn_default_encoding, PYTHONWARNDEFAULTENCODING
|
||||
pub warn_default_encoding: bool,
|
||||
|
||||
/// -Wfoo
|
||||
pub warnopts: Vec<String>,
|
||||
|
||||
@@ -78,6 +81,7 @@ impl Default for Settings {
|
||||
xopts: vec![],
|
||||
isolated: false,
|
||||
dev_mode: false,
|
||||
warn_default_encoding: false,
|
||||
warnopts: vec![],
|
||||
path_list: vec![
|
||||
#[cfg(all(feature = "pylib", not(feature = "freeze-stdlib")))]
|
||||
|
||||
Reference in New Issue
Block a user