Skip to content

Commit f3b9518

Browse files
authored
Merge pull request #36 from LCOGT/fix/update_for_tns_and_persistent_share
Update tomtoolkit version, fix tns harvester, and integrate persisten…
2 parents 38341d9 + b9592a3 commit f3b9518

File tree

8 files changed

+37
-16
lines changed

8 files changed

+37
-16
lines changed

custom_code/harvesters/tns_harvester.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,15 @@ def get(term):
2020
get_data = {'api_key': api_key, 'data': json.dumps(json_file)}
2121

2222
response = requests.post(get_url, headers={'User-Agent': 'tns_marker{"tns_id":'+str(tns_id)+', "type":"bot", "name":"SNEx_Bot1"}'}, data=get_data)
23-
response = json.loads(response.text)['data']['reply']
24-
return response
23+
response_data = json.loads(response.text)['data']
24+
# If TNS succeeds in finding an object, it returns a reply containing the `objname`.
25+
# If TNS fails to find the object, it returns a reply in the form:
26+
# {'name': {'110': {'message': 'No results found.', 'message_id': 110}},
27+
# 'objid': {'110': {'message': 'No results found.', 'message_id': 110}}}
28+
# In this case, we return None
29+
if not response_data.get('objname'):
30+
return None
31+
return response_data
2532
except Exception as e:
2633
return [None,'Error message : \n'+str(e)]
2734

custom_code/hermes_data_converter.py

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class SNEx2HermesDataConverter(HermesDataConverter):
88
def get_hermes_spectroscopy(self, datum):
99
spectroscopy_row = super().get_hermes_spectroscopy(datum)
1010
# Add in SNEx specific ReducedDatumExtras here
11+
snex1_id = None
1112
snex1_id_row = ReducedDatumExtra.objects.filter(
1213
data_type='spectroscopy',
1314
target_id=datum.target.id,

custom_code/hooks.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,15 @@ def _get_tns_params(target):
121121
result = json.dumps(parsed, indent=4)
122122

123123
result = json.loads(result)
124-
discoverydate = result['data']['reply']['discoverydate']
125-
discoverymag = result['data']['reply']['discoverymag']
126-
discoveryfilt = result['data']['reply']['discmagfilter']['name']
124+
discoverydate = result['data']['discoverydate']
125+
discoverymag = result['data']['discoverymag']
126+
discoveryfilt = result['data']['discmagfilter']['name']
127127

128128

129129
nondets = {}
130130
dets = {}
131131

132-
photometry = result['data']['reply']['photometry']
132+
photometry = result['data']['photometry']
133133
for phot in photometry:
134134
remarks = phot['remarks']
135135
if 'Last non detection' in remarks:

custom_code/management/commands/ingest_alert_stream_targets.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,13 @@ def ingest_targets(q, stream_name):
9494

9595
json_list = {'ra': str(ra), 'dec': str(dec), 'radius': '5', 'units': 'arcsec', 'internal_name': name}
9696
obj_list = requests.post(search_url, headers={'User-Agent': 'tns_marker{"tns_id":'+str(tns_id)+', "type":"bot", "name":"SNEx_Bot1"}'}, data={'api_key': api_key, 'data': json.dumps(json_list)})
97-
obj_list = json.loads(obj_list.text)['data']['reply']
97+
obj_list = json.loads(obj_list.text)['data']
9898
if obj_list:
9999
tns_name = obj_list[0]['objname']
100100

101101
class_json_list = {'objname': tns_name, 'photometry': 0, 'spectra': 0, 'classification': 1}
102102
obj_data = requests.post(obj_url, headers={'User-Agent': 'tns_marker{"tns_id":'+str(tns_id)+', "type":"bot", "name":"SNEx_Bot1"}'}, data={'api_key': api_key, 'data': json.dumps(class_json_list)})
103-
obj_data = json.loads(obj_data.text)['data']['reply']
103+
obj_data = json.loads(obj_data.text)['data']
104104
if obj_data:
105105
sn_class = obj_data['object_type']['name']
106106
else:
@@ -183,13 +183,13 @@ def handle(self, *args, **options):
183183

184184
json_list = {'ra': str(obj.ra), 'dec': str(obj.dec), 'radius': '5', 'units': 'arcsec', 'internal_name': obj.name}
185185
obj_list = requests.post(search_url, headers={'User-Agent': 'tns_marker{"tns_id":'+str(tns_id)+', "type":"bot", "name":"SNEx_Bot1"}'}, data={'api_key': api_key, 'data': json.dumps(json_list)})
186-
obj_list = json.loads(obj_list.text)['data']['reply']
186+
obj_list = json.loads(obj_list.text)['data']
187187
if obj_list:
188188
tns_name = obj_list[0]['objname']
189189

190190
class_json_list = {'objname': tns_name, 'photometry': 1, 'spectra': 0, 'classification': 0}
191191
obj_data = requests.post(obj_url, headers={'User-Agent': 'tns_marker{"tns_id":'+str(tns_id)+', "type":"bot", "name":"SNEx_Bot1"}'}, data={'api_key': api_key, 'data': json.dumps(class_json_list)})
192-
obj_data = json.loads(obj_data.text)['data']['reply']
192+
obj_data = json.loads(obj_data.text)['data']
193193

194194
det = json.loads(obj.detections)
195195
nondet = json.loads(obj.nondetections)

custom_code/management/commands/ingest_tnstargets.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def handle(self, *args, **kwargs):
3030
json_list = {'public_timestamp': date}
3131

3232
obj_list = requests.post(search_url, headers={'User-Agent': 'tns_marker{"tns_id":'+str(tns_id)+', "type":"bot", "name":"SNEx_Bot1"}'}, data={'api_key': api_key, 'data': json.dumps(json_list)})
33-
obj_list = json.loads(obj_list.text)['data']['reply']
33+
obj_list = json.loads(obj_list.text)['data']
3434

3535
if not obj_list:
3636
logger.info('No TNS targets found, have a good day!')
@@ -45,7 +45,7 @@ def handle(self, *args, **kwargs):
4545

4646
json_list = {'objname': obj['objname'], 'photometry': 1, 'spectra': 0}
4747
obj_data = requests.post(obj_url, headers={'User-Agent': 'tns_marker{"tns_id":'+str(tns_id)+', "type":"bot", "name":"SNEx_Bot1"}'}, data={'api_key': api_key, 'data': json.dumps(json_list)})
48-
obj_data = json.loads(obj_data.text)['data']['reply']
48+
obj_data = json.loads(obj_data.text)['data']
4949

5050
name = obj_data['objname']
5151
logger.info('Ingesting {name} . . .'.format(name=name))

custom_code/processors/data_processor.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from importlib import import_module
22
from django.conf import settings
33
from tom_dataproducts.models import ReducedDatum
4+
from tom_targets.sharing import continuous_share_data
45

56
DEFAULT_DATA_PROCESSOR_CLASS = 'tom_dataproducts.data_processor.DataProcessor'
67

@@ -21,8 +22,7 @@ def run_custom_data_processor(dp, extras, rd_extras):
2122

2223
reduced_datums = [ReducedDatum(target=dp.target, data_product=dp, data_type=dp.data_product_type,
2324
timestamp=datum[0], value=datum[1]) for datum in data]
24-
ReducedDatum.objects.bulk_create(reduced_datums)
25+
reduced_datums = ReducedDatum.objects.bulk_create(reduced_datums)
26+
continuous_share_data(dp.target, reduced_datums)
2527

2628
return ReducedDatum.objects.filter(data_product=dp), rd_extras
27-
28-

requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
dataclasses
2-
tomtoolkit>=2.20.0
2+
tomtoolkit>=2.22.5
33
tom-scimma
44
tom-nonlocalizedevents==0.8.1
55
tom-alertstreams

templates/tom_targets/target_detail.html

+13
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@
123123
<li class="nav-item">
124124
<a class="nav-link" id="manage-data-tab" href="#manage-data" role="tab" data-toggle="tab" style="color: #174460;">Manage Data</a>
125125
</li>
126+
<li class="nav-item">
127+
<a class="nav-link" id="manage-sharing-tab" href="#manage-sharing" role="tab" data-toggle="tab" style="color: #174460;">Manage Sharing</a>
128+
</li>
126129
<li class="nav-item">
127130
<a class="nav-link" id="manage-groups-tab" href="#manage-groups" role="tab" data-toggle="tab" style="color: #174460;">Observing Runs</a>
128131
</li>
@@ -211,6 +214,16 @@ <h4>Schedule Observations</h4>
211214
{% endif %}
212215
{% dataproduct_list_for_target object %}
213216
</div>
217+
<div class="tab-pane" id="manage-sharing">
218+
<h3>Create Persistent Share</h3>
219+
<div id='target-persistent-share-create'>
220+
{% create_persistent_share target %}
221+
</div>
222+
<h3>Manage Persistent Shares</h3>
223+
<div id='target-persistent-share-table'>
224+
{% persistent_share_table object %}
225+
</div>
226+
</div>
214227
<div class="tab-pane" id="manage-groups">
215228
{% target_groups target %}
216229
</div>

0 commit comments

Comments
 (0)