File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -386,18 +386,27 @@ fn create_settings(matches: &ArgMatches) -> Settings {
386386 }
387387
388388 let mut dev_mode = false ;
389+ let mut warn_default_encoding = false ;
389390 if let Some ( xopts) = matches. values_of ( "implementation-option" ) {
390391 settings. xopts . extend ( xopts. map ( |s| {
391392 let mut parts = s. splitn ( 2 , '=' ) ;
392393 let name = parts. next ( ) . unwrap ( ) . to_owned ( ) ;
393394 if name == "dev" {
394395 dev_mode = true
395396 }
397+ if name == "warn_default_encoding" {
398+ warn_default_encoding = true
399+ }
396400 let value = parts. next ( ) . map ( ToOwned :: to_owned) ;
397401 ( name, value)
398402 } ) ) ;
399403 }
400404 settings. dev_mode = dev_mode;
405+ if warn_default_encoding
406+ || ( !ignore_environment && env:: var_os ( "PYTHONWARNDEFAULTENCODING" ) . is_some ( ) )
407+ {
408+ settings. warn_default_encoding = true ;
409+ }
401410
402411 if dev_mode {
403412 settings. warnopts . push ( "default" . to_owned ( ) )
Original file line number Diff line number Diff line change @@ -603,6 +603,8 @@ mod sys {
603603 dev_mode : bool ,
604604 /// -X utf8
605605 utf8_mode : u8 ,
606+ /// -X warn_default_encoding, PYTHONWARNDEFAULTENCODING
607+ warn_default_encoding : u8 ,
606608 }
607609
608610 #[ pyimpl( with( PyStructSequence ) ) ]
@@ -624,6 +626,7 @@ mod sys {
624626 isolated : settings. isolated as u8 ,
625627 dev_mode : settings. dev_mode ,
626628 utf8_mode : 1 ,
629+ warn_default_encoding : settings. warn_default_encoding as u8 ,
627630 }
628631 }
629632
Original file line number Diff line number Diff line change @@ -43,6 +43,9 @@ pub struct Settings {
4343 /// -Xdev
4444 pub dev_mode : bool ,
4545
46+ /// -X warn_default_encoding, PYTHONWARNDEFAULTENCODING
47+ pub warn_default_encoding : bool ,
48+
4649 /// -Wfoo
4750 pub warnopts : Vec < String > ,
4851
@@ -78,6 +81,7 @@ impl Default for Settings {
7881 xopts : vec ! [ ] ,
7982 isolated : false ,
8083 dev_mode : false ,
84+ warn_default_encoding : false ,
8185 warnopts : vec ! [ ] ,
8286 path_list : vec ! [
8387 #[ cfg( all( feature = "pylib" , not( feature = "freeze-stdlib" ) ) ) ]
You can’t perform that action at this time.
0 commit comments