Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
gwcelery
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
emfollow
gwcelery
Commits
77f95cf8
Commit
77f95cf8
authored
2 years ago
by
Deep Chatterjee
Browse files
Options
Downloads
Patches
Plain Diff
readd back superevent query times config variable
parent
6321de58
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
gwcelery/conf/__init__.py
+6
-0
6 additions, 0 deletions
gwcelery/conf/__init__.py
gwcelery/tasks/superevents.py
+30
-8
30 additions, 8 deletions
gwcelery/tasks/superevents.py
gwcelery/tests/test_tasks_superevents.py
+30
-10
30 additions, 10 deletions
gwcelery/tests/test_tasks_superevents.py
with
66 additions
and
18 deletions
gwcelery/conf/__init__.py
+
6
−
0
View file @
77f95cf8
...
...
@@ -94,6 +94,12 @@ superevent_d_t_end = {'gstlal': 1.0,
"""
Pipeline based upper extent of superevent segments
For cwb and lib this is decided from extra attributes.
"""
superevent_query_d_t_start
=
100.
"""
Lower extent of superevents query
"""
superevent_query_d_t_end
=
100.
"""
Upper extent of superevents query
"""
superevent_default_d_t_start
=
1.0
"""
Default lower extent of superevent segments
"""
...
...
This diff is collapsed.
Click to expand it.
gwcelery/tasks/superevents.py
+
30
−
8
View file @
77f95cf8
...
...
@@ -91,13 +91,13 @@ def process(payload):
"""
event_info
=
payload
[
'
object
'
]
gid
=
event_info
[
'
graceid
'
]
category
=
get_category
(
event_info
)
t_0
,
t_start
,
t_end
=
get_ts
(
event_info
)
if
event_info
.
get
(
'
superevent
'
):
sid
=
event_info
[
'
superevent
'
]
log
.
info
(
'
Event %s already belongs to superevent %s
'
,
gid
,
sid
)
# superevent_neighbours has current and nearby superevents
s
=
event_info
[
'
superevent_neighbours
'
][
sid
]
s
=
gracedb
.
get_superevent
(
sid
)
superevent
=
_SuperEvent
(
s
[
'
t_start
'
],
s
[
'
t_end
'
],
s
[
'
t_0
'
],
...
...
@@ -109,11 +109,11 @@ def process(payload):
t_end
=
None
)
else
:
log
.
info
(
'
Event %s does not yet belong to a superevent
'
,
gid
)
# note that superevent_neightbours contain nearby superevents
# in the same
category
super
event_
neighbors
=
event_i
nf
o
[
'
superevent_
neighbours
'
]
for
s
in
superevent
_neighbors
.
values
()
:
superevents
=
gracedb
.
get_superevents
(
'
category: {} {} .. {}
'
.
format
(
category
,
event_
info
[
'
gpstime
'
]
-
app
.
co
nf
[
'
superevent_
query_d_t_start
'
]
,
event_info
[
'
gpstime
'
]
+
app
.
conf
[
'
superevent_query_d_t_end
'
]))
for
s
in
superevent
s
:
if
gid
in
s
[
'
gw_events
'
]:
sid
=
s
[
'
superevent_id
'
]
log
.
info
(
'
Event %s found assigned to superevent %s
'
,
gid
,
sid
)
...
...
@@ -138,7 +138,7 @@ def process(payload):
else
:
# s not in superevents
event_segment
=
_Event
(
t_start
,
t_end
,
t_0
,
event_info
[
'
graceid
'
])
superevent
=
_partially_intersects
(
superevent
_neighbors
.
values
()
,
superevent
=
_partially_intersects
(
superevent
s
,
event_segment
)
if
superevent
:
...
...
@@ -182,6 +182,28 @@ def process(payload):
gracedb
.
create_label
(
FROZEN_LABEL
,
sid
)
def
get_category
(
event
):
"""
Get the superevent category for an event.
Parameters
----------
event : dict
Event dictionary (e.g., the return value from
:meth:`gwcelery.tasks.gracedb.get_event`).
Returns
-------
{
'
mdc
'
,
'
test
'
,
'
production
'
}
"""
if
event
.
get
(
'
search
'
)
==
'
MDC
'
:
return
'
mdc
'
elif
event
[
'
group
'
]
==
'
Test
'
:
return
'
test
'
else
:
return
'
production
'
def
get_ts
(
event
):
"""
Get time extent of an event, depending on pipeline-specific parameters.
...
...
This diff is collapsed.
Click to expand it.
gwcelery/tests/test_tasks_superevents.py
+
30
−
10
View file @
77f95cf8
...
...
@@ -312,6 +312,8 @@ def _mock_event(event):
@patch
(
'
gwcelery.tasks.gracedb.get_superevent
'
,
lambda
_
:
_mock_superevent_data
)
@patch
(
'
gwcelery.tasks.gracedb.get_superevents
'
,
lambda
_
:
[
_mock_superevent_data
])
def
test_upload_same_event
():
"""
New event uploaded with the same coinc file as an
existing event G000002. The second upload should be added to
...
...
@@ -442,15 +444,18 @@ def test_parse_trigger_cbc_1():
data
=
event_dictionary
,
alert_type
=
'
new
'
,
uid
=
'
G000000
'
)
superevent_reponse
=
patch
(
superevent_re
s
ponse
=
patch
(
'
gwcelery.tasks.gracedb.get_superevent
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
[
'
S0039
'
])
with
superevent_reponse
,
\
with
superevent_re
s
ponse
,
\
patch
(
'
gwcelery.tasks.gracedb.add_event_to_superevent
'
)
as
p1
,
\
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
:
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
,
\
patch
(
'
gwcelery.tasks.gracedb.get_superevents
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
.
values
())
as
p3
:
superevents
.
handle
(
payload
)
p1
.
assert_called_once
()
p2
.
assert_not_called
()
p3
.
assert_called_once
()
def
test_parse_trigger_cbc_2
():
...
...
@@ -476,20 +481,23 @@ def test_parse_trigger_cbc_2():
data
=
event_dictionary
,
alert_type
=
'
new
'
,
uid
=
'
G000003
'
)
superevent_reponse
=
patch
(
superevent_re
s
ponse
=
patch
(
'
gwcelery.tasks.gracedb.get_superevent
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
[
'
S0039
'
])
# addEventToSuperevent should be called
# preferred event should be updated, t_0 should change
with
superevent_reponse
,
\
with
superevent_re
s
ponse
,
\
patch
(
'
gwcelery.tasks.gracedb.add_event_to_superevent
'
)
as
p1
,
\
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
,
\
patch
(
'
gwcelery.tasks.gracedb.get_superevents
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
.
values
())
as
p3
,
\
patch
(
'
gwcelery.tasks.gracedb.create_label.run
'
)
as
create_label
:
superevents
.
handle
(
payload
)
p1
.
assert_called_once
()
p2
.
assert_called_once_with
(
'
S0039
'
,
preferred_event
=
'
G000003
'
,
t_0
=
1163905224.4332082
)
p3
.
assert_called_once
()
create_label
.
assert_called_once_with
(
'
ADVREQ
'
,
'
S0039
'
)
if
superevents
.
is_complete
(
event_dictionary
):
create_label
.
assert_called_once_with
(
'
EM_READY
'
,
'
S0039
'
)
...
...
@@ -522,10 +530,13 @@ def test_parse_trigger_cbc_3():
uid
=
'
G000001
'
)
# G000001 absent in any superevent window, new superevent created
# createSuperevent should be called exactly once
with
patch
(
'
gwcelery.tasks.gracedb.create_superevent
'
)
as
p
,
\
with
patch
(
'
gwcelery.tasks.gracedb.create_superevent
'
)
as
p1
,
\
patch
(
'
gwcelery.tasks.gracedb.get_superevents
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
.
values
())
as
p2
,
\
patch
(
'
gwcelery.tasks.gracedb.create_label
'
):
superevents
.
handle
(
payload
)
p
.
assert_called_once
()
p1
.
assert_called_once
()
p2
.
assert_called_once
()
def
test_parse_trigger_cbc_4
():
...
...
@@ -589,12 +600,15 @@ def test_parse_trigger_burst_1():
# superevent window should change
with
superevent_response
,
\
patch
(
'
gwcelery.tasks.gracedb.add_event_to_superevent
'
)
as
p1
,
\
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
:
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
,
\
patch
(
'
gwcelery.tasks.gracedb.get_superevents
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
.
values
())
as
p3
:
superevents
.
handle
(
payload
)
p1
.
assert_called_once
()
p2
.
assert_called_once_with
(
'
S0039
'
,
t_end
=
pytest
.
approx
(
1163905239
,
abs
=
1
),
t_start
=
pytest
.
approx
(
1163905214
,
abs
=
1
))
p3
.
assert_called_once
()
def
test_parse_trigger_burst_2
():
...
...
@@ -629,12 +643,15 @@ def test_parse_trigger_burst_2():
with
superevent_response
,
\
patch
(
'
gwcelery.tasks.gracedb.add_event_to_superevent
'
)
as
p1
,
\
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
:
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
,
\
patch
(
'
gwcelery.tasks.gracedb.get_superevents
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
.
values
())
as
p3
:
superevents
.
handle
(
payload
)
p1
.
assert_called_once
()
p2
.
assert_called_once_with
(
'
S0039
'
,
t_end
=
pytest
.
approx
(
1163905239
,
abs
=
1
),
t_start
=
pytest
.
approx
(
1163905214
,
abs
=
1
))
p3
.
assert_called_once
()
def
test_parse_trigger_burst_3
():
...
...
@@ -734,10 +751,13 @@ def test_S190421ar_spiir_scenario(): # noqa: N802
with
superevent_response
,
\
patch
(
'
gwcelery.tasks.gracedb.add_event_to_superevent
'
)
as
p1
,
\
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
:
patch
(
'
gwcelery.tasks.gracedb.update_superevent
'
)
as
p2
,
\
patch
(
'
gwcelery.tasks.gracedb.get_superevents
'
,
return_value
=
SUPEREVENTS_NEIGHBOURS
.
values
())
as
p3
:
superevents
.
handle
(
payload
)
p1
.
assert_called_once
()
p2
.
assert_not_called
()
p3
.
assert_called_once
()
def
test_inj_means_should_not_publish
():
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment