Skip to content

Commit 85b3937

Browse files
authored
Merge pull request #2506 from rickynilsson/fix_multi_aliases
Fix failing alias search for multi star systems
2 parents b95f1d0 + 2d1a330 commit 85b3937

File tree

6 files changed

+160
-20
lines changed

6 files changed

+160
-20
lines changed

CHANGES.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ ipac.nexsci.nasa_exoplanet_archive
6767

6868
- The deprecated methods ``query_planet()`` and ``query_star()`` have been removed.
6969

70+
- Stability improvements to ``query_aliases()`` that also addresses bug that made
71+
method retrieve no aliases for multiple star systems. [#2506]
72+
7073
jplhorizons
7174
^^^^^^^^^^^
7275

astroquery/ipac/nexsci/nasa_exoplanet_archive/core.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ def query_object_async(self, object_name, *, table="ps", get_query_payload=False
373373
return self.query_criteria_async(table, get_query_payload=get_query_payload, cache=cache, **criteria)
374374

375375
@class_or_instance
376-
def query_aliases(self, object_name, *, cache=None):
376+
def query_aliases(self, object_name, *, cache=False):
377377
"""
378378
Search for aliases for a given confirmed planet or planet host
379379
@@ -393,19 +393,22 @@ def query_aliases(self, object_name, *, cache=None):
393393
data = self._request_query_aliases(object_name)
394394

395395
try:
396-
objname_split = object_name.split()
397-
if len(objname_split) > 1 and len(objname_split[-1]) == 1 and objname_split[-1].isalpha():
398-
pl_letter = object_name.split()[-1]
396+
resolved_name = data['manifest']['resolved_name']
397+
resolved_name_split = resolved_name.split()
398+
system_name = data['manifest']['system_name']
399+
n_stars = data['manifest']['system_snapshot']['number_of_stars']
400+
401+
# Asked for system
402+
if resolved_name == system_name and n_stars > 1:
403+
aliases = data['system']['system_info']['alias_set']['aliases']
404+
# Asked for planet
405+
elif len(resolved_name_split) > 1 and len(resolved_name_split[-1]) == 1 and resolved_name_split[-1].isalpha() and resolved_name_split[-1].islower():
406+
aliases = data['system']['objects']['planet_set']['planets'][resolved_name]['alias_set']['aliases']
407+
# Asked for star
399408
else:
400-
pl_letter = ''
409+
aliases = data['system']['objects']['stellar_set']['stars'][resolved_name]['alias_set']['aliases']
401410

402-
default_objname = [data['system']['system_info']['alias_set']['default_name']]
403-
other_objnames = list(set(data['system']['objects']['stellar_set']['stars'][default_objname[0]]['alias_set']['aliases']) - set(default_objname))
404-
other_objnames.sort()
405-
aliases = default_objname + other_objnames
406-
407-
if pl_letter:
408-
aliases = [a + ' ' + pl_letter for a in aliases]
411+
aliases = [resolved_name] + list(set(aliases) - set([resolved_name]))
409412

410413
except KeyError:
411414
aliases = []

astroquery/ipac/nexsci/nasa_exoplanet_archive/tests/data/bpic_aliaslookup.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
"manifest": {
33
"requested_name": "bet pic",
44
"resolved_name": "bet Pic",
5+
"system_name": "bet Pic",
56
"lookup_status": "OK",
6-
"compilation_date": "2022-01-28 14:31:40.254838",
7+
"compilation_date": "2022-07-13 16:40:16.625352",
78
"system_snapshot": {
89
"number_of_stars": 1,
910
"number_of_planets": 2
@@ -25,8 +26,11 @@
2526
"item_count": 1,
2627
"stars": {
2728
"bet Pic": {
29+
"requested_object": "True",
30+
"is_host": "True",
2831
"alias_set": {
2932
"item_count": 14,
33+
"default_name": "bet Pic",
3034
"aliases": [
3135
"TIC 270577175",
3236
"Gaia DR2 4792774797545105664",
@@ -53,6 +57,7 @@
5357
"bet Pic b": {
5458
"alias_set": {
5559
"item_count": 14,
60+
"default_name": "bet Pic b",
5661
"aliases": [
5762
"GJ 219 b",
5863
"HR 2020 b",
@@ -74,6 +79,7 @@
7479
"bet Pic c": {
7580
"alias_set": {
7681
"item_count": 14,
82+
"default_name": "bet Pic c",
7783
"aliases": [
7884
"GJ 219 c",
7985
"HR 2020 c",
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
{
2+
"manifest": {
3+
"requested_name": "bet pic b",
4+
"resolved_name": "bet Pic b",
5+
"system_name": "bet Pic",
6+
"lookup_status": "OK",
7+
"compilation_date": "2022-07-13 16:53:58.899538",
8+
"system_snapshot": {
9+
"number_of_stars": 1,
10+
"number_of_planets": 2
11+
}
12+
},
13+
"system": {
14+
"system_info": {
15+
"id": "bet Pic",
16+
"alias_set": {
17+
"item_count": 1,
18+
"default_name": "bet Pic",
19+
"aliases": [
20+
"bet Pic"
21+
]
22+
}
23+
},
24+
"objects": {
25+
"stellar_set": {
26+
"item_count": 1,
27+
"stars": {
28+
"bet Pic": {
29+
"is_host": "True",
30+
"alias_set": {
31+
"item_count": 14,
32+
"default_name": "bet Pic",
33+
"aliases": [
34+
"TIC 270577175",
35+
"Gaia DR2 4792774797545105664",
36+
"GJ 219",
37+
"HR 2020",
38+
"bet Pic",
39+
"HD 39060",
40+
"HIP 27321",
41+
"SAO 234134",
42+
"CD-51 1620",
43+
"CPD-51 774",
44+
"IRAS 05460-5104",
45+
"TYC 8099-01392-1",
46+
"2MASS J05471708-5103594",
47+
"WISE J054717.10-510358.4"
48+
]
49+
}
50+
}
51+
}
52+
},
53+
"planet_set": {
54+
"item_count": 2,
55+
"planets": {
56+
"bet Pic b": {
57+
"requested_object": "True",
58+
"alias_set": {
59+
"item_count": 14,
60+
"default_name": "bet Pic b",
61+
"aliases": [
62+
"GJ 219 b",
63+
"HR 2020 b",
64+
"bet Pic b",
65+
"HD 39060 b",
66+
"HIP 27321 b",
67+
"SAO 234134 b",
68+
"CD-51 1620 b",
69+
"CPD-51 774 b",
70+
"IRAS 05460-5104 b",
71+
"TYC 8099-01392-1 b",
72+
"2MASS J05471708-5103594 b",
73+
"WISE J054717.10-510358.4 b",
74+
"TIC 270577175 b",
75+
"Gaia DR2 4792774797545105664 b"
76+
]
77+
}
78+
},
79+
"bet Pic c": {
80+
"alias_set": {
81+
"item_count": 14,
82+
"default_name": "bet Pic c",
83+
"aliases": [
84+
"GJ 219 c",
85+
"HR 2020 c",
86+
"bet Pic c",
87+
"HD 39060 c",
88+
"HIP 27321 c",
89+
"SAO 234134 c",
90+
"CD-51 1620 c",
91+
"CPD-51 774 c",
92+
"IRAS 05460-5104 c",
93+
"TYC 8099-1392-1 c",
94+
"2MASS J05471708-5103594 c",
95+
"WISE J054717.10-510358.4 c",
96+
"TIC 270577175 c",
97+
"Gaia DR2 4792774797545105664 c"
98+
]
99+
}
100+
}
101+
}
102+
}
103+
}
104+
}
105+
}

astroquery/ipac/nexsci/nasa_exoplanet_archive/tests/test_nasa_exoplanet_archive.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def patch_get(request): # pragma: nocover
120120

121121

122122
# aliaslookup file in data/
123-
LOOKUP_DATA_FILE = 'bpic_aliaslookup.json'
123+
LOOKUP_DATA_FILE = ['bpic_aliaslookup.json', 'bpicb_aliaslookup.json']
124124

125125

126126
def data_path(filename):
@@ -129,22 +129,38 @@ def data_path(filename):
129129

130130

131131
# monkeypatch replacement request function
132-
def query_aliases_mock(self, *args, **kwargs):
133-
with open(data_path(LOOKUP_DATA_FILE), 'rb') as f:
132+
def query_aliases_mock_0(self, *args, **kwargs):
133+
with open(data_path(LOOKUP_DATA_FILE[0]), 'rb') as f:
134134
response = json.load(f)
135135
return response
136136

137137

138138
# use a pytest fixture to create a dummy 'requests.get' function,
139139
# that mocks(monkeypatches) the actual 'requests.get' function:
140140
@pytest.fixture
141-
def query_aliases_request(request):
141+
def query_aliases_request_0(request):
142142
mp = request.getfixturevalue("monkeypatch")
143-
mp.setattr(NasaExoplanetArchiveClass, '_request_query_aliases', query_aliases_mock)
143+
mp.setattr(NasaExoplanetArchiveClass, '_request_query_aliases', query_aliases_mock_0)
144144
return mp
145145

146146

147-
def test_query_aliases(query_aliases_request):
147+
# monkeypatch replacement request function
148+
def query_aliases_mock_1(self, *args, **kwargs):
149+
with open(data_path(LOOKUP_DATA_FILE[1]), 'rb') as f:
150+
response = json.load(f)
151+
return response
152+
153+
154+
# use a pytest fixture to create a dummy 'requests.get' function,
155+
# that mocks(monkeypatches) the actual 'requests.get' function:
156+
@pytest.fixture
157+
def query_aliases_request_1(request):
158+
mp = request.getfixturevalue("monkeypatch")
159+
mp.setattr(NasaExoplanetArchiveClass, '_request_query_aliases', query_aliases_mock_1)
160+
return mp
161+
162+
163+
def test_query_aliases(query_aliases_request_0):
148164
nasa_exoplanet_archive = NasaExoplanetArchiveClass()
149165
result = nasa_exoplanet_archive.query_aliases(object_name='bet Pic')
150166
assert len(result) > 10
@@ -153,7 +169,7 @@ def test_query_aliases(query_aliases_request):
153169
assert '2MASS J05471708-5103594' in result
154170

155171

156-
def test_query_aliases_planet(query_aliases_request):
172+
def test_query_aliases_planet(query_aliases_request_1):
157173
nasa_exoplanet_archive = NasaExoplanetArchiveClass()
158174
result = nasa_exoplanet_archive.query_aliases('bet Pic b')
159175
assert len(result) > 10

astroquery/ipac/nexsci/nasa_exoplanet_archive/tests/test_nasa_exoplanet_archive_remote.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,13 @@ def test_query_aliases():
163163
assert "HD 39060" in aliases
164164

165165

166+
@pytest.mark.remote_data
167+
def test_query_aliases_multi():
168+
aliases = NasaExoplanetArchive.query_aliases("LTT1445A")
169+
assert len(aliases) > 10
170+
assert "BD-17 588 A" in aliases
171+
172+
166173
@pytest.mark.remote_data
167174
def test_format():
168175
table1 = NasaExoplanetArchive.query_object("HAT-P-11 b")

0 commit comments

Comments
 (0)