diff options
author | Guido van Rossum <guido@python.org> | 2002-04-03 22:41:51 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2002-04-03 22:41:51 (GMT) |
commit | 77f6a65eb00f005939c6c7c5d6ac0f037a0ce1bd (patch) | |
tree | e92163095e7ae548c36cea459dad87db74a413ef /Lib/pickle.py | |
parent | e9c0358bf45bd6e0fe0b17720b41d20d618e6d9d (diff) | |
download | cpython-77f6a65eb00f005939c6c7c5d6ac0f037a0ce1bd.zip cpython-77f6a65eb00f005939c6c7c5d6ac0f037a0ce1bd.tar.gz cpython-77f6a65eb00f005939c6c7c5d6ac0f037a0ce1bd.tar.bz2 |
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.
Diffstat (limited to 'Lib/pickle.py')
-rw-r--r-- | Lib/pickle.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/pickle.py b/Lib/pickle.py index 21ea215..96ee5c1 100644 --- a/Lib/pickle.py +++ b/Lib/pickle.py @@ -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: |