{"id":17100506,"url":"https://github.com/kencochrane/pypi-mirrors","last_synced_at":"2025-07-05T08:37:53.958Z","repository":{"id":2932458,"uuid":"3944030","full_name":"kencochrane/pypi-mirrors","owner":"kencochrane","description":"pypi mirror status (no longer maintained see https://github.com/ibigbug/pypi-mirrors)","archived":false,"fork":false,"pushed_at":"2021-11-10T10:30:55.000Z","size":105,"stargazers_count":80,"open_issues_count":4,"forks_count":30,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-11T10:14:41.378Z","etag":null,"topics":["python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kencochrane.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-04-05T20:51:02.000Z","updated_at":"2024-01-08T12:25:38.000Z","dependencies_parsed_at":"2022-09-04T12:51:04.820Z","dependency_job_id":null,"html_url":"https://github.com/kencochrane/pypi-mirrors","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kencochrane/pypi-mirrors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kencochrane%2Fpypi-mirrors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kencochrane%2Fpypi-mirrors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kencochrane%2Fpypi-mirrors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kencochrane%2Fpypi-mirrors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kencochrane","download_url":"https://codeload.github.com/kencochrane/pypi-mirrors/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kencochrane%2Fpypi-mirrors/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263712140,"owners_count":23499991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python"],"created_at":"2024-10-14T15:13:56.967Z","updated_at":"2025-07-05T08:37:53.940Z","avatar_url":"https://github.com/kencochrane.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"pypi-mirrors\n============\n\nVery simple tool that pings the PyPI mirrors and tells us when they were updated last. \n\nI threw this together very quickly as a proof of concept feel free to fork, and send pull requests.\n\nConfig\n------\n\nRedis\n~~~~~\nIt requires redis in order to cache some of the data. For local development it is assuming it to be running\nat localhost:6379 db:1 and no password. see ``config.py`` for more info.\n\nGeoIP\n~~~~~\nIn 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.\n\nEmail \u0026 Twitter\n~~~~~~~~~~~~~~~\n\nTo 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 \u003cvalue\u003e with the real values.\n\n``/tmp/environment.json``::\n\n    {\n    \"IPLOC_API_KEY\": \"\u003cvalue\u003e\",\n    \"TWITTER_CONSUMER_KEY\" : \"\u003cvalue\u003e\",\n    \"TWITTER_CONSUMER_SECRET\" : \"\u003cvalue\u003e\",\n    \"TWITTER_ACCESS_KEY\" : \"\u003cvalue\u003e\",\n    \"TWITTER_ACCESS_SECRET\" : \"\u003cvalue\u003e\",\n    \"EMAIL_HOST\" : \"\u003cvalue\u003e\",\n    \"EMAIL_PORT\" : \"\u003cvalue\u003e\",\n    \"EMAIL_USER\" : \"\u003cvalue\u003e\",\n    \"EMAIL_PASSWORD\" : \"\u003cvalue\u003e\",\n    \"EMAIL_FROM\" : \"\u003cvalue\u003e\",\n    \"EMAIL_TO\" : \"\u003cvalue\u003e\",\n    \"EMAIL_BCC\" : \"\u003cvalue\u003e\",\n    \"EMAIL_TO_ADMIN\": \"\u003cvalue\u003e\"\n    }\n\n\nFor installing the API Key on dotCloud you need to run the following command. replace \u003cvalue\u003e with the real values.\n\nenv variables::\n\n   dotcloud var set pypimirrors \\\n       'IPLOC_API_KEY=\u003cvalue\u003e' \\\n       'TWITTER_CONSUMER_KEY=\u003cvalue\u003e' \\\n       'TWITTER_CONSUMER_SECRET=\u003cvalue\u003e' \\\n       'TWITTER_ACCESS_KEY=\u003cvalue\u003e' \\\n       'TWITTER_ACCESS_SECRET=\u003cvalue\u003e' \\\n       'EMAIL_HOST=\u003cvalue\u003e' \\\n       'EMAIL_PORT=\u003cvalue\u003e' \\\n       'EMAIL_USER=\u003cvalue\u003e' \\\n       'EMAIL_PASSWORD=\u003cvalue\u003e' \\\n       'EMAIL_FROM=\u003cvalue\u003e' \\\n       'EMAIL_TO=\u003cvalue\u003e' \\\n       'EMAIL_BCC=\u003cvalue\u003e' \\\n       'EMAIL_TO_ADMIN=\u003cvalue\u003e'\n\n\nHow it works\n------------\nThe ``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\ndisplays it. There is a daily cron job that runs and sends out notifications if the mirrors are out of date.\n\nDemo\n----\nhttp://www.pypi-mirrors.org\n\nHow to help\n-----------\nPick one of the things on the TODO list and implement it and send a pull request. \n\nRunning locally\n---------------\nMake sure redis is running\n\n1. Collecting Data::\n    \n    $ python pypi_mirrors.py\n\n2. Running web server::\n    \n    $ python app.py\n    # connect to http://localhost:5000 in browser\n\n\nTODO:\n-----\n- Create a setup.py and add to PyPI\n- Add better documentation","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkencochrane%2Fpypi-mirrors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkencochrane%2Fpypi-mirrors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkencochrane%2Fpypi-mirrors/lists"}