1# http://pyrocko.org - GPLv3 

2# 

3# The Pyrocko Developers, 21st Century 

4# ---|P------/S----------~Lg---------- 

5 

6from __future__ import absolute_import, print_function 

7 

8from pyrocko.squirrel.tool.common import ldq, dq 

9 

10headline = 'Export station metadata as StationXML.' 

11 

12 

13def make_subparser(subparsers): 

14 return subparsers.add_parser( 

15 'stationxml', 

16 help=headline, 

17 description=headline) 

18 

19 

20def setup(parser): 

21 parser.add_squirrel_selection_arguments() 

22 parser.add_squirrel_query_arguments() 

23 

24 level_choices = ('network', 'station', 'channel', 'response') 

25 level_default = 'response' 

26 

27 parser.add_argument( 

28 '--level', 

29 dest='level', 

30 choices=level_choices, 

31 default=level_default, 

32 help='Set level of detail to be returned. Choices: %s. ' 

33 'Default: %s.' % ( 

34 ldq(level_choices), 

35 dq(level_default))) 

36 

37 out_format_choices = ('xml', 'yaml') 

38 out_format_default = 'xml' 

39 

40 parser.add_argument( 

41 '--out-format', 

42 dest='out_format', 

43 choices=out_format_choices, 

44 default=out_format_default, 

45 help='Set format of output. Choices: %s. ' 

46 'Default: %s.' % ( 

47 ldq(out_format_choices), 

48 dq(out_format_default))) 

49 

50 

51def run(parser, args): 

52 squirrel = args.make_squirrel() 

53 

54 sx = squirrel.get_stationxml(**args.squirrel_query, level=args.level) 

55 if args.out_format == 'xml': 

56 print(sx.dump_xml()) 

57 elif args.out_format == 'yaml': 

58 print(sx.dump()) 

59 else: 

60 assert False