[01:19:26] <r1chardj0n3s> it would be nice to have a better solution for users who pop up like this occasionally https://sourceforge.net/p/pypi/support-requests/448/
[01:19:31] <pmxbot> jaraco pushed 12 commits to setuptools (https://bitbucket.org/pypa/setuptools/) :
[01:19:31] <pmxbot> Reuse list2cmdline for argument quoting.
[01:19:31] <pmxbot> Extract method for getting script args
[01:19:31] <pmxbot> No need to pass the writer - just invoke it directly.
[01:19:31] <pmxbot> Moved get_script_header into ScriptWriter class
[01:19:31] <pmxbot> Deprecate and remove usage of easy_install.get_script_header.
[01:19:31] <pmxbot> Rename _gen_args to get_args (for consistency).
[01:19:31] <pmxbot> Extract method for parsing options.
[01:19:31] <pmxbot> Extract method for handling non-ascii exe. Strip out excess whitespace from option handling.
[01:19:49] <r1chardj0n3s> dstufft .. my last message (I got pmxbot'ed before typing this)
[01:20:51] <dstufft> r1chardj0n3s: should file a ticket agaisnt warehouse
[01:21:46] <dstufft> I don't think it's unreasonable to have a "soft limit" which is enforced by Warehouse with the ability to relax that limit for particular projects and a "hard limit" enforced by Fastly and/or nginx
[01:23:19] <r1chardj0n3s> thing is, I really only get requests like this once every few years
[01:37:15] <r1chardj0n3s> OMFG PyPI support backlog cleared
[01:37:33] <r1chardj0n3s> (for now, pending responses including to one dispute over an unwanted fork)
[01:38:15] <dstufft> r1chardj0n3s: heh, yea things are a little harder to find now, but that's the price we pay for being able to spin up new web nodes super quick
[02:36:46] <dstufft> http://d.stufft.io/image/3X1Y2I0D1E3L is nice though
[02:38:33] <Alex_Gaynor> dstufft: yeah, that's pretty nice, hope jenkins gets support for that soon so we can use it on pyca/cryptographyt
[02:41:02] <dstufft> Alex_Gaynor: I'm supposed to hae a video chat with joshk sometime to talk about travis enterprise and seeing if it makes sense for PyPA and PyCA to run our own instance
[02:42:04] <dstufft> (and if that would eliminate the need to run Jenkins, though Windows is likely a problem with that I guess since probably Travis doesn't support winrm or w/e the hell)
[02:44:05] <Alex_Gaynor> dstufft: I'd honestly rather find ways for us to give them money for more computers or whatever than to run our own stuff
[02:44:34] <dstufft> Alex_Gaynor: more compute power isn't going to give us the ability to run FreeBSD or whatever the fuck
[02:45:14] <dstufft> as far as I know their plan for custom images is going to revolve around Docker
[02:45:22] <dstufft> which means nothing non-linux for that
[02:45:23] <Alex_Gaynor> dstufft: mm, you're saying if we ran an enterprise we could have our images be FreeBSD, wacky debian, etc.
[02:45:35] <dstufft> Alex_Gaynor: that's one of the things I'm planning on asking him yes
[02:45:46] <Alex_Gaynor> dstufft: I think there's a plan for Docker to support jails? (should we move this to a different channel?)
[02:46:15] <dstufft> Alex_Gaynor: eh, it's just as relevant for PyPA, because we need something to cover those OSs, we're just deficient in that
[02:46:59] <dstufft> Alex_Gaynor: they might cover jails later on yea maybe, I don't know if OSX will work or not on Travis enterprise. I mean down the road if travis-ci.org ends up being able to customize things enough that we no longer need to run our own then I don't see a problem dropping it
[02:47:14] <dstufft> but right now PyCA in particular is already running test infra
[02:47:19] <dstufft> it's not like it's going from not running to running
[02:48:16] <dstufft> I have no idea how the talk is going to turn out, but I've been wanting customized travis for awhile for PyPA and If igured i'd ask about both
[02:49:26] <dstufft> especially if it's possible to get OSX and Windows shoe horned into travis enterprise
[02:49:34] <dstufft> that could take the CI systems down to 1
[03:13:42] <pmxbot> Add test demonstrating how a custom launch command spec that could be passed as the script executable.
[03:50:03] <pmxbot> jaraco pushed 5 commits to setuptools (https://bitbucket.org/pypa/setuptools/) :
[03:50:03] <pmxbot> Allow CommandSpec to be constructed simply from a list.
[03:50:03] <pmxbot> Add test capturing expectation around sys.executable having spaces in the name.
[03:50:03] <pmxbot> Change the way string values are interpreted from build.executable - now they must be quoted or otherwise escaped suitable for parsing by shlex.split.
[03:50:03] <pmxbot> Fix failing test (now that expectation is different).
[04:20:50] <dstufft> I'm not sure what would cause that, it looks like maybe something in distlib, but I don't have have the mental capacity yo really deug it right this minute
[04:49:44] <r1chardj0n3s> clearly something is quite fubar in my 3.4 install
[04:50:30] <r1chardj0n3s> I've just fixed a bug in the pip self-check but can't run the goddamn test suite because virtualenv is broken because stevedore because pip becaUSE PBFUCKGINR
[04:51:50] <sigmavirus24> r1chardj0n3s: https://github.com/kennethreitz/python-guide/issues/494 vent your frustrations there
[05:03:33] <r1chardj0n3s> dstufft ... Python 3.4 install from source, all seems to work. "pip --version" tells me it's the python 2 version, all ok. but there's no pip3. "python -m pip" works.
[05:29:27] <dstufft> that makes the unicode settings give you that max unicodes across all the pythons (2.x and above) and makes the other crap match what ubuntu does
[05:35:13] <r1chardj0n3s> dstufft: ok, so I got 3.4.2 installed using pyenv, but installing 2.7.8 using it failed :/
[05:35:32] <dstufft> r1chardj0n3s: how did it fail?
[05:35:39] <dstufft> I have 2.7.9 installed via it, and I had 2.7.8
[05:35:54] <r1chardj0n3s> TEST FAILED: /lib/python2.7/site-packages/ does NOT support .pth files
[05:39:53] <tomprince> I wonder if it would be possible to support creating a virtualenv in one location with the intention of relocating to a *fixed* *known-in-advance* location.
[05:40:44] <dstufft> tomprince: yea, it never really worked right and the primary motivation behind it seems to be to prevent needing to recompile things.
[05:40:50] <dstufft> tomprince: hmm, something like DESTDIR might be doable
[05:40:52] <r1chardj0n3s> oh, I think I know what the culprit *might* be
[05:41:47] <dstufft> tomprince: it might require support in pip to make it doable though, can you comment on the PR?
[05:43:32] <r1chardj0n3s> nuked, trying again. last attempt tho, since Abbey is now playing Ni No Kuni on the TV right next to my work desk and that's far more appealing right now :/
[05:45:02] <r1chardj0n3s> also the ballonicorn has migrated to the living room (my work space ;)
[05:45:14] <tomprince> dstufft: I wrote a wall of text.
[11:10:59] <straycat> Is there a reason pkg_resources.parse_requirements() replaces _ in the project_name with - seems strange since there are projects on pypi with _ in the project name?
[11:11:21] <straycat> I'm looking for some sort of project name spec but I don't see one
[11:33:28] <straycat> Ahh xafer just pointed me to http://legacy.python.org/dev/peps/pep-0426/#name in #pypa, which states: "All comparisons of distribution names MUST be case insensitive, and MUST consider hyphens and underscores to be equivalent." So I guess this is why parse_requirements makes that replacement.
[17:46:30] <dstufft> dunno what the right answer is
[17:49:25] <sigmavirus24> dstufft: they can use env vars to disable that, no?
[17:49:28] <jaraco> Well, it sounds as if the level should be set so at least the caller will be known in the warning.
[17:49:53] <sigmavirus24> So warnings can also be set to fire only once
[17:50:13] <dstufft> I don't think the once thing is actually going to work
[17:50:17] <sigmavirus24> I think matching is done on the message so if it is static that's cool. If they're running pip lots of times though, that can be a problem since it'll still hit the console logs
[17:50:27] <sigmavirus24> dstufft: you can also have all warnings go to the pip log
[17:50:28] <jaraco> I would have expected that to be the default for DeprecationWarnings. Also, I thought DeprecationWarnings were suppressed by default except in test suites.
[18:25:57] <dhellmann> jaraco: I'm not sure why a boolean flag to disable a behavior is an anti-pattern, but as long as there's a clearly public API that does the same thing I don't care too much.
[18:27:34] <dstufft> jaraco: next question, are you planning on doing the clearly public name today and if so should I hope off on a pip/virtualenv release?
[18:30:23] <dstufft> jaraco: eh, I don't know that method(some_flag=True) is quite the same as method(True), the blog seems to be against them because it's hard to know what it does, which I don't think is the case with keyword args
[18:30:56] <dstufft> I don't think that method(SomeFlagEnable) and method(SomeFlagDisable) is better than method(some_flag=True) or method(some_flag=False)
[18:31:20] <dhellmann> jaraco: I don't know if I buy it, but as I said it doesn't really matter as long as the feature is still available.
[18:34:26] <jaraco> I'm leaning toward load_ and deprecating load entirely, to eventually have load replace load_.
[18:34:54] <dstufft> alternatively, if the functionality needs to stay (which I think it does and hope it does), and a suitable name can't be picked it may not be worth the code churn ? I dunno
[18:34:58] <dhellmann> jaraco: how would that work?
[18:36:27] <jaraco> dhellmann, it would require that no callers are using EntryPoint.load, then it could become an alias for load_.
[18:36:37] <jaraco> But that would likely be well into the future.
[18:38:00] <dstufft> jaraco: having Entrypoint.load() and Entrypoint.load_() (and tbh Entrypoint._load()) with slightly different behaviors feels a lot worse to me than the original problem :/
[18:38:03] <jaraco> I share dstufft's sentiment about code churn.
[18:38:15] <dhellmann> jaraco: I have to make stevedore work with whatever version of setuptools happens to be installed. It sounds like this is going to be a fair amount of code churn for little real benefit.
[18:39:23] <jaraco> I'm pretty sure _load can be removed. It's only been out a short time.
[18:40:20] <dhellmann> I'm not using it in stevedore yet, but I've been waiting to understand the full plan before I made any changes
[18:41:52] <dstufft> jaraco: well even Entrypoint.load() and Entrypoint.load_() with different behaviors feels worse to me than a named boolean argument. like I'm totally on board with cleaning it up if we can come up with a good name for it, but just appending a _ to the end makes me feel like maybe the remedy is worse than the disease in this case unless a different, but descriptive name that shows the differnce between the two can be thought up?
[18:42:32] <jaraco> dstufft, but if .load() is deprecated, then it can be disregarded as legacy, right?
[18:42:59] <dstufft> jaraco: theortically, but the two names look so much alike that it'd be hard to visually notice the two functions are different
[18:56:04] <dstufft> the only problem is the "just do the import" side, which "import" is an obvious name, but reserved so requires munging, and .load() has the old behavior
[18:58:43] <dstufft> or getattr(ep, "resolve", lambda: ep.load(require=False))()
[19:04:48] <jaraco> dstufft, should I deprecate EntryPoint.load or just the require parameter? Given that ep.load() is a very common usage, I'm inclined not to deprecate it.
[19:05:45] <dstufft> jaraco: you might just document it as deprecated but in a we're not going to actually remove it way?
[19:09:52] <dstufft> basically I agree with everything sigmavirus24 just said
[19:10:51] <jaraco> hmm. I'm okay with deprecating the parameters to .load(), but I'm more inclined to allow it as a shortcut for exactly that most common usage (when no parameters are passed).
[19:10:55] <sigmavirus24> dstufft: so when do we become one mind with unfortunate amounts of knowledge about awful things like packaging and http?
[19:11:24] <dstufft> sigmavirus24: I'm not sure one mind could sustain that much awful
[19:11:41] <sigmavirus24> dstufft: you're right. it's better we just agree on lots of things and operate separately
[19:12:37] <dstufft> sigmavirus24: having that much awful in one might might be like trying to hold an infinity stone
[19:12:43] <dstufft> jaraco: that sounds ok to me too
[19:14:22] <jaraco> I'm going to start with the softer deprecation for now. It'll be straightforward to deprecate the method entirely in the future.
[19:20:14] <jaraco> dstufft: thanks for that. Which is better for the changelog? using lambda or functools?
[19:20:59] <dstufft> jaraco: lambda is shorter and doesn't require an additional import, i'd probably use that (though you should make sure it actually works since I just wrote it in irc)
[19:25:59] <pmxbot> jaraco pushed 3 commits to setuptools (https://bitbucket.org/pypa/setuptools/) :
[19:25:59] <pmxbot> Add EntryPoint.resolve and deprecate most usage of EntryPoint.load. Removed EntryPoint._load.
[19:25:59] <pmxbot> Added tag 11.3 for changeset a1a6a1ac9113
[19:25:59] <pmxbot> Bumped to 11.4 in preparation for next release.
[19:27:57] <dstufft> jaraco: so 11.3 has the new method?
[19:33:51] <dhellmann> jaraco, dstufft: ok, 2 new functions works for me. I can make stevedore check for them and use them, or call load() as it does now.
[20:22:05] <dstufft> I tend to try to reduce branches because my projects tend to require 100% branch coverage ;)
[20:22:42] <dhellmann> you have the same number of cases to test either way, right? :-)
[20:24:49] <sigmavirus24> dstufft: probably a question better asked to elarson but do you know how pip's cache handles if there's more than one instance of pip running against it?
[20:45:07] <dstufft> ionelmc: I was looking at your virtualenv-in-virtualenv change, and an idea came to me and I wonder if it wouldn't work and do it simpler - https://bpaste.net/show/7ce722a9029f
[20:45:57] <ionelmc> dstufft: i've already tried that
[20:48:36] <ionelmc> dstufft: yes, but sysconfig _uses_ sys.executable to figure out where that makefile is
[20:50:08] <ionelmc> dstufft: it's all downhill from here https://hg.python.org/cpython/file/518f40815684/Lib/sysconfig.py#l103
[20:51:25] <ionelmc> if there's a different way, do tell :-)
[20:52:37] <dstufft> ionelmc: yea but that doesn't matter, because the Makefile has hardcoded values and we symlink (or copy probably if that isn't available) into the virtual env
[20:54:18] <dstufft> at least on OSX it ends up looking in $VENV/lib/python3.4/config-3.4m/Makefile and $VENV?lib/python3.4/config-3.4m/ is a symlink to the config-3.4m dir from the real python
[20:54:39] <ionelmc> dstufft: so which is least worst - figuring out the path to the real bin or figuring out the path to the global libs?
[20:55:07] <ionelmc> ok lemme make a quick pastebin
[20:57:00] <dstufft> ionelmc: well I think that it's more likely to work without needing to maintain a list of all the differences for each intepreter, Operating system, and isolation type (and include any relevant patches that the OS might make)
[21:00:39] <dstufft> Windows doesn't have the Makefile apparently
[21:01:10] <dstufft> sysconfig intiializes those values to something based off sys.executable, and then on posix systems it pulls the real values from the Makefile
[21:06:25] <sigmavirus24> I'm not an anaconda user, but I recommend it
[21:07:42] <ionelmc> better than nothing i guess, but if they made it for people that can't be arsed to install the compiler then they should at least make .py file associations, setup the PATH and provide the damn `py` launcher
[21:08:07] <dstufft> in general I'd much rather do things that will limit our need to rely on the python behaving a particular way, especially in *nix where downstream apply all sorts of wierdo patches
[21:33:42] <ionelmc> dstufft: i'll give that bindir idea another shot, but later
[21:47:57] <ionelmc> also, can anyone explain why there's need for that "local/lib" - when is "local/lib" needed and when is "lib" ? what makes the distinction?
[21:49:41] <DanielHolth> on Linux FHS /usr/local/ is for stuff that is not package managed
[21:56:52] <tomprince> Maybe something to do with debian having /usr/lib/pythonX.Y/dist-packages and /usr/local/lib/pythonX.Y/dist-packages on sys.path