Skip to content

Commit dd8af16

Browse files
committed
Make sys.flag proper named tuple and fix the types of the components
1 parent d82d108 commit dd8af16

File tree

3 files changed

+17
-30
lines changed

3 files changed

+17
-30
lines changed

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_sys.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@
3434
*graalpython.lib-python.3.test.test_sys.UnraisableHookTest.test_original_unraisablehook
3535
*graalpython.lib-python.3.test.test_sys.UnraisableHookTest.test_original_unraisablehook_err
3636
*graalpython.lib-python.3.test.test_sys.UnraisableHookTest.test_original_unraisablehook_wrong_type
37+
*graalpython.lib-python.3.test.test_sys.SysModuleTest.test_sys_flags

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/GraalPythonModuleBuiltins.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
import com.oracle.graal.python.builtins.objects.function.PFunction;
6262
import com.oracle.graal.python.builtins.objects.function.Signature;
6363
import com.oracle.graal.python.builtins.objects.generator.PGenerator;
64+
import com.oracle.graal.python.builtins.objects.ints.PInt;
6465
import com.oracle.graal.python.builtins.objects.list.PList;
6566
import com.oracle.graal.python.builtins.objects.method.PMethod;
6667
import com.oracle.graal.python.builtins.objects.module.PythonModule;
@@ -172,19 +173,19 @@ public void postInitialize(PythonCore core) {
172173
mod.setAttribute("capi_home", capiHome);
173174
mod.setAttribute("platform_id", toolchain.getIdentifier());
174175
mod.setAttribute("flags", core.factory().createTuple(new Object[]{
175-
false, // bytes_warning
176-
!context.getOption(PythonOptions.PythonOptimizeFlag), // debug
177-
context.getOption(PythonOptions.DontWriteBytecodeFlag), // dont_write_bytecode
178-
false, // hash_randomization
179-
context.getOption(PythonOptions.IgnoreEnvironmentFlag), // ignore_environment
180-
context.getOption(PythonOptions.InspectFlag), // inspect
181-
context.getOption(PythonOptions.TerminalIsInteractive), // interactive
182-
context.getOption(PythonOptions.IsolateFlag), // isolated
183-
context.getOption(PythonOptions.NoSiteFlag), // no_site
184-
context.getOption(PythonOptions.NoUserSiteFlag), // no_user_site
185-
context.getOption(PythonOptions.PythonOptimizeFlag), // optimize
186-
context.getOption(PythonOptions.QuietFlag), // quiet
187-
context.getOption(PythonOptions.VerboseFlag), // verbose
176+
0, // bytes_warning
177+
PInt.intValue(!context.getOption(PythonOptions.PythonOptimizeFlag)), // debug
178+
PInt.intValue(context.getOption(PythonOptions.DontWriteBytecodeFlag)), // dont_write_bytecode
179+
0, // hash_randomization
180+
PInt.intValue(context.getOption(PythonOptions.IgnoreEnvironmentFlag)), // ignore_environment
181+
PInt.intValue(context.getOption(PythonOptions.InspectFlag)), // inspect
182+
PInt.intValue(context.getOption(PythonOptions.TerminalIsInteractive)), // interactive
183+
PInt.intValue(context.getOption(PythonOptions.IsolateFlag)), // isolated
184+
PInt.intValue(context.getOption(PythonOptions.NoSiteFlag)), // no_site
185+
PInt.intValue(context.getOption(PythonOptions.NoUserSiteFlag)), // no_user_site
186+
PInt.intValue(context.getOption(PythonOptions.PythonOptimizeFlag)), // optimize
187+
PInt.intValue(context.getOption(PythonOptions.QuietFlag)), // quiet
188+
PInt.intValue(context.getOption(PythonOptions.VerboseFlag)), // verbose
188189
false, // dev_mode
189190
0, // utf8_mode
190191
}));

graalpython/lib-graalpython/sys.py

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,27 +63,12 @@ def make_implementation_info():
6363

6464
def make_flags_class():
6565
from _descriptor import make_named_tuple_class
66-
get_set_descriptor = type(type(make_flags_class).__code__)
67-
6866
names = ["bytes_warning", "debug", "dont_write_bytecode",
6967
"hash_randomization", "ignore_environment", "inspect",
7068
"interactive", "isolated", "no_site", "no_user_site", "optimize",
7169
"quiet", "verbose", "dev_mode", "utf8_mode"]
72-
73-
flags_class = make_named_tuple_class("sys.flags", names)
74-
75-
def make_func(i):
76-
def func(self):
77-
return __graalpython__.flags[i]
78-
return func
79-
80-
for i, f in enumerate(names):
81-
setattr(flags_class, f, get_set_descriptor(fget=make_func(i), name=f, owner=flags_class))
82-
83-
return flags_class
84-
85-
86-
flags = make_flags_class()()
70+
return make_named_tuple_class("sys.flags", names)
71+
flags = make_flags_class()(__graalpython__.flags)
8772
del make_flags_class
8873

8974

0 commit comments

Comments
 (0)