mirror of
https://github.com/python/cpython.git
synced 2025-10-09 08:31:26 +00:00
Add the 'bool' type and its values 'False' and 'True', as described in
PEP 285. Everything described in the PEP is here, and there is even some documentation. I had to fix 12 unit tests; all but one of these were printing Boolean outcomes that changed from 0/1 to False/True. (The exception is test_unicode.py, which did a type(x) == type(y) style comparison. I could've fixed that with a single line using issubtype(x, type(y)), but instead chose to be explicit about those places where a bool is expected. Still to do: perhaps more documentation; change standard library modules to return False/True from predicates.
This commit is contained in:
parent
e9c0358bf4
commit
77f6a65eb0
29 changed files with 489 additions and 378 deletions
|
@ -101,6 +101,9 @@ TUPLE = 't'
|
|||
EMPTY_TUPLE = ')'
|
||||
SETITEMS = 'u'
|
||||
BINFLOAT = 'G'
|
||||
TRUE = 'Z'
|
||||
FALSE = 'z'
|
||||
|
||||
|
||||
__all__.extend([x for x in dir() if re.match("[A-Z][A-Z0-9_]+$",x)])
|
||||
del x
|
||||
|
@ -256,6 +259,13 @@ class Pickler:
|
|||
self.write(NONE)
|
||||
dispatch[NoneType] = save_none
|
||||
|
||||
def save_bool(self, object):
|
||||
if object:
|
||||
self.write(TRUE)
|
||||
else:
|
||||
self.write(FALSE)
|
||||
dispatch[bool] = save_bool
|
||||
|
||||
def save_int(self, object):
|
||||
if self.bin:
|
||||
# If the int is small enough to fit in a signed 4-byte 2's-comp
|
||||
|
@ -629,6 +639,14 @@ class Unpickler:
|
|||
self.append(None)
|
||||
dispatch[NONE] = load_none
|
||||
|
||||
def load_false(self):
|
||||
self.append(False)
|
||||
dispatch[FALSE] = load_false
|
||||
|
||||
def load_true(self):
|
||||
self.append(True)
|
||||
dispatch[TRUE] = load_true
|
||||
|
||||
def load_int(self):
|
||||
data = self.readline()
|
||||
try:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue