Skip to content

Instantly share code, notes, and snippets.

@mwcraig
Created July 10, 2017 16:16
Show Gist options
  • Save mwcraig/290411582cb385b8326413ac43c73359 to your computer and use it in GitHub Desktop.
Save mwcraig/290411582cb385b8326413ac43c73359 to your computer and use it in GitHub Desktop.
Gather information about conda packages...
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from __future__ import print_function"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from collections import defaultdict\n",
"import pprint\n",
"import requests\n",
"from astropy.table import Table \n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"numpys = Table.read('linux64-numpys.txt', format='ascii')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"oses = ['win-64', 'osx-64', 'linux-64']\n",
"url_base = 'https://repo.continuum.io/pkgs/free/{}/'"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reading table for win-64\n",
"Reading table for osx-64\n",
"Reading table for linux-64\n"
]
}
],
"source": [
"os_tables = {}\n",
"for os_ in oses:\n",
" table_name = 'package-list-{}.csv'.format(os_)\n",
" try:\n",
" os_tables[os_] = Table.read(table_name)\n",
" print('Reading table for {}'.format(os_))\n",
" except IOError:\n",
" print('Downloading package table for ', os_)\n",
" full_list_url = url_base.format(os_)\n",
" full_list = requests.get(full_list_url)\n",
" all_md5s = Table.read(full_list.text, format='ascii')\n",
" os_tables[os_] = all_md5s\n",
" all_md5s.write(table_name)"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"working on os win-64\n",
".....getting numpy-1.10.0-py27_0.tar.bz2\n",
".....getting numpy-1.10.0-py34_0.tar.bz2\n",
".....getting numpy-1.10.1-py27_0.tar.bz2\n",
".....getting numpy-1.10.1-py34_0.tar.bz2\n",
".....getting numpy-1.10.1-py35_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_2.tar.bz2\n",
".....getting numpy-1.10.4-py34_0.tar.bz2\n",
".....getting numpy-1.10.4-py34_2.tar.bz2\n",
".....getting numpy-1.10.4-py35_0.tar.bz2\n",
".....getting numpy-1.10.4-py35_2.tar.bz2\n",
".....getting numpy-1.11.0-py27_0.tar.bz2\n",
".....getting numpy-1.11.0-py27_1.tar.bz2\n",
".....getting numpy-1.11.0-py27_2.tar.bz2\n",
".....getting numpy-1.11.0-py34_0.tar.bz2\n",
".....getting numpy-1.11.0-py34_1.tar.bz2\n",
".....getting numpy-1.11.0-py34_2.tar.bz2\n",
".....getting numpy-1.11.0-py35_0.tar.bz2\n",
".....getting numpy-1.11.0-py35_1.tar.bz2\n",
".....getting numpy-1.11.0-py35_2.tar.bz2\n",
".....getting numpy-1.11.1-py27_0.tar.bz2\n",
".....getting numpy-1.11.1-py27_1.tar.bz2\n",
".....getting numpy-1.11.1-py34_0.tar.bz2\n",
".....getting numpy-1.11.1-py34_1.tar.bz2\n",
".....getting numpy-1.11.1-py35_0.tar.bz2\n",
".....getting numpy-1.11.1-py35_1.tar.bz2\n",
".....getting numpy-1.11.2-py27_0.tar.bz2\n",
".....getting numpy-1.11.2-py34_0.tar.bz2\n",
".....getting numpy-1.11.2-py35_0.tar.bz2\n",
".....getting numpy-1.11.2-py36_0.tar.bz2\n",
".....getting numpy-1.11.3-py27_0.tar.bz2\n",
".....getting numpy-1.11.3-py34_0.tar.bz2\n",
".....getting numpy-1.11.3-py35_0.tar.bz2\n",
".....getting numpy-1.11.3-py36_0.tar.bz2\n",
".....getting numpy-1.12.0-py27_0.tar.bz2\n",
".....getting numpy-1.12.0-py35_0.tar.bz2\n",
".....getting numpy-1.12.0-py36_0.tar.bz2\n",
".....getting numpy-1.12.1-py27_0.tar.bz2\n",
".....getting numpy-1.12.1-py35_0.tar.bz2\n",
".....getting numpy-1.12.1-py36_0.tar.bz2\n",
".....getting numpy-1.13.0-py27_0.tar.bz2\n",
".....getting numpy-1.13.0-py34_0.tar.bz2\n",
".....getting numpy-1.13.0-py35_0.tar.bz2\n",
".....getting numpy-1.13.0-py36_0.tar.bz2\n",
".....getting numpy-1.6.2-py26_0.tar.bz2\n",
".....getting numpy-1.6.2-py26_4.tar.bz2\n",
".....getting numpy-1.6.2-py27_0.tar.bz2\n",
".....getting numpy-1.6.2-py27_4.tar.bz2\n",
".....getting numpy-1.7.0-py26_0.tar.bz2\n",
".....getting numpy-1.7.0-py27_0.tar.bz2\n",
".....getting numpy-1.7.0-py33_0.tar.bz2\n",
".....getting numpy-1.7.1-py26_0.tar.bz2\n",
".....getting numpy-1.7.1-py26_1.tar.bz2\n",
".....getting numpy-1.7.1-py26_2.tar.bz2\n",
".....getting numpy-1.7.1-py26_3.tar.bz2\n",
".....getting numpy-1.7.1-py27_0.tar.bz2\n",
".....getting numpy-1.7.1-py27_1.tar.bz2\n",
".....getting numpy-1.7.1-py27_2.tar.bz2\n",
".....getting numpy-1.7.1-py27_3.tar.bz2\n",
".....getting numpy-1.7.1-py33_0.tar.bz2\n",
".....getting numpy-1.7.1-py33_1.tar.bz2\n",
".....getting numpy-1.7.1-py33_2.tar.bz2\n",
".....getting numpy-1.7.1-py33_3.tar.bz2\n",
".....getting numpy-1.8.0-py26_0.tar.bz2\n",
".....getting numpy-1.8.0-py27_0.tar.bz2\n",
".....getting numpy-1.8.0-py33_0.tar.bz2\n",
".....getting numpy-1.8.1-py26_0.tar.bz2\n",
".....getting numpy-1.8.1-py27_0.tar.bz2\n",
".....getting numpy-1.8.1-py33_0.tar.bz2\n",
".....getting numpy-1.8.1-py34_0.tar.bz2\n",
".....getting numpy-1.8.2-py26_0.tar.bz2\n",
".....getting numpy-1.8.2-py27_0.tar.bz2\n",
".....getting numpy-1.8.2-py33_0.tar.bz2\n",
".....getting numpy-1.8.2-py34_0.tar.bz2\n",
".....getting numpy-1.9.0-py26_0.tar.bz2\n",
".....getting numpy-1.9.0-py27_0.tar.bz2\n",
".....getting numpy-1.9.0-py33_0.tar.bz2\n",
".....getting numpy-1.9.0-py34_0.tar.bz2\n",
".....getting numpy-1.9.1-py26_0.tar.bz2\n",
".....getting numpy-1.9.1-py27_0.tar.bz2\n",
".....getting numpy-1.9.1-py33_0.tar.bz2\n",
".....getting numpy-1.9.1-py34_0.tar.bz2\n",
".....getting numpy-1.9.2-py26_0.tar.bz2\n",
".....getting numpy-1.9.2-py27_0.tar.bz2\n",
".....getting numpy-1.9.2-py27_2.tar.bz2\n",
".....getting numpy-1.9.2-py33_0.tar.bz2\n",
".....getting numpy-1.9.2-py34_0.tar.bz2\n",
".....getting numpy-1.9.2-py34_2.tar.bz2\n",
".....getting numpy-1.9.2-py35_0.tar.bz2\n",
".....getting numpy-1.9.3-py27_0.tar.bz2\n",
".....getting numpy-1.9.3-py27_1.tar.bz2\n",
".....getting numpy-1.9.3-py27_3.tar.bz2\n",
".....getting numpy-1.9.3-py34_0.tar.bz2\n",
".....getting numpy-1.9.3-py34_1.tar.bz2\n",
".....getting numpy-1.9.3-py34_3.tar.bz2\n",
".....getting numpy-1.9.3-py35_0.tar.bz2\n",
".....getting numpy-1.9.3-py35_1.tar.bz2\n",
".....getting numpy-1.9.3-py35_3.tar.bz2\n",
"working on os osx-64\n",
".....getting numpy-1.10.0-py27_0.tar.bz2\n",
".....getting numpy-1.10.0-py34_0.tar.bz2\n",
".....getting numpy-1.10.0-py35_0.tar.bz2\n",
".....getting numpy-1.10.1-py27_0.tar.bz2\n",
".....getting numpy-1.10.1-py34_0.tar.bz2\n",
".....getting numpy-1.10.1-py35_0.tar.bz2\n",
".....getting numpy-1.10.2-py27_0.tar.bz2\n",
".....getting numpy-1.10.2-py34_0.tar.bz2\n",
".....getting numpy-1.10.2-py35_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_2.tar.bz2\n",
".....getting numpy-1.10.4-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_nomkl_2.tar.bz2\n",
".....getting numpy-1.10.4-py34_0.tar.bz2\n",
".....getting numpy-1.10.4-py34_2.tar.bz2\n",
".....getting numpy-1.10.4-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.10.4-py34_nomkl_2.tar.bz2\n",
".....getting numpy-1.10.4-py35_0.tar.bz2\n",
".....getting numpy-1.10.4-py35_2.tar.bz2\n",
".....getting numpy-1.10.4-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.10.4-py35_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.0-py27_0.tar.bz2\n",
".....getting numpy-1.11.0-py27_1.tar.bz2\n",
".....getting numpy-1.11.0-py27_2.tar.bz2\n",
".....getting numpy-1.11.0-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.0-py27_nomkl_1.tar.bz2\n",
".....getting numpy-1.11.0-py27_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.0-py34_0.tar.bz2\n",
".....getting numpy-1.11.0-py34_1.tar.bz2\n",
".....getting numpy-1.11.0-py34_2.tar.bz2\n",
".....getting numpy-1.11.0-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.0-py34_nomkl_1.tar.bz2\n",
".....getting numpy-1.11.0-py34_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.0-py35_0.tar.bz2\n",
".....getting numpy-1.11.0-py35_1.tar.bz2\n",
".....getting numpy-1.11.0-py35_2.tar.bz2\n",
".....getting numpy-1.11.0-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.0-py35_nomkl_1.tar.bz2\n",
".....getting numpy-1.11.0-py35_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.1-py27_0.tar.bz2\n",
".....getting numpy-1.11.1-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.1-py34_0.tar.bz2\n",
".....getting numpy-1.11.1-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.1-py35_0.tar.bz2\n",
".....getting numpy-1.11.1-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py27_0.tar.bz2\n",
".....getting numpy-1.11.2-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py34_0.tar.bz2\n",
".....getting numpy-1.11.2-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py35_0.tar.bz2\n",
".....getting numpy-1.11.2-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py36_0.tar.bz2\n",
".....getting numpy-1.11.2-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py27_0.tar.bz2\n",
".....getting numpy-1.11.3-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py34_0.tar.bz2\n",
".....getting numpy-1.11.3-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py35_0.tar.bz2\n",
".....getting numpy-1.11.3-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py36_0.tar.bz2\n",
".....getting numpy-1.11.3-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.0-py27_0.tar.bz2\n",
".....getting numpy-1.12.0-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.0-py35_0.tar.bz2\n",
".....getting numpy-1.12.0-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.0-py36_0.tar.bz2\n",
".....getting numpy-1.12.0-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.1-py27_0.tar.bz2\n",
".....getting numpy-1.12.1-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.1-py34_0.tar.bz2\n",
".....getting numpy-1.12.1-py35_0.tar.bz2\n",
".....getting numpy-1.12.1-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.1-py36_0.tar.bz2\n",
".....getting numpy-1.12.1-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.13.0-py27_0.tar.bz2\n",
".....getting numpy-1.13.0-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.13.0-py34_0.tar.bz2\n",
".....getting numpy-1.13.0-py35_0.tar.bz2\n",
".....getting numpy-1.13.0-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.13.0-py36_0.tar.bz2\n",
".....getting numpy-1.13.0-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.5.1-py26_0.tar.bz2\n",
".....getting numpy-1.5.1-py26_4.tar.bz2\n",
".....getting numpy-1.5.1-py27_0.tar.bz2\n",
".....getting numpy-1.5.1-py27_4.tar.bz2\n",
".....getting numpy-1.6.2-py26_0.tar.bz2\n",
".....getting numpy-1.6.2-py26_4.tar.bz2\n",
".....getting numpy-1.6.2-py27_0.tar.bz2\n",
".....getting numpy-1.6.2-py27_4.tar.bz2\n",
".....getting numpy-1.7.0-py26_0.tar.bz2\n",
".....getting numpy-1.7.0-py27_0.tar.bz2\n",
".....getting numpy-1.7.0-py33_0.tar.bz2\n",
".....getting numpy-1.7.0b2-py26_0.tar.bz2\n",
".....getting numpy-1.7.0b2-py27_0.tar.bz2\n",
".....getting numpy-1.7.0rc1-py26_0.tar.bz2\n",
".....getting numpy-1.7.0rc1-py27_0.tar.bz2\n",
".....getting numpy-1.7.0rc1-py33_0.tar.bz2\n",
".....getting numpy-1.7.1-py26_0.tar.bz2\n",
".....getting numpy-1.7.1-py26_2.tar.bz2\n",
".....getting numpy-1.7.1-py27_0.tar.bz2\n",
".....getting numpy-1.7.1-py27_2.tar.bz2\n",
".....getting numpy-1.7.1-py33_0.tar.bz2\n",
".....getting numpy-1.7.1-py33_2.tar.bz2\n",
".....getting numpy-1.8.0-py26_0.tar.bz2\n",
".....getting numpy-1.8.0-py27_0.tar.bz2\n",
".....getting numpy-1.8.0-py33_0.tar.bz2\n",
".....getting numpy-1.8.1-py26_0.tar.bz2\n",
".....getting numpy-1.8.1-py27_0.tar.bz2\n",
".....getting numpy-1.8.1-py33_0.tar.bz2\n",
".....getting numpy-1.8.1-py34_0.tar.bz2\n",
".....getting numpy-1.8.2-py26_0.tar.bz2\n",
".....getting numpy-1.8.2-py27_0.tar.bz2\n",
".....getting numpy-1.8.2-py33_0.tar.bz2\n",
".....getting numpy-1.8.2-py34_0.tar.bz2\n",
".....getting numpy-1.9.0-py26_0.tar.bz2\n",
".....getting numpy-1.9.0-py27_0.tar.bz2\n",
".....getting numpy-1.9.0-py33_0.tar.bz2\n",
".....getting numpy-1.9.0-py34_0.tar.bz2\n",
".....getting numpy-1.9.1-py26_0.tar.bz2\n",
".....getting numpy-1.9.1-py27_0.tar.bz2\n",
".....getting numpy-1.9.1-py33_0.tar.bz2\n",
".....getting numpy-1.9.1-py34_0.tar.bz2\n",
".....getting numpy-1.9.2-py26_0.tar.bz2\n",
".....getting numpy-1.9.2-py27_0.tar.bz2\n",
".....getting numpy-1.9.2-py27_2.tar.bz2\n",
".....getting numpy-1.9.2-py33_0.tar.bz2\n",
".....getting numpy-1.9.2-py34_0.tar.bz2\n",
".....getting numpy-1.9.2-py34_2.tar.bz2\n",
".....getting numpy-1.9.2-py35_0.tar.bz2\n",
".....getting numpy-1.9.2-py35_2.tar.bz2\n",
".....getting numpy-1.9.3-py27_0.tar.bz2\n",
".....getting numpy-1.9.3-py27_1.tar.bz2\n",
".....getting numpy-1.9.3-py27_3.tar.bz2\n",
".....getting numpy-1.9.3-py27_nomkl_1.tar.bz2\n",
".....getting numpy-1.9.3-py34_0.tar.bz2\n",
".....getting numpy-1.9.3-py34_1.tar.bz2\n",
".....getting numpy-1.9.3-py34_3.tar.bz2\n",
".....getting numpy-1.9.3-py34_nomkl_1.tar.bz2\n",
".....getting numpy-1.9.3-py35_0.tar.bz2\n",
".....getting numpy-1.9.3-py35_1.tar.bz2\n",
".....getting numpy-1.9.3-py35_3.tar.bz2\n",
".....getting numpy-1.9.3-py35_nomkl_1.tar.bz2\n",
"working on os linux-64\n",
".....getting numpy-1.10.0-py27_0.tar.bz2\n",
".....getting numpy-1.10.0-py34_0.tar.bz2\n",
".....getting numpy-1.10.0-py35_0.tar.bz2\n",
".....getting numpy-1.10.1-py27_0.tar.bz2\n",
".....getting numpy-1.10.1-py34_0.tar.bz2\n",
".....getting numpy-1.10.1-py35_0.tar.bz2\n",
".....getting numpy-1.10.2-py27_0.tar.bz2\n",
".....getting numpy-1.10.2-py34_0.tar.bz2\n",
".....getting numpy-1.10.2-py35_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_1.tar.bz2\n",
".....getting numpy-1.10.4-py27_2.tar.bz2\n",
".....getting numpy-1.10.4-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.10.4-py27_nomkl_1.tar.bz2\n",
".....getting numpy-1.10.4-py27_nomkl_2.tar.bz2\n",
".....getting numpy-1.10.4-py34_0.tar.bz2\n",
".....getting numpy-1.10.4-py34_1.tar.bz2\n",
".....getting numpy-1.10.4-py34_2.tar.bz2\n",
".....getting numpy-1.10.4-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.10.4-py34_nomkl_1.tar.bz2\n",
".....getting numpy-1.10.4-py34_nomkl_2.tar.bz2\n",
".....getting numpy-1.10.4-py35_0.tar.bz2\n",
".....getting numpy-1.10.4-py35_1.tar.bz2\n",
".....getting numpy-1.10.4-py35_2.tar.bz2\n",
".....getting numpy-1.10.4-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.10.4-py35_nomkl_1.tar.bz2\n",
".....getting numpy-1.10.4-py35_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.0-py27_0.tar.bz2\n",
".....getting numpy-1.11.0-py27_1.tar.bz2\n",
".....getting numpy-1.11.0-py27_2.tar.bz2\n",
".....getting numpy-1.11.0-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.0-py27_nomkl_1.tar.bz2\n",
".....getting numpy-1.11.0-py27_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.0-py34_0.tar.bz2\n",
".....getting numpy-1.11.0-py34_1.tar.bz2\n",
".....getting numpy-1.11.0-py34_2.tar.bz2\n",
".....getting numpy-1.11.0-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.0-py34_nomkl_1.tar.bz2\n",
".....getting numpy-1.11.0-py34_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.0-py35_0.tar.bz2\n",
".....getting numpy-1.11.0-py35_1.tar.bz2\n",
".....getting numpy-1.11.0-py35_2.tar.bz2\n",
".....getting numpy-1.11.0-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.0-py35_nomkl_1.tar.bz2\n",
".....getting numpy-1.11.0-py35_nomkl_2.tar.bz2\n",
".....getting numpy-1.11.1-py27_0.tar.bz2\n",
".....getting numpy-1.11.1-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.1-py34_0.tar.bz2\n",
".....getting numpy-1.11.1-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.1-py35_0.tar.bz2\n",
".....getting numpy-1.11.1-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py27_0.tar.bz2\n",
".....getting numpy-1.11.2-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py34_0.tar.bz2\n",
".....getting numpy-1.11.2-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py35_0.tar.bz2\n",
".....getting numpy-1.11.2-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.2-py36_0.tar.bz2\n",
".....getting numpy-1.11.2-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py27_0.tar.bz2\n",
".....getting numpy-1.11.3-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py34_0.tar.bz2\n",
".....getting numpy-1.11.3-py34_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py35_0.tar.bz2\n",
".....getting numpy-1.11.3-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.11.3-py36_0.tar.bz2\n",
".....getting numpy-1.11.3-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.0-py27_0.tar.bz2\n",
".....getting numpy-1.12.0-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.0-py35_0.tar.bz2\n",
".....getting numpy-1.12.0-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.0-py36_0.tar.bz2\n",
".....getting numpy-1.12.0-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.1-py27_0.tar.bz2\n",
".....getting numpy-1.12.1-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.1-py34_0.tar.bz2\n",
".....getting numpy-1.12.1-py35_0.tar.bz2\n",
".....getting numpy-1.12.1-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.12.1-py36_0.tar.bz2\n",
".....getting numpy-1.12.1-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.13.0-py27_0.tar.bz2\n",
".....getting numpy-1.13.0-py27_nomkl_0.tar.bz2\n",
".....getting numpy-1.13.0-py34_0.tar.bz2\n",
".....getting numpy-1.13.0-py35_0.tar.bz2\n",
".....getting numpy-1.13.0-py35_nomkl_0.tar.bz2\n",
".....getting numpy-1.13.0-py36_0.tar.bz2\n",
".....getting numpy-1.13.0-py36_nomkl_0.tar.bz2\n",
".....getting numpy-1.5.1-py26_1.tar.bz2\n",
".....getting numpy-1.5.1-py26_3.tar.bz2\n",
".....getting numpy-1.5.1-py26_4.tar.bz2\n",
".....getting numpy-1.5.1-py26_6.tar.bz2\n",
".....getting numpy-1.5.1-py26_ce0.tar.bz2\n",
".....getting numpy-1.5.1-py27_1.tar.bz2\n",
".....getting numpy-1.5.1-py27_3.tar.bz2\n",
".....getting numpy-1.5.1-py27_4.tar.bz2\n",
".....getting numpy-1.5.1-py27_6.tar.bz2\n",
".....getting numpy-1.5.1-py27_ce0.tar.bz2\n",
".....getting numpy-1.6.2-py26_1.tar.bz2\n",
".....getting numpy-1.6.2-py26_3.tar.bz2\n",
".....getting numpy-1.6.2-py26_4.tar.bz2\n",
".....getting numpy-1.6.2-py26_5.tar.bz2\n",
".....getting numpy-1.6.2-py26_ce0.tar.bz2\n",
".....getting numpy-1.6.2-py27_1.tar.bz2\n",
".....getting numpy-1.6.2-py27_3.tar.bz2\n",
".....getting numpy-1.6.2-py27_4.tar.bz2\n",
".....getting numpy-1.6.2-py27_5.tar.bz2\n",
".....getting numpy-1.6.2-py27_ce0.tar.bz2\n",
".....getting numpy-1.7.0-py26_0.tar.bz2\n",
".....getting numpy-1.7.0-py27_0.tar.bz2\n",
".....getting numpy-1.7.0-py33_0.tar.bz2\n",
".....getting numpy-1.7.0b2-py26_ce0.tar.bz2\n",
".....getting numpy-1.7.0b2-py27_ce0.tar.bz2\n",
".....getting numpy-1.7.0rc1-py26_0.tar.bz2\n",
".....getting numpy-1.7.0rc1-py27_0.tar.bz2\n",
".....getting numpy-1.7.0rc1-py33_0.tar.bz2\n",
".....getting numpy-1.7.1-py26_0.tar.bz2\n",
".....getting numpy-1.7.1-py26_2.tar.bz2\n",
".....getting numpy-1.7.1-py26_3.tar.bz2\n",
".....getting numpy-1.7.1-py27_0.tar.bz2\n",
".....getting numpy-1.7.1-py27_2.tar.bz2\n",
".....getting numpy-1.7.1-py27_3.tar.bz2\n",
".....getting numpy-1.7.1-py33_0.tar.bz2\n",
".....getting numpy-1.7.1-py33_2.tar.bz2\n",
".....getting numpy-1.7.1-py33_3.tar.bz2\n",
".....getting numpy-1.7.1-py34_3.tar.bz2\n",
".....getting numpy-1.8.0-py26_0.tar.bz2\n",
".....getting numpy-1.8.0-py27_0.tar.bz2\n",
".....getting numpy-1.8.0-py33_0.tar.bz2\n",
".....getting numpy-1.8.1-py26_0.tar.bz2\n",
".....getting numpy-1.8.1-py27_0.tar.bz2\n",
".....getting numpy-1.8.1-py33_0.tar.bz2\n",
".....getting numpy-1.8.1-py34_0.tar.bz2\n",
".....getting numpy-1.8.2-py26_0.tar.bz2\n",
".....getting numpy-1.8.2-py26_1.tar.bz2\n",
".....getting numpy-1.8.2-py27_0.tar.bz2\n",
".....getting numpy-1.8.2-py27_1.tar.bz2\n",
".....getting numpy-1.8.2-py33_0.tar.bz2\n",
".....getting numpy-1.8.2-py33_1.tar.bz2\n",
".....getting numpy-1.8.2-py34_0.tar.bz2\n",
".....getting numpy-1.8.2-py34_1.tar.bz2\n",
".....getting numpy-1.9.0-py26_0.tar.bz2\n",
".....getting numpy-1.9.0-py27_0.tar.bz2\n",
".....getting numpy-1.9.0-py33_0.tar.bz2\n",
".....getting numpy-1.9.0-py34_0.tar.bz2\n",
".....getting numpy-1.9.1-py26_0.tar.bz2\n",
".....getting numpy-1.9.1-py27_0.tar.bz2\n",
".....getting numpy-1.9.1-py33_0.tar.bz2\n",
".....getting numpy-1.9.1-py34_0.tar.bz2\n",
".....getting numpy-1.9.2-py26_0.tar.bz2\n",
".....getting numpy-1.9.2-py27_0.tar.bz2\n",
".....getting numpy-1.9.2-py27_1.tar.bz2\n",
".....getting numpy-1.9.2-py27_2.tar.bz2\n",
".....getting numpy-1.9.2-py33_0.tar.bz2\n",
".....getting numpy-1.9.2-py34_0.tar.bz2\n",
".....getting numpy-1.9.2-py34_1.tar.bz2\n",
".....getting numpy-1.9.2-py34_2.tar.bz2\n",
".....getting numpy-1.9.2-py35_1.tar.bz2\n",
".....getting numpy-1.9.2-py35_2.tar.bz2\n",
".....getting numpy-1.9.3-py27_0.tar.bz2\n",
".....getting numpy-1.9.3-py27_1.tar.bz2\n",
".....getting numpy-1.9.3-py27_2.tar.bz2\n",
".....getting numpy-1.9.3-py27_3.tar.bz2\n",
".....getting numpy-1.9.3-py27_nomkl_1.tar.bz2\n",
".....getting numpy-1.9.3-py27_nomkl_2.tar.bz2\n",
".....getting numpy-1.9.3-py34_0.tar.bz2\n",
".....getting numpy-1.9.3-py34_1.tar.bz2\n",
".....getting numpy-1.9.3-py34_2.tar.bz2\n",
".....getting numpy-1.9.3-py34_3.tar.bz2\n",
".....getting numpy-1.9.3-py34_nomkl_1.tar.bz2\n",
".....getting numpy-1.9.3-py34_nomkl_2.tar.bz2\n",
".....getting numpy-1.9.3-py35_0.tar.bz2\n",
".....getting numpy-1.9.3-py35_1.tar.bz2\n",
".....getting numpy-1.9.3-py35_2.tar.bz2\n",
".....getting numpy-1.9.3-py35_3.tar.bz2\n",
".....getting numpy-1.9.3-py35_nomkl_1.tar.bz2\n",
".....getting numpy-1.9.3-py35_nomkl_2.tar.bz2\n"
]
}
],
"source": [
"os_responses = {}\n",
"for os_ in oses:\n",
" print('working on os {}'.format(os_))\n",
" full_list_url = url_base.format(os_)\n",
" all_md5s = os_tables[os_]\n",
" numpys = np.array([s.startswith('numpy-') for s in all_md5s['Filename']])\n",
" all_response = defaultdict(list)\n",
" for a_numpy in all_md5s['Filename'][numpys]:\n",
" print('.....getting {}'.format(a_numpy))\n",
" url = full_list_url + a_numpy\n",
" response = requests.head(url)\n",
" if all_response.keys() and any(k not in all_response.keys() for k in response.headers.keys()):\n",
" print(response.headers)\n",
" for k, v in response.headers.items():\n",
" all_response[k].append(v)\n",
" # Only some headers have the key 'x-amz-meta-s3cmd-attrs' so set it to '' if\n",
" # it was not in the header. \n",
" oddball = 'x-amz-meta-s3cmd-attrs'\n",
" if oddball not in response.headers:\n",
" all_response[oddball].append('')\n",
" # Manually add file name\n",
" all_response['Filename'].append(a_numpy)\n",
" os_responses[os_] = Table(all_response)"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"for k, v in os_responses.items():\n",
" # Get airport code of Cloudflare server from first item\n",
" cf_code = v['CF-RAY'][0][-3:]\n",
" if any(not code.endswith(cf_code) for code in v['CF-RAY']):\n",
" raise ValueError('WTF?')\n",
" table_name = 'numpy-{}-{}.csv'.format(k, cf_code)\n",
" v.write(table_name)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment