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
10from .. import common
11# from pyrocko.squirrel.error import SquirrelError
12from pyrocko.squirrel import model
14logger = logging.getLogger('psq.cli.update')
17def setup_subcommand(subparsers):
18 return common.add_parser(
19 subparsers, 'update',
20 help='Update remote sources inventories.')
23def setup(parser):
24 common.add_selection_arguments(parser)
25 common.add_query_arguments(parser)
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 call(parser, args):
43 d = common.squirrel_query_from_arguments(args)
44 squirrel = common.squirrel_from_selection_arguments(args)
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)