Hide keyboard shortcuts

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 

18 

19 

20VOEVENT_TYPES = {'earlywarning': 'EW', 

21 'preliminary': 'PR', 

22 'retraction': 'RE', 

23 'update': 'UP', 

24 'initial': 'IN'} 

25 

26 

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): 

31 

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) 

39 

40 def get(self, **kwargs): 

41 return super().get(**kwargs)['voevents'] 

42 

43 

44class EventVOEvents(BaseVOEvents): 

45 

46 path = 'voevent/' 

47 

48 

49class SupereventVOEvents(BaseVOEvents): 

50 

51 path = 'voevents/'