comparison get_feature_info.py @ 4:0602dcf02768 draft

planemo upload for repository https://github.com/TGAC/earlham-galaxytools/tree/master/tools/Ensembl-REST commit 95bab1105cf8a7b07c668f08f712399e8775a4ae
author earlhaminst
date Fri, 13 Apr 2018 09:43:28 -0400
parents 950d9d11b6fb
children 675fd774314e
comparison
equal deleted inserted replaced
3:181e12d6ac96 4:0602dcf02768
2 # information using the Ensembl REST API. 2 # information using the Ensembl REST API.
3 from __future__ import print_function 3 from __future__ import print_function
4 4
5 import json 5 import json
6 import optparse 6 import optparse
7 from itertools import islice
7 8
8 import requests 9 import requests
9 from six.moves.urllib.parse import urljoin 10 from six.moves.urllib.parse import urljoin
10 11
11 parser = optparse.OptionParser() 12 parser = optparse.OptionParser()
29 server = 'http://rest.%s.org' % options.species 30 server = 'http://rest.%s.org' % options.species
30 ext = 'lookup/id' 31 ext = 'lookup/id'
31 32
32 headers = {'Content-Type': 'application/json', 'Accept': 'application/json'} 33 headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
33 params = dict((k, getattr(options, k)) for k in ['format', 'expand']) 34 params = dict((k, getattr(options, k)) for k in ['format', 'expand'])
35
36 first = True
37
38 print('{')
39
34 with open(options.input) as f: 40 with open(options.input) as f:
35 ids = [line.strip() for line in f] 41 while True:
36 data = {'ids': ids} 42 ids = [line.strip() for line in islice(f, 50)]
37 r = requests.post(urljoin(server, ext), params=params, headers=headers, 43 if not ids:
38 data=json.dumps(data)) 44 break
45 if not first:
46 print(",")
47 data = {'ids': ids}
48 r = requests.post(urljoin(server, ext), params=params, headers=headers,
49 data=json.dumps(data))
39 50
40 if not r.ok: 51 if not r.ok:
41 r.raise_for_status() 52 r.raise_for_status()
42 53
43 print(r.text) 54 print(r.text[1:-1])
55
56 first = False
57
58 print('}')