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 

15 

16def make_subparser(subparsers): 

17 return subparsers.add_parser( 

18 'update', 

19 help='Update remote sources inventories.') 

20 

21 

22def setup(parser): 

23 parser.add_squirrel_selection_arguments() 

24 parser.add_squirrel_query_arguments() 

25 

26 parser.add_argument( 

27 '--promises', 

28 action='store_true', 

29 dest='promises', 

30 default=False, 

31 help='Update waveform promises.') 

32 

33 parser.add_argument( 

34 '--responses', 

35 action='store_true', 

36 dest='responses', 

37 default=False, 

38 help='Update responses.') 

39 

40 

41def run(parser, args): 

42 d = args.squirrel_query 

43 squirrel = args.make_squirrel() 

44 

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

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

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

48 

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

50 if args.promises: 

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

52 

53 if args.responses: 

54 squirrel.update_responses() 

55 

56 stats = str(squirrel) 

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

58 

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