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')
15headline = 'Update remote sources inventories.'
18def make_subparser(subparsers):
19 return subparsers.add_parser(
20 'update',
21 help=headline,
22 description=headline)
25def setup(parser):
26 parser.add_squirrel_selection_arguments()
27 parser.add_squirrel_query_arguments()
29 parser.add_argument(
30 '--promises',
31 action='store_true',
32 dest='promises',
33 default=False,
34 help='Update waveform promises.')
36 parser.add_argument(
37 '--responses',
38 action='store_true',
39 dest='responses',
40 default=False,
41 help='Update responses.')
44def run(parser, args):
45 d = args.squirrel_query
46 squirrel = args.make_squirrel()
48 tmin = d.get('tmin', model.g_tmin)
49 tmax = d.get('tmax', model.g_tmax)
50 codes = d.get('codes', None)
52 squirrel.update(tmin=tmin, tmax=tmax)
53 if args.promises:
54 squirrel.update_waveform_promises(tmin=tmin, tmax=tmax, codes=codes)
56 if args.responses:
57 squirrel.update_responses()
59 stats = str(squirrel)
60 stats = '\n'.join(' ' + s for s in stats.splitlines())
62 logger.info('Squirrel stats:\n%s' % stats)