Source code for scfile.formats.mcsa.exceptions

from dataclasses import dataclass

from scfile import exceptions
from scfile.consts import McsaModel


[docs] class McsaDecodingError(exceptions.FileError, exceptions.DecodingError): """Base exception for MCSA model related errors.""" @property def prefix(self): return "Model"
[docs] @dataclass class McsaCountsLimit(McsaDecodingError, exceptions.ParsingError): """Raised when model exceeds allowed geometry limits (vertices/polygons count).""" type: str count: int def __str__(self) -> str: return ( f"{super().__str__()} has invalid structure - " f"{self.count:,} {self.type} " f"(max reasonable: {McsaModel.GEOMETRY_LIMIT:,})." )
[docs] @dataclass class McsaBoneLinksError(McsaDecodingError, exceptions.ParsingError): """Raised when mesh contain unexpected/invalid links count.""" links_count: int def __str__(self): return f"{super().__str__()} has unexpected links count: {self.links_count}."
[docs] @dataclass class McsaVersionUnsupported(McsaDecodingError, exceptions.UnsupportedError): """Raised when attempting to parse unsupported model version.""" version: float def __str__(self): return f"{super().__str__()} has unsupported version: {self.version}."