[Python-checkins] cpython: Fix imp.cache_from_source() if the directory name contains a dot (original) (raw)
victor.stinner python-checkins at python.org
Sun Mar 20 04:14:04 CET 2011
- Previous message: [Python-checkins] cpython: Issue #3080: imp.new_module() uses Unicode
- Next message: [Python-checkins] cpython: Issue #3080: Use repr() to format the module name on error
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
http://hg.python.org/cpython/rev/238cbd559e9c changeset: 68737:238cbd559e9c user: Victor Stinner <victor.stinner at haypocalc.com> date: Mon Mar 14 15:05:12 2011 -0400 summary: Fix imp.cache_from_source() if the directory name contains a dot
If the directory name contains a dot but not the filename, don't strip at the dot.
files: Lib/test/test_imp.py Python/import.c
diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py --- a/Lib/test/test_imp.py +++ b/Lib/test/test_imp.py @@ -210,6 +210,10 @@ self.assertEqual( imp.cache_from_source('/foo/bar/baz/qux.py', True), '/foo/bar/baz/pycache/qux.{}.pyc'.format(self.tag))
# Directory with a dot, filename without dot
self.assertEqual(
imp.cache_from_source('/foo.bar/file', True),
def test_cache_from_source_optimized(self): # Given the path to a .py file, return the path to its PEP 3147'/foo.bar/__pycache__/file{}.pyc'.format(self.tag))
diff --git a/Python/import.c b/Python/import.c --- a/Python/import.c +++ b/Python/import.c @@ -943,12 +943,12 @@ Py_UNICODE_strcat(buf, CACHEDIR_UNICODE); i += Py_UNICODE_strlen(CACHEDIR_UNICODE) - 1; buf[i++] = sep;
- buf[i++] = '\0';
- buf[i] = '\0'; /* Add the base filename, but remove the .py or .pyw extension, since the tag name must go before the extension. */ Py_UNICODE_strcat(buf, pathname + save);
- pos = Py_UNICODE_strrchr(buf, '.');
- pos = Py_UNICODE_strrchr(buf + i, '.'); if (pos != NULL) *++pos = '\0'; Py_UNICODE_strcat(buf, PYC_TAG_UNICODE);
-- Repository URL: http://hg.python.org/cpython
- Previous message: [Python-checkins] cpython: Issue #3080: imp.new_module() uses Unicode
- Next message: [Python-checkins] cpython: Issue #3080: Use repr() to format the module name on error
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]