[issue7427] BadStatusLine is hell to debug
Jake McGuire j...@youtube.com added the comment: I think what's happening is that your connection is being closed due to inactivity, so the status line that comes back is empty. Printing repr(line) would probably make the emptiness clear, but maybe the httplib code should put in a more specific message in this case... -- nosy: +jakemcguire ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7427 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue6790] httplib and array do not play together well
New submission from Jake McGuire j...@youtube.com: As of Python 2.6 you can no longer pass an array to httplib.HTTPConnection.send. Issue1065257 added code to httplib to attempt to determine whether a file-like object was passed to certain methods (e.g. send), and to stream the data if so. The patch uses hasattr(obj, 'read') as a proxy for is a file-like object. array.array objects have a method called read that is almost entirely disanalogous to the read method on a file-like object. Hilarity ensues. -- messages: 92015 nosy: jakemcguire severity: normal status: open title: httplib and array do not play together well type: behavior versions: Python 2.6 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6790 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Jake McGuire j...@youtube.com added the comment: This fell through the cracks. But the following unit test seems like it does the right thing (fails with the old module, works with the new ones). -- Added file: http://bugs.python.org/file13835/pickletester.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Jake McGuire j...@youtube.com added the comment: Ugh. Clearly I didn't check to see if it worked or not, as it didn't even compile. A new diff, tested and verified to work, is attached. I'll work on creating a test. Added file: http://bugs.python.org/file13178/cPickle.c.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Changes by Jake McGuire j...@youtube.com: Removed file: http://bugs.python.org/file12882/cPickle.c.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Changes by Jake McGuire j...@youtube.com: Removed file: http://bugs.python.org/file13169/cPickle.c.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Jake McGuire j...@youtube.com added the comment: The fromstring/asstring dance was due to my incomplete understanding of refcounting. PyDict_Next returns a borrowed reference but PyString_InternInPlace expects an owned reference. Thanks to Kirk McDonald, I have a new patch that does the refcounting correctly. What sort of test did you have in mind? Added file: http://bugs.python.org/file13169/cPickle.c.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
New submission from Jake McGuire j...@youtube.com: Instance attribute names are normally interned - this is done in PyObject_SetAttr (among other places). Unpickling (in pickle and cPickle) directly updates __dict__ on the instance object. This bypasses the interning so you end up with many copies of the strings representing your attribute names, which wastes a lot of space, both in RAM and in pickles of sequences of objects created from pickles. Note that the native python memcached client uses pickle to serialize objects. import pickle class C(object): ... def __init__(self, x): ... self.long_attribute_name = x ... len(pickle.dumps([pickle.loads(pickle.dumps(C(None), pickle.HIGHEST_PROTOCOL)) for i in range(100)], pickle.HIGHEST_PROTOCOL)) 3658 len(pickle.dumps([C(None) for i in range(100)], pickle.HIGHEST_PROTOCOL)) 1441 Interning the strings on unpickling makes the pickles smaller, and at least for cPickle actually makes unpickling sequences of many objects slightly faster. I have included proposed patches to cPickle.c and pickle.py, and would appreciate any feedback. -- components: Library (Lib) files: cPickle.c.diff keywords: patch messages: 80670 nosy: jakemcguire severity: normal status: open title: unpickling does not intern attribute names type: resource usage Added file: http://bugs.python.org/file12879/cPickle.c.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Changes by Jake McGuire j...@youtube.com: Added file: http://bugs.python.org/file12880/pickle.py.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Changes by Jake McGuire j...@youtube.com: Removed file: http://bugs.python.org/file12879/cPickle.c.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Changes by Jake McGuire j...@youtube.com: Added file: http://bugs.python.org/file12882/cPickle.c.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue5084] unpickling does not intern attribute names
Jake McGuire j...@youtube.com added the comment: Are you sure? I may not have enough context in my diff, which I should have done against an anonymous svn checkout, but it looks like the slot attributes get set several lines after my diff. while (PyDict_Next(slotstate, ...)) as opposed to the while (PyDict_Next(state, ...)) in my change... -jake On Jan 27, 2009, at 6:54 PM, Alexandre Vassalotti wrote: Alexandre Vassalotti alexan...@peadrop.com added the comment: The patch for cPickle doesn't do the same thing as the pickle one. In the cPickle one, you are only interning slot attributes, which, I believe, is not what you intended. :-) -- assignee: - alexandre.vassalotti nosy: +alexandre.vassalotti ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5084 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com