Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1#
2# Copyright (C) 2019-2020 Leo P. Singer <leo.singer@ligo.org>
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program. If not, see <https://www.gnu.org/licenses/>.
16#
17from .base import Mutable, Resource
20VOEVENT_TYPES = {'earlywarning': 'EW',
21 'preliminary': 'PR',
22 'retraction': 'RE',
23 'update': 'UP',
24 'initial': 'IN'}
27# FIXME: events have a 'event/' resource whereas superevents have 'events/'.
28# Combine BaseVOEvents, EventVOEvents, and SupereventVOEvents into a single
29# VOEvents class once this inconsistency has been fixed.
30class BaseVOEvents(Mutable, Resource):
32 def create_or_update(self, key, *, voevent_type=None, coinc_comment=None,
33 **kwargs):
34 data = {'voevent_type': VOEVENT_TYPES[voevent_type],
35 # FIXME: why doesn't GraceDB have a default for this field?
36 'CoincComment': coinc_comment or False,
37 **kwargs}
38 return super().create_or_update(key, data=data)
40 def get(self, **kwargs):
41 return super().get(**kwargs)['voevents']
44class EventVOEvents(BaseVOEvents):
46 path = 'voevent/'
49class SupereventVOEvents(BaseVOEvents):
51 path = 'voevents/'