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_subcommand(subparsers): 

18 return common.add_parser( 

19 subparsers, 'update', 

20 help='Update remote sources inventories.') 

21 

22 

23def setup(parser): 

24 common.add_selection_arguments(parser) 

25 common.add_query_arguments(parser) 

26 

27 parser.add_argument( 

28 '--promises', 

29 action='store_true', 

30 dest='promises', 

31 default=False, 

32 help='Update waveform promises.') 

33 

34 parser.add_argument( 

35 '--responses', 

36 action='store_true', 

37 dest='responses', 

38 default=False, 

39 help='Update responses.') 

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 codes = d.get('codes', None) 

49 

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

51 if args.promises: 

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

53 

54 if args.responses: 

55 squirrel.update_responses() 

56 

57 stats = str(squirrel) 

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

59 

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