1# http://pyrocko.org - GPLv3 

2# 

3# The Pyrocko Developers, 21st Century 

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

5 

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

7 

8headline = 'Export station metadata as StationXML.' 

9 

10 

11def make_subparser(subparsers): 

12 return subparsers.add_parser( 

13 'stationxml', 

14 help=headline, 

15 description=headline) 

16 

17 

18def setup(parser): 

19 parser.add_squirrel_selection_arguments() 

20 parser.add_squirrel_query_arguments() 

21 

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

23 level_default = 'response' 

24 

25 parser.add_argument( 

26 '--level', 

27 dest='level', 

28 choices=level_choices, 

29 default=level_default, 

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

31 'Default: %s.' % ( 

32 ldq(level_choices), 

33 dq(level_default))) 

34 

35 on_error_choices = ('raise', 'warn', 'ignore') 

36 on_error_default = 'raise' 

37 

38 parser.add_argument( 

39 '--on-error', 

40 dest='on_error', 

41 choices=on_error_choices, 

42 default=on_error_default, 

43 help='How to handle metadata errors. Choices: %s. ' 

44 'Default: %s.' % ( 

45 ldq(on_error_choices), 

46 dq(on_error_default))) 

47 

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

49 out_format_default = 'xml' 

50 

51 parser.add_argument( 

52 '--out-format', 

53 dest='out_format', 

54 choices=out_format_choices, 

55 default=out_format_default, 

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

57 'Default: %s.' % ( 

58 ldq(out_format_choices), 

59 dq(out_format_default))) 

60 

61 

62def run(parser, args): 

63 squirrel = args.make_squirrel() 

64 

65 sx = squirrel.get_stationxml( 

66 **args.squirrel_query, 

67 level=args.level, 

68 on_error=args.on_error) 

69 

70 if args.out_format == 'xml': 

71 print(sx.dump_xml()) 

72 elif args.out_format == 'yaml': 

73 print(sx.dump()) 

74 else: 

75 assert False