On Apr 14, 2016 21:07, "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
I have a solution for exactly this in astropy_helpers which makes it possible, for example, to pull in Cython via setup_requires, but only if it's needed. Remind me on Monday and I can point out how it works. > 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