[17:07:40] <ronny> adamholmberg: a good waz to handle that wold be to just use extras, install the minimal set by default, and have a number of extras that just handle expensive requirement sets
[17:07:57] <ronny> adamholmberg: can you outline the dependencies and their purpose a bit more
[17:08:14] <ronny> adamholmberg: also note that with modern pip, its likelz a dependencz needs to be built only once
[17:10:07] <adamholmberg> It's an option to cythonize some of the modules in place. When active, Cython becomes a build_requires and a long build process happens in build_ext. When not active, I'm trying to avoid that build requirement, and not do the cythonizing.
[17:16:58] <ronny> adamholmberg: i see, then thats really tricky
[17:27:27] <adamholmberg> I was hoping it was not the most obvious thing. :) Didn't find a lot after reading the packaging guide. Right now I'm looking at customizing "install" to see if I can introspect extras
[17:33:01] <ngoldbaum> adamholmberg: so you want a way to switch back and forth between a pure python mode and a cython-accelerated mode?
[17:33:59] <adamholmberg> A way to control the way it installs (whether to do the expensive compilation, or just install the pure python artifacts).
[17:34:38] <ngoldbaum> i'm not sure if there's a good way to do that from pip, i've seen other projects do it by passing e.g. a --pure flag to setup.py
[17:36:11] <adamholmberg> yeah. That's the pattern I have now. It doesn't play well with external dependencies because https://github.com/pypa/pip/issues/1883
[17:36:25] <ngoldbaum> sure, there might not be an alternative though :/
[17:36:27] <adamholmberg> (pip passes --install-option to all deps)
[17:36:31] <ngoldbaum> maybe an environment variable?
[17:36:47] <ngoldbaum> or just check if cython is installed and always turn it on in that case
[17:37:09] <ngoldbaum> most of the time you probably want the speed from cython, except when debugging, which you could setup a virtualenv without cython for
[17:37:50] <adamholmberg> I have a lot of varied use cases, but definitely agree with that.
[17:38:18] <adamholmberg> For example, lots of installs in automated testing, where they don't care as much about raw throughput, but install times are important.
[17:38:28] <adamholmberg> Just trying to find a good way of controlling the install.
[17:38:51] <adamholmberg> Was hoping there was something in the tooling, but over-the-top with env vars might be fine.
[23:27:00] <dstufft> does tox do it's own --requirement processing or does it pass it into pip
[23:27:13] <glyph> dstufft: I don't know that, that's why I ask this channel questions like this :-(
[23:27:28] <dstufft> I'm kind of thinking it does it's own, because I remember holger not wanting to import from pip because we don't make any promises about API compat
[23:31:18] <glyph> dstufft: would putting "#egg=whatever" on the end of that fix my problem?
[23:31:36] <dstufft> that might confuse things because pip won't know what the name of that requirement is, and tox's caching might be skipping over it
[23:31:49] <dstufft> if that's the case, the #egg=whatever should fix it
[23:32:02] <dstufft> where it's like, #egg=twisted
[23:38:45] <glyph> well, actually, it occurs to me that for twisted I can actually use the release version now ;)
[23:38:51] <dstufft> I think if you change "https://github.com/twisted/twisted/tarball/931370903d1a7ad7957901921e575b9bee68ead0" to -f "https://github.com/twisted/twisted/tarball/931370903d1a7ad7957901921e575b9bee68ead0#egg=twisted-theversionoftwistedyou'retryingtoinstall"
[23:38:52] <glyph> but I still have this problem with treq and klein
[23:42:32] <glyph> dstufft: so this is _not_ my understanding of what '-f' does.
[23:43:13] <dstufft> --find-links / -f adds additional locations to search, they could either point directly at an installable file or they can point at an HTML page (or a directory) and we'll search that
[23:43:47] <dstufft> you wouldn't need the #egg= bit I think if your URL was something more like https://.../Twisted-1.0.tar.gz
[23:44:18] <dstufft> but since your URL doesn't "look" installable, we'll assume it's HTML and retrieve it (and thens kip it because the mimetype)
[23:45:26] <glyph> dstufft: it doesn't "look installable" even with the egg fragment parameter?
[23:45:47] <dstufft> the #egg= bit makes it look installable
[23:45:53] <dstufft> I meant if you didn't include the #egg= bit
[23:52:55] <_habnabit> aaaaaaaaaaaaaugghhhhhhhhhhhhhhhh it's just one thing after another
[23:53:30] <_habnabit> now that i've dealt with the python 3 comedy of errors, pex requires setuptools<16, and i was trying to use environment markers with <, which isn't supported before setuptools 17.1
[23:54:20] <dstufft> _habnabit: sounds like you're doing a packaging.