Skip to content

Commit fed6010

Browse files
authored
Merge pull request #1199 from kunal-10-cloud/fix/gh1151-cache-name-resolvers
Fix fragile cache name property pattern for _xpehh_gwss_cache_name and _ihs_gwss_cache_name
2 parents d77c331 + e4cb448 commit fed6010

6 files changed

Lines changed: 52 additions & 21 deletions

File tree

malariagen_data/adar1.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def _repr_html_(self):
181181
<th style="text-align: left">
182182
Data releases available
183183
</th>
184-
<td>{', '.join(self._available_releases)}</td>
184+
<td>{", ".join(self._available_releases)}</td>
185185
</tr>
186186
<tr>
187187
<th style="text-align: left">
@@ -229,7 +229,7 @@ def _repr_html_(self):
229229
<th style="text-align: left">
230230
Relevant data releases
231231
</th>
232-
<td>{', '.join(self.releases)}</td>
232+
<td>{", ".join(self.releases)}</td>
233233
</tr>
234234
</tbody>
235235
</table>

malariagen_data/adir1.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def _repr_html_(self):
181181
<th style="text-align: left">
182182
Data releases available
183183
</th>
184-
<td>{', '.join(self._available_releases)}</td>
184+
<td>{", ".join(self._available_releases)}</td>
185185
</tr>
186186
<tr>
187187
<th style="text-align: left">
@@ -229,7 +229,7 @@ def _repr_html_(self):
229229
<th style="text-align: left">
230230
Relevant data releases
231231
</th>
232-
<td>{', '.join(self.releases)}</td>
232+
<td>{", ".join(self.releases)}</td>
233233
</tr>
234234
</tbody>
235235
</table>

malariagen_data/af1.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ def _repr_html_(self):
183183
<th style="text-align: left">
184184
Data releases available
185185
</th>
186-
<td>{', '.join(self._available_releases)}</td>
186+
<td>{", ".join(self._available_releases)}</td>
187187
</tr>
188188
<tr>
189189
<th style="text-align: left">
@@ -231,7 +231,7 @@ def _repr_html_(self):
231231
<th style="text-align: left">
232232
Relevant data releases
233233
</th>
234-
<td>{', '.join(self.releases)}</td>
234+
<td>{", ".join(self.releases)}</td>
235235
</tr>
236236
</tbody>
237237
</table>

malariagen_data/ag3.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ def _repr_html_(self):
278278
<th style="text-align: left">
279279
Data releases available
280280
</th>
281-
<td>{', '.join(self._available_releases)}</td>
281+
<td>{", ".join(self._available_releases)}</td>
282282
</tr>
283283
<tr>
284284
<th style="text-align: left">
@@ -332,7 +332,7 @@ def _repr_html_(self):
332332
<th style="text-align: left">
333333
Relevant data releases
334334
</th>
335-
<td>{', '.join(self.releases)}</td>
335+
<td>{", ".join(self.releases)}</td>
336336
</tr>
337337
</tbody>
338338
</table>

malariagen_data/amin1.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def _repr_html_(self):
181181
<th style="text-align: left">
182182
Data releases available
183183
</th>
184-
<td>{', '.join(self.releases)}</td>
184+
<td>{", ".join(self.releases)}</td>
185185
</tr>
186186
<tr>
187187
<th style="text-align: left">
@@ -229,7 +229,7 @@ def _repr_html_(self):
229229
<th style="text-align: left">
230230
Relevant data releases
231231
</th>
232-
<td>{', '.join(self.releases)}</td>
232+
<td>{", ".join(self.releases)}</td>
233233
</tr>
234234
</tbody>
235235
</table>

malariagen_data/anopheles.py

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from abc import abstractmethod
21
from typing import Any, Dict, Mapping, Optional, Tuple, Sequence
32

43
import allel # type: ignore
@@ -180,15 +179,47 @@ def __init__(
180179
surveillance_use_only=surveillance_use_only,
181180
)
182181

183-
@property
184-
@abstractmethod
185-
def _xpehh_gwss_cache_name(self):
186-
raise NotImplementedError("Must override _xpehh_gwss_cache_name")
182+
def _get_xpehh_gwss_cache_name(self):
183+
"""Safely resolve the xpehh gwss cache name.
187184
188-
@property
189-
@abstractmethod
190-
def _ihs_gwss_cache_name(self):
191-
raise NotImplementedError("Must override _ihs_gwss_cache_name")
185+
Supports class attribute, property, or legacy method override.
186+
Falls back to the default "xpehh_gwss_v1" if resolution fails.
187+
188+
See also: https://github.com/malariagen/malariagen-data-python/issues/1151
189+
"""
190+
try:
191+
name = self._xpehh_gwss_cache_name
192+
# Handle legacy case where _xpehh_gwss_cache_name might be a
193+
# callable method rather than a property or class attribute.
194+
if callable(name):
195+
name = name()
196+
if isinstance(name, str) and len(name) > 0:
197+
return name
198+
except NotImplementedError:
199+
pass
200+
# Fallback to default.
201+
return "xpehh_gwss_v1"
202+
203+
def _get_ihs_gwss_cache_name(self):
204+
"""Safely resolve the ihs gwss cache name.
205+
206+
Supports class attribute, property, or legacy method override.
207+
Falls back to the default "ihs_gwss_v1" if resolution fails.
208+
209+
See also: https://github.com/malariagen/malariagen-data-python/issues/1151
210+
"""
211+
try:
212+
name = self._ihs_gwss_cache_name
213+
# Handle legacy case where _ihs_gwss_cache_name might be a
214+
# callable method rather than a property or class attribute.
215+
if callable(name):
216+
name = name()
217+
if isinstance(name, str) and len(name) > 0:
218+
return name
219+
except NotImplementedError:
220+
pass
221+
# Fallback to default.
222+
return "ihs_gwss_v1"
192223

193224
@staticmethod
194225
def _make_gene_cnv_label(gene_id, gene_name, cnv_type):
@@ -725,7 +756,7 @@ def ihs_gwss(
725756
) -> Tuple[np.ndarray, np.ndarray]:
726757
# change this name if you ever change the behaviour of this function, to
727758
# invalidate any previously cached data
728-
name = self._ihs_gwss_cache_name
759+
name = self._get_ihs_gwss_cache_name()
729760

730761
params = dict(
731762
contig=contig,
@@ -1249,7 +1280,7 @@ def xpehh_gwss(
12491280
) -> Tuple[np.ndarray, np.ndarray]:
12501281
# change this name if you ever change the behaviour of this function, to
12511282
# invalidate any previously cached data
1252-
name = self._xpehh_gwss_cache_name
1283+
name = self._get_xpehh_gwss_cache_name()
12531284

12541285
params = dict(
12551286
contig=contig,

0 commit comments

Comments
 (0)