campaign_version.py (1883B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\campaigns\client\v2\data_model\campaign_version.py 2 from __future__ import absolute_import, division, print_function 3 from eveProto.generated.eve_public.campaign.campaign_pb2 import Version 4 from semantic_version import SemanticVersion 5 6 class CampaignVersion(object): 7 8 def __init__(self, definition_semantic_version, etag, definition_schema_major_version): 9 self._definition_semantic_version = definition_semantic_version 10 self._etag = etag 11 self._definition_schema_major_version = definition_schema_major_version 12 13 @property 14 def definition_semantic_version(self): 15 return self._definition_semantic_version 16 17 @property 18 def etag(self): 19 return self._etag 20 21 @property 22 def definition_schema_major_version(self): 23 return self._definition_schema_major_version 24 25 @classmethod 26 def from_proto(cls, version): 27 return CampaignVersion(SemanticVersion.from_proto(version.definition_version), version.etag, version.definition_schema_major_version) 28 29 def to_proto(self): 30 return Version(definition_version=self._definition_semantic_version.to_eve_public_proto(), etag=self._etag, definition_schema_major_version=self._definition_schema_major_version) 31 32 def __eq__(self, other): 33 if not isinstance(other, CampaignVersion): 34 raise NotImplementedError 35 return self.definition_semantic_version == other.definition_semantic_version and self.etag == other.etag and self.definition_schema_major_version == other.definition_schema_major_version 36 37 def __ne__(self, other): 38 return not self.__eq__(other) 39 40 def __hash__(self): 41 return hash((self._etag, self._definition_schema_major_version)) 42 43 def __repr__(self): 44 return '<%s %r>' % (self.__class__.__name__, self.__dict__)