| 212 | |
| 213 | |
| 214 | class State(enum.IntFlag, metaclass=fbe.DefaultEnumMeta): |
| 215 | unknown = int(0x00) |
| 216 | invalid = int(0x01) |
| 217 | initialized = int(0x02) |
| 218 | calculated = int(0x04) |
| 219 | broken = int(0x08) |
| 220 | good = initialized | calculated |
| 221 | bad = unknown | invalid | broken |
| 222 | |
| 223 | __slots__ = () |
| 224 | |
| 225 | # Is flags set? |
| 226 | def has_flags(self, flags): |
| 227 | return ((self.value & flags.value) != 0) and ((self.value & flags.value) == flags.value) |
| 228 | |
| 229 | # Set flags |
| 230 | def set_flags(self, flags): |
| 231 | self.value |= flags.value |
| 232 | return self |
| 233 | |
| 234 | # Remove flags |
| 235 | def remove_flags(self, flags): |
| 236 | self.value &= ~flags.value |
| 237 | return self |
| 238 | |
| 239 | def __format__(self, format_spec): |
| 240 | return self.__str__() |
| 241 | |
| 242 | def __str__(self): |
| 243 | sb = list() |
| 244 | first = True |
| 245 | if (self.value & State.unknown.value) and ((self.value & State.unknown.value) == State.unknown.value): |
| 246 | if first: |
| 247 | # noinspection PyUnusedLocal |
| 248 | first = False |
| 249 | else: |
| 250 | sb.append("|") |
| 251 | sb.append("unknown") |
| 252 | if (self.value & State.invalid.value) and ((self.value & State.invalid.value) == State.invalid.value): |
| 253 | if first: |
| 254 | # noinspection PyUnusedLocal |
| 255 | first = False |
| 256 | else: |
| 257 | sb.append("|") |
| 258 | sb.append("invalid") |
| 259 | if (self.value & State.initialized.value) and ((self.value & State.initialized.value) == State.initialized.value): |
| 260 | if first: |
| 261 | # noinspection PyUnusedLocal |
| 262 | first = False |
| 263 | else: |
| 264 | sb.append("|") |
| 265 | sb.append("initialized") |
| 266 | if (self.value & State.calculated.value) and ((self.value & State.calculated.value) == State.calculated.value): |
| 267 | if first: |
| 268 | # noinspection PyUnusedLocal |
| 269 | first = False |
| 270 | else: |
| 271 | sb.append("|") |
no outgoing calls
no test coverage detected