Add sys.warn_default_encoding

This commit is contained in:
Padraic Fanning
2022-02-18 19:47:37 -05:00
parent af50fa5512
commit 1cecd2a2de
3 changed files with 16 additions and 0 deletions

View File

@@ -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())

View File

@@ -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,
}
}

View File

@@ -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")))]