Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
ESAP API Gateway
Manage
Activity
Members
Labels
Plan
Wiki
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review 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
ASTRON SDC
ESCAPE WP5
ESAP API Gateway
Commits
6ef7f79f
Commit
6ef7f79f
authored
3 years ago
by
John Swinbank
Browse files
Options
Downloads
Patches
Plain Diff
Don't do all that decoding
parent
0d4d3e41
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
esap/query/api/services/astron_vo.py
+31
-88
31 additions, 88 deletions
esap/query/api/services/astron_vo.py
with
31 additions
and
88 deletions
esap/query/api/services/astron_vo.py
+
31
−
88
View file @
6ef7f79f
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
Date created: 2020-02-07
Date created: 2020-02-07
Description: ESAP services for VO.
Description: ESAP services for VO.
"""
"""
from
collections
import
namedtuple
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
.query_base
import
query_base
from
.query_base
import
query_base
import
pyvo
as
vo
import
pyvo
as
vo
...
@@ -154,30 +155,14 @@ class tap_service_connector(query_base):
...
@@ -154,30 +155,14 @@ class tap_service_connector(query_base):
# http://www.ivoa.net/documents/ObsCore/20170509/REC-ObsCore-v1.1-20170509.pdf
# http://www.ivoa.net/documents/ObsCore/20170509/REC-ObsCore-v1.1-20170509.pdf
record
=
{}
record
=
{}
result
=
''
# if * then iterate on the full row, otherwise just on the selection
# if * then iterate on the full row, otherwise just on the selection
if
dataset
.
select_fields
==
'
*
'
:
if
dataset
.
select_fields
==
'
*
'
:
values
=
row
.
values
()
result
=
"
,
"
.
join
(
str
(
value
)
for
value
in
row
.
values
())
for
value
in
values
:
try
:
result
=
result
+
value
.
decode
(
'
utf-8
'
)
+
'
,
'
except
:
try
:
result
=
result
+
str
(
value
)
+
'
,
'
except
:
pass
else
:
else
:
select_list
=
dataset
.
select_fields
.
split
(
'
,
'
)
select_list
=
dataset
.
select_fields
.
split
(
'
,
'
)
result
=
"
,
"
.
join
(
str
(
row
[
key
])
for
key
in
select_list
)
for
select
in
select_list
:
try
:
result
=
result
+
row
[
select
].
decode
(
'
utf-8
'
)
+
'
,
'
except
:
pass
# cut off the last ','
result
=
result
[:
-
1
]
record
[
'
dataset
'
]
=
dataset
.
uri
record
[
'
dataset
'
]
=
dataset
.
uri
record
[
'
dataset_name
'
]
=
dataset_name
record
[
'
dataset_name
'
]
=
dataset_name
record
[
'
result
'
]
=
result
record
[
'
result
'
]
=
result
...
@@ -185,77 +170,35 @@ class tap_service_connector(query_base):
...
@@ -185,77 +170,35 @@ class tap_service_connector(query_base):
# add some fields to return some rendering information for the frontend.
# add some fields to return some rendering information for the frontend.
# for ivoa.obscore field names see: http://www.ivoa.net/documents/ObsCore/20170509/REC-ObsCore-v1.1-20170509.pdf
# for ivoa.obscore field names see: http://www.ivoa.net/documents/ObsCore/20170509/REC-ObsCore-v1.1-20170509.pdf
try
:
record
[
'
title
'
]
=
row
[
dataset
.
title_field
].
decode
(
'
utf-8
'
)
except
:
pass
try
:
record
[
'
dataproduct_type
'
]
=
row
[
'
dataproduct_type
'
].
decode
(
'
utf-8
'
)
except
:
pass
try
:
record
[
'
calibration_level
'
]
=
row
[
'
calib_level
'
]
record
[
'
level
'
]
=
row
[
'
calib_level
'
]
except
:
pass
try
:
record
[
'
thumbnail
'
]
=
row
[
dataset
.
thumbnail_field
].
decode
(
'
utf-8
'
)
except
:
record
[
'
thumbnail
'
]
=
''
try
:
record
[
'
url
'
]
=
row
[
dataset
.
url_field
].
decode
(
'
utf-8
'
)
except
:
pass
try
:
record
[
'
name
'
]
=
row
[
'
target_name
'
].
decode
(
'
utf-8
'
)
except
:
record
[
'
name
'
]
=
'
unknown
'
try
:
# We'll map field "src" in the result to field "dst" in the output
record
[
'
ra
'
]
=
row
[
'
s_ra
'
]
# record. If "src" doesn't exist, we'll use "default" if specified,
except
:
# otherwise we won't set the field.
pass
KeywordMapping
=
namedtuple
(
'
KeywordMapping
'
,
[
'
src
'
,
'
dst
'
,
'
default
'
])
keyword_mappings
=
[
try
:
KeywordMapping
(
dataset
.
title_field
,
'
title
'
,
None
),
record
[
'
dec
'
]
=
row
[
'
s_dec
'
]
KeywordMapping
(
'
dataproduct_type
'
,
'
dataproduct_type
'
,
None
),
except
:
KeywordMapping
(
'
calib_level
'
,
'
calibration_level
'
,
None
),
pass
KeywordMapping
(
'
calib_level
'
,
'
level
'
,
None
),
KeywordMapping
(
dataset
.
thumbnail_field
,
'
thumbnail
'
,
''
),
try
:
KeywordMapping
(
dataset
.
url_field
,
'
url
'
,
None
),
record
[
'
fov
'
]
=
row
[
'
s_fov
'
]
KeywordMapping
(
'
target_name
'
,
'
name
'
,
'
unknown
'
),
except
:
KeywordMapping
(
'
target_name
'
,
'
target
'
,
None
),
pass
KeywordMapping
(
'
s_ra
'
,
'
ra
'
,
None
),
KeywordMapping
(
'
s_dec
'
,
'
dec
'
,
None
),
try
:
KeywordMapping
(
'
s_fov
'
,
'
fov
'
,
None
),
record
[
'
target
'
]
=
row
[
'
target_name
'
].
decode
(
'
utf-8
'
)
KeywordMapping
(
'
s_fov
'
,
'
fov
'
,
None
),
except
:
KeywordMapping
(
'
obs_collection
'
,
'
obs_collection
'
,
None
),
pass
KeywordMapping
(
'
obs_collection
'
,
'
collection
'
,
'
unknown
'
),
KeywordMapping
(
'
access_estsize
'
,
'
size
'
,
None
),
try
:
KeywordMapping
(
'
facility_name
'
,
'
facility
'
,
None
),
record
[
'
obs_collection
'
]
=
row
[
'
obs_collection
'
].
decode
(
'
utf-8
'
)
KeywordMapping
(
'
instrument_name
'
,
'
instrument
'
,
None
)
record
[
'
collection
'
]
=
row
[
'
obs_collection
'
].
decode
(
'
utf-8
'
)
]
except
:
for
mapping
in
keyword_mappings
:
record
[
'
collection
'
]
=
'
unknown
'
if
mapping
.
src
in
row
:
record
[
mapping
.
dst
]
=
row
[
mapping
.
src
]
try
:
elif
mapping
.
default
is
not
None
:
record
[
'
size
'
]
=
row
[
'
access_estsize
'
]
record
[
mapping
.
dst
]
=
mapping
.
default
except
:
pass
try
:
record
[
'
facility
'
]
=
row
[
'
facility_name
'
].
decode
(
'
utf-8
'
)
except
:
pass
try
:
record
[
'
instrument
'
]
=
row
[
'
instrument_name
'
].
decode
(
'
utf-8
'
)
except
:
pass
results
.
append
(
record
)
results
.
append
(
record
)
...
...
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