[issue7427] BadStatusLine is hell to debug

2009-12-04 Thread Jake McGuire

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

2009-08-27 Thread Jake McGuire

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

2009-05-01 Thread Jake McGuire

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

2009-02-25 Thread Jake McGuire

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

2009-02-25 Thread Jake McGuire

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

2009-02-25 Thread Jake McGuire

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

2009-02-24 Thread Jake McGuire

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

2009-01-27 Thread Jake McGuire

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

2009-01-27 Thread Jake McGuire

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

2009-01-27 Thread Jake McGuire

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

2009-01-27 Thread Jake McGuire

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

2009-01-27 Thread Jake McGuire

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