annotate alveo_api_key.py @ 0:bfe39bd252df draft

planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
author stevecassidy
date Mon, 18 Jul 2016 23:49:40 -0400
parents
children 7b6021997b8e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
1 from __future__ import print_function
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
2 import argparse
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
3 import pyalveo
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
4 import sys
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
5
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
6 API_URL = 'https://app.alveo.edu.au'
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
7
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
8 def parser():
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
9 parser = argparse.ArgumentParser(description="Retrieves Alveo Item Lists")
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
10 parser.add_argument('--api_key', required=True, action="store", type=str, help="Alveo API key")
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
11 parser.add_argument('--output_path', required=True, action="store", type=str, help="File to store the API key in")
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
12 return parser.parse_args()
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
13
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
14 def write_key(api_key, output_path, client_module=pyalveo):
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
15 """Tests whether an API key is valid and writes it to a file.
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
16
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
17 :type api_key: String
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
18 :param api_key: Alveo API key
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
19
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
20 :type output_path: String
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
21 :param output_path: Path to the file to store the API key in
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
22
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
23 :type client_module: pyalveo.Client
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
24 :param client_module: Module providing the client (used for testing purposes),
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
25 defaults to pyalveo
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
26
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
27 :raises: pyalveo.APIError if the API request is not successful
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
28
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
29 """
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
30 client = client_module.Client(api_key, API_URL)
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
31 outfile = open(output_path, 'w')
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
32 outfile.write(api_key)
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
33 outfile.close()
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
34
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
35 def main():
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
36 args = parser()
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
37 try:
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
38 write_key(args.api_key, args.output_path)
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
39 except Exception as e:
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
40 print("ERROR: " + str(e), file=sys.stderr)
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
41 sys.exit(1)
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
42
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
43 if __name__ == '__main__':
bfe39bd252df planemo upload commit 5de43e6a614de2a1b2065bc63823ecc9854ebb32-dirty
stevecassidy
parents:
diff changeset
44 main()