(self)
| 225 | |
| 226 | @property |
| 227 | def swappable_dims(self): |
| 228 | ds = self.dataset |
| 229 | options = [] |
| 230 | for dim in self.indexed_dims: |
| 231 | choices = [ |
| 232 | name |
| 233 | for name, var in ds._variables.items() |
| 234 | if var.dims == (dim,) |
| 235 | # TODO: Avoid swapping a dimension to itself |
| 236 | and name != dim |
| 237 | ] |
| 238 | options.extend( |
| 239 | (a, b) for a, b in itertools.zip_longest((dim,), choices, fillvalue=dim) |
| 240 | ) |
| 241 | return options |
| 242 | |
| 243 | @rule(data=st.data()) |
| 244 | # TODO: swap_dims is basically all broken if a multiindex is present |