[pyramid_simpleform] stevepiercy pushed 2 new commits to master: https://git.io/v9Zg6
pyramid_simpleform/master 3ee00bf Steve Piercy: use pylons-sphinx-theme for docs
pyramid_simpleform/master 8abe358 Steve Piercy: Merge pull request #28 from stevepiercy/master...
github has left the channel
waigani joined the channel
davisagli has quit
github joined the channel
[pyramid_simpleform] stevepiercy pushed 2 new commits to master: https://git.io/v9ZaT
pyramid_simpleform/master a09481f Steve Piercy: auto-update version; fix Sphinx deprecations warnings
pyramid_simpleform/master 907a059 Steve Piercy: Merge pull request #29 from stevepiercy/master...
github has left the channel
dowwie joined the channel
dowwie has quit
dowwie joined the channel
munch_ has quit
brokencycle has quit
x58
Lazy web: How does pip deal with a remote PyPI no longer having a newer version of a library, which it may have already cached before... does it ignore the cache and go back to the older version
?
davisagli joined the channel
dstufft
x58: It goes back to the older version sort of
the /simple/<foo>/ page is cached for 10 minutes, in those 10 minutes it will continue to see the newer version of the library as available
the actaul file itself is cached for basically forever, as is any wheels it produces, but when the file no longer shows up on /simple/<foo>/, pip won't ever even consider using them
x58
dstufft: I am using devpi
This is for $WORK, we want to be able to pull a misbehaving package from our pypi servers and rebuild/retest/redeploy our stack.
I'd prefer to not have to nuke the pip cache if I can avoid it.
hyperknot has quit
dstufft
x58: all the same rules apply, but you'll need to look at what cachecontrol headers devpi serves
x58
It's sitting behind apache, we strip all cache control headers.
dstufft
/simple/<foo> (And the file url, but not the wheel cache) obey CacheControl headers
x58
On purpose.
Excellent.
Avoiding the download of the package is our biggest concern if possible.
Re-using cached wheels is excellent for speed.
dstufft
yea if you don't have a cache control header telling us we're allowed to cache it, then we won't (well we might, if you have a Last-Modified or an Etag, but in that case we'll revalidate the response using a conditional get)
x58
Now, next lazy web question, can I point pip to both a local directory and to a pypi index and have it pick the local directory if the files there have a higher version number?
dstufft
sure
x58
Excellent :D
dstufft
it just collapses all of the -i, --extra-index-url, and --find-links options into a big list and looks over them all looking for the best option to install
x58
Now, last question, is there any good tooling to help with taking a requirements.txt file and finding out what the most current version is on pypi proper?
dstufft
pip-compile from pip-tools might do what you're looking for
x58
basically pip freeze > somefile, strip versions, then get latest and compare
So I can automate a post to slack that says "hey, these dependencies have updated, or newer versions"
dstufft
ah hm
Not sure about that
x58
I'd like something similar to "yarn outdated"
dstufft
I use pyup for that, but it makes PRs and is a service
you could do pip install -r requirements.txt && pip list -o --format=json
thelostcircuit joined the channel
x58
pip-compile looks like it will be better than pip freeze to also give me a good idea of why a package was pulled in.
Yeah, upgrading pins is our primary concern. Right now we use a private pypi, with no pins, but we want to know when something has updated in the wild and then manually go fetch it and place it on our pypi and do a test build.
Thanks for the advice dstufft!
dstufft
x58: no problem
x58
Would be cool if pip's search algo for the latest version could be imported, then I could script a check.
waigani joined the channel
waigani joined the channel
frispete_ joined the channel
frispete has quit
davisagli has quit
Bjander joined the channel
Belxjander has quit
Bjander is now known as Belxjander
Belxjander is now known as Guest9458
raydeo
so I updated the pyramid_debugtoolbar to add subscribers in an ApplicationCreated event
so that they wrap all normally-registered subscribers
this was fine but then I took it too far and can't figure out where to go with it now :(
I added the ability to inject arbitrary actions and they execute in ApplicationCreated... the problem I realized is that the Router object (the app) does stuff in __init__ so some actions done in ApplicationCreated would not have any effect
but pyramid has no way to do things before the app is created... by design
and for good reason imo... but it's not going well trying to come up with a hack around it even using private apis or mocks
thelostcircuit has quit
Guest9458 has quit
github joined the channel
github
[pyramid_debugtoolbar] mmerickel pushed 1 new commit to master: https://git.io/v9ZP5
pyramid_debugtoolbar/master a22d2cf Michael Merickel: move the toolbar wsgi app into the toolbar_app module
github has left the channel
Belxjander joined the channel
github joined the channel
[pyramid_cookbook] mmerickel pushed 2 new commits to master: https://git.io/v9ZXw
pyramid_cookbook/master 75c81ed Denis Rykov: cherrypy.wsgiserver functionality been moved to the cheroot
pyramid_cookbook/master 30fc21e Michael Merickel: Merge pull request #180 from drnextgis/windows-deploy-fix...