File tree Expand file tree Collapse file tree 3 files changed +52
-0
lines changed Expand file tree Collapse file tree 3 files changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ clint == 0.2.4
Original file line number Diff line number Diff line change 29
29
import sunlight .service
30
30
31
31
32
+ def available_services ():
33
+ return {
34
+ 'openstates' : openstates ,
35
+ 'capitolwords' : capitolwords ,
36
+ 'congress' : congress ,
37
+ 'influenceexplorer' : influenceexplorer ,
38
+ }
39
+
40
+
32
41
def _attempt_to_load_apikey ():
33
42
"""
34
43
This function (which will be auto-called on import of :mod:`sunlight`),
Original file line number Diff line number Diff line change
1
+ import json
2
+ import sys
3
+
4
+ from clint import args
5
+ import sunlight
6
+
7
+ def main ():
8
+
9
+ services = sunlight .available_services ()
10
+ service = services .get (args .get (0 ), None )
11
+
12
+ if service is not None :
13
+
14
+ available_methods = [m for m in dir (service ) if not m .startswith ('_' ) and m != 'get' ]
15
+
16
+ if args .get (1 ) in available_methods :
17
+
18
+ params = {g [0 ][2 :]: g [1 ].get (0 ) for g in args .grouped .items ()[1 :] if g [0 ].startswith ('--' )}
19
+ resp = getattr (service , args .get (1 ))(** params )
20
+ sys .stdout .write (json .dumps (resp , indent = 2 ) + '\n ' )
21
+
22
+ else :
23
+ help (methods = available_methods ) # missing or invalid method parameter
24
+
25
+ else :
26
+ help (services = services ) # missing or invalid service parameter
27
+
28
+ def help (services = None , methods = None ):
29
+ sys .stderr .write ("Usage: sunlight <service> <method> [<args>, ...]\n " )
30
+
31
+ if services :
32
+ sys .stderr .write ("Available services:\n " )
33
+ for s in services :
34
+ sys .stderr .write (" %s\n " % s )
35
+
36
+ if methods :
37
+ sys .stderr .write ("Available methods:\n " )
38
+ for m in methods :
39
+ sys .stderr .write (" %s\n " % m )
40
+
41
+ if __name__ == "__main__" :
42
+ main ()
You can’t perform that action at this time.
0 commit comments