An open API service indexing awesome lists of open source software.

https://github.com/kencochrane/pypi-mirrors

pypi mirror status (no longer maintained see https://github.com/ibigbug/pypi-mirrors)
https://github.com/kencochrane/pypi-mirrors

python

Last synced: about 1 year ago
JSON representation

pypi mirror status (no longer maintained see https://github.com/ibigbug/pypi-mirrors)

Awesome Lists containing this project

README

          

pypi-mirrors
============

Very simple tool that pings the PyPI mirrors and tells us when they were updated last.

I threw this together very quickly as a proof of concept feel free to fork, and send pull requests.

Config
------

Redis
~~~~~
It requires redis in order to cache some of the data. For local development it is assuming it to be running
at localhost:6379 db:1 and no password. see ``config.py`` for more info.

GeoIP
~~~~~
In order to get the IP address geolocation lookup, you need to sign up for an account from http://ipinfodb.com/register.php . If you don't have the env variable set, you will not have access to the geo location information. set IPLOC_API_KEY with the API key they give you.

Email & Twitter
~~~~~~~~~~~~~~~

To get the twitter and email notifications to work correctly you need to create an environment.json file in ``/tmp`` with the variables and values shown below. replace with the real values.

``/tmp/environment.json``::

{
"IPLOC_API_KEY": "",
"TWITTER_CONSUMER_KEY" : "",
"TWITTER_CONSUMER_SECRET" : "",
"TWITTER_ACCESS_KEY" : "",
"TWITTER_ACCESS_SECRET" : "",
"EMAIL_HOST" : "",
"EMAIL_PORT" : "",
"EMAIL_USER" : "",
"EMAIL_PASSWORD" : "",
"EMAIL_FROM" : "",
"EMAIL_TO" : "",
"EMAIL_BCC" : "",
"EMAIL_TO_ADMIN": ""
}

For installing the API Key on dotCloud you need to run the following command. replace with the real values.

env variables::

dotcloud var set pypimirrors \
'IPLOC_API_KEY=' \
'TWITTER_CONSUMER_KEY=' \
'TWITTER_CONSUMER_SECRET=' \
'TWITTER_ACCESS_KEY=' \
'TWITTER_ACCESS_SECRET=' \
'EMAIL_HOST=' \
'EMAIL_PORT=' \
'EMAIL_USER=' \
'EMAIL_PASSWORD=' \
'EMAIL_FROM=' \
'EMAIL_TO=' \
'EMAIL_BCC=' \
'EMAIL_TO_ADMIN='

How it works
------------
The ``pypi_mirrors.py`` script runs via a cron job and puts data into redis. There is one webpage that pull the data from redis and
displays it. There is a daily cron job that runs and sends out notifications if the mirrors are out of date.

Demo
----
http://www.pypi-mirrors.org

How to help
-----------
Pick one of the things on the TODO list and implement it and send a pull request.

Running locally
---------------
Make sure redis is running

1. Collecting Data::

$ python pypi_mirrors.py

2. Running web server::

$ python app.py
# connect to http://localhost:5000 in browser

TODO:
-----
- Create a setup.py and add to PyPI
- Add better documentation