classification
Title: Full unicode import system
Type: behavior Stage:
Components: Interpreter Core Versions: Python 3.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: vstinner Nosy List: Arfrever, amaury.forgeotdarc, asvetlov, belopolsky, benjamin.peterson, brett.cannon, eric.araujo, georg.brandl, ncoghlan, pitrou, python-dev, r.david.murray, terry.reedy, vstinner
Priority: high Keywords: patch

Created on 2008-06-11 18:24 by amaury.forgeotdarc, last changed 2011-03-23 15:58 by vstinner. This issue is now closed.

Files
File name Uploaded Description Edit
issue3080-5.patch vstinner, 2011-01-21 09:19
issue3080.py vstinner, 2011-03-19 22:36
typo.diff eric.araujo, 2011-03-20 17:09
Messages (60)
msg68005 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2008-06-11 18:24
This is the most difficult part of issue1342:
"""
On Windows, don't use the FileSystemEncoding on Windows for sys.path items.
Instead, it should use the wide API to perform all system calls. Py3k
shouldn't ever use the file system encoding for anything on Windows.
"""

This imply to rewrite all functions in import.c, and replace all char*
arguments with unicode variables.
msg68015 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2008-06-11 20:27
I suspect importlib may help with this.
msg109844 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2010-07-10 10:34
Victor is working on this.
msg112028 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-07-30 00:20
I posted a patch: #9425.
msg119107 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-10-19 02:19
With #8611 and #9425, I patched a lot of functions and modules, including the NullImporter and zipimport, but not the core of the import machinery.

In my import_unicode SVN branch, I patched the import machinery to manipulate unicode strings, instead of bytes strings. But the patch is huge and the import machinery is fragile. Since Python 3.2 now works in a non-ASCII directory with an ASCII locale (fileystem) encoding, I don't plan to merge the patch into py3k.

The patch is still useful on Windows, because Python uses the mbcs encoding to encode/decode filenames, and this encoding is usually a very small subset of Unicode (eg. cp1252 is 256 codes wheres unicode 6.0 has 109,449 characters).
msg123963 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2010-12-14 17:58
With #1342 fixed, it seems that this issue is no longer critical (Haypo describes his complicated patch as "useful on Windows", but not critical.  So I'm downgrading it to 'high'.  Perhaps it is even 'normal'.  It also seems as though it is currently languishing unless someone wants to pick it up.
msg123993 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-12-14 23:47
> Haypo describes his complicated patch as "useful on Windows", 
> but not critical

Usecase on Windows: your japanese friend gives you an USB key (eg. created on Windows with code page 932) with his Python project, you cannot run it on your english speaking Windows (eg. code page 1252), because it loads Python modules with japanese characters in their paths.

It works if all paths are encodable to your ANSI code page. It doesn't work if a least one character of one path is not encodable to your ANSI code page.

I don't know if this usecase is common or not.

Note: the FAT file system of the USB key stores filenames as UTF-16 (and not in the user code page).
msg124756 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-12-28 02:51
Issue #10785 prepares the work for this issue: store input filename as a unicode string, instead of a byte string, in the parser.
msg125752 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2011-01-08 06:23
If I edit a file with IDLE, save it, and successfully run it (perhaps to test it), then when I edit a second file that imports the first, I expect the import to work. It does not always (see #10828).

Import is part of the core definition of the language. Unicode identifiers are supposedly part of Python3. Given the existence of <identifier>.py in the current directory, 'import identifier' should work. If it does not, the 3.1 message '<identifier> not found' is more truthful than the current 'no module named <identifier>', when there is one.

The doc says "identifier ::= (identifier ".")* identifier". As long as that is not true, some indication of the restriction that most people can understand would be nice. (And I suspect that a majority of Windows users, at least in the US, have no idea of what an 'ANSI code page' is.)
msg126514 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-19 01:22
Here is a work-in-progress patch: issue3080-3.patch. The patch is HUGE and written for Python 3.3.

$ diffstat issue3080-3.patch 
 Doc/c-api/module.rst   |   24 
 Include/import.h       |   73 +
 Include/moduleobject.h |    2 
 Include/pycapsule.h    |    4 
 Modules/zipimport.c    |  272 +++---
 Objects/moduleobject.c |   52 -
 PC/import_nt.c         |   84 +-
 Python/dynload_aix.c   |    2 
 Python/dynload_dl.c    |    2 
 Python/dynload_hpux.c  |    2 
 Python/dynload_next.c  |    4 
 Python/dynload_os2.c   |    2 
 Python/dynload_shlib.c |    2 
 Python/dynload_win.c   |    2 
 Python/import.c        | 1910 +++++++++++++++++++++++++++----------------------
 Python/importdl.c      |   79 +-
 Python/importdl.h      |    2 
 issue3080.py           |   29 
 18 files changed, 1484 insertions(+), 1063 deletions(-)

As expected, most of the work in done in import.c.

Decode the module name earlier and encode it later. Try to manipulate PyUnicodeObject objects instead of char* buffers (so we have directly the string length).

Split the huge and very complex find_module() function into 3 functions (find_module, find_module_filename and find_module2) and document them. Drop OS/2 support in find_module() (it can be kept, but it was easier for me to drop it and the OS/2 maintainer wrote that Python 3 is far from being compatible with OS/2).

The patch creates some functions: PyModule_GetNameObject(), PyImport_ExecCodeModuleUnicode(), PyImport_AddModuleUnicode(), PyImport_ImportFrozenModuleUnicode(), PyModule_NewUnicode(), ...

Use "U" format to parse a module name, and "%R" to format a module name (to escape surrogates characters and add quotes, instead of "... '%.200s' ...").

PyWin_FindRegisteredModule() is now private. Remove fqname argument from _PyImport_GetDynLoadFunc(), it wasn't used.

Replace open_exclusive() by fopen(name, "wb") on Windows: is it correct?

TODO:

 - rename xxxobj => xxx to keep original names and have a short patch (eg. I renamed name to nameobj during the transition to detect bugs)
 - catch encoding errors in case_ok()
 - don't encode in case_ok() if case_ok() does nothing (eg. on Linux)
 - find a better name for find_module2()

The patch contains a tiny script, issue3080.py, to test the patch using an ISO-8859-1 locale.

I will open a thread on the mailing list (python-dev) to decide if this patch is needed or not. If we agree that this issue should be fixed, I will split the patch into smaller parts and start a review process.
msg126515 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-19 01:25
This patch changes more lines of code than my previous crazy unicode patch (msg103663, issue #8242 #8611 #9425), but it changes less files.
msg126516 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-19 01:27
Oh, msg103663 was not the final patch. A more recent version of my patch for #8611 / #9425 is http://codereview.appspot.com/1874048:

 Doc/library/sys.rst         |    6 
 Include/Python.h            |    4 
 Include/fileobject.h        |   20 
 Include/import.h            |   21 
 Include/moduleobject.h      |    1 
 Include/sysmodule.h         |    5 
 Include/warnings.h          |    2 
 Lib/distutils/file_util.py  |    2 
 Lib/platform.py             |   50 +-
 Lib/test/test_import.py     |    7 
 Lib/test/test_sax.py        |    5 
 Lib/test/test_subprocess.py |   14 
 Lib/test/test_sys.py        |    5 
 Lib/test/test_urllib.py     |    8 
 Lib/test/test_urllib2.py    |    5 
 Lib/test/test_xml_etree.py  |    6 
 Modules/getpath.c           |  209 +++++----
 Modules/main.c              |   99 +++-
 Modules/zipimport.c         |  202 +++++----
 Objects/codeobject.c        |   17 
 Objects/fileobject.c        |   32 +
 Objects/moduleobject.c      |   25 -
 Objects/object.c            |    6 
 Objects/typeobject.c        |   12 
 Objects/unicodeobject.c     |   11 
 PC/import_nt.c              |   18 
 Parser/tokenizer.c          |   12 
 Python/_warnings.c          |   69 ++-
 Python/ast.c                |   16 
 Python/bltinmodule.c        |   24 -
 Python/ceval.c              |    7 
 Python/compile.c            |   14 
 Python/errors.c             |    2 
 Python/import.c             |  958 ++++++++++++++++++++++++++------------------
 Python/importdl.c           |   27 -
 Python/importdl.h           |    2 
 Python/pythonrun.c          |  169 +++++++
 Python/sysmodule.c          |   60 ++
 38 files changed, 1404 insertions(+), 748 deletions(-)

So, issue3080-3.patch and issue1874048_1.diff are close :-)
msg126606 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2011-01-20 13:22
Victor, could you please create a Reitveld review for this? The auto-review creator can't cope with the Git diffs.
msg126608 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-20 13:24
> Victor, could you please create a Reitveld review for this?

Yes, but not yet. I have first to cleanup the patch.
msg126612 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2011-01-20 13:35
OK - I'll wait until that is ready before digging into this.
msg126613 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-20 13:52
> Use "U" format to parse a module name, and "%R" to format a module name
> (to escape surrogates characters and add quotes, instead of 
> "... '%.200s' ...").

See also #8754: repr() is better than str() for other reasons, eg. to see a space at the end of a module name (__import__('space ')) thanks to the quotes.
msg126672 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 01:21
Version 4 of the patch.
msg126673 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 01:25
Same patch (version 4) generated by svn.
msg126676 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 01:37
You can review the patch with Rietveld:
http://codereview.appspot.com/3972045
msg126678 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 02:08
Oops, there is a dummy typo in imp_init_builtin() that makes test_importlib to crash (which proves that importlib has a good coverage :-)): replace "s:" by "U:" in if (!PyArg_ParseTuple(args, "s:init_builtin", &name)).
msg126680 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 02:13
test_reprlib fails on Windows, because '\' in quoted '\\' in the filename on repr(module). Workaround:

*******
index b0dc4d7..e476941 100644
--- a/Lib/test/test_reprlib.py
+++ b/Lib/test/test_reprlib.py
@@ -234,7 +234,7 @@ class LongReprTest(unittest.TestCase):
         touch(os.path.join(self.subpkgname, self.pkgname + '.py'))
         from areallylongpackageandmodulenametotestreprtruncation.areallylongpackageandmodulenametotestreprtruncation import areallylongpackageandmodulenametotestreprtruncation
         eq(repr(areallylongpackageandmodulenametotestreprtruncation),
-           "<module '%s' from '%s'>" % (areallylongpackageandmodulenametotestreprtruncation.__name__, areallylongpackageandmodulenametotestreprtruncation.__file__))
+           "<module %r from %r>" % (areallylongpackageandmodulenametotestreprtruncation.__name__, areallylongpackageandmodulenametotestreprtruncation.__file__))
         eq(repr(sys), "<module 'sys' (built-in)>")
 
     def test_type(self):
*******

It is maybe not a good idea to use %R to format the filename in module.__repr__().
msg126681 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 02:18
test_runpy fails on Windows on make_legacy_pyc() (of test.support), I don't know why.
msg126695 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2011-01-21 06:14
After applying the patch, doing a make clean and rebuild, I found that test_importlib fails with a segmentation fault, but the default test suite otherwise runs without error (that's on Linux with a UTF-8 filesystem, though).

I'll see how a -uall run fares.
msg126705 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2011-01-21 07:59
As for the more limited run, I get a clean run with -uall except for the segfault in test_importlib.

I'll switch to a pydebug build and see how a verbose run of that test fares.
msg126706 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2011-01-21 08:19
I haven't investigated in detail yet, but this is the final line showing the failing test:

test_module (importlib.test.builtin.test_loader.LoaderTests) ... Segmentation fault
msg126708 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 09:19
> except for the segfault in test_importlib.

Yes, as reported in my previous comment :-) Let's update the patch for practical reasons. But I don't want to touch http://codereview.appspot.com/1874048 (based on patch version 4).
msg126752 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2011-01-21 16:43
Oops, missed that post - that was indeed the problem. With that fixed, tests are all good on this system. I'll give the patch a look anyway, but I'm going to have trouble diagnosing things that don't fail on my development machine.

As far as the test_reprlib failure goes, I seem to recall addressing a similar problem elsewhere in the standard lib by replace a "%r" code with "'%s'" to get the single quotes without the backslash escaping. A similar change should probably do the trick here.
msg126755 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 17:06
> but I'm going to have trouble diagnosing things that don't fail 
> on my development machine.

On Windows, try any character not encodable into your ANSI code page (eg. Ł with cp1252) in the module path and non-ASCII characters in the module name.

On Mac OS X, sorry, it already works.

On other OSes, set the locale to something else than UTF-8 (and than ASCII because ASCII is not very interesting) and try non-ASCII module names. The patch includes issue3080.py: set the locale to fr_FR.iso88591 to have ISO-8859-1 as locale encoding and try to load a module called 'issue3080\xE4'. U+00E4 is encoded to b'\xE4' in ISO-8859-1 and b'\xC3\xA4' to UTF-8.
msg126756 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-21 17:08
I tried issue3080-5.patch. The whole test suite pass on Windows. It pass also on Linux with "-Wd -Werror -R 3:3:" (except #10971 which is unrelated to this issue).

I should maybe add some unit tests for non-ASCII module paths and non-ASCII module names :-)
msg126760 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2011-01-21 18:13
On Sat, Jan 22, 2011 at 3:08 AM, STINNER Victor <report@bugs.python.org> wrote:
> I should maybe add some unit tests for non-ASCII module paths and non-ASCII module names :-)

Indeed. There are a few tests in test_runpy that could be adapted to
that task fairly easily (it creates the test packages at run time in a
temporary directory, so copying that to make a non-ASCII path and
module name test should be too difficult).
msg127591 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-01-31 11:10
As explained in issue #10828: Python 3.2 doesn't support non-ASCII module names on Windows because module names are encoded to UTF-8 instead of the filesystem encoding (the ANSI code page).
msg127674 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-02-01 00:02
See also #6011.
msg129141 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-02-22 23:46
I started to commit some parts of the huge patch:

r88515: Mark PyWin_FindRegisteredModule() as private
r88516: Remove unused argument of _PyImport_GetDynLoadFunc()
r88517 (3.3), r88518 (3.2): document encoding used by import functions
msg129143 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-02-23 00:24
r88519: Mark _PyImport_FindBuiltin() argument as constant
r88520: Add PyModule_GetNameObject()
msg129185 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-02-23 12:52
This new failure is perhaps related:

http://www.python.org/dev/buildbot/all/builders/AMD64%20Windows%20Server%202008%203.x/builds/572/steps/test/logs/stdio


======================================================================
FAIL: test_module (test.test_reprlib.LongReprTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "c:\buildslave-py3k\3.x.curtin-win2008-amd64\build\lib\test\test_reprlib.py", line 237, in test_module
    "<module '%s' from '%s'>" % (areallylongpackageandmodulenametotestreprtruncation.__name__, areallylongpackageandmodulenametotestreprtruncation.__file__))
AssertionError: "<module 'areallylongpackageandmodulenametotestreprtruncation.areallylongpackage [truncated]... != "<module 'areallylongpackageandmodulenametotestreprtruncation.areallylongpackage [truncated]...
Diff is 825 characters long. Set self.maxDiff to None to see it.
msg129196 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-02-23 14:18
> This new failure is perhaps related: (...) test_reprlib

Ah yes, yesterday, I tried to remember which test was impacted by the module change, but all tests passed on Linux. Anyway, it's now fixed by r88533.
msg130050 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-04 12:58
r88746: Add PyModule_NewObject() function
r88747: Add PyImport_AddModuleObject() and PyImport_ExecCodeModuleObject()
msg130473 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-09 22:51
I created the features/unicode_import repository with a "unicode_import" branch:
http://hg.python.org/features/unicode_import/

It's my huge patch splitted into small and atomic commits.
msg130492 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2011-03-10 08:01
Nice work! Is there a specific place for comments? Here are some of them already:

- Modules/zipimport.c::make_filename: remove the limit buffer, the code could
  look like:

  pathsize = PyUnicode_GET_SIZE(prefix) + PyUnicode_GET_SIZE(name);
  result = PyUnicode_FromUnicode(NULL, pathsize);
  path = PyUnicode_AS_UNICODE(ret);
  ...
  return result;

- Python/importdl.c::_PyImport_LoadDynamicModule: shortnameobj is not necessary:

  lastdot = Py_UNICODE_strrchr(nameuni, '.');
  if (lastdot == NULL)
      shortname = namenuni;
  else:
      shortname = lastdot + 1;

- _PyImport_GetDynLoadFunc still takes char* arguments. Can this fail on win32
  for example, in case the pathname cannot be encoded to mbcs?
msg130507 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-10 14:34
> Is there a specific place for comments?

Yes, but my work is not done. I still have parts to commit.

> _PyImport_GetDynLoadFunc still takes char* arguments.

Oh. This one is not easy because this function has many implementations and all implementations have the same prototype. I will maybe fix it later.
msg130645 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-11 23:40
See also #9319: when this issue will be fixed, it will be easier to fix #9319.
msg130935 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-15 00:59
I finished to split the huge patch into smaller commits. You can now test the unicode_import Mercurial branch. Especially, it should be tested on Windows.

I don't know if I should merge the branch as an unique commit or as multiple commits. Some of them can be simply be merged.

You can try issue3080.py (file attached to this issue, extracted from the patch): a short script testing this issue.

--

The parser and _PyImport_GetDynLoadFunc() (on Windows) do still store the filename as byte strings, and so I don't think that Python is ready to use full Unicode range for filenames on Windows. But at least, it should now support non-ASCII module names and paths which are encodable to the ANSI code page.

Issue #10785 should improve the situation at least for the parser.

But for _PyImport_GetDynLoadFunc(), I don't know if there is a Unicode version of LoadLibraryEx().

--

> Modules/zipimport.c::make_filename: remove the limit buffer

Implemented in f286d3b514e0.

> Python/importdl.c::_PyImport_LoadDynamicModule: shortnameobj is not necessary

Done in 76907d413b99
msg131457 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-19 23:01
> Replace open_exclusive() by fopen(name, "wb") on Windows: is it correct?

I reverted this change in my Mercurial branch (unicode_import).

> rename xxxobj => xxx to keep original names and have a short patch

done

> catch encoding errors in case_ok()

done

> don't encode in case_ok() if case_ok() does nothing (eg. on Linux)

done

> find a better name for find_module2()

done: find_module_path_list() and find_module_path()
msg131464 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-19 23:26
> test_runpy fails on Windows on make_legacy_pyc() (of test.support),
> I don't know why.

Gotcha: I replaced mkdir() by CreateDirectoryW(), but the "directory already exists" error was not ignored. Fixed by 2debe178697b.
msg131472 - (view) Author: Roundup Robot (python-dev) Date: 2011-03-20 03:13
New changeset 6c80ac44ae9c by Victor Stinner in branch 'default':
Issue #3080: zipimport has a full unicode suppport
http://hg.python.org/cpython/rev/6c80ac44ae9c

New changeset b50a0d44545a by Victor Stinner in branch 'default':
Issue #3080: PyImport_Cleanup() uses Unicode
http://hg.python.org/cpython/rev/b50a0d44545a

New changeset e7c1019b27b9 by Victor Stinner in branch 'default':
Issue #3080: Add PyImport_ImportFrozenModuleObject()
http://hg.python.org/cpython/rev/e7c1019b27b9

New changeset 2425717c6430 by Victor Stinner in branch 'default':
Issue #3080: Import builtins using Unicode strings
http://hg.python.org/cpython/rev/2425717c6430

New changeset ced52fcd95f6 by Victor Stinner in branch 'default':
Issue #3080: Use PyUnicode_InternFromString() for builtins
http://hg.python.org/cpython/rev/ced52fcd95f6

New changeset e63a583ec689 by Victor Stinner in branch 'default':
Issue #3080: Document the name attribute of the _inittab structure
http://hg.python.org/cpython/rev/e63a583ec689

New changeset bab42673674a by Victor Stinner in branch 'default':
Issue #3080: _PyWin_FindRegisteredModule() returns the path as Unicode
http://hg.python.org/cpython/rev/bab42673674a

New changeset ef2b6305d395 by Victor Stinner in branch 'default':
Issue #3080: _PyImport_LoadDynamicModule() uses Unicode for name and path
http://hg.python.org/cpython/rev/ef2b6305d395

New changeset d52f471fbbeb by Victor Stinner in branch 'default':
Issue #3080: find_module() initialize buf and *p_fp
http://hg.python.org/cpython/rev/d52f471fbbeb

New changeset bdf5820f5a39 by Victor Stinner in branch 'default':
Issue #3080: Remove useless name buffer from find_module()
http://hg.python.org/cpython/rev/bdf5820f5a39

New changeset a4d797b9ff63 by Victor Stinner in branch 'default':
Issue #3080: Create find_module_path_list() subfunction
http://hg.python.org/cpython/rev/a4d797b9ff63

New changeset 09aaac73d9cf by Victor Stinner in branch 'default':
Issue #3080: Create find_module_path() subfunction
http://hg.python.org/cpython/rev/09aaac73d9cf

New changeset f6507eb8e689 by Victor Stinner in branch 'default':
Issue #3080: get_sourcefile(), make_source_pathname(), load_package()
http://hg.python.org/cpython/rev/f6507eb8e689

New changeset d24decc8c97e by Victor Stinner in branch 'default':
Issue #3080: Use Unicode to import source and compiled modules
http://hg.python.org/cpython/rev/d24decc8c97e

New changeset 64c21f364519 by Victor Stinner in branch 'default':
Issue #3080: load_module() expects name and path as Unicode
http://hg.python.org/cpython/rev/64c21f364519

New changeset e55e7f197649 by Victor Stinner in branch 'default':
Issue #3080: PyImport_ImportModuleNoBlock() uses Unicode
http://hg.python.org/cpython/rev/e55e7f197649

New changeset 7c67aa3ab531 by Victor Stinner in branch 'default':
Issue #3080: Use Unicode for the "The Magnum Opus of dotted-name import"
http://hg.python.org/cpython/rev/7c67aa3ab531

New changeset 23fe237afa81 by Victor Stinner in branch 'default':
Issue #3080: Use %R to format module name in error messages
http://hg.python.org/cpython/rev/23fe237afa81

New changeset 2ee0ab9d2e8a by Victor Stinner in branch 'default':
Issue #3080: Reindent and simplify import_submodule()
http://hg.python.org/cpython/rev/2ee0ab9d2e8a

New changeset 340f76a6a792 by Victor Stinner in branch 'default':
Issue #3080: Drop OS/2 support for the import machinery
http://hg.python.org/cpython/rev/340f76a6a792

New changeset 156818529636 by Victor Stinner in branch 'default':
Issue #3080: find_module() expects module fullname and subname as Unicode
http://hg.python.org/cpython/rev/156818529636

New changeset fe1d421ca3fa by Victor Stinner in branch 'default':
Issue #3080: Rename some path variables to path_list
http://hg.python.org/cpython/rev/fe1d421ca3fa

New changeset c1a5a7dca1ec by Victor Stinner in branch 'default':
Issue #3080: find_module() sets an empty path for builtin and frozen modules
http://hg.python.org/cpython/rev/c1a5a7dca1ec

New changeset c4ccf02456d6 by Victor Stinner in branch 'default':
Issue #3080: Refactor find_module_path(), use return instead of break
http://hg.python.org/cpython/rev/c4ccf02456d6

New changeset 298a70b27497 by Victor Stinner in branch 'default':
Issue #3080: find_init_module() expects Unicode
http://hg.python.org/cpython/rev/298a70b27497

New changeset 066b399a8477 by Victor Stinner in branch 'default':
Issue #3080: case_ok() expects Unicode strings
http://hg.python.org/cpython/rev/066b399a8477

New changeset 9aec6f0e4076 by Victor Stinner in branch 'default':
Issue #3080: find_module() returns the path as Unicode
http://hg.python.org/cpython/rev/9aec6f0e4076

New changeset c17bc2026145 by Victor Stinner in branch 'default':
Issue #3080: imp.new_module() uses Unicode
http://hg.python.org/cpython/rev/c17bc2026145

New changeset c4361bab6914 by Victor Stinner in branch 'default':
Issue #3080: Use repr() to format the module name on error
http://hg.python.org/cpython/rev/c4361bab6914

New changeset 80f4bd647695 by Victor Stinner in branch 'default':
Issue #3080: Add PyImport_ImportModuleLevelObject() function
http://hg.python.org/cpython/rev/80f4bd647695

New changeset cc7c0f6f60bf by Victor Stinner in branch 'default':
Issue #3080: skip test_bdist_rpm if sys.executable is not encodable to UTF-8
http://hg.python.org/cpython/rev/cc7c0f6f60bf
msg131473 - (view) Author: Roundup Robot (python-dev) Date: 2011-03-20 03:29
New changeset f8d6f6797909 by Victor Stinner in branch 'default':
Issue #3080: Fix case_ok() using case_bytes()
http://hg.python.org/cpython/rev/f8d6f6797909
msg131474 - (view) Author: Roundup Robot (python-dev) Date: 2011-03-20 04:00
New changeset dc38c4d65cd9 by Victor Stinner in branch 'default':
Issue #3080: Fix call to case_ok() in find_init_module()
http://hg.python.org/cpython/rev/dc38c4d65cd9
msg131483 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-20 11:26
http://www.python.org/dev/buildbot/all/builders/PPC%20Tiger%203.x/builds/1599/steps/test/logs/stdio

======================================================================
ERROR: testImpWrapper (test.test_importhooks.ImportHooksTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/test/test_importhooks.py", line 239, in testImpWrapper
    m = __import__(mname, globals(), locals(), ["__dummy__"])
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/test/test_importhooks.py", line 132, in load_module
    mod = imp.load_module(fullname, self.file, self.filename, self.stuff)
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/distutils/core.py", line 19, in <module>
    from distutils.cmd import Command
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/test/test_importhooks.py", line 132, in load_module
    mod = imp.load_module(fullname, self.file, self.filename, self.stuff)
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/distutils/cmd.py", line 11, in <module>
    from distutils import util, dir_util, file_util, archive_util, dep_util
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/test/test_importhooks.py", line 132, in load_module
    mod = imp.load_module(fullname, self.file, self.filename, self.stuff)
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/distutils/dir_util.py", line 8, in <module>
    import errno
  File "/Users/buildbot/buildarea/3.x.parc-tiger-1/build/Lib/test/test_importhooks.py", line 132, in load_module
    mod = imp.load_module(fullname, self.file, self.filename, self.stuff)
TypeError: 'NoneType' object is not iterable

----------------------------------------------------------------------
msg131484 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-20 11:35
>     mod = imp.load_module(fullname, self.file, self.filename, self.stuff)
> TypeError: 'NoneType' object is not iterable

The problem is that imp.find_module() now returns None as the filename, but imp.load_module() doesn't support None.
msg131516 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2011-03-20 17:09
Attached patch fixes a typo in Doc/c-api/import.rst.  You can merge it in your next commit.
msg131547 - (view) Author: Roundup Robot (python-dev) Date: 2011-03-20 21:38
New changeset 7f4a4e393058 by Victor Stinner in branch 'default':
Issue #3080: imp.load_module() accepts None for the module path
http://hg.python.org/cpython/rev/7f4a4e393058
msg131571 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-20 23:34
Ok. Python 3.3 does now support non-ASCII characters in module paths and names on Windows, but only characters encodable to the ANSI code page. To support the full Unicode range, we should remove all calls to PyUnicode_EncodeFSDefault() on Windows:

  a) parse_source_module() has to encode the filename because the parser has no function expecting a filename as a Python object. It uses currently PyParser_ASTFromFile().

  b) write_compiled_module() encodes the filename to call open_exclusive(). I don't know how to implement open_exclusive() for Windows using Unicode filename: open() expects the filename as a byte string. Can we use _Py_fopen() (_wfopen)? Or do you need the O_EXCL flag?

  c) _PyImport_LoadDynamicModule() encodes the filename for _PyImport_GetDynLoadFunc(). The prototype should be changed, but only on Windows, to accept a filename as a Unicode string.

Issue #10785 is the right fix to (a). When #10785 will be fixed, it will be easier to fix #9319 crash.
msg131572 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-20 23:49
> c) _PyImport_LoadDynamicModule() encodes the filename for
> _PyImport_GetDynLoadFunc(). The prototype should be changed,
> but only on Windows, to accept a filename as a Unicode string.

Hum, the difficult part is to use Unicode in _PyImport_GetDynLoadFunc() for:

hDLL = LoadLibraryEx(pathname, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);

There is a LoadLibraryW() function, but it doesn't have a flag argument. And I suppose that the LOAD_WITH_ALTERED_SEARCH_PATH option is important.
msg131575 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-21 00:01
Ok, I think that the most important part is now implemented in Python 3.3: use Unicode for module names and paths in the import machinery. Remaing parts are specific to Windows, and so I opened a new issue: #11619. Let's close this 3 years old issue.
msg131606 - (view) Author: Roundup Robot (python-dev) Date: 2011-03-21 02:22
New changeset ee4e780a6b7a by Éric Araujo in branch 'default':
Fix a typo (see #3080)
http://hg.python.org/cpython/rev/ee4e780a6b7a
msg131612 - (view) Author: Andrew Svetlov (asvetlov) * (Python committer) Date: 2011-03-21 04:08
As I see Victor has dropped OS/2 support from Python/import.c
Perhaps file Python/dynload_os2.c should be removed also.
Not sure about other dynload_* files.
msg131625 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-21 09:34
> As I see Victor has dropped OS/2 support from Python/import.c
> Perhaps file Python/dynload_os2.c should be removed also.
> Not sure about other dynload_* files.

340f76a6a792 just removes few lines in import.c: they can easily be rewritten. And this commit doesn't drop completly the support of OS/2 from the import machinery, as you wrote: dynload_os2.c still exists.

If we drop completly the support of OS/2, it should be done completly using a PEP (I don't remember its number), and it should be discussed. At least with Andrew I MacIntyre :-)
msg131664 - (view) Author: Andrew Svetlov (asvetlov) * (Python committer) Date: 2011-03-21 15:06
Understood. Sorry.
I thought Python support only Windows and posix (Linux, BSD, MacOSX etc) systems now, all other OSes are not maintained.

Anyway please don't care about that.
msg131711 - (view) Author: Roundup Robot (python-dev) Date: 2011-03-22 00:22
New changeset 15f9eca5e956 by Victor Stinner in branch 'default':
Issue #3080: On DJGPP, case_bytes() returns -1 to signal an error if the file
http://hg.python.org/cpython/rev/15f9eca5e956
msg131890 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-03-23 15:58
test the fixed nosy list
History
Date User Action Args
2011-03-23 15:58:18vstinnersetmessages: + msg131890
2011-03-22 00:22:49python-devsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131711
2011-03-21 15:06:31asvetlovsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131664
2011-03-21 09:34:11vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131625
2011-03-21 04:08:23asvetlovsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131612
2011-03-21 02:22:58python-devsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131606
2011-03-21 00:01:35vstinnersetstatus: open -> closed

messages: + msg131575
resolution: fixed
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
2011-03-20 23:49:40vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131572
2011-03-20 23:34:01vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131571
2011-03-20 21:38:25python-devsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, asvetlov, python-dev
messages: + msg131547
2011-03-20 20:54:02asvetlovsetnosy: + asvetlov
2011-03-20 17:09:41eric.araujosetfiles: + typo.diff
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, python-dev
messages: + msg131516
2011-03-20 11:35:12vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, python-dev
messages: + msg131484
2011-03-20 11:26:50vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, python-dev
messages: + msg131483
2011-03-20 04:00:28python-devsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, python-dev
messages: + msg131474
2011-03-20 03:29:01python-devsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray, python-dev
messages: + msg131473
2011-03-20 03:13:16python-devsetnosy: + python-dev
messages: + msg131472
2011-03-19 23:26:59vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg131464
2011-03-19 23:01:44vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg131457
2011-03-19 22:45:16vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: - msg123994
2011-03-19 22:36:00vstinnersetfiles: + issue3080.py
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
2011-03-15 00:59:50vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg130935
2011-03-11 23:40:43vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg130645
2011-03-10 14:34:23vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg130507
2011-03-10 08:01:21amaury.forgeotdarcsetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg130492
2011-03-09 22:51:11vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg130473
2011-03-04 12:58:03vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg130050
2011-02-23 14:18:07vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, pitrou, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg129196
2011-02-23 12:52:57pitrousetnosy: + pitrou
messages: + msg129185
2011-02-23 00:24:38vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg129143
2011-02-22 23:46:01vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg129141
2011-02-01 00:02:31vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg127674
2011-01-31 11:10:45vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg127591
2011-01-21 18:13:25ncoghlansetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126760
2011-01-21 17:08:42vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126756
2011-01-21 17:06:50vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126755
2011-01-21 16:43:14ncoghlansetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126752
2011-01-21 09:19:50vstinnersetfiles: - issue3080-4-svn.patch
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
2011-01-21 09:19:47vstinnersetfiles: - issue3080-4.patch
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
2011-01-21 09:19:30vstinnersetfiles: + issue3080-5.patch
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126708
2011-01-21 08:19:12ncoghlansetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126706
2011-01-21 07:59:47ncoghlansetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126705
2011-01-21 06:14:14ncoghlansetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126695
2011-01-21 02:18:01vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126681
2011-01-21 02:13:41vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126680
2011-01-21 02:08:19vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126678
2011-01-21 01:37:11vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126676
2011-01-21 01:25:28vstinnersetfiles: + issue3080-4-svn.patch
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126673
2011-01-21 01:21:32vstinnersetfiles: - issue3080-3.patch
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
2011-01-21 01:21:20vstinnersetfiles: + issue3080-4.patch
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126672
2011-01-20 13:52:10vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126613
2011-01-20 13:35:20ncoghlansetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126612
2011-01-20 13:24:23vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, ncoghlan, belopolsky, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126608
2011-01-20 13:22:45ncoghlansetnosy: + ncoghlan
messages: + msg126606
2011-01-20 04:20:32belopolskysetnosy: + belopolsky
2011-01-19 01:27:45vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126516
2011-01-19 01:25:17vstinnersetnosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg126515
2011-01-19 01:22:08vstinnersetfiles: + issue3080-3.patch

messages: + msg126514
keywords: + patch
nosy: brett.cannon, georg.brandl, terry.reedy, amaury.forgeotdarc, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
2011-01-08 06:23:10terry.reedysetnosy: + terry.reedy
messages: + msg125752
2010-12-28 02:51:56vstinnersetnosy: brett.cannon, georg.brandl, amaury.forgeotdarc, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
versions: + Python 3.3, - Python 3.2
2010-12-28 02:51:41vstinnersetnosy: brett.cannon, georg.brandl, amaury.forgeotdarc, vstinner, benjamin.peterson, eric.araujo, Arfrever, r.david.murray
messages: + msg124756
2010-12-14 23:48:00vstinnersetmessages: + msg123994
2010-12-14 23:47:56vstinnersetmessages: + msg123993
2010-12-14 17:58:36r.david.murraysetpriority: critical -> high
nosy: + r.david.murray
messages: + msg123963

2010-10-19 04:50:07eric.araujosetnosy: + eric.araujo
2010-10-19 02:19:13vstinnersetmessages: + msg119107
2010-07-30 00:20:33vstinnersetmessages: + msg112028
2010-07-10 10:34:04georg.brandlsetversions: - Python 3.1
nosy: + georg.brandl, vstinner

messages: + msg109844

assignee: vstinner
2010-06-30 23:35:26Arfreversetnosy: + Arfrever
2010-04-28 02:33:53terry.reedysetversions: + Python 3.2
2009-02-15 18:26:41ocean-cityunlinkissue5273 dependencies
2009-02-15 16:29:14ocean-citylinkissue5273 dependencies
2008-08-09 18:10:58pitrousetpriority: critical
type: behavior
versions: + Python 3.1, - Python 3.0
2008-06-11 20:27:35benjamin.petersonsetnosy: + brett.cannon, benjamin.peterson
messages: + msg68015
2008-06-11 18:24:56amaury.forgeotdarccreate