I agree that we shouldn't disallow distutils' Extensions just because setuptools was imported.
https://github.com/cython/cython/commit/d804bd2d8d9aac04b92d4bfb8dbc7f8a4c8079ac On Thu, Apr 14, 2016 at 12:07 PM, Manuel Nuno Melo < manuel.nuno.m...@gmail.com> wrote: > Our need to control cythonization comes from the fact that we implement > cython as a lazy and optional dependency. Lazy in the sense that we delay > as much as possible cythonization so that setuptools or pip have time to > install cython, if needed. Optional because we distribute both .pyx and > cythonized .c files, and decide on which to use based on user flags. > > We, therefore, need an Extension class that only cythonizes if we decide > to. > > Thanks for the feedback, > Manel > > On Apr 14, 2016 8:17 PM, "Matthew Brett" <matthew.br...@gmail.com> wrote: > > > > On Thu, Apr 14, 2016 at 6:08 AM, Erik Bray <erik.m.b...@gmail.com> > wrote: > > > On Wed, Apr 13, 2016 at 9:35 PM, Manuel Nuno Melo > > > <manuel.nuno.m...@gmail.com> wrote: > > >> Hello devs, > > >> > > >> I'm developing the setup.py for a scientific package, MDAnalysis (see > PR > > >> #799). We depend on distutils and setuptool. Namely, we use > > >> setuptools.extension.Extension class for our extensions. > > >> > > >> Some older versions of setuptools (<18.0) do filename cythonization > > >> themselves upon initialization of the Extension object. > > >> > > >> Because we want to control name cythonization ourselves I try to > directly > > >> use distutils.extension.Extension, which has none of setuptools' > > >> cythonization. However, this doesn't work because setuptools patches > > >> distutils, so that distutils.extension.Extension effectively becomes > > >> setuptools.extension.Extension. > > > > > > I'm wondering what it is specifically you need to do in your > > > subclass--might it still be possible to do with a subclass of the > > > setuptools Extension? Not saying I disagree with the overall idea, > > > but I also wonder if there isn't a better way. > > > > I know this is a terrible and ugly hack, but the projects I work in > > have a 'fake_pyrex' directory, that fools setuptools into thinking > > that 'pyrex' is installed, and therefore prevents it from doing the > > .pyx -> .c filename conversions in the extension: > > > > https://github.com/regreg/regreg/blob/master/setup.py#L33 > > > > Cheers, > > > > Matthew > > _______________________________________________ > > cython-devel mailing list > > cython-devel@python.org > > https://mail.python.org/mailman/listinfo/cython-devel > > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > https://mail.python.org/mailman/listinfo/cython-devel > >
_______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel