summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/plat-mac/plistlib.py77
1 files changed, 3 insertions, 74 deletions
diff --git a/Lib/plat-mac/plistlib.py b/Lib/plat-mac/plistlib.py
index b4db635..d34c8e3 100644
--- a/Lib/plat-mac/plistlib.py
+++ b/Lib/plat-mac/plistlib.py
@@ -11,8 +11,6 @@ filename or a (writable) file object.
To parse a plist from a file, use the readPlist(pathOrFile)
function, with a file name or a (readable) file object as the only
argument. It returns the top level object (usually a dictionary).
-(Warning: you need pyexpat installed for this to work, ie. it doesn't
-work with a vanilla Python 2.2 as shipped with MacOS X.2.)
Values can be strings, integers, floats, booleans, tuples, lists,
dictionaries, Data or Date objects. String values (including dictionary
@@ -23,10 +21,6 @@ construct (nested) dicts using keyword arguments as well as accessing
values with attribute notation, where d.foo is equivalent to d["foo"].
Regular dictionaries work, too.
-To support Boolean values in plists with Python < 2.3, "bool", "True"
-and "False" are exported. Use these symbols from this module if you
-want to be compatible with Python 2.2.x (strongly recommended).
-
The <data> plist type is supported through the Data class. This is a
thin wrapper around a Python string.
@@ -63,10 +57,8 @@ Parse Plist example:
"""
-__all__ = ["readPlist", "writePlist", "Plist", "Data", "Date", "Dict",
- "False", "True", "bool"]
-# Note: the Plist class has been deprecated, Dict, False, True and bool
-# are here only for compatibility with Python 2.2.
+__all__ = ["readPlist", "writePlist", "Plist", "Data", "Date", "Dict"]
+# Note: the Plist class has been deprecated.
def readPlist(pathOrFile):
@@ -215,7 +207,7 @@ class Dict(dict):
"""Convenience dictionary subclass: it allows dict construction using
keyword arguments (just like dict() in 2.3) as well as attribute notation
- to retrieve values, making d.foo more or less uquivalent to d["foo"].
+ to retrieve values, making d.foo equivalent to d["foo"].
"""
def __new__(cls, **kwargs):
@@ -400,66 +392,3 @@ class PlistParser:
self.addObject(Data.fromBase64(self.getData()))
def end_date(self):
self.addObject(Date(self.getData()))
-
-
-# cruft to support booleans in Python <= 2.3
-import sys
-if sys.version_info[:2] < (2, 3):
- # Python 2.2 and earlier: no booleans
- # Python 2.2.x: booleans are ints
- class bool(int):
- """Imitation of the Python 2.3 bool object."""
- def __new__(cls, value):
- return int.__new__(cls, not not value)
- def __repr__(self):
- if self:
- return "True"
- else:
- return "False"
- True = bool(1)
- False = bool(0)
-else:
- # Bind the boolean builtins to local names
- True = True
- False = False
- bool = bool
-
-
-if __name__ == "__main__":
- from StringIO import StringIO
- import time
- if len(sys.argv) == 1:
- pl = Dict(
- aString="Doodah",
- aList=["A", "B", 12, 32.1, [1, 2, 3]],
- aFloat = 0.1,
- anInt = 728,
- aDict=Dict(
- anotherString="<hello & hi there!>",
- aUnicodeValue=u'M\xe4ssig, Ma\xdf',
- aTrueValue=True,
- aFalseValue=False,
- ),
- someData = Data("<binary gunk>"),
- someMoreData = Data("<lots of binary gunk>" * 10),
-# aDate = Date(time.mktime(time.gmtime())),
- )
- elif len(sys.argv) == 2:
- pl = readPlist(sys.argv[1])
- else:
- print "Too many arguments: at most 1 plist file can be given."
- sys.exit(1)
-
- # unicode keys are possible, but a little awkward to use:
- pl[u'\xc5benraa'] = "That was a unicode key."
- f = StringIO()
- writePlist(pl, f)
- xml = f.getvalue()
- print xml
- f.seek(0)
- pl2 = readPlist(f)
- assert pl == pl2
- f = StringIO()
- writePlist(pl2, f)
- assert xml == f.getvalue()
- #print repr(pl2)