def decode(cls, buffer, offset=0): """Decodes SNMP packet :param buffer: :param offset: """ (obj, offset) = Object.decode(buffer, offset) assert len(buffer) == offset (version, community, pdu) = obj.value assert pdu.tag.tag_class == TagClassEnum.context_specific assert isinstance(community.value, OctetString) if pdu.tag.tag_id in cls.pdus: pdu = cls.pdus[pdu.tag.tag_id].from_object(pdu) return cls(version, community, pdu)