PMXBOT Log file Viewer

Help | Karma | Search:

#pypa logs for Saturday the 12th of September, 2015

(Back to #pypa overview) (Back to channel listing) (Animate logs)
[00:03:06] <dstufft> _habnabit: yea, "0.1" matches all local versions of 0.1
[00:03:28] <dstufft> Not sure it's possible to exclude 0.1 but allow local versions of 0.1 without pinning to that local version
[00:03:31] <_habnabit> dstufft, so there's no way to match/filter on the upstream version?
[00:03:47] <dstufft> I mean you can do ==0.1.0+upstream.2
[00:03:54] <dstufft> but that's it I think
[00:04:08] <dstufft> agronholm: it's reindexing, hopefully that fixes it well enough for tonight
[00:04:16] <dstufft> I'm not feeling great
[00:04:32] <agronholm> I have a conditional dependency in extras_require to install typing only for python 3.4
[00:05:05] <agronholm> but for some reason, when I start iterating entry points, it errors out because I don't have that package installed on 3.5
[00:07:39] <agronholm> it's like setuptools is ignoring the conditionals
[00:15:31] <agronholm> is automatic wheel building supposed to work on 3.5.0rc4?
[00:17:44] <agronholm> hrm, upgrading to rc4 seemed to fix that entry point problem
[00:20:55] <agronholm> gah, no
[01:02:20] <agronholm> alright, I figured it out -- pkg_resources was picking up the egg-info from my project dir
[01:03:35] <agronholm> quite a dilemma
[01:03:57] <agronholm> I have the distribution installed in develop mode, which writes its .egg-info in the project directory
[01:05:03] <agronholm> then I run tox and iterate over the project's entry points, which fails because the pkg-info lists the dependencies for the python version I use for development
[01:20:14] <agronholm> this is what my requires.txt in the egg-info directory looks like: https://bpaste.net/show/5ba5504bef15
[01:20:20] <agronholm> why is "typing" there twice?
[06:32:16] <ronny> agronholm: whats in setup.py?
[06:32:47] <ronny> agronholm: also note that a install_requires on setuptools is kinda pointless for most things ^^
[13:41:37] <agronholm> ronny: is it? I've been told before by downstream packagers (debian) that it needs to be there so they can determine that it depends on pkg_resources
[13:43:04] <agronholm> OTOH, will any distro ship python 3.4 without setuptools?
[13:45:52] <agronholm> for reference, setup.py: https://github.com/asphalt-framework/asphalt/blob/master/setup.py
[14:37:10] <ionelmc> agronholm: but do you need it at runtime?
[14:37:22] <agronholm> ionelmc: yes
[14:37:31] <ionelmc> agronholm: what for
[14:37:32] <agronholm> I use pkg_resources
[14:37:41] <agronholm> for loading entry points
[14:37:45] <ronny> agronholm: i suppose then its still sensible to have around
[14:37:49] <agronholm> yeh
[14:38:24] <ionelmc> agronholm: that's not a hard runtime dependency
[14:38:33] <agronholm> ionelmc: eh?
[14:38:49] <ionelmc> pip creates scripts that just import whatever you declared in the entrypoint, no pkg_resources needed
[14:39:03] <agronholm> ionelmc: how will that help me load plugins?
[14:39:12] <ionelmc> oh
[14:39:20] <ionelmc> i thought you only used console_scripts :)
[14:39:25] <agronholm> don't assume :)
[14:40:14] <ionelmc> reddit distortion, there was a similar q a day ago
[14:41:09] <agronholm> but what I don't get is why typing shows up in both unconditional requirements and conditional requirements
[14:41:16] <agronholm> since pkg_resources can happily use both
[14:41:17] <ionelmc> one person even suggested to use scripts instead of console_scrpts entrypoints, yuk ...
[14:44:49] <ronny> agronholm: i recall pytest-cv has a very specific coverage requirement, installing a newer version of coverage breaks its world
[14:45:02] <ronny> ionelmc: can that be eleevated?
[14:45:07] <ronny> *pytest-cov
[14:45:24] <agronholm> ronny: ok, but how is that relevant?
[14:45:25] <ionelmc> wat
[14:45:37] <ionelmc> pytest-cov supports coverage 4.0 since 2.0.0
[14:45:43] <ronny> agronholm: versionconflict happesn when the working set has a conflict
[14:45:48] <ronny> ionelmc: then maybe thats the issue
[14:45:50] <ionelmc> 2.1.0 added support for 4.0b3
[14:46:01] <ronny> agronholm: can you fgure which package adds the conflict?
[14:46:25] <agronholm> I'm confused
[14:46:26] <ionelmc> what conflict?
[14:46:47] <ionelmc> you mean leftover scripts created by easy_install (that have version pin in them) ?
[14:47:31] <agronholm> what are we even talking about here?
[14:47:46] <agronholm> I'm talking about requires.txt in the generated egg-info
[14:48:44] <ionelmc> to be fair it's hard to know what you're talking about when you're talking about python packaging
[14:48:46] <ionelmc> xD
[14:49:21] <agronholm> so I'm wondering why "setup.py egg_info" adds typing twice to .egg_info/requires.txt, given my setup.py
[14:50:01] <ionelmc> agronholm: cause it's wrong :)
[14:50:10] <ionelmc> you list that dep twice
[14:50:14] <agronholm> I don't?
[14:50:16] <ionelmc> both in install_requires and extras
[14:50:29] <agronholm> hrm
[14:50:53] <ionelmc> it is completely wrong to put conditional dep in instsall_requires
[14:51:04] <ionelmc> universal wheels will build improperly
[14:51:17] <agronholm> unless your conditions are complex...though mine here is not
[14:51:38] <ionelmc> i assume you gonna use univ wheels since you don't have any c ext
[14:51:55] <agronholm> I have the specifiers set in setup.cfg
[14:52:03] <ionelmc> plus it's not trivial to make non-universal wheels when you don't have c exts
[14:52:26] <agronholm> I didn't think extras_require would work properly for sdists
[14:52:30] <agronholm> I guess I was wrong
[14:52:56] <ionelmc> ps
[14:53:20] <ionelmc> your tag also looks odd
[14:53:27] <agronholm> how so
[14:53:34] <ionelmc> why just py34.py35 ?
[14:53:43] <agronholm> because it requires at least py34
[14:53:58] <agronholm> and there seems to be no other way to indicate the minimum python version
[14:54:04] <ionelmc> i have bad feeling about it :)
[14:54:09] <agronholm> why
[14:54:19] <ionelmc> what do you do for 3.6 ?
[14:54:41] <agronholm> see if the idiotic metadata mess has been fixed by then, or just add .py36
[14:55:01] <ionelmc> prolly irrelevant cause you'll make new releases with correct tag by the time 3.6 is released for just a thought
[14:55:09] <agronholm> I have though about it
[14:55:22] <ionelmc> s/for/but/
[14:55:23] <agronholm> iirc there used to be a way to specify the minimum python version in setup.cfg
[14:55:41] <ionelmc> dunno
[14:55:45] <agronholm> but the setup.cfg metadata was "deprecated" without any replacement being provided
[14:55:46] <ionelmc> i woulnd't bother
[14:56:08] <ionelmc> raising an error at runtime if python version is not good seems like the right way
[14:56:09] <agronholm> for one, you used to be able to specify things like "install this only for python < X.Y"
[14:56:19] <agronholm> but that doesn't work for wheels
[14:56:30] <ionelmc> run time
[14:56:34] <agronholm> unless you mean in the actual code
[14:56:34] <ionelmc> when your code runs
[14:56:41] <ionelmc> eg: when someone tries to import it
[14:56:51] <agronholm> eh, add checks to every single module?
[14:57:05] <ionelmc> no, just the main package __init__.py
[14:57:11] <agronholm> right
[14:57:17] <ionelmc> cause that gets run regardless of what you import
[14:57:20] <agronholm> but I think I have my bases covered with the check in setup.py and the wheel tags
[14:57:56] <ionelmc> check too early - suffer too soon
[14:58:02] <agronholm> ?
[14:58:16] <ionelmc> maybe it's just a matter of style
[14:58:58] <ionelmc> install of packages in python has always been very loose
[14:59:04] <agronholm> yeah :/
[14:59:08] <ionelmc> so i woulnd't bother with constraints there
[14:59:12] <agronholm> well, that fixed my actual problem now
[14:59:13] <ionelmc> cause it's pointless
[14:59:37] <agronholm> and the tox run on py34 passed
[14:59:48] <ionelmc> iow: some user might actually success to install your package on, say, python2
[14:59:54] <ionelmc> so you still need a runtime check
[15:00:04] <ionelmc> so why not only do it at runtime
[15:00:08] <ionelmc> that was my thought
[15:00:14] <agronholm> they would have to go out of their way to do so
[15:00:27] <agronholm> not use pip install or easy_install or even setup.py install
[15:01:02] <ionelmc> what if they make egg
[15:01:08] <agronholm> how could they
[15:01:10] <ionelmc> :>
[15:01:12] <ionelmc> no idea
[15:01:21] <agronholm> I mean, that requires you to run setup.py
[15:02:18] <ionelmc> they could make bdist_dumb on 3.4 and put that somewhere in py2.7's site-pakcages i suppose
[15:02:19] <agronholm> the point of these checks is to prevent idiots from filing bugs when the distro won't work in the wrong python version
[15:02:48] <agronholm> ionelmc: anyone knowledgeable enough to do that is smart enough to figure this out :P
[15:05:26] <agronholm> ionelmc: thanks for the input, the problem is now solved
[18:24:10] <ionelmc> this is intreresting, seems pkg_resources don't return entry point at all if it's from a package with unresolved deps
[18:24:13] <ionelmc> is this normal?
[19:13:18] <ronny> ionelmc: well, its a possible outcome for a multiversion setup