On 12 October 2013 17:55, Christian Heimes <christ...@python.org> wrote: > Am 12.10.2013 17:37, schrieb Nick Coghlan: >> I think the default recommendation in PEP 399 still makes sense - 2 >> modules are easy to manage than three and the idiom allows for easy >> partial replacement. > > We could ues yet another approach and put the pure Python implementation > of modules into another directory (e.g. Lib/pystdlib or Lib/purepython). > This directory is appended to sys.path. Alternative implementations of > Python or platforms without the necessary bits and pieces would import > the Python-only version from that directory. C modules can be renamed so > CPython picks them up in favor of the pure Python modules. No hacks, no > facade module, no slow down and it's easy to understand, too. > > The approach can be used for stat, operator, decimal and perhaps other > modules, too.
CPython preferentially imports extension modules over .py modules with the same name. This is what happens when you use Cython in "pure" mode: You have a pure mod.py file and an "augmenting" mod.pxd that contains the annotations relevant to Cython. The resulting extension module is mod.{pyd,so} and is imported by CPython if present. This way you don't need an additional directory/module. Oscar _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com