Travis allows caching, which we can use to store python package dependencies.
This may help with issues related to downloading packages from pypi and sourceforge, which can sometimes fail. (T106062: Travis builds failing due to 403 downloading pYsearch from sourceforge.net may be an instance of this).
Travis provides a simple mechanism for this, via cache: pip. This depends on the install phase being empty, which was achieved with rPWBC0222b4090dc7: Sync requirements.txt with setup.py.
The result of this can be seen on https://travis-ci.org/jayvdb/pywikibot-core/jobs/70534517#L175
Collecting pYsearch (from -r requirements.txt (line 9)) pYsearch is potentially insecure and unverifiable. Collecting google>=1.7 (from -r requirements.txt (line 10)) Using cached google-1.7-py2-none-any.whl
From that, it seems that only google is cached, but pYsearch isnt. Which may mean pip isnt storing pYsearch in the pip cache, or the travis cacher isnt caching everything in the pip cache.