|
17 | 17 |
|
18 | 18 | class StixQueryResponse(QueryResponse):
|
19 | 19 | def filter_for_latest_version(self, allow_uncompleted=False):
|
20 |
| - self["tidx"] = range(len(self)) |
21 |
| - grouped_res = self.group_by( |
22 |
| - ["Start Time", "End Time", "Instrument", "Level", "DataType", "DataProduct", "Request ID"] |
23 |
| - ) |
24 |
| - keep = np.zeros(len(self), dtype=bool) |
25 |
| - for key, group in zip(grouped_res.groups.keys, grouped_res.groups): |
26 |
| - group.sort("Ver") |
27 |
| - if not allow_uncompleted: |
28 |
| - incomplete = np.char.endswith(group["Ver"].data, "U") |
29 |
| - keep[group[~incomplete][-1]["tidx"]] = True |
30 |
| - else: |
31 |
| - keep[group[-1]["tidx"]] = True |
32 |
| - self.remove_column("tidx") |
33 |
| - self.remove_rows(np.where(~keep)) |
| 20 | + r""" |
| 21 | + Filter the response to only include the most recent versions of results. |
| 22 | +
|
| 23 | + Parameters |
| 24 | + ---------- |
| 25 | + allow_uncompleted |
| 26 | + Include incomplete version (e.g. V02U) |
| 27 | +
|
| 28 | + """ |
| 29 | + if len(self) > 0 and "Start Time" in self.columns: |
| 30 | + self["_tidx"] = range(len(self)) |
| 31 | + grouped_res = self.group_by( |
| 32 | + ["Start Time", "End Time", "Instrument", "Level", "DataType", "DataProduct", "Request ID"] |
| 33 | + ) |
| 34 | + keep = np.zeros(len(self), dtype=bool) |
| 35 | + for key, group in zip(grouped_res.groups.keys, grouped_res.groups): |
| 36 | + group.sort("Ver") |
| 37 | + if not allow_uncompleted: |
| 38 | + incomplete = np.char.endswith(group["Ver"].data, "U") |
| 39 | + keep[group[~incomplete][-1]["_tidx"]] = True |
| 40 | + else: |
| 41 | + keep[group[-1]["_tidx"]] = True |
| 42 | + self.remove_column("_tidx") |
| 43 | + self.remove_rows(np.where(~keep)) |
34 | 44 |
|
35 | 45 |
|
36 | 46 | class STIXClient(GenericClient):
|
|
0 commit comments