Store that does not allow any data access.
| 212 | |
| 213 | |
| 214 | class InaccessibleVariableDataStore(backends.InMemoryDataStore): |
| 215 | """ |
| 216 | Store that does not allow any data access. |
| 217 | """ |
| 218 | |
| 219 | def __init__(self): |
| 220 | super().__init__() |
| 221 | self._indexvars = set() |
| 222 | |
| 223 | def store(self, variables, *args, **kwargs) -> None: |
| 224 | super().store(variables, *args, **kwargs) |
| 225 | for k, v in variables.items(): |
| 226 | if isinstance(v, IndexVariable): |
| 227 | self._indexvars.add(k) |
| 228 | |
| 229 | def get_variables(self): |
| 230 | def lazy_inaccessible(k, v): |
| 231 | if k in self._indexvars: |
| 232 | return v |
| 233 | data = indexing.LazilyIndexedArray(InaccessibleArray(v.values)) |
| 234 | return Variable(v.dims, data, v.attrs) |
| 235 | |
| 236 | return {k: lazy_inaccessible(k, v) for k, v in self._variables.items()} |
| 237 | |
| 238 | |
| 239 | class DuckBackendArrayWrapper(backends.common.BackendArray): |
no outgoing calls
searching dependent graphs…