1# http://pyrocko.org - GPLv3
2#
3# The Pyrocko Developers, 21st Century
4# ---|P------/S----------~Lg----------
6from __future__ import absolute_import, print_function
8import logging
10# from pyrocko.squirrel.error import SquirrelError
11from pyrocko.squirrel import model
13logger = logging.getLogger('psq.cli.update')
16def make_subparser(subparsers):
17 return subparsers.add_parser(
18 'update',
19 help='Update remote sources inventories.')
22def setup(parser):
23 parser.add_squirrel_selection_arguments()
24 parser.add_squirrel_query_arguments()
26 parser.add_argument(
27 '--promises',
28 action='store_true',
29 dest='promises',
30 default=False,
31 help='Update waveform promises.')
33 parser.add_argument(
34 '--responses',
35 action='store_true',
36 dest='responses',
37 default=False,
38 help='Update responses.')
41def run(parser, args):
42 d = args.squirrel_query
43 squirrel = args.make_squirrel()
45 tmin = d.get('tmin', model.g_tmin)
46 tmax = d.get('tmax', model.g_tmax)
47 codes = d.get('codes', None)
49 squirrel.update(tmin=tmin, tmax=tmax)
50 if args.promises:
51 squirrel.update_waveform_promises(tmin=tmin, tmax=tmax, codes=codes)
53 if args.responses:
54 squirrel.update_responses()
56 stats = str(squirrel)
57 stats = '\n'.join(' ' + s for s in stats.splitlines())
59 logger.info('Squirrel stats:\n%s' % stats)