[issue706406] fix bug #685846: raw_input defers signals

2010-08-18 Thread Ray.Allen

Ray.Allen  added the comment:

I seems this has been fixed already, at least on my python 2.7 on linux.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue706406>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1524938] PEP MemoryError with a lot of available memory gc not called

2010-08-18 Thread Ray.Allen

Ray.Allen  added the comment:

How about calling gc.collect() explicitly in the loop?

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue1524938>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2010-10-05 Thread Ray.Allen

Ray.Allen  added the comment:

I update the patch. Hope somebody could do a review.

--
Added file: http://bugs.python.org/file19131/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2010-10-05 Thread Ray.Allen

Ray.Allen  added the comment:

I update the patch. Hope somebody could do a review.

--
Added file: http://bugs.python.org/file19132/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2010-10-05 Thread Ray.Allen

Ray.Allen  added the comment:

Oooops! Sorry for re-submit the request...

--

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6269] threading documentation makes no mention of the GIL

2010-10-26 Thread Ray.Allen

Ray.Allen  added the comment:

Agree with Jesse, the description in the patch is not quite correct. I think 
detailed description of the GIL has been given in C API documentation: 
http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock.
 How about just give this link in threading module documentation?

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue6269>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10228] Refleak run of test_dbm fails when several dbm modules are available

2011-02-22 Thread Ray.Allen

Ray.Allen  added the comment:

It looks like because before the second time running of 
WhichDBTestCase.test_whichdb(), previous dumb files are not cleaned clearly, so 
the gdbm's open() doesn't create a new gdbm database but open an existing dumb 
database.

In fact during the working of #9523, I found this problem and fix it in the 
patch of #9523. Here I extract the fixing, it is simple:


cat patches/issue10228.diff 
Index: Lib/test/test_dbm.py
===
--- Lib/test/test_dbm.py(revision 88499)
+++ Lib/test/test_dbm.py(working copy)
@@ -123,7 +123,7 @@
 name = module.__name__
 if name == 'dbm.dumb':
 continue   # whichdb can't support dbm.dumb
-test.support.unlink(_fname)
+delete_files()
 f = module.open(_fname, 'c')
 f.close()
 self.assertEqual(name, dbm.whichdb(_fname))

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue10228>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue3783] dbm.sqlite proof of concept

2011-02-22 Thread Ray.Allen

Changes by Ray.Allen :


--
versions: +Python 3.3 -Python 3.2

___
Python tracker 
<http://bugs.python.org/issue3783>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2159] dbmmodule inquiry function is performance prohibitive

2011-02-22 Thread Ray.Allen

Changes by Ray.Allen :


--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue2159>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11287] Add context manager support to dbm modules

2011-02-22 Thread Ray.Allen

New submission from Ray.Allen :

dbm objects, including gdbm, ndbm, dumb, should support context manager. That 
is, can be used with 'with' keyword, just like regular file objects.

I'm working out a patch for this.

--
components: Extension Modules
messages: 129076
nosy: ysj.ray
priority: normal
severity: normal
status: open
title: Add context manager support to dbm modules
type: feature request
versions: Python 3.3

___
Python tracker 
<http://bugs.python.org/issue11287>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10516] Add list.clear() and list.copy()

2011-02-23 Thread Ray.Allen

Ray.Allen  added the comment:

Please modify the patch so that it can be applied to current py3k trunk 
cleanly. (Notice that Lib/collections.py has been changed to a package in 
#11085).

--

___
Python tracker 
<http://bugs.python.org/issue10516>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11287] Add context manager support to dbm modules

2011-02-24 Thread Ray.Allen

Ray.Allen  added the comment:

Here is the patch.

--
keywords: +patch
Added file: http://bugs.python.org/file20882/issue11287.diff

___
Python tracker 
<http://bugs.python.org/issue11287>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11287] Add context manager support to dbm modules

2011-02-25 Thread Ray.Allen

Ray.Allen  added the comment:

Update: change unittest code following eric's comments.

--
Added file: http://bugs.python.org/file20902/issue11287.diff

___
Python tracker 
<http://bugs.python.org/issue11287>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com




[issue11350] __setitem__()'s problem of dbm.dumb object pointed out by comments

2011-02-28 Thread Ray.Allen

New submission from Ray.Allen :

By reading the Lib/dbm/dumb.py source, there seems to be an distinct problem 
which is pointed out in comments: the __setitem__() should call self._commit() 
in order to keep .dat file and .dir file consist.

Here is a piece of comment found at the end of __setitem__():

# Note that _index may be out of synch with the directory
# file now:  _setval() and _addval() don't update the directory
# file.  This also means that the on-disk directory and data
# files are in a mutually inconsistent state, and they'll
# remain that way until _commit() is called.  Note that this
# is a disaster (for the database) if the program crashes
# (so that _commit() never gets called).


And another piece found in __delitem__():

# XXX It's unclear why we do a _commit() here (the code always
# XXX has, so I'm not changing it).  __setitem__ doesn't try to
# XXX keep the directory file in synch.  Why should we?  Or
# XXX why shouldn't __setitem__?


One probable reason I guess is that the self._commit() method which writes the 
keys information to .dir file is regarded as a slow process, and the 
__setitem__() is called frequently at most cases while __deltiem__ is not, so 
calling self._commit() at each __setitem__ could make the program very slow.

But based on the fact that "The dbm.dumb module is not written for speed and is 
not nearly as heavily used as the other database modules."(found on dbm's 
library document), maybe correctness is more important than speed.

So I think it should be fixed:

Index: Lib/dbm/dumb.py
===
--- Lib/dbm/dumb.py (revision 88674)
+++ Lib/dbm/dumb.py (working copy)
@@ -196,6 +196,7 @@
 # remain that way until _commit() is called.  Note that this
 # is a disaster (for the database) if the program crashes
 # (so that _commit() never gets called).
+self._commit()
 
 def __delitem__(self, key):
 if isinstance(key, str):

And the remaining comments can be deleted.

--
components: Library (Lib)
messages: 129688
nosy: ysj.ray
priority: normal
severity: normal
status: open
title: __setitem__()'s problem of dbm.dumb object pointed out by comments
versions: Python 3.1, Python 3.2, Python 3.3

___
Python tracker 
<http://bugs.python.org/issue11350>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11350] __setitem__()'s problem of dbm.dumb object pointed out by comments

2011-03-01 Thread Ray.Allen

Ray.Allen  added the comment:

Here is a test case.

First here is a patch which implements a simple builtin function "abort()" that 
calls exit(0) directly, it simulates the cases that Py_FatalError occurred or 
segment fault.

Then run the following:

import dbm.dumb as dumb

db = dumb.open('test_db', 'c')
db.clear()
db['a'] = 'a'
db.sync()
db['a'] = 'aa'
abort()


Now the database 'test_db' is corrupt because .dat file and .dir file are out 
of sync:

db = dumb.open('test_db', 'c')
print(db['a'])
db.close()

prints:
b'a'

But the value of key 'a' in .dat file are: 'aa':
cat test_db.dat
aa

--
keywords: +patch
Added file: http://bugs.python.org/file20969/builtin_abort.diff

___
Python tracker 
<http://bugs.python.org/issue11350>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10829] PyUnicode_FromFormatV() bugs with "%" and "%%" format strings

2011-03-02 Thread Ray.Allen

Ray.Allen  added the comment:

Hi, haypo, would you mind modify your newly added parse_format_flags() function 
so that it can diff the precision value of '%.0s' and '%s'(Currently both of 
them return precision as 0)? Because if used with string formatters(%s, %R, %S, 
%A, ...), they should be very different. And so I can work on issue7330 with it.

Just return precision as -1 to indicate no precision is designated could work.

--

___
Python tracker 
<http://bugs.python.org/issue10829>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-03-03 Thread Ray.Allen

Ray.Allen  added the comment:

Here is the updated patch:

1, Work with function parse_format_flags() which is introduced in issue10829, 
and the patch is simpler and more clear than before.
2, Change parse_format_flags() to set precision value to -1 in the case of '%s' 
in order to differ with '%.0s'
3, Move call of unicode_format_align() in step 3 in order to avoid many codes 
like "n += width > PyUnicode_GET_SIZE(str) ? width : PyUnicode_GET_SIZE(str);", 
(following haypo's comments)

--
Added file: http://bugs.python.org/file20983/issue7330_2.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-07 Thread Ray.Allen

Ray.Allen  added the comment:

I noticed that after apply my last patch and running full unittest cases, some 
weird errors which I don't know the reasons occurred, for example:

AttributeError: 'dict' object has no attribute 'get'
and
AttributeError: 'Queue' object has no attribute 'get'

I didn't look deep into it. But I found after I optimist my patch, these errors 
disappeared: I removed the "unicode_format_align()" function in previous patch, 
directly add needed spaces and copy part of unicode got from parameters 
according to width and precision formatters in step 4(using Py_UNICODE_FILL() 
and Py_UNICODE_COPY()) . This avoid create temporary unicode objects using 
unicode_format_align() in step 3. And also the patch becomes simpler.

So this patch is intended to replace of the previous. And if I have more time, 
I will try to find the reasons of the weird errors.

--
Added file: http://bugs.python.org/file21032/issue7330_3.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2142] difflib.unified_diff(...) produces invalid patches

2011-03-09 Thread Ray.Allen

Ray.Allen  added the comment:

Updated patch which can apply to current py3k cleanly and with changes follow 
eric's review comments.

--
Added file: http://bugs.python.org/file21067/issue_2142.diff

___
Python tracker 
<http://bugs.python.org/issue2142>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2142] difflib.unified_diff(...) produces invalid patches

2011-03-12 Thread Ray.Allen

Ray.Allen  added the comment:

> I re-read the discussion on python-dev, where it was suggested to add a 
> keyword argument to get the old behavior.  Have you considered it?


IIUC, at the time of that discusstion, 3.2 is pre-beta so the suitable option 
is to add "\No newline etc" by default and add a keyword to get the old 
behavior, but now it is for 3.3. I wonder if 3.3 is a chance to totally get rid 
of the *OLD WRONG* behavior.

--

___
Python tracker 
<http://bugs.python.org/issue2142>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1635741] Interpreter seems to leak references after finalization

2011-03-12 Thread Ray.Allen

Ray.Allen  added the comment:

> Does the title of this issue accurately reflect the current status of the 
> Python interpreter?

Yes, here is the running result on current 3.3 latest code:
[37182 refs]
[39415 refs]
[41607 refs]
[43799 refs]
[45991 refs]
[48183 refs]
[50375 refs]


This seems to be a known bug that Py_Finalize() doesn't free all objects 
according doc 
http://docs.python.org/dev/c-api/init.html?highlight=py_finalize#Py_Finalize

--

___
Python tracker 
<http://bugs.python.org/issue1635741>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue2142] difflib.unified_diff(...) produces invalid patches

2011-03-14 Thread Ray.Allen

Ray.Allen  added the comment:

Yes there may be.

Here is the updated patch:

Add a new keyword argument to context_diff() and unified_diff() named 
"warn_no_newline_at_end". If true, emit "\ No newline etc". It defaults to 
True, set it to false to get the old behavior. I'm not sure if this name is too 
long, but I haven't got a better name.

--
Added file: http://bugs.python.org/file21207/issue_2142_2.diff

___
Python tracker 
<http://bugs.python.org/issue2142>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11580] Add width and precision formatters to PyBytes_FromFormatV()

2011-03-16 Thread Ray.Allen

New submission from Ray.Allen :

By working on some PyUnicode_FromFormatV() related issue(#7330, #10829), I 
found some same problems with PyBytes_FromFormatV(): It doesn't support width 
formatter for %u, %i, %x, %d, %s, also it doesn't support %lld and %llu.


Attached patch fix the problem:

Add width formatter for %u, %i, %x, %d
Add width and precision formatter for %s
Add %lld and %llu support.

It copies the same idea from #10829: add the parse_format_flags() function.

--
components: Interpreter Core
files: pybytes_fromformatv.diff
keywords: patch
messages: 131218
nosy: ysj.ray
priority: normal
severity: normal
status: open
title: Add width and precision formatters to PyBytes_FromFormatV()
versions: Python 3.3
Added file: http://bugs.python.org/file21261/pybytes_fromformatv.diff

___
Python tracker 
<http://bugs.python.org/issue11580>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11586] Python/pythonrun.c: get_codec_name() typo

2011-03-17 Thread Ray.Allen

New submission from Ray.Allen :

I guess there is a typo in the source of this function:
Python/pythonrun.c: get_codec_name()


diff -r 48970d754841 Python/pythonrun.c
--- a/Python/pythonrun.cThu Mar 17 17:06:27 2011 +0800
+++ b/Python/pythonrun.cThu Mar 17 22:11:15 2011 +0800
@@ -147,7 +147,7 @@
 goto error;
 
 name_utf8 = _PyUnicode_AsString(name);
-if (name == NULL)
+if (name_utf8 == NULL)
 goto error;
 name_str = strdup(name_utf8);
 Py_DECREF(name);

--
components: Interpreter Core
messages: 131252
nosy: ysj.ray
priority: normal
severity: normal
status: open
title: Python/pythonrun.c: get_codec_name() typo
versions: Python 3.3

___
Python tracker 
<http://bugs.python.org/issue11586>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11587] METH_KEYWORDS alone gives "METH_OLDARGS is no longer supported!"

2011-03-17 Thread Ray.Allen

Ray.Allen  added the comment:

Looks like just the problem of error msg.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue11587>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue4492] httplib code thinks it closes connection, but does not

2011-03-17 Thread Ray.Allen

Changes by Ray.Allen :


--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue4492>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11604] Have type(n,b,d) check for type(b[i]) is module

2011-03-18 Thread Ray.Allen

Ray.Allen  added the comment:

> I am only suggesting a check for module because the is the only mistake > I 
> remember anyone reporting. Passing a number as a base class gives a > > 
> similar message, but no one does that. And as far as I know, there is > no 
> way in general to detect whether a callable works as a metaclass > except by 
> calling it with name, bases, and dict.


Since 3.x all the module names became lower-case and can be easily differ from 
class names, so I don't think this problem will present much in 3.x, right?

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue11604>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11608] GzipFile cannot be used for streaming

2011-03-20 Thread Ray.Allen

Ray.Allen  added the comment:

Looks like a duplicate issue of #9664 and #914340. And has been fixed in patch 
of #914340.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue11608>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue4492] httplib code thinks it closes connection, but does not

2011-03-20 Thread Ray.Allen

Ray.Allen  added the comment:

Another fix could be making HTTPResponse to hold a reference to the 
HTTPConnection object and call its close() at the time of a bad chunk
length was received. This can close the connection as soon as possible.

--

___
Python tracker 
<http://bugs.python.org/issue4492>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9302] distutils API Reference: setup() and Extension parameters' description not correct.

2011-03-21 Thread Ray.Allen

Ray.Allen  added the comment:

I searched the distutils docs for such a parameter description table and find 
tow more on the distutils.core.setup() function descriptions. Reflected in my 
updated patch.

--
title: distutils.core.Extension: list parameters documented as strings -> 
distutils API Reference: setup() and Extension parameters' description not 
correct.
Added file: http://bugs.python.org/file21323/issue_9302.diff

___
Python tracker 
<http://bugs.python.org/issue9302>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-03-21 Thread Ray.Allen

Ray.Allen  added the comment:

> I think the patch will not be suitable for 3.1 and 3.2

Yes, it changes some api(e.g keys()), which may introduces compatibility issues.

> so there should be a doc patch to mention the limitations of the dbm API 
> (keys() > returning a list and all that).

Do you mean a doc patch for 3.2 which mentions the missing or imperfect methods 
of collections.MutableSequence()? e.g keys() not returns a KeysView but a list 
instead, update() is missing

--

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-21 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file21032/issue7330_3.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-21 Thread Ray.Allen

Ray.Allen  added the comment:

Ooops! I found my last submitted patch is a wrong one.


Here is the updated patch add doc entries about the changes. The test cases 
which assert error messages generated by PyUnicode_FromFormat() with "%.200s" 
formatters equality would failed due to this patch. Hope you don't miss any of 
them.

--
Added file: http://bugs.python.org/file21324/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11287] Add context manager support to dbm modules

2011-03-22 Thread Ray.Allen

Ray.Allen  added the comment:

patch updated.

--
Added file: http://bugs.python.org/file21337/issue_11287.diff

___
Python tracker 
<http://bugs.python.org/issue11287>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-03-23 Thread Ray.Allen

Ray.Allen  added the comment:

Updated patch:

1, Changes follows review comments: http://codereview.appspot.com/4185044/. 
Thanks eric!

2, Make Objects/dictobject.c:all_contained_in() a common useful limited api 
Object/abstract.c:_PyObject_AllContainedIn() for the purpose of re-usage in 
Modules/_gdbmmodule.c and Modules/_dbmmodule.c. Not sure if this is proper. I 
will ask somebody with C knowledge to do a review on the C code.

--
Added file: http://bugs.python.org/file21355/issue_9523_3.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-24 Thread Ray.Allen

Ray.Allen  added the comment:

By the way, as my simple tests, wprintf() with "%ls" does apply the width and 
precision formatters on units of characters.

--

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-24 Thread Ray.Allen

Ray.Allen  added the comment:

Sorry for having done that! I will remove old patches and leave a cleaner view.

--

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-24 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20739/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-24 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20786/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat: implement width and precision for %s, %S, %R, %V, %U, %A

2011-03-24 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20983/issue7330_2.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-03-24 Thread Ray.Allen

Ray.Allen  added the comment:

I tried to work out a doc patch for 3.2 to mention the limitation api: the 
missing methods compared with dict and the imperfect methods(keys(), items()) 
of collections.MutableMapping. Here is it.

--
Added file: http://bugs.python.org/file21369/issue_9523_3.2_doc_patch.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11655] map() must not swallow exceptions from PyObject_GetIter

2011-03-24 Thread Ray.Allen

Ray.Allen  added the comment:

There maybe compatibility issues which prevent such behavior change.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue11655>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11654] errors in atexit hooks don't change process exit code

2011-03-25 Thread Ray.Allen

Ray.Allen  added the comment:

Comparing to the atexit() in C, I think this is the wrong behavior. I's weird 
that error in atexit does't change process exit code while error in common 
python code does. There should be a fix.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue11654>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11647] function decorated with a context manager can only be invoked once

2011-03-25 Thread Ray.Allen

Ray.Allen  added the comment:

Agreed with nick's idea, the implicitly recreation of the context managers 
would confuse users.

How about removing the "generator must yield exactly one value" restriction of 
@contextlib.contextmanage? Then if I want a generator to be used as a common 
context manager, I can make it yield exactly one value, else further if I want 
the resulting context manager can be used as a decorator, (reusable), I can put 
the generator code in a "while True" loop and add a "yield" at the end of loop 
body, like this:

@contextmanager
def func():
while True:
print('begin func')
yield
print('end func')
yield

:)

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue11647>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11654] errors in atexit hooks don't change process exit code

2011-03-25 Thread Ray.Allen

Ray.Allen  added the comment:

A straight forward fix maybe making the interpreter exit code a static global 
variable and change it in Modules/atexitmodule.c:atexit_callfuncs() in the case 
of errors occurred.

--

___
Python tracker 
<http://bugs.python.org/issue11654>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11647] function decorated with a context manager can only be invoked once

2011-03-25 Thread Ray.Allen

Ray.Allen  added the comment:

> > Agreed with nick's idea, the implicitly recreation of the context
> > managers would confuse users.

> Uh, why would it? That's exactly what I expect the decorator to do, and
> I was astonished to discover that it *doesn't*.


Because there is no *OBVIOUS* code or sign which can illustrate that context 
manager changes from a one-shot to a reusable. When using in "with" statement, 
it's a one-shot, while using as a decorator, it becomes a reusable. I think the 
way using it doesn't provide enough reason for its behavior change. Is there 
somebody who may expected that the GeneratorContextManager IS a one-shot?

--

___
Python tracker 
<http://bugs.python.org/issue11647>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8690] multiprocessing.dummy.Queue does not expose same interface as multiprocessing.Queue

2010-11-19 Thread Ray.Allen

Ray.Allen  added the comment:

+1 on make it identical to multiprossing.Queue. Since the documentation said:

multiprocessing.dummy replicates the API of multiprocessing but is no more than 
a wrapper around the threading module.

Does the word "replicates" implies that multiprossing.dummy.[AClass] should 
have the same interfaces as multiprossing.[AClass]? I think so. We should be 
able to use multiprossing.dummy.xxx wherever multiprossing.xxx can be used. We 
can just create a subclass of Queue.Queue and implemented these missing methods 
as dummy functions.

I wonder is there other inconsistence between multiprocessing.dummy and 
multiprocessing?

--
nosy: +ysj.ray
versions: +Python 3.1, Python 3.2

___
Python tracker 
<http://bugs.python.org/issue8690>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10037] multiprocessing.pool processes started by worker handler stops working

2010-11-23 Thread Ray.Allen

Ray.Allen  added the comment:

Could you give an example code which can reproduce this issue?

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue10037>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7238] frame.f_lineno doesn't get updated after local trace function assigned to it

2010-11-24 Thread Ray.Allen

Ray.Allen  added the comment:

It's not a bug. What happens is like this:

1, You set trace function using sys.settrace(tracer).
2, When the following func() is called, tracer is called with a "call" event, 
so the trace function in PyThreadState is set to NULL since 
"sys.settrace(None)" is execute, but since the return value is a valid local 
trace function, the frame of called function("func()") has its local trace 
function.
3, The called function("func()") executes, though its frame has a local trace 
function, but it will not be executed since PyThreadState->c_tracefunc is NULL. 
When you get f_lineno from frame, you get the not refreshed f_lineno value but 
not the dynamically computed lineno, as the f_lineno's getter function said:
if(f->f_trace)
return f->f_lineno;
else
return PyCode_Addr2Line(f->f_code, f->f_lasti);

   Here because your frame's local trace function is not executed, the f_lineno 
is not refreshed.

4, When the second time func() calls, there is no global trace function. Each 
time you get the f_lineno, it uses PyCode_Addr2Line() to get the dynamically 
computed line number.


I think this situation is so rarely that the doc saying "f_lineno is 
the current line number of the frame" is correct.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue7238>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8481] doc: ctypes no need to explicitly allocate writable memory with Structure

2010-11-24 Thread Ray.Allen

Ray.Allen  added the comment:

I think not only Structures but also other ctypes can be passed with byref() to 
functions expecting pointer to mutable memory.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue8481>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9014] Incorrect documentation of the PyObject_HEAD macro

2010-11-24 Thread Ray.Allen

Ray.Allen  added the comment:

Additionally, I prefer move the discussion of Py_TRACE_REFS under the 
documentation of PyObject: 
http://docs.python.org/dev/py3k/c-api/structures.html?highlight=pyobject_head#PyObject,
 since they'are connected directly. The doc of PyObject_HEAD should only saying 
like "expands to a PyObject variable".

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue9014>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9299] os.makedirs(): Add a keyword argument to suppress "File exists" exception

2010-11-28 Thread Ray.Allen

Ray.Allen  added the comment:

Thanks for Terry's addition to the patch! 

On my python3.2a3 on windows(also copied os.py and test_os.py to the 
installation), I only get the tow "os.link" errors. And this is because the 
python3.2a3 hasn't the "os.link" function, and the test.LinkTests in test_os.py 
is added later after python3.2a3, at r86733.

I don't know Why is there a WindowsError in time.sleep(), but I cannot 
reproduce this Error.

--

___
Python tracker 
<http://bugs.python.org/issue9299>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9299] os.makedirs(): Add a keyword argument to suppress "File exists" exception

2010-12-02 Thread Ray.Allen

Ray.Allen  added the comment:

Oh, yes, I missed that, too. I didn't pay attention to that. Thanks for  
pointing out it and fix it!

--

___
Python tracker 
<http://bugs.python.org/issue9299>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2010-12-07 Thread Ray.Allen

Ray.Allen  added the comment:

Oh, yes. I noticed that the pep3119 defines return value of method 
MutableMapping.keys() as Set, as well as method items(). So the implementation 
of dumb.keys() and dump.items() are not correct since they all return lists 
while the class inherits MutableMapping. 

The implementations in my patch should also be corrected since I made the same 
mistake. Besides, since issue6045 has already added get(), I need to update my 
patch. I will do it later.

And who can tell the specification of MutableMapping.update()? The pep3119 
lacks of it. Should I follow the implementation in the ABC class MutableMapping?

--

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10517] test_concurrent_futures crashes with "Fatal Python error: Invalid thread state for this thread"

2010-12-08 Thread Ray.Allen

Ray.Allen  added the comment:

Couldn't repro this on my debian 5.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue10517>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2010-12-09 Thread Ray.Allen

Ray.Allen  added the comment:

Here is the updated patch, which fixed:

1. remove get() method of gdbm since issue6045 has already add it.

2. method keys() and items() of dbm object return set instead of list. Since 
pep3119 said keys() and items() should return collections.Set and set is a 
collections.Set.

3. add update() method to dbm object, which follows implementation in 
collections.MutableMapping.update().

--
Added file: http://bugs.python.org/file19987/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10516] Add list.clear() and list.copy()

2010-12-09 Thread Ray.Allen

Ray.Allen  added the comment:

eli, you should also add "New in version 3.3" to the doc of the tow new list 
methods.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue10516>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10611] sys.exit() in a test causes a test run to die

2010-12-09 Thread Ray.Allen

Ray.Allen  added the comment:

Agreed. I think the "except Exception" in TestCase.run() should be "except 
BaseException", since BaseException could catch Exception, SystemExit, 
GeneratorExit, KeyboardInterrupt. The KeyboardInterrupt should be caught first. 
The remaining three is exactly what is needed.

Here is a patch I worked, with unittest.

--
keywords: +patch
nosy: +ysj.ray
Added file: http://bugs.python.org/file19994/issue_10611.diff

___
Python tracker 
<http://bugs.python.org/issue10611>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10516] Add list.clear() and list.copy()

2010-12-10 Thread Ray.Allen

Ray.Allen  added the comment:

> That's good if it's so... can you explain why list_clear doesn't 
> guarantee that the list is empty? Why would XDECREF populate the list? 
> I don't quite understand it.


Does this mean that durning the Py_DECREF progress the list may be populated 
again? It's not a problem. Here is the simplest example(with applying eli's 
patch):


class A(object):
def __init__(self, li):
self._li = li
def __del__(self):
self._li.append(self)

li = []
li.append(A(li))
li.clear()
print(li)

--

___
Python tracker 
<http://bugs.python.org/issue10516>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10611] sys.exit() in a test causes a test run to die

2010-12-15 Thread Ray.Allen

Ray.Allen  added the comment:

> I'd like to fix all these issues by moving the exception handling into a 
> single method and unifying the reporting of failure / error / expected 
> failure / skip test. This will fix all these issues and nicely simplify the 
> implementation.

That sounds good.

--

___
Python tracker 
<http://bugs.python.org/issue10611>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-10 Thread Ray.Allen

Ray.Allen  added the comment:

Thanks eric for reviewing my patch! And thanks for you suggestions. I'm  
following them.

> I don’t know if you should use a plain set or a collections.ItemsView here.  
> In dict objects, KeysView and ValuesView are set-like objects with added 
> behavior, for example they yield their elements in the same order.

Yes you are right. I think returning a view object is better than returning a 
set.

Here is the updated patch. It updates:
1. Make keys(), values(), items() methods return view object for ndbm, gdbm and 
dumb objects. I following the codes in dictobject.c. The keysview object 
support len(), "in" operator, and iteratable, while valuesview and itemsview 
object only support len() and iteratable.
2. Removing doc changes: 
  The object returned by :func:`.open` supports the same basic functionality as
  -dictionaries
  +:mod:`collection`.MutableMapping
which is mentioned in eric's comment.
3. Remove dumb's keys() method which calls self._index.keys() since it is 
unnecessary.
4. Using more specialized assertXxx methods in test cases.
5. Remove "the values() and items() method are not supported" in 
Doc/library/dbm.rst.


> See #5736 for a patch adding iteration support.  If the patch attached to his 
> report supersedes the other one, I’ll close the other bug as duplicate.

#5736 's patch for adding iteration to ndbm and gdbm modules simple calling 
PyObject_GetIter(dbm_keys(dbm, NULL)) for both gdbm and ndbm, but I feel it's 
better to create a seperate iterator object for gdbm objects.

--
Added file: http://bugs.python.org/file20726/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-10 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file19131/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-10 Thread Ray.Allen

Ray.Allen  added the comment:

Thanks haypo!

Here is the updated patch, it add the tests about width modifiers and precision 
modifiers of %S, %R, %A. Besides I don't know how to add tests of %s, since 
when calling through ctypes, I could not get correct result value as python 
object from PyUnicode_FromFormat() with '%s' in format string as argument.

--
Added file: http://bugs.python.org/file20731/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-10 Thread Ray.Allen

Ray.Allen  added the comment:

Here's the complete patch, added unittest for width modifier and precision 
modifier for '%s' formatter of PyUnicode_FromFormat() function.

--
Added file: http://bugs.python.org/file20739/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-12 Thread Ray.Allen

Ray.Allen  added the comment:

> > 1. Make keys(), values(), items() methods return view object for ndbm, gdbm 
> > and dumb objects. I following the codes in dictobject.c.
> Did you have to copy the code?  Isn’t it possible to somehow reuse it?

I feel not so easy to reuse the code, there could be several differences in the 
c code. Resuing the code may make the code more complecated. But if someone 
could find a better way to reuse the code, it would be nice.


> > The keysview object support len(), "in" operator, and iteratable, while 
> > valuesview and itemsview object only support len() and iteratable.
> That does not seem to comply with the definition of dict views. 

Oh, yes, I missed the rich compare functions and isdisjoint() method of view 
objects.


> Do the views yield elements in the same order?  (In a dict, iteration order 
> is undefined but consistent between the various views, IIUC.)
gdbm and dumb views yield elements in the same order, ndbm views doesn't. I 
missed it.


> > 3. Remove dumb's keys() method which calls self._index.keys() since it is 
> > unnecessary.
> Does dumb have no keys method then?
Yes, it does. Its keys() method is provided by Mapping abc already.


Here is the updated patch:
1. Add rich compare functions and disjoint() method to dbm view objects to make 
them as MappingView objects, and add abc registration for them.
2. Make ndbm view objects yield elements in the same order.
3. Other changes during to the codeview: http://codereview.appspot.com/4185044/

--

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-12 Thread Ray.Allen

Changes by Ray.Allen :


Added file: http://bugs.python.org/file20751/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file18305/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file19132/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20731/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file18402/issue8634.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file19987/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20726/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1635741] Interpreter seems to leak references after finalization

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue1635741>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue3710] Reference leak in thread._local

2011-02-13 Thread Ray.Allen

Changes by Ray.Allen :


--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue3710>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-16 Thread Ray.Allen

Ray.Allen  added the comment:

Thanks!

Here is my updated patch:
1, Now the dbm view objects are the same as dict view objects, which are in 
conformity with collections.KeysView, ValuesView and ItemsView.
2, I register all these abcs explicitly because these abcs have not 
__subclasshook__() method so they can't check api conformance(at lease exist) 
through isinstance(). I could not make sure api conformance except testing each 
method I find in abc explicitly. And my test_abc() is just to test the 
registering.
3, Other updates which are from comments I wrote newly on codereview: 
http://codereview.appspot.com/4185044/

--
Added file: http://bugs.python.org/file20771/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-16 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20751/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-17 Thread Ray.Allen

Ray.Allen  added the comment:

Thanks hyapo! 

> It looks like your patch fixes #10829: you should add tests for that, you can 
> just reuse the tests of my patch (attached to #10829).

Sorry, but I think my patch doesn't fix #10829. It seems link another issue. 
And by applying my patch and add tests from #10829's patch, the tests cannot 
passed. Or did I missed something?


> You should also avoid the creation of a temporary unicode object (it can be 
> slow if precision is large) using PySequence_GetSlice(). Py_UNICODE_COPY() 
> does already truncate the string because you can pass an arbitrary length.

In order to use Py_UNICODE_COPY, I have to create a unicode object with 
required length first. I feel this have the same cost as using 
PySequence_GetSlice(). If I understand correctly?


> With your patch, "%.200s" truncates the input string to 200 *characters*, but 
> I think that it should truncate to 200 *bytes*, as printf does.

Sorry, I don't understand. The result of PyUnicode_FromFormatV() is a unicode 
object. Then how to truncate to 200 *bytes*? I think the %s formatter just 
indicate that the argument is c-style chars, the result is always unicode 
string, and the width and precision formatters are to applied after converting 
c-style chars to string. 


> I don't like this change because I hate having to compute manually strings 
> length. It should that it would be easier if you format directly strings with 
> width and precision at step 3, instead of doing it at step 4: so you can just 
> read the length of the formatted string, and it avoids having to handle 
> width/precision in two steps (which may be inconsistent :-/).

Do you mean combine step 3 and step 4 together? Currently step 3 is just to 
compute the biggest width value and step 4 is to compute exact width and do the 
real format work. Only by doing real format we can get the exact width of a 
string. So I have to compute each width twice in both step 3 and step 4. Is 
combining the two steps in to one a good idea?


> In my opinion, the patch is a little bit too big. We may first commit the fix 
> on the code parsing the width and precision: fix #10829?

Again, I guess #10829 need another its own patch to fix. 


> Can you add tests for "%.s"? I would like to know if "%.s" is different than 
> "%s" :-)

Err, '%.s' causes unexpected result both with and without my patch. Maybe it's 
still another bug?

--

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-17 Thread Ray.Allen

Ray.Allen  added the comment:

> Do you mean combine step 3 and step 4 together? Currently step 3 is just to 
> compute the biggest width value and step 4 is to compute exact width and do 
> the real format work. Only by doing real format we can get the exact width of 
> a string. So I have to compute each width twice in both step 3 and step 4. Is 
> combining the two steps in to one a good idea?

Sorry, Here I mean:

Do you mean combine step 3 and step 4 together? Currently step 3 is just to 
compute the biggest width value and step 4 is to compute exact width and do the 
convert work(by calling 
PyObject_Str()/PyObject_Repr()/PyObject_ASCII()/PyUnicode_DecodeUTF8() for 
%S/%R/%A/%s). Only by doing convert we can get the exact width of a string. So 
I have to compute each width twice in both step 3 and step 4. Is combining the 
two steps in to one a good idea?

--

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-18 Thread Ray.Allen

Ray.Allen  added the comment:

An updated patch, based on latest several reviews on 
http://codereview.appspot.com/4185044/

update:
1, Refactoring the common tests between test_dbm_gnu and test_dbm_ndbm.
2, Move the abc registering in Lib/dbm/ndbm.py and Lib/dbm/gnu.py.
3, Other changes pointed out in review comments.

--
Added file: http://bugs.python.org/file20783/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-18 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20771/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-18 Thread Ray.Allen

Ray.Allen  added the comment:

> No you don't. You can copy a substring of the input string with
Py_UNICODE_COPY: just pass a smaller length.

Oh, yes, I got your meaning now. I'll follow this.


> You can truncate the input char* on the call to PyUnicode_DecodeUTF8:

Oh, what if the trunked char* cannot be decoded correctly? e.g. a tow-bytes 
character is divided in the middle? 


> Yes, but I am no more sure that it is the right thing to do.

If I understand correctly(my English ability is limited), your suggestion is to 
combine, right? I'm afraid that combine may bring us too complicated code to 
write. The currently 4 steps just divide the process into smaller and simpler 
pieces. I'm not sure.

--

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-18 Thread Ray.Allen

Ray.Allen  added the comment:

> Can you add tests for "%.s"? I would like to know if "%.s" is different than 
> "%s" :-)

Oh sorry~~  I made an mistake. There is no bug here. I have attached tests that 
show that '%.s' is the same as '%s'.


Here is the updated patch:
1, changed the function name unicode_format() to 
1, remove
"""
- "must be a sequence, not %200s",
+ "must be a sequence, not %.200s",
"""
in Python/ceval.c

2, Removing using PySequence_GetSlice() in unicode_format_align() and do a 
refactor to optimize the process.

3, Add tests for '%.s' and '%s', as haypo wanted.


This is obviously not the final patch just convenient for other to do a  
review. Something more need to be discussed.

--
Added file: http://bugs.python.org/file20786/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-20 Thread Ray.Allen

Ray.Allen  added the comment:

> > > With your patch, "%.200s" truncates the input string to 200 *characters*, 
> > > but I think that it should truncate to 200 *bytes*, as printf does.
> > 
> > Sorry, I don't understand. The result of PyUnicode_FromFormatV() is a 
> > unicode object. Then how to truncate to 200 *bytes*?

> You can truncate the input char* on the call to PyUnicode_DecodeUTF8:
pass a size smaller than strlen(s).


Now I wonder how should we treat precision formatters of '%s'. First of all, 
the PyUnicode_FromFormat() should behave like C printf(). In C printf(), the 
precision formatter of %s is to specify a maximum width of the displayed 
result. If final result is longer than that value, it must be truncated. That 
means the precision is applied on the final result. While python's 
PyUnicode_FromFormat() is to produce unicode strings, so the width and 
precision formatter should be applied on the final unicode string result. And 
the format stage is split into two ones, one is converting each paramater to an 
unicode string, another one is to put the width and precision formatters on 
them. So I wonder if we should apply the precision formatter on the converting 
stage, that is, to PyUnicode_DecodeUTF8(). So in my opinion precision should 
not be applied to input chars, but output unicodes.

I hope I didn't misunderstand something.

So haypo, what's your opinion.

--

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7330] PyUnicode_FromFormat segfault

2011-02-20 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20739/issue_7330.diff

___
Python tracker 
<http://bugs.python.org/issue7330>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11246] PyUnicode_FromFormat("%V") decodes the byte string from ISO-8859-1

2011-02-20 Thread Ray.Allen

Ray.Allen  added the comment:

Yes. The %V should be combination of %U and %s.

Here is a patch which fixed this problem.

--

___
Python tracker 
<http://bugs.python.org/issue11246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11246] PyUnicode_FromFormat("%V") decodes the byte string from ISO-8859-1

2011-02-20 Thread Ray.Allen

Changes by Ray.Allen :


--
keywords: +patch
Added file: http://bugs.python.org/file20818/issue11246.diff

___
Python tracker 
<http://bugs.python.org/issue11246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10829] PyUnicode_FromFormatV() bugs with "%" and "%%" format strings

2011-02-21 Thread Ray.Allen

Ray.Allen  added the comment:

Hi, haypo, Your patch seems cannot be applied cleanly on current py3k trunk. 
And after modified your patch, test_unicode.py runs into Segmentation fault. Is 
there something wrong or some changes which could influence this bug had been 
already made since the patch is worked out?


On the current trunk, I guess the bug could be fixed in a simpler way:

In step 1, before check '%%', check '%'(a string ends with '%') first. Then 
check '%%' and skip it.

The whole patch:

Index: Objects/unicodeobject.c
===
--- Objects/unicodeobject.c (revision 88453)
+++ Objects/unicodeobject.c (working copy)
@@ -750,8 +750,12 @@
  * result in an array) */
 for (f = format; *f; f++) {
  if (*f == '%') {
- if (*(f+1)=='%')
+ if (*(f+1)=='\0')
+continue;
+ if (*(f+1)=='%') {
+ f++;
  continue;
+ }
  if (*(f+1)=='S' || *(f+1)=='R' || *(f+1)=='A')
  ++callcount;
  while (Py_ISDIGIT((unsigned)*f))


After applying this small patch and tests in your patch, test_unicode.py can 
passed.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue10829>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10829] PyUnicode_FromFormatV() bugs with "%" and "%%" format strings

2011-02-21 Thread Ray.Allen

Changes by Ray.Allen :


--
type:  -> behavior

___
Python tracker 
<http://bugs.python.org/issue10829>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10833] Replace %.100s by %s in PyErr_Format(): the arbitrary limit of 500 bytes is outdated

2011-02-21 Thread Ray.Allen

Ray.Allen  added the comment:

see also #7330, I'm implementing "%.100s" in that issue.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue10833>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11246] PyUnicode_FromFormat("%V") decodes the byte string from ISO-8859-1

2011-02-21 Thread Ray.Allen

Ray.Allen  added the comment:

Thanks haypo!

Here the updated patch, following your comments.

--
type:  -> behavior
Added file: http://bugs.python.org/file20831/issue11246.diff

___
Python tracker 
<http://bugs.python.org/issue11246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11246] PyUnicode_FromFormat("%V") decodes the byte string from ISO-8859-1

2011-02-21 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20818/issue11246.diff

___
Python tracker 
<http://bugs.python.org/issue11246>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue11282] unittest document not keep consist with code

2011-02-21 Thread Ray.Allen

New submission from Ray.Allen :

r88451:
Remove unittest methods scheduled for removal in 3.3

This commit remove assertSameElements() and assertDictContainsSubset(). But 
shouldn't some modification be done in the unittest library documentation? I 
wonder if we should remove the docs about the two methods. Now the doc only 
said "Deprecated since version 3.2."

--
assignee: docs@python
components: Documentation
messages: 129036
nosy: docs@python, ysj.ray
priority: normal
severity: normal
status: open
title: unittest document not keep consist with code
versions: Python 3.3

___
Python tracker 
<http://bugs.python.org/issue11282>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-21 Thread Ray.Allen

Ray.Allen  added the comment:

Sine r88451 removed unittest's assertSameElements() method, I need to updated 
my patch to fit it. So here it is.

--
Added file: http://bugs.python.org/file20832/issue9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue9523] Improve dbm modules

2011-02-21 Thread Ray.Allen

Changes by Ray.Allen :


Removed file: http://bugs.python.org/file20783/issue_9523.diff

___
Python tracker 
<http://bugs.python.org/issue9523>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue10829] PyUnicode_FromFormatV() bugs with "%" and "%%" format strings

2011-02-21 Thread Ray.Allen

Ray.Allen  added the comment:

> Well, the main problem is that there are 3 different codes to parse the 
> format string, and each code is different... Attached patch factorizes the 
> code: create one subfunction parse_format_flags(). It fixes also this issue 
> and prepares the work to fix #10831.


Sounds nice! Maybe several related issues can also use this, like #7330.

--

___
Python tracker 
<http://bugs.python.org/issue10829>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8297] AttributeError message text should include module name

2010-04-03 Thread Ray.Allen

Ray.Allen  added the comment:

Yes, I agree with this feature request. And also the super(Class, obj) call 
should return a reasonable AttributeError message when the requested attribute 
is not found in one of Class's base classes, not just 'super' object has no 
attribute 'xxx'.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue8297>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8297] AttributeError message text should include module name

2010-04-03 Thread Ray.Allen

Ray.Allen  added the comment:

In fact, there are only three types of tp_getattro functions:
1.For type objects, it is type_getattro(), in case of AttributeError, this 
function give the message format: 
type object %(type)s has no attribute %(attr)s
2.For super objects, it is super_getattro(), in case of no attribute found 
in one of its base class, it calls the 3'th getattr function below.
3.For the base type 'object' and other new style class, it is 
PyObject_GenericGetAttr(), and in case of AttributeError, this function give 
the message format:
%(type)s object has no attribute %(attr)s

So, there are only tow formats of AttributeError's exception messages:
1.type object %(type)s has no attribute %(attr)s
2.%(type)s object has no attribute %(attr)s
The first one is for type objects, the second one is for all the instances 
objects.

In most cases, these tow formats it is enough for program to display, bu t it 
is not well enough. Take the module objects for example, in case of 
AttributeError, we will always hope to know exactly which module has no 
attribute, not only the message: 'module object has attribute xxx'.

Also for the super() call, take super(A, b).xxx() for example, if the attribute 
is not found in the class next to the A in b's type's mro list, 
PyObject_GenericGetAttr() will be called with the two arguments, the super 
object its self and 'xxx'. But there are only few valid attributes of a super 
object, like '__thisclass__', '__self__', '__self_class__'. In most cases, we 
don't need these attributes of a super object, what we need is the attribute of 
one of b's type's base types. So I think once the AttributeError is raised in 
PyObject_GenericGetAttr() call in the end of super_getattro(), the exception 
message should tell us in which base class python can not found the attribte 
'xxx', but not the super object itself, although the exception is raised in the 
PyObject_GenericGetAttr(, 'xxx').

For the solution, I think the type_getattro and super_getattro can just return 
NULL to indicate the attribute is not found, but for a wrapper function of this 
tow which is the tp_getattro for each type to raise the attribute error, with 
the reasonable  exception message. For example, mudule type can tell which 
module has no attribute, super type can tell which base class has no attribute, 
and so on.

What about others' opinion?

--

___
Python tracker 
<http://bugs.python.org/issue8297>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8297] AttributeError message text should include module name

2010-04-06 Thread Ray.Allen

Ray.Allen  added the comment:

This patch makes the AttributeError message generated from getting attributes 
from module object more helpful, that is, print the module name. Now the error 
message is:
  module object 'mod_name' has no attribute 'xxx'
Instead of:
  'module' object has no attribute 'xxx'

In this patch, I add a function PyObject_GenericFindAttr(), which is almost the 
same as PyObject_GenericGetAttr(), except that return NULL instead of setting 
the exception, and make PyObject_GenericGetAttr() call this function and 
setting exception in the case of NULL return value. Through this, each type can 
custom its own AttributeError message, while using the uniform process of 
getting the attribute in PyObject_GenericFindAttr(). For example, 
PyModuleType's tp_getattro is set to a new function PyModule_GetAttr(), which 
calls the PyObject_GenericFindAttr() can set the customed AttributeError 
message.

Besides, I think the super object's AttributeError message should also be 
improved, but I didn't include that in the patch. I don't know weather it is 
suitable.

--
keywords: +patch
Added file: http://bugs.python.org/file16780/issue_8297.diff

___
Python tracker 
<http://bugs.python.org/issue8297>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8292] Incorrect condition test in platform.py

2010-04-07 Thread Ray.Allen

Ray.Allen  added the comment:

It seems that the "Lib/lib2to3/fixes/fix_filter.py" should have fixed all the 
"filter" problem in py3k, by adding a "list()" call to "filter()". It's werid 
this one still exists in standar library. 

Also I found other two problems with "filter" in standar library. 
They make condition tests on filter object, although the result is correct, but 
I think it's not proper.

So I make a patch to fix these three problems.

--
components: +Library (Lib)
keywords: +patch
nosy: +ysj.ray
Added file: http://bugs.python.org/file16814/issue_8292.diff

___
Python tracker 
<http://bugs.python.org/issue8292>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue8336] PyObject_CallObject - Not "reference-count-neutral"

2010-04-08 Thread Ray.Allen

Ray.Allen  added the comment:

By looking into the source, I found PyObject_CallObject() is 
“reference-count-neutral” even the call is FAILED, because it will always call 
Py_DECREF(arg) in the end and in case of exception.

--
nosy: +ysj.ray

___
Python tracker 
<http://bugs.python.org/issue8336>
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



  1   2   >