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