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 

8import logging 

9 

10# from pyrocko.squirrel.error import SquirrelError 

11from pyrocko.squirrel import model 

12 

13logger = logging.getLogger('psq.cli.update') 

14 

15headline = 'Update remote sources inventories.' 

16 

17 

18def make_subparser(subparsers): 

19 return subparsers.add_parser( 

20 'update', 

21 help=headline, 

22 description=headline) 

23 

24 

25def setup(parser): 

26 parser.add_squirrel_selection_arguments() 

27 parser.add_squirrel_query_arguments() 

28 

29 parser.add_argument( 

30 '--promises', 

31 action='store_true', 

32 dest='promises', 

33 default=False, 

34 help='Update waveform promises.') 

35 

36 parser.add_argument( 

37 '--responses', 

38 action='store_true', 

39 dest='responses', 

40 default=False, 

41 help='Update responses.') 

42 

43 

44def run(parser, args): 

45 d = args.squirrel_query 

46 squirrel = args.make_squirrel() 

47 

48 tmin = d.get('tmin', model.g_tmin) 

49 tmax = d.get('tmax', model.g_tmax) 

50 codes = d.get('codes', None) 

51 

52 squirrel.update(tmin=tmin, tmax=tmax) 

53 if args.promises: 

54 squirrel.update_waveform_promises(tmin=tmin, tmax=tmax, codes=codes) 

55 

56 if args.responses: 

57 squirrel.update_responses() 

58 

59 stats = str(squirrel) 

60 stats = '\n'.join(' ' + s for s in stats.splitlines()) 

61 

62 logger.info('Squirrel stats:\n%s' % stats)