Mercurial > hg > config
annotate python/pypi.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> | 
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 | 
| parents | 016d27ca39e4 | 
| children | 
| rev | line source | 
|---|---|
| 
369
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
2 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
3 """ | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
4 pypi strawman that should really be in PaInt | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
5 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
6 ref http://wiki.python.org/moin/PyPIJSON | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
7 """ | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
8 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
9 import json | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
10 import optparse | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
11 import os | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
12 import sys | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
13 import textwrap | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
14 import urllib2 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
15 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
16 def package_data(package, index='http://pypi.python.org/pypi'): | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
17 """ | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
18 returns dict of {url:, description:, home_page: } | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
19 """ | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
20 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
21 # if package name given, -> url | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
22 url = package | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
23 if '://' not in url: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
24 url = '%s/%s' % (index, package) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
25 url = url.rstrip('/') | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
26 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
27 if not url.endswith('/json'): | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
28 url = '%s/json' % (url) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
29 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
30 # read the URL | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
31 try: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
32 page = urllib2.urlopen(url).read() | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
33 except: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
34 raise # TODO: better error handling | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
35 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
36 data = json.loads(page) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
37 info = data['info'] | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
38 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
39 # massage the data | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
40 return {'summary': info.get('summary', ''), | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
41 'package_url': info['package_url'], | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
42 'name': info['name'], | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
43 'home_page': info.get('home_page') | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
44 # etc | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
45 } | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
46 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
47 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
48 def main(args=sys.argv[1:]): | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
49 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
50 # command line parser | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
51 usage = '%prog [options] package <another_package> <...>' | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
52 parser = optparse.OptionParser(usage=usage, description=__doc__) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
53 parser.add_option('-t', '--tag', dest='tags', | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
54 action='append', help="tags for packages") | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
55 options, args = parser.parse_args(args) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
56 if not args: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
57 parser.print_usage() | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
58 parser.exit() | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
59 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
60 # one crappy ass template | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
61 template = """ * %(package_url)s | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
62 %(summary)s | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
63 %(tags)s | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
64 """ | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
65 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
66 # get package data | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
67 packages = {} | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
68 for package in args: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
69 data = package_data(package) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
70 packages[data['name']] = data | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
71 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
72 # render the damn thing | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
73 rendered = [] | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
74 for name in sorted(packages.keys(), key=lambda x: x.lower()): | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
75 values = packages[name].copy() | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
76 if options.tags: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
77 values['tags'] = '{%s}' % ', '.join(options.tags) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
78 else: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
79 values['tags'] = '' | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
80 if values['home_page'] and values['home_page'] != values['package_url']: | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
81 values['summary'] = '%s %s' % (values['summary'], | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
82 values['home_page']) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
83 values['summary'] = textwrap.fill(values['summary'], 69, | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
84 initial_indent=' ', | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
85 subsequent_indent=' ') | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
86 string = template % values | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
87 rendered.append(string.strip()) | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
88 | 
| 914 | 89 print('\n\n'.join([i.strip() for i in rendered])) | 
| 
369
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
90 | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
91 if __name__ == '__main__': | 
| 
 
11cf7018ebff
new crappy package for helping me with http://k0s.org/portfolio/python/python-tools.txt
 
Jeff Hammel <jhammel@mozilla.com> 
parents:  
diff
changeset
 | 
92 main() | 
