File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ """Fetch wheels from wheels.scipy.org for a pandas version."""
2+ import argparse
3+ import pathlib
4+ import sys
5+ import urllib .parse
6+ import urllib .request
7+
8+ from lxml import html
9+
10+
11+ def parse_args (args = None ):
12+ parser = argparse .ArgumentParser (description = __doc__ )
13+ parser .add_argument ("version" , type = str , help = "Pandas version (0.23.0)" )
14+ return parser .parse_args (args )
15+
16+
17+ def fetch (version ):
18+ base = 'http://wheels.scipy.org'
19+ tree = html .parse (base )
20+ root = tree .getroot ()
21+
22+ dest = pathlib .Path ('dist' )
23+ dest .mkdir (exist_ok = True )
24+
25+ files = [x for x in root .xpath ("//a/text()" )
26+ if x .startswith (f'pandas-{ version } ' )
27+ and not dest .joinpath (x ).exists ()]
28+
29+ N = len (files )
30+
31+ for i , filename in enumerate (files , 1 ):
32+ out = str (dest .joinpath (filename ))
33+ link = urllib .request .urljoin (base , filename )
34+ urllib .request .urlretrieve (link , out )
35+ print (f"Downloaded { link } to { out } [{ i } /{ N } ]" )
36+
37+
38+ def main (args = None ):
39+ args = parse_args (args )
40+ fetch (args .version )
41+
42+
43+ if __name__ == '__main__' :
44+ sys .exit (main ())
You can’t perform that action at this time.
0 commit comments