Source code for lcmtypes.sym._optimization_status_t
# This file automatically generated by skymarshal# DO NOT MODIFY BY HAND## From Source File: /home/runner/work/symforce/symforce/lcmtypes/symforce.lcm# fmt: off# isort: off# mypy: disallow-untyped-defsimporttypingasTfromioimportBytesIOimportenumimportstructclassoptimization_status_t(enum.Enum):INVALID=0SUCCESS=1HIT_ITERATION_LIMIT=2FAILED=3def__repr__(self):# type: () -> strreturn"{}.{}".format(self.__class__.__name__,self.name)@staticmethoddef_skytype_meta():# type: () -> T.Dict[str, str]returndict(type="enum",package="sym",name="optimization_status_t",)@classmethoddef_default(cls):# type: () -> optimization_status_t# Return the first enum casereturnlist(cls)[0]defencode(self):# type: () -> bytesbuf=BytesIO()buf.write(self._get_packed_fingerprint())self._encode_one(buf)returnbuf.getvalue()def_encode_one(self,buf):# type: (T.BinaryIO) -> Nonebuf.write(struct.pack('>i',self.value))@classmethoddefdecode(cls,data):# type: (T.Union[bytes, T.BinaryIO]) -> optimization_status_t# NOTE(eric): This function can technically accept either a BinaryIO or# anything that supports the C++ Buffer Protocol,# which is unspecifiable in type hints.ifhasattr(data,"read"):# NOTE(eric): mypy isn't able to figure out the hasattr checkbuf=T.cast(T.BinaryIO,data)else:buf=BytesIO(T.cast(bytes,data))ifbuf.read(8)!=cls._get_packed_fingerprint():raiseValueError("Decode error")returncls._decode_one(buf)@classmethoddef_decode_one(cls,buf):# type: (T.BinaryIO) -> optimization_status_tvalue=struct.unpack('>i',buf.read(4))[0]result=cls.from_int(value)ifresultisNone:returncls._default()returnresult@T.overload@classmethoddeffrom_int(cls,value,default):# type: (int, optimization_status_t) -> optimization_status_tpass@T.overload@classmethoddeffrom_int(cls,value,default=None):# pylint: disable=function-redefined# type: (int, None) -> T.Optional[optimization_status_t]pass@classmethoddeffrom_int(cls,value,default=None):# pylint: disable=function-redefined# type: (int, T.Optional[optimization_status_t]) -> T.Optional[optimization_status_t]""" An alternative to "optimization_status_t(value)" which will return the given default instead of raising a ValueError for unknown values. """try:returncls(value)exceptValueError:# Value unlisted / not associated with any casereturndefault@classmethoddef_get_hash_recursive(cls,parents):# type: (T.List[T.Type]) -> intifclsinparents:return0tmphash=(0xa6869f09f492d897)&0xfffffffffffffffftmphash=(((tmphash<<1)&0xffffffffffffffff)+(tmphash>>63))&0xffffffffffffffffreturntmphash@classmethoddef_get_packed_fingerprint(cls):# type: () -> bytesreturnstruct.pack(">Q",cls._get_hash_recursive([]))