NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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__)