3e73a01 | Fredrik Lundh | 13 October 2004, 18:19:18 UTC | Replace dynamic try/except with "if 0", to keep py2exe happy. If you want to use pywin32 instead of _subprocess, you have to edit the file. | 13 October 2004, 18:19:18 UTC |
22dcf66 | Anthony Baxter | 13 October 2004, 15:54:17 UTC | Patch 983206: distutils obeys LDSHARED env var. Removed the code in Python's own setup.py that did the same thing (and tested on Solaris, where LDSHARED is needed...) | 13 October 2004, 15:54:17 UTC |
8a560de | Anthony Baxter | 13 October 2004, 15:30:56 UTC | Patch 977343, Solaris likes sys/loadavg.h. Added support for sys/loadavg.h detection to configure &c. | 13 October 2004, 15:30:56 UTC |
e4f8a48 | Anthony Baxter | 13 October 2004, 14:55:56 UTC | 969574 | 13 October 2004, 14:55:56 UTC |
9ceaa72 | Anthony Baxter | 13 October 2004, 14:48:50 UTC | Patch #975056 - fixes for restartable signals on *BSD. In addition, a few remaining calls to signal() were converted to PyOS_setsig(). | 13 October 2004, 14:48:50 UTC |
7d42878 | Jim Fulton | 13 October 2004, 14:15:32 UTC | Fixed a small bug. doctest didn't handle unicode docstrings containing non-ascii characters. | 13 October 2004, 14:15:32 UTC |
73cc847 | Anthony Baxter | 13 October 2004, 13:22:34 UTC | oops. how did _that_ happen? | 13 October 2004, 13:22:34 UTC |
f2113f0 | Anthony Baxter | 13 October 2004, 12:35:28 UTC | Backing out the basic dependency checking (from pycon sprint). This support was only a first cut, and doesn't deserve to be in a released version (where we have to support it in an ongoing manner) | 13 October 2004, 12:35:28 UTC |
9e29fc5 | Fredrik Lundh | 13 October 2004, 07:54:54 UTC | Don't spend quite as much time looking for leaks on Windows, where it's rather expensive to create new processes. | 13 October 2004, 07:54:54 UTC |
59c0559 | Fredrik Lundh | 13 October 2004, 06:55:40 UTC | normalize case when comparing directory names (problem reported by "Khalid A. B." on python-dev) | 13 October 2004, 06:55:40 UTC |
7069c31 | Fredrik Lundh | 13 October 2004, 06:48:37 UTC | removed info@pythonware.com reference (should probably remove all traces of _xmlrpclib, but I'll leave that for another day.) | 13 October 2004, 06:48:37 UTC |
f7e74b7 | Martin v. Löwis | 13 October 2004, 05:29:39 UTC | Add a comment explaining -kb. | 13 October 2004, 05:29:39 UTC |
3761e8d | Tim Peters | 13 October 2004, 04:07:12 UTC | New helper remove_stderr_debug_decorations(). This test passes in a debug build on Windows now. More applications of the helper may be needed on non-Windows platforms. | 13 October 2004, 04:07:12 UTC |
29b6b4f | Tim Peters | 13 October 2004, 03:43:40 UTC | Kill several problems at once: test_poll() failed sometimes for me. Turns out the mysterious "expected output" file contained exactly N dots, because test_poll() has a loop that *usually* went around N times, printing one dot on each loop trip. But there's no guarantee of that, because the exact value of N depended on the vagaries of scheduling time.sleep()s across two different processes. So stopped printing dots, and got rid of the expected output file. Add a loop counter instead, and verify that the loop goes around at least a couple of times. Also cut the minimum time needed for this test from 4 seconds to 1. | 13 October 2004, 03:43:40 UTC |
4052fe5 | Tim Peters | 13 October 2004, 03:29:54 UTC | test_stdout_none(): Don't print "banana" to the screen in the middle of the test. It's testing stdout in a different process, so it has to print something, but I didn't find "banana" to be self-explanatory. | 13 October 2004, 03:29:54 UTC |
876c432 | Tim Peters | 13 October 2004, 03:21:35 UTC | Windows test_creationflags() test: print msg to stderr informing the tester that a DOS box is expected to flash. Slash the sleep from 2 seconds to a quarter second (why would we want to wait 2 seconds just to stare at a DOS box?). | 13 October 2004, 03:21:35 UTC |
e8374a5 | Tim Peters | 13 October 2004, 03:15:00 UTC | Folded long lines. | 13 October 2004, 03:15:00 UTC |
f73cc97 | Tim Peters | 13 October 2004, 03:14:40 UTC | XXX about extreme expense of test_no_leaking() on Windows. I'm not sure what this is trying to do. If it's necessary for it to create > 1000 processes, it should be controlled by a new resource and not run by default on Windows. | 13 October 2004, 03:14:40 UTC |
7b759da | Tim Peters | 12 October 2004, 22:29:54 UTC | Experience with Zope2's tests showed it's a Bad Idea to make unittest display a test's docstring as "the name" of the test. So changed most test docstrings to comments, and removed the clearly useless ones. Now unittest reports the actual names of the test methods. | 12 October 2004, 22:29:54 UTC |
3b01a70 | Tim Peters | 12 October 2004, 22:19:32 UTC | Wrap long lines. | 12 October 2004, 22:19:32 UTC |
e718f61 | Tim Peters | 12 October 2004, 21:51:32 UTC | Whitespace normalization. | 12 October 2004, 21:51:32 UTC |
4eb5978 | Tim Peters | 12 October 2004, 21:48:57 UTC | Supply the _subprocess module under 7.1. I'm not sure what the status of this should be on non-WIN32 Windows variants. | 12 October 2004, 21:48:57 UTC |
f3250b0 | Tim Peters | 12 October 2004, 21:38:22 UTC | Before this turns into an unreadable mess, follow PEP 7 by using hard tab indents in C code. | 12 October 2004, 21:38:22 UTC |
25b38c8 | Johannes Gijsbers | 12 October 2004, 18:12:09 UTC | Improvements when running pdb as a script. Bug fixes: * Use fresh copy of globals/locals so the script being debugged can't access the pdb namespace (e.g.: p line_prefix will no longer work). * Remove pdb.py's path from sys.path. Having it in there is normally not a problem, but it could prove irritating when messing with PYTHONPATH or invoking pdb via /usr/bin/pdf. * You can now set a breakpoint on the script being debugged, even if the script doesn't end with a '.py' extension. Also, setting breakpoints with absolute paths now works reliably. Enhancements: * Go directly to the first line of the script. * Enter post-mortem debugging if the script being debugged doesn't catch an exception. * Restart the script being debugged and preserve debugger state when the script being debugged exits. Cleanup: * Moved the __main__ method into a main() function. * Kill the (undocumented, not in __all__) mainmodule/mainpyfile globals, add a mainpyfile attribute to pdb. Thanks Ilya Sandler for the patch! | 12 October 2004, 18:12:09 UTC |
51ee66e | Andrew M. Kuchling | 12 October 2004, 16:38:42 UTC | Typo fix | 12 October 2004, 16:38:42 UTC |
b6ffc27 | Andrew M. Kuchling | 12 October 2004, 16:36:57 UTC | Finish off PEP 324 section; fix Peter's last name | 12 October 2004, 16:36:57 UTC |
c9e7d77 | Andrew M. Kuchling | 12 October 2004, 15:58:02 UTC | Start section for PEP 324 | 12 October 2004, 15:58:02 UTC |
518d393 | Andrew M. Kuchling | 12 October 2004, 15:32:10 UTC | Fix PEP number | 12 October 2004, 15:32:10 UTC |
5b3687d | Fredrik Lundh | 12 October 2004, 15:26:28 UTC | Added Peter Astrand's subprocess module. | 12 October 2004, 15:26:28 UTC |
abf8a56 | Raymond Hettinger | 12 October 2004, 09:12:16 UTC | Don't use mutable values for method defaults. | 12 October 2004, 09:12:16 UTC |
f3958f1 | Andrew M. Kuchling | 11 October 2004, 19:20:06 UTC | Add two items | 11 October 2004, 19:20:06 UTC |
9fc9789 | Johannes Gijsbers | 11 October 2004, 18:12:20 UTC | Document that on Unix, the 'cmd' argument to the os.popen2/3/4 and popen2.popen2/3/4 functions can be a sequence. All texts are a variation on the following: On \UNIX, \var{cmd} may be a sequence, in which case arguments will be passed directly to the program without shell intervention (as with \function{os.spawnv()}). If \var{cmd} is a string it will be passed to the shell (as with \function{os.system()}). | 11 October 2004, 18:12:20 UTC |
c054a8b | Michael W. Hudson | 11 October 2004, 15:35:53 UTC | This is jiwon's patch to fix: [ 1042238 ] Lib/compiler chokes on certain genexps | 11 October 2004, 15:35:53 UTC |
29589a0 | Michael W. Hudson | 11 October 2004, 15:34:31 UTC | Open source files in universal newlines mode. | 11 October 2004, 15:34:31 UTC |
418de1f | Barry Warsaw | 11 October 2004, 14:32:47 UTC | Added note about the new usegmt argument to email.Utils.formatdate(). | 11 October 2004, 14:32:47 UTC |
3dd9e46 | Anthony Baxter | 11 October 2004, 13:53:08 UTC | Added a usegmt flag to email.Utils.formatdate - this allows it to be used to replace rfc822.formatdate for protocols like HTTP (where 'GMT' must be the timezone string). | 11 October 2004, 13:53:08 UTC |
7f468f2 | Tim Peters | 11 October 2004, 02:40:51 UTC | SF patch 1044089: New C API function PyEval_ThreadsInitialized(), by Nick Coghlan, for determining whether PyEval_InitThreads() has been called. Also purged the undocumented+unused _PyThread_Started int. | 11 October 2004, 02:40:51 UTC |
89c0ec9 | Tim Peters | 10 October 2004, 05:30:40 UTC | Revert rev 2.35. It was based on erroneous reasoning -- the current thread's id can't get duplicated, because (of course!) the current thread is still running. The code should work either way, but reverting the gratuitous change should make backporting easier, and gets the bad reasoning out of 2.35's new comments. | 10 October 2004, 05:30:40 UTC |
8470558 | Tim Peters | 10 October 2004, 02:47:33 UTC | PyInterpreterState_New(), PyThreadState_New(): use malloc/free directly. This appears to finish repairs for SF bug 1041645. This is a critical bugfix. | 10 October 2004, 02:47:33 UTC |
263091e | Tim Peters | 10 October 2004, 01:58:44 UTC | find_key(): This routine wasn't thread-correct, and accounts for the release-build failures noted in bug 1041645. This is a critical bugfix. I'm not going to backport it, though (no time). | 10 October 2004, 01:58:44 UTC |
5c14e64 | Tim Peters | 09 October 2004, 23:55:36 UTC | PyGILState_Release(): If we need to delete the TLS entry for this thread, that must be done under protection of the GIL, for reasons explained in new comments. | 09 October 2004, 23:55:36 UTC |
2294bfc | Barry Warsaw | 09 October 2004, 23:01:11 UTC | All known bugs are closed, and Python 2.4b1 is coming out soon, so bump email's version number to 3.0b1. | 09 October 2004, 23:01:11 UTC |
dee0cf1 | Barry Warsaw | 09 October 2004, 23:00:11 UTC | Fix SF bug # 1030941. In _parsegen(), in the clause where we're capturing_preamble but we found a StartBoundaryNotFoundDefect, we need to consume all lines from the current position to the EOF, which we'll set as the epilogue of the current message. If we're not at EOF when we return from here, the outer message's capturing_preamble assertion will fail. | 09 October 2004, 23:00:11 UTC |
6bd55ee | Barry Warsaw | 09 October 2004, 22:57:57 UTC | An example message for SF bug # 1030941. | 09 October 2004, 22:57:57 UTC |
83f1a1b | Barry Warsaw | 09 October 2004, 22:57:33 UTC | test_missing_start_boundary(): A test for SF bug # 1030941. | 09 October 2004, 22:57:33 UTC |
f9becec | Tim Peters | 09 October 2004, 22:47:13 UTC | _PyGILState_Init(), PyGILState_Ensure(): Since PyThread_set_key_value() can fail, check its return value, and die if it does fail. _PyGILState_Init(): Assert that the thread doesn't already have an association for autoTLSkey. If it does, PyThread_set_key_value() will ignore the attempt to (re)set the association, which the code clearly doesn't want. | 09 October 2004, 22:47:13 UTC |
fda787f | Tim Peters | 09 October 2004, 22:33:09 UTC | Document the results of painful reverse-engineering of the "portable TLS" code. PyThread_set_key_value(): It's clear that this code assumes the passed-in value isn't NULL, so document that it must not be, and assert that it isn't. It remains unclear whether existing callers want the odd semantics actually implemented by this function. | 09 October 2004, 22:33:09 UTC |
f267b62 | Barry Warsaw | 09 October 2004, 21:44:13 UTC | Fix for SF bug # 1010102. The default is PureProxy not SMTPProxy. | 09 October 2004, 21:44:13 UTC |
ea7c7af | Barry Warsaw | 09 October 2004, 21:08:30 UTC | __init__(): Coerce the input_charset to unicode (with ascii encoding) before calling .lower() on it. This fixes the problem described in SF patch # 866982 where in the tr_TR.ISO-8859-9 locale, 'I'.lower() isn't 'i'. unicodes are locale insensitive. | 09 October 2004, 21:08:30 UTC |
19717fa | Tim Peters | 09 October 2004, 17:38:29 UTC | Style guide & consistency changes. No semantic changes. | 09 October 2004, 17:38:29 UTC |
4c1f5ec | Tim Peters | 09 October 2004, 17:25:05 UTC | Trim trailing whitespace. | 09 October 2004, 17:25:05 UTC |
dcb9d94 | Raymond Hettinger | 09 October 2004, 16:02:18 UTC | Simplify delitem() code by calling rotate() directly instead of using arguments passed through tuples. | 09 October 2004, 16:02:18 UTC |
7126976 | Johannes Gijsbers | 09 October 2004, 15:52:04 UTC | Patch #1042969: add closing brace for \token {generator_expression}. Thanks George Yoshida! | 09 October 2004, 15:52:04 UTC |
dab988d | Raymond Hettinger | 09 October 2004, 07:10:44 UTC | SF patch #1043218 Simplify internal calls and logic for _fix() and _fixexponents(). (Contributed by Facundo Batista.) | 09 October 2004, 07:10:44 UTC |
7a8ce5a | Andrew M. Kuchling | 08 October 2004, 18:48:43 UTC | [Bug #1022311] curses module uses y,x ordering of arguments, not x,y | 08 October 2004, 18:48:43 UTC |
293dc9d | Andrew M. Kuchling | 08 October 2004, 18:34:47 UTC | [Bug #1041501] Fix example code | 08 October 2004, 18:34:47 UTC |
cebdd3c | Andrew M. Kuchling | 08 October 2004, 18:29:29 UTC | [Bug #1031897] Fix order of decorator application | 08 October 2004, 18:29:29 UTC |
c09acfd | Piers Lauder | 08 October 2004, 04:05:39 UTC | Fix bug in _checkquote that raised an exception on empty "arg". | 08 October 2004, 04:05:39 UTC |
77d110d | Raymond Hettinger | 08 October 2004, 01:52:15 UTC | SF patch #1041364: True/False instead of 1/0 in libstdtypes.tex (Contributed by Gerrit Holl. Reviewed by Jeff Epler.) | 08 October 2004, 01:52:15 UTC |
7db385e | Johannes Gijsbers | 07 October 2004, 21:10:08 UTC | Rewrite rmtree using os.walk to fix bug #1025127: The shutils.rmtree() implementation uses an excessive amount of memory when deleting large directory hierarchies. Before actually deleting any files, it builds up a list of (function, filename) tuples for all the files that it is going to remove. | 07 October 2004, 21:10:08 UTC |
8da2b01 | Michael W. Hudson | 07 October 2004, 13:46:33 UTC | This is Michiel de Hoon's patch, as attached to the bug report: [ 1030629 ] PyOS_InputHook broken with a couple of utterly inconsequential changes by me. | 07 October 2004, 13:46:33 UTC |
3afe4f3 | Andrew M. Kuchling | 07 October 2004, 12:30:54 UTC | Add helpful comment | 07 October 2004, 12:30:54 UTC |
6f59325 | Andrew M. Kuchling | 07 October 2004, 12:27:31 UTC | Take out Guido's name and put in the PSF | 07 October 2004, 12:27:31 UTC |
895f245 | Andrew M. Kuchling | 07 October 2004, 12:23:12 UTC | Update two URLs | 07 October 2004, 12:23:12 UTC |
166e625 | Andrew M. Kuchling | 07 October 2004, 12:04:50 UTC | Add -m to man page | 07 October 2004, 12:04:50 UTC |
5e3f923 | Andrew M. Kuchling | 07 October 2004, 12:00:33 UTC | Add item | 07 October 2004, 12:00:33 UTC |
db29e0f | Raymond Hettinger | 07 October 2004, 06:46:25 UTC | SF patch #1035498: -m option to run a module as a script (Contributed by Nick Coghlan.) | 07 October 2004, 06:46:25 UTC |
fb09f0e | Raymond Hettinger | 07 October 2004, 03:58:07 UTC | Finalize the freelist of list objects. | 07 October 2004, 03:58:07 UTC |
ffa5cf9 | Brett Cannon | 06 October 2004, 22:48:58 UTC | Fix bug introduced by the previous patch by changing TimeRE.__seqToRe() to accept any iterable instead of only a sliceable object. | 06 October 2004, 22:48:58 UTC |
c5fa992 | Raymond Hettinger | 06 October 2004, 17:51:54 UTC | Armin's patch to prevent overflows. | 06 October 2004, 17:51:54 UTC |
f7948c2 | Brett Cannon | 06 October 2004, 02:23:14 UTC | Convert a listcomp to a gencomp (was already editing code). | 06 October 2004, 02:23:14 UTC |
4f35c71 | Brett Cannon | 06 October 2004, 02:11:37 UTC | Locale data that contains regex metacharacters are now properly escaped. Closes bug #1039270. | 06 October 2004, 02:11:37 UTC |
579b3e2 | Andrew M. Kuchling | 05 October 2004, 20:23:34 UTC | Add some items | 05 October 2004, 20:23:34 UTC |
29978ae | Tim Peters | 04 October 2004, 03:34:32 UTC | The docs claimed a test would pass that actually wouldn't pass. Repaired the example so it does pass. | 04 October 2004, 03:34:32 UTC |
b9b5f16 | Brett Cannon | 03 October 2004, 23:21:44 UTC | Fix a small typo in the docstring for system_methodSignature . Closes bug #1038935. Thanks Malte Helmert for spotting it. | 03 October 2004, 23:21:44 UTC |
e7d4066 | Vinay Sajip | 03 October 2004, 19:12:07 UTC | Changes made to maintain 1.5.2 compatibility. | 03 October 2004, 19:12:07 UTC |
2d5fee0 | Vinay Sajip | 03 October 2004, 19:10:53 UTC | Version number updated to 0.4.9.5 | 03 October 2004, 19:10:53 UTC |
1dc5b1e | Vinay Sajip | 03 October 2004, 19:10:05 UTC | Clarified documentation about exc_info keyword parameter | 03 October 2004, 19:10:05 UTC |
130e37f | Tim Peters | 03 October 2004, 19:03:19 UTC | Read the text files to be compared in universal-newline mode. | 03 October 2004, 19:03:19 UTC |
ab9b32c | Tim Peters | 03 October 2004, 18:35:19 UTC | Whitespace normalization. | 03 October 2004, 18:35:19 UTC |
dd3c837 | Just van Rossum | 03 October 2004, 16:27:09 UTC | added plistlib news item | 03 October 2004, 16:27:09 UTC |
1cbf206 | David Goodger | 03 October 2004, 15:55:09 UTC | SF bug #997050: Document, test, & check for non-string values in ConfigParser. Moved the new string-only restriction added in rev. 1.65 to the SafeConfigParser class, leaving existing ConfigParser & RawConfigParser behavior alone, and documented the conditions under which non-string values work. | 03 October 2004, 15:55:09 UTC |
68a1abd | David Goodger | 03 October 2004, 15:40:25 UTC | SF bug #1017864: ConfigParser now correctly handles default keys, processing them with ``ConfigParser.optionxform`` when supplied, consistent with the handling of config file entries and runtime-set options. | 03 October 2004, 15:40:25 UTC |
bfe5684 | Michael W. Hudson | 03 October 2004, 09:41:26 UTC | typo | 03 October 2004, 09:41:26 UTC |
507a485 | Martin v. Löwis | 03 October 2004, 08:51:35 UTC | Print verbose messages to stderr. Fixes #1036752. | 03 October 2004, 08:51:35 UTC |
fec1ce0 | Andrew MacIntyre | 03 October 2004, 08:29:55 UTC | remove rotor module | 03 October 2004, 08:29:55 UTC |
3dac89e | Andrew MacIntyre | 03 October 2004, 08:26:36 UTC | note module removals, update on BitTorrent issue | 03 October 2004, 08:26:36 UTC |
96b3725 | Andrew MacIntyre | 03 October 2004, 08:11:30 UTC | bring modules up to date, correct .DEF file version | 03 October 2004, 08:11:30 UTC |
1b64359 | Barry Warsaw | 03 October 2004, 04:02:43 UTC | Fix test for FeedParser results. | 03 October 2004, 04:02:43 UTC |
8df5921 | Barry Warsaw | 03 October 2004, 03:58:01 UTC | Blarg, fix the versions. | 03 October 2004, 03:58:01 UTC |
43790b4 | Barry Warsaw | 03 October 2004, 03:57:37 UTC | Updates for distutils package. | 03 October 2004, 03:57:37 UTC |
2ec4854 | Barry Warsaw | 03 October 2004, 03:39:47 UTC | Add documentation about as_string() mangling From_ lines. | 03 October 2004, 03:39:47 UTC |
05bef93 | Barry Warsaw | 03 October 2004, 03:38:07 UTC | as_string(): Indicate that this mangles From_ lines. | 03 October 2004, 03:38:07 UTC |
bb11386 | Barry Warsaw | 03 October 2004, 03:16:19 UTC | Big email 3.0 API changes, with updated unit tests and documentation. Briefly (from the NEWS file): - Updates for the email package: + All deprecated APIs that in email 2.x issued warnings have been removed: _encoder argument to the MIMEText constructor, Message.add_payload(), Utils.dump_address_pair(), Utils.decode(), Utils.encode() + New deprecations: Generator.__call__(), Message.get_type(), Message.get_main_type(), Message.get_subtype(), the 'strict' argument to the Parser constructor. These will be removed in email 3.1. + Support for Python earlier than 2.3 has been removed (see PEP 291). + All defect classes have been renamed to end in 'Defect'. + Some FeedParser fixes; also a MultipartInvariantViolationDefect will be added to messages that claim to be multipart but really aren't. + Updates to documentation. | 03 October 2004, 03:16:19 UTC |
2cdd608 | Just van Rossum | 02 October 2004, 14:06:56 UTC | removed 2.2 support | 02 October 2004, 14:06:56 UTC |
16c3e08 | Just van Rossum | 02 October 2004, 14:06:18 UTC | use new readPlist() and writePlist() functions | 02 October 2004, 14:06:18 UTC |
974d757 | Armin Rigo | 02 October 2004, 13:59:34 UTC | Upon insertion, if memory runs out, the deque was left in a corrupted state. deque_item(): a performance bug: the linked list of blocks was followed from the left in most cases, because the test (i < (deque->len >> 1)) was after "i %= BLOCKLEN". deque_clear(): replaced a call to deque_len() with deque->len; not sure what this call was here for, nor if all compilers under the sun would inline it. deque_traverse(): I belive that it could be called by the GC when the deque has leftblock==rightblock==NULL, because it is tracked before the first block is allocated (though closely before). Still, a C extension module subclassing deque could provide its own tp_alloc that could trigger a GC collection after the PyObject_GC_Track()... deque_richcompare(): rewrote to cleanly check for end-of-iterations instead of relying on deque.__iter__().next() to succeed exactly len(deque) times -- an assumption which can break if deques are subclassed. Added a test. I wonder if the length should be explicitely bounded to INT_MAX, with OverflowErrors, as in listobject.c. On 64-bit machines, adding more than INT_MAX in the deque will result in trouble. (Note to anyone/me fixing this: carefully check for overflows if len is close to INT_MAX in the following functions: deque_rotate(), deque_item(), deque_ass_item()) | 02 October 2004, 13:59:34 UTC |
565ea5a | Raymond Hettinger | 02 October 2004, 11:02:59 UTC | SF bug#1038917 fix typos (Contributed by George Yoshida.) | 02 October 2004, 11:02:59 UTC |
880430e | Raymond Hettinger | 02 October 2004, 10:56:43 UTC | Replace structure member before decreffing. | 02 October 2004, 10:56:43 UTC |
4c3d054 | Just van Rossum | 02 October 2004, 08:40:47 UTC | Which reminds me, I've had a much improved plistlib.py lying around for ages. The main improvements are: - a much more convenient API: readPlist() and writePlist() - support non-dict top-level objects | 02 October 2004, 08:40:47 UTC |