@classmethod
	def unpack (cls, attribute_id, flag, data, negotiated):
		cache = cls.caching and cls.CACHING

		if cache and data in cls.cache.get(cls.ID,{}):
			return cls.cache[cls.ID].retrieve(data)

		key = (attribute_id,flag | Attribute.Flag.EXTENDED_LENGTH)
		if key in Attribute.registered_attributes.keys():
			instance = cls.klass(attribute_id,flag).unpack(data,negotiated)

			if cache:
				cls.cache[cls.ID].cache(data,instance)
			return instance

		raise Notify (2,4,attribute_id % 'can not handle attribute id %s')
dataset/ETHPy150Open Exa-Networks/exabgp/lib/exabgp/bgp/message/update/attribute/attribute.py/Attribute.unpack/swapped operands of `%`