Coverage for install/scipp/coords/coord.py: 22%
23 statements
« prev ^ index » next coverage.py v7.4.0, created at 2024-04-28 01:28 +0000
« prev ^ index » next coverage.py v7.4.0, created at 2024-04-28 01:28 +0000
1# SPDX-License-Identifier: BSD-3-Clause
2# Copyright (c) 2023 Scipp contributors (https://github.com/scipp)
3# @author Jan-Lukas Wynen
5import dataclasses
6from typing import Optional
8from ..core import Variable
11@dataclasses.dataclass
12class Coord:
13 dense: Optional[Variable] # for dense variable or bin-coord
14 event: Optional[Variable]
15 aligned: bool
16 usages: int = -1 # negative for unlimited usages
18 @property
19 def has_dense(self) -> bool:
20 return self.dense is not None
22 @property
23 def has_event(self) -> bool:
24 return self.event is not None
26 def use(self):
27 if self.usages > 0:
28 self.usages -= 1
30 @property
31 def used_up(self) -> bool:
32 return self.usages == 0
34 def has_dim(self, dim: str) -> bool:
35 return dim in (self.dense.dims if self.has_dense else self.event.dims)