[Cython] Cython is not PEP-420 (Implicit Namespace Packages) compliant
Alexey V Gorshkov
animus at wayround.org
Sat Dec 15 21:05:55 CET 2012
Stefan Behnel wrote:
> Alexey V Gorshkov, 15.12.2012 02:17:
>> Reporting about Cython PEP-420 (Implicit Namespace Packages) incompliance.
>> (Sample package setup attached)
>> Next package's tree will not work and will return error
> I'm sure it's not - the compile time package resolution code in Cython was
> written long before namespace packages were even being thought about. (For
> comparison, remember that almost none of the existing CPython versions
> supports namespaces packages either, 3.3 is the only exception).
> Basically, the runtime import code should be ok, but the package resolution
> at compile time, that is used mainly for cimports and for figuring out the
> fully qualified module name of compiled modules, doesn't have any support
> for packages that don't have an __init__.py.
> Would you care to change that? You could try to come up with a patch, we'd
> certainly appreciate it.
> cython-devel mailing list
> cython-devel at python.org
Following changes works for me. But I did not made any tests except on
package I've sent in initial message.
diff --git a/Cython/Utils.py b/Cython/Utils.py
index 5739f38..8f05287 100644
@@ -3,7 +3,7 @@
# anywhere else in particular
-import os, sys, re, codecs
+import os, os.path, sys, re, codecs
modification_time = os.path.getmtime
@@ -87,7 +87,7 @@ def search_include_directories(dirs, qualified_name,
dirs = (find_root_package_dir(file_desc.filename),) + dirs
- dotted_filename = qualified_name
+ dotted_filename = qualified_name.replace('.', os.path.sep)
dotted_filename += suffix
if not include:
More information about the cython-devel