Skip to content

bpo-15999: Clean up of handling boolean arguments. #15610

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Sep 1, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Lib/_pyio.py
Original file line number Diff line number Diff line change
Expand Up @@ -2295,7 +2295,7 @@ def _read_chunk(self):
return not eof

def _pack_cookie(self, position, dec_flags=0,
bytes_to_feed=0, need_eof=0, chars_to_skip=0):
bytes_to_feed=0, need_eof=False, chars_to_skip=0):
# The meaning of a tell() cookie is: seek to position, set the
# decoder flags to dec_flags, read bytes_to_feed bytes, feed them
# into the decoder with need_eof as the EOF flag, then skip
Expand All @@ -2309,7 +2309,7 @@ def _unpack_cookie(self, bigint):
rest, dec_flags = divmod(rest, 1<<64)
rest, bytes_to_feed = divmod(rest, 1<<64)
need_eof, chars_to_skip = divmod(rest, 1<<64)
return position, dec_flags, bytes_to_feed, need_eof, chars_to_skip
return position, dec_flags, bytes_to_feed, bool(need_eof), chars_to_skip

def tell(self):
if not self._seekable:
Expand Down Expand Up @@ -2383,7 +2383,7 @@ def tell(self):
# (a point where the decoder has nothing buffered, so seek()
# can safely start from there and advance to this location).
bytes_fed = 0
need_eof = 0
need_eof = False
# Chars decoded since `start_pos`
chars_decoded = 0
for i in range(skip_bytes, len(next_input)):
Expand All @@ -2400,7 +2400,7 @@ def tell(self):
else:
# We didn't get enough decoded data; signal EOF to get more.
chars_decoded += len(decoder.decode(b'', final=True))
need_eof = 1
need_eof = True
if chars_decoded < chars_to_skip:
raise OSError("can't reconstruct logical file position")

Expand Down
2 changes: 1 addition & 1 deletion Lib/codeop.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ def __init__(self):
self.flags = PyCF_DONT_IMPLY_DEDENT

def __call__(self, source, filename, symbol):
codeob = compile(source, filename, symbol, self.flags, 1)
codeob = compile(source, filename, symbol, self.flags, True)
Copy link
Contributor

@sir-sigurd sir-sigurd Aug 30, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure that's OK.

https://docs.python.org/3.9/library/functions.html#compile

The argument optimize specifies the optimization level of the compiler; the default value of -1 selects the optimization level of the interpreter as given by -O options. Explicit levels are 0 (no optimization; debug is true), 1 (asserts are removed, debug is false) or 2 (docstrings are removed too).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is dont_inherit, not optimize.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, sorry.

for feature in _features:
if codeob.co_flags & feature.compiler_flag:
self.flags |= feature.compiler_flag
Expand Down
2 changes: 1 addition & 1 deletion Lib/doctest.py
Original file line number Diff line number Diff line change
Expand Up @@ -1326,7 +1326,7 @@ def __run(self, test, compileflags, out):
try:
# Don't blink! This is where the user's code gets run.
exec(compile(example.source, filename, "single",
compileflags, 1), test.globs)
compileflags, True), test.globs)
self.debugger.set_continue() # ==== Example Finished ====
exception = None
except KeyboardInterrupt:
Expand Down
8 changes: 4 additions & 4 deletions Lib/quopri.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,11 +204,11 @@ def main():
print("-t: quote tabs")
print("-d: decode; default encode")
sys.exit(2)
deco = 0
tabs = 0
deco = False
tabs = False
for o, a in opts:
if o == '-t': tabs = 1
if o == '-d': deco = 1
if o == '-t': tabs = True
if o == '-d': deco = True
if tabs and deco:
sys.stdout = sys.stderr
print("-t and -d are mutually exclusive")
Expand Down
16 changes: 8 additions & 8 deletions Lib/test/datetimetester.py
Original file line number Diff line number Diff line change
Expand Up @@ -6160,7 +6160,7 @@ class TZInfoSubclass(tzinfo):
def test_date_from_date(self):
exp_date = date(1993, 8, 26)

for macro in [0, 1]:
for macro in False, True:
with self.subTest(macro=macro):
c_api_date = _testcapi.get_date_fromdate(
macro,
Expand All @@ -6173,7 +6173,7 @@ def test_date_from_date(self):
def test_datetime_from_dateandtime(self):
exp_date = datetime(1993, 8, 26, 22, 12, 55, 99999)

for macro in [0, 1]:
for macro in False, True:
with self.subTest(macro=macro):
c_api_date = _testcapi.get_datetime_fromdateandtime(
macro,
Expand All @@ -6191,7 +6191,7 @@ def test_datetime_from_dateandtimeandfold(self):
exp_date = datetime(1993, 8, 26, 22, 12, 55, 99999)

for fold in [0, 1]:
for macro in [0, 1]:
for macro in False, True:
with self.subTest(macro=macro, fold=fold):
c_api_date = _testcapi.get_datetime_fromdateandtimeandfold(
macro,
Expand All @@ -6210,7 +6210,7 @@ def test_datetime_from_dateandtimeandfold(self):
def test_time_from_time(self):
exp_time = time(22, 12, 55, 99999)

for macro in [0, 1]:
for macro in False, True:
with self.subTest(macro=macro):
c_api_time = _testcapi.get_time_fromtime(
macro,
Expand All @@ -6225,7 +6225,7 @@ def test_time_from_timeandfold(self):
exp_time = time(22, 12, 55, 99999)

for fold in [0, 1]:
for macro in [0, 1]:
for macro in False, True:
with self.subTest(macro=macro, fold=fold):
c_api_time = _testcapi.get_time_fromtimeandfold(
macro,
Expand All @@ -6241,7 +6241,7 @@ def test_time_from_timeandfold(self):
def test_delta_from_dsu(self):
exp_delta = timedelta(26, 55, 99999)

for macro in [0, 1]:
for macro in False, True:
with self.subTest(macro=macro):
c_api_delta = _testcapi.get_delta_fromdsu(
macro,
Expand All @@ -6254,7 +6254,7 @@ def test_delta_from_dsu(self):
def test_date_from_timestamp(self):
ts = datetime(1995, 4, 12).timestamp()

for macro in [0, 1]:
for macro in False, True:
with self.subTest(macro=macro):
d = _testcapi.get_date_fromtimestamp(int(ts), macro)

Expand All @@ -6272,7 +6272,7 @@ def test_datetime_from_timestamp(self):

from_timestamp = _testcapi.get_datetime_fromtimestamp
for case in cases:
for macro in [0, 1]:
for macro in False, True:
with self.subTest(case=case, macro=macro):
dtup, tzinfo, usetz = case
dt_orig = datetime(*dtup, tzinfo=tzinfo)
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/lock_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def f():
def test_timeout(self):
lock = self.locktype()
# Can't set timeout if not blocking
self.assertRaises(ValueError, lock.acquire, 0, 1)
self.assertRaises(ValueError, lock.acquire, False, 1)
# Invalid timeout values
self.assertRaises(ValueError, lock.acquire, timeout=-100)
self.assertRaises(OverflowError, lock.acquire, timeout=1e100)
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_builtin.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,8 @@ def test_compile(self):
bom = b'\xef\xbb\xbf'
compile(bom + b'print(1)\n', '', 'exec')
compile(source='pass', filename='?', mode='exec')
compile(dont_inherit=0, filename='tmp', source='0', mode='eval')
compile('pass', '?', dont_inherit=1, mode='exec')
compile(dont_inherit=False, filename='tmp', source='0', mode='eval')
compile('pass', '?', dont_inherit=True, mode='exec')
compile(memoryview(b"text"), "name", "exec")
self.assertRaises(TypeError, compile)
self.assertRaises(ValueError, compile, 'print(42)\n', '<string>', 'badmode')
Expand Down Expand Up @@ -1853,7 +1853,7 @@ def test_basic(self):
self.assertEqual(data, sorted(copy, key=lambda x: -x))
self.assertNotEqual(data, copy)
random.shuffle(copy)
self.assertEqual(data, sorted(copy, reverse=1))
self.assertEqual(data, sorted(copy, reverse=True))
self.assertNotEqual(data, copy)

def test_bad_arguments(self):
Expand Down
2 changes: 1 addition & 1 deletion Lib/test/test_ioctl.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def _check_ioctl_mutate_len(self, nbytes=None):
else:
buf.append(fill)
with open("/dev/tty", "rb") as tty:
r = fcntl.ioctl(tty, termios.TIOCGPGRP, buf, 1)
r = fcntl.ioctl(tty, termios.TIOCGPGRP, buf, True)
rpgrp = buf[0]
self.assertEqual(r, 0)
self.assertIn(rpgrp, ids)
Expand Down
6 changes: 3 additions & 3 deletions Lib/test/test_ordered_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -407,9 +407,9 @@ def test_move_to_end(self):
self.assertEqual(list(od), list('abcde'))
od.move_to_end('c')
self.assertEqual(list(od), list('abdec'))
od.move_to_end('c', 0)
od.move_to_end('c', False)
self.assertEqual(list(od), list('cabde'))
od.move_to_end('c', 0)
od.move_to_end('c', False)
self.assertEqual(list(od), list('cabde'))
od.move_to_end('e')
self.assertEqual(list(od), list('cabde'))
Expand All @@ -418,7 +418,7 @@ def test_move_to_end(self):
with self.assertRaises(KeyError):
od.move_to_end('x')
with self.assertRaises(KeyError):
od.move_to_end('x', 0)
od.move_to_end('x', False)

def test_move_to_end_issue25406(self):
OrderedDict = self.OrderedDict
Expand Down
16 changes: 8 additions & 8 deletions Lib/test/test_unicode.py
Original file line number Diff line number Diff line change
Expand Up @@ -2820,15 +2820,15 @@ def test_asucs4(self):
for s in ['abc', '\xa1\xa2', '\u4f60\u597d', 'a\U0001f600',
'a\ud800b\udfffc', '\ud834\udd1e']:
l = len(s)
self.assertEqual(unicode_asucs4(s, l, 1), s+'\0')
self.assertEqual(unicode_asucs4(s, l, 0), s+'\uffff')
self.assertEqual(unicode_asucs4(s, l+1, 1), s+'\0\uffff')
self.assertEqual(unicode_asucs4(s, l+1, 0), s+'\0\uffff')
self.assertRaises(SystemError, unicode_asucs4, s, l-1, 1)
self.assertRaises(SystemError, unicode_asucs4, s, l-2, 0)
self.assertEqual(unicode_asucs4(s, l, True), s+'\0')
self.assertEqual(unicode_asucs4(s, l, False), s+'\uffff')
self.assertEqual(unicode_asucs4(s, l+1, True), s+'\0\uffff')
self.assertEqual(unicode_asucs4(s, l+1, False), s+'\0\uffff')
self.assertRaises(SystemError, unicode_asucs4, s, l-1, True)
self.assertRaises(SystemError, unicode_asucs4, s, l-2, False)
s = '\0'.join([s, s])
self.assertEqual(unicode_asucs4(s, len(s), 1), s+'\0')
self.assertEqual(unicode_asucs4(s, len(s), 0), s+'\uffff')
self.assertEqual(unicode_asucs4(s, len(s), True), s+'\0')
self.assertEqual(unicode_asucs4(s, len(s), False), s+'\uffff')

# Test PyUnicode_AsUTF8()
@support.cpython_only
Expand Down
2 changes: 1 addition & 1 deletion Lib/threading.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ def _acquire_restore(self, x):
def _is_owned(self):
# Return True if lock is owned by current_thread.
# This method is called only if _lock doesn't have _is_owned().
if self._lock.acquire(0):
if self._lock.acquire(False):
self._lock.release()
return False
else:
Expand Down
6 changes: 3 additions & 3 deletions Lib/tkinter/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2241,7 +2241,7 @@ class Tk(Misc, Wm):
_w = '.'

def __init__(self, screenName=None, baseName=None, className='Tk',
useTk=1, sync=0, use=None):
useTk=True, sync=False, use=None):
"""Return a new Toplevel widget on screen SCREENNAME. A new Tcl interpreter will
be created. BASENAME will be used for the identification of the profile file (see
readprofile).
Expand All @@ -2259,7 +2259,7 @@ def __init__(self, screenName=None, baseName=None, className='Tk',
baseName, ext = os.path.splitext(baseName)
if ext not in ('.py', '.pyc'):
baseName = baseName + ext
interactive = 0
interactive = False
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
if useTk:
self._loadtk()
Expand Down Expand Up @@ -2361,7 +2361,7 @@ def __getattr__(self, attr):
# copied into the Pack, Place or Grid class.


def Tcl(screenName=None, baseName=None, className='Tk', useTk=0):
def Tcl(screenName=None, baseName=None, className='Tk', useTk=False):
return Tk(screenName, baseName, className, useTk)


Expand Down
10 changes: 6 additions & 4 deletions Modules/_io/_iomodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -383,8 +383,10 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
encoding = "utf-8";
}
#endif
raw = PyObject_CallFunction(RawIO_class,
"OsiO", path_or_fd, rawmode, closefd, opener);
raw = PyObject_CallFunction(RawIO_class, "OsOO",
path_or_fd, rawmode,
closefd ? Py_True : Py_False,
opener);
}

if (raw == NULL)
Expand Down Expand Up @@ -476,10 +478,10 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,

/* wraps into a TextIOWrapper */
wrapper = PyObject_CallFunction((PyObject *)&PyTextIOWrapper_Type,
"Osssi",
"OsssO",
buffer,
encoding, errors, newline,
line_buffering);
line_buffering ? Py_True : Py_False);
if (wrapper == NULL)
goto error;
result = wrapper;
Expand Down
4 changes: 2 additions & 2 deletions Modules/_io/stringio.c
Original file line number Diff line number Diff line change
Expand Up @@ -714,9 +714,9 @@ _io_StringIO___init___impl(stringio *self, PyObject *value,
}

if (self->readuniversal) {
self->decoder = PyObject_CallFunction(
self->decoder = PyObject_CallFunctionObjArgs(
(PyObject *)&PyIncrementalNewlineDecoder_Type,
"Oi", Py_None, (int) self->readtranslate);
Py_None, self->readtranslate ? Py_True : Py_False, NULL);
if (self->decoder == NULL)
return -1;
}
Expand Down
10 changes: 5 additions & 5 deletions Modules/_io/textio.c
Original file line number Diff line number Diff line change
Expand Up @@ -880,9 +880,9 @@ _textiowrapper_set_decoder(textio *self, PyObject *codec_info,
return -1;

if (self->readuniversal) {
PyObject *incrementalDecoder = PyObject_CallFunction(
PyObject *incrementalDecoder = PyObject_CallFunctionObjArgs(
(PyObject *)&PyIncrementalNewlineDecoder_Type,
"Oi", self->decoder, (int)self->readtranslate);
self->decoder, self->readtranslate ? Py_True : Py_False, NULL);
if (incrementalDecoder == NULL)
return -1;
Py_CLEAR(self->decoder);
Expand Down Expand Up @@ -2591,8 +2591,8 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
}
Py_XSETREF(self->snapshot, snapshot);

decoded = _PyObject_CallMethodId(self->decoder, &PyId_decode,
"Oi", input_chunk, (int)cookie.need_eof);
decoded = _PyObject_CallMethodIdObjArgs(self->decoder, &PyId_decode,
input_chunk, cookie.need_eof ? Py_True : Py_False, NULL);

if (check_decoded(decoded) < 0)
goto fail;
Expand Down Expand Up @@ -2819,7 +2819,7 @@ _io_TextIOWrapper_tell_impl(textio *self)
if (input == input_end) {
/* We didn't get enough decoded data; signal EOF to get more. */
PyObject *decoded = _PyObject_CallMethodId(
self->decoder, &PyId_decode, "yi", "", /* final = */ 1);
self->decoder, &PyId_decode, "yO", "", /* final = */ Py_True);
if (check_decoded(decoded) < 0)
goto fail;
chars_decoded += PyUnicode_GET_LENGTH(decoded);
Expand Down
6 changes: 3 additions & 3 deletions Modules/itertoolsmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1059,10 +1059,10 @@ cycle_reduce(cycleobject *lz, PyObject *Py_UNUSED(ignored))
}
Py_DECREF(res);
}
return Py_BuildValue("O(N)(Oi)", Py_TYPE(lz), it, lz->saved, 1);
return Py_BuildValue("O(N)(OO)", Py_TYPE(lz), it, lz->saved, Py_True);
}
return Py_BuildValue("O(O)(Oi)", Py_TYPE(lz), lz->it, lz->saved,
lz->firstpass);
return Py_BuildValue("O(O)(OO)", Py_TYPE(lz), lz->it, lz->saved,
lz->firstpass ? Py_True : Py_False);
}

static PyObject *
Expand Down
2 changes: 1 addition & 1 deletion Modules/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ pymain_run_module(const wchar_t *modname, int set_argv0)
Py_DECREF(runmodule);
return pymain_exit_err_print();
}
runargs = Py_BuildValue("(Oi)", module, set_argv0);
runargs = PyTuple_Pack(2, module, set_argv0 ? Py_True : Py_False);
if (runargs == NULL) {
fprintf(stderr,
"Could not create arguments for runpy._run_module_as_main\n");
Expand Down
11 changes: 3 additions & 8 deletions Modules/parsermodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1080,25 +1080,20 @@ parser__pickler(PyObject *self, PyObject *args)
NOTE(ARGUNUSED(self))
PyObject *result = NULL;
PyObject *st = NULL;
PyObject *empty_dict = NULL;

if (PyArg_ParseTuple(args, "O!:_pickler", &PyST_Type, &st)) {
PyObject *newargs;
PyObject *tuple;

if ((empty_dict = PyDict_New()) == NULL)
goto finally;
if ((newargs = Py_BuildValue("Oi", st, 1)) == NULL)
goto finally;
tuple = parser_st2tuple((PyST_Object*)NULL, newargs, empty_dict);
if ((newargs = PyTuple_Pack(2, st, Py_True)) == NULL)
return NULL;
tuple = parser_st2tuple((PyST_Object*)NULL, newargs, NULL);
if (tuple != NULL) {
result = Py_BuildValue("O(O)", pickle_constructor, tuple);
Py_DECREF(tuple);
}
Py_DECREF(newargs);
}
finally:
Py_XDECREF(empty_dict);

return (result);
}
Expand Down
4 changes: 2 additions & 2 deletions Objects/fileobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ PyFile_FromFd(int fd, const char *name, const char *mode, int buffering, const c
io = PyImport_ImportModule("_io");
if (io == NULL)
return NULL;
stream = _PyObject_CallMethodId(io, &PyId_open, "isisssi", fd, mode,
stream = _PyObject_CallMethodId(io, &PyId_open, "isisssO", fd, mode,
buffering, encoding, errors,
newline, closefd);
newline, closefd ? Py_True : Py_False);
Py_DECREF(io);
if (stream == NULL)
return NULL;
Expand Down
Loading