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 

10from .. import common 

11# from pyrocko.squirrel.error import SquirrelError 

12from pyrocko.squirrel import model 

13 

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

15 

16 

17def setup(subparsers): 

18 p = common.add_parser( 

19 subparsers, 'update', 

20 help='Update remote sources inventories.') 

21 

22 common.add_selection_arguments(p) 

23 common.add_query_arguments(p) 

24 

25 p.add_argument( 

26 '--promises', 

27 action='store_true', 

28 dest='promises', 

29 default=False, 

30 help='Update waveform promises.') 

31 

32 p.add_argument( 

33 '--responses', 

34 action='store_true', 

35 dest='responses', 

36 default=False, 

37 help='Update responses.') 

38 

39 return p 

40 

41 

42def call(parser, args): 

43 d = common.squirrel_query_from_arguments(args) 

44 squirrel = common.squirrel_from_selection_arguments(args) 

45 

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

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

48 

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

50 if args.promises: 

51 squirrel.update_waveform_promises() 

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)