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

errors.py (7811B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\cosmetics\client\ships\skins\errors.py
      2 from eveProto.generated.eve_public.cosmetic.ship.skin.thirdparty.sequencing.job.job_pb2 import Failure
      3 from itertoolsext.Enum import Enum
      4 
      5 @Enum
      6 
      7 class GenericError(object):
      8     UNKNOWN = 'UNKNOWN'
      9     TIMEOUT = 'TIMEOUT'
     10 
     11 
     12 @Enum
     13 
     14 class SequencingJobError(object):
     15     INVALID_DESIGN = 'INVALID_DESIGN'
     16     INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS'
     17     INSUFFICIENT_COMPONENT_LICENSES = 'INSUFFICIENT_COMPONENT_LICENSES'
     18     INSUFFICIENT_SEQUENCE_BINDERS = 'INSUFFICIENT_SEQUENCE_BINDERS'
     19     INSUFFICIENT_SKILLS_FOR_SHIP_TYPE = 'INSUFFICIENT_SKILLS_FOR_SHIP_TYPE'
     20     MASS_SEQUENCING_LIMIT_REACHED = 'MASS_SEQUENCING_LIMIT_REACHED'
     21     MAX_CONCURRENT_SEQUENCING_JOBS_REACHED = 'MAX_CONCURRENT_SEQUENCING_JOBS_REACHED'
     22     SKIN_NAME_MISSING = 'SKIN_NAME_MISSING'
     23     INTERNAL_ERROR = 'INTERNAL_ERROR'
     24 
     25 
     26 STATUS_CODE_TO_INITIATE_SEQUENCING_ERROR = {400: SequencingJobError.INVALID_DESIGN,
     27  490: SequencingJobError.MAX_CONCURRENT_SEQUENCING_JOBS_REACHED,
     28  491: SequencingJobError.INSUFFICIENT_COMPONENT_LICENSES,
     29  492: SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS,
     30  493: SequencingJobError.INSUFFICIENT_SKILLS_FOR_SHIP_TYPE,
     31  494: SequencingJobError.INSUFFICIENT_FUNDS,
     32  495: SequencingJobError.MASS_SEQUENCING_LIMIT_REACHED,
     33  500: SequencingJobError.INTERNAL_ERROR}
     34 STATUS_CODE_TO_EXPEDITE_SEQUENCING_ERROR = {403: SequencingJobError.INSUFFICIENT_FUNDS}
     35 
     36 def convert_sequencing_error_from_proto(proto_error):
     37     if proto_error in [Failure.FAILURE_UNSPECIFIED, Failure.FAILURE_INTERNAL_SERVER_ERROR]:
     38         return GenericError.UNKNOWN
     39     if proto_error == Failure.FAILURE_MISSING_FUNDS:
     40         return SequencingJobError.INSUFFICIENT_FUNDS
     41     if proto_error == Failure.FAILURE_MISSING_RESOURCES:
     42         return SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS
     43 
     44 
     45 def convert_sequencing_error_to_proto(error):
     46     if error == SequencingJobError.INSUFFICIENT_FUNDS:
     47         return Failure.FAILURE_MISSING_FUNDS
     48     if error == SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS:
     49         return Failure.FAILURE_MISSING_RESOURCES
     50     return Failure.FAILURE_UNSPECIFIED
     51 
     52 
     53 @Enum
     54 
     55 class SkinDesignManagementError(object):
     56     MAX_SAVED_DESIGNS_LIMIT_REACHED = 'MAX_SAVED_DESIGNS_LIMIT_REACHED'
     57     INVALID_DESIGN = 'INVALID_DESIGN'
     58     SKIN_NAME_MISSING = 'SKIN_NAME_MISSING'
     59 
     60 
     61 @Enum
     62 
     63 class SkinDesignSharingError(object):
     64     DESIGN_NOT_FOUND = 'DESIGN_NOT_FOUND'
     65 
     66 
     67 class NoTimeRemainingException(Exception):
     68     pass
     69 
     70 
     71 class ConsumeComponentItemFailed(Exception):
     72     pass
     73 
     74 
     75 class ConsumeComponentItemConflict(Exception):
     76     pass
     77 
     78 
     79 @Enum
     80 
     81 class ListingError(object):
     82     INSUFFICIENT_FUNDS = 'INSUFFICIENT_FUNDS'
     83     INVALID_LOCATION = 'INVALID_LOCATION'
     84     INVALID_LISTING = 'INVALID_LISTING'
     85     LISTING_NOT_FOUND = 'LISTING_NOT_FOUND'
     86     INSUFFICIENT_LICENSES = 'INSUFFICIENT_LICENSES'
     87     FEATURE_FLAG_OFF = 'FEATURE_FLAG_OFF'
     88     INVALID_VERSION = 'INVALID_VERSION'
     89     NO_RIGHT_TO_VIEW = 'NO_RIGHT_TO_VIEW'
     90     UNAUTHORIZED_PURCHASE = 'UNAUTHORIZED_PURCHASE'
     91     MAX_LISTING_LIMIT_REACHED = 'MAX_LISTING_LIMIT_REACHED'
     92     UNKNOWN = 'UNKNOWN'
     93 
     94 
     95 STATUS_CODE_TO_LISTING_OPERATION_ERROR = {400: ListingError.INVALID_LISTING,
     96  401: ListingError.INVALID_LISTING,
     97  403: ListingError.INVALID_LISTING,
     98  404: ListingError.LISTING_NOT_FOUND,
     99  409: ListingError.INVALID_VERSION,
    100  412: ListingError.INSUFFICIENT_LICENSES,
    101  423: ListingError.NO_RIGHT_TO_VIEW}
    102 STATUS_CODE_TO_LISTING_PURCHASE_OPERATION_ERROR = {400: ListingError.INVALID_LISTING,
    103  401: ListingError.INVALID_LISTING,
    104  403: ListingError.INSUFFICIENT_FUNDS,
    105  404: ListingError.LISTING_NOT_FOUND,
    106  409: ListingError.INVALID_VERSION,
    107  412: ListingError.INSUFFICIENT_LICENSES,
    108  423: ListingError.UNAUTHORIZED_PURCHASE}
    109 DESIGN_ERROR_TEXT_BY_CODE = {SkinDesignManagementError.INVALID_DESIGN: 'UI/Personalization/ShipSkins/SKINR/Studio/DesignErrors/InvalidDesign',
    110  SkinDesignManagementError.MAX_SAVED_DESIGNS_LIMIT_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/DesignErrors/SaveLimitReached',
    111  SkinDesignManagementError.SKIN_NAME_MISSING: 'UI/Personalization/ShipSkins/SKINR/Studio/DesignErrors/SkinNameMissing'}
    112 SEQUENCING_ERROR_TEXT_BY_CODE = {SequencingJobError.INVALID_DESIGN: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InvalidDesign',
    113  SequencingJobError.INSUFFICIENT_FUNDS: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientPLEXFunds',
    114  SequencingJobError.INSUFFICIENT_COMPONENT_LICENSES: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientComponentLicenses',
    115  SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientSequenceBinders',
    116  SequencingJobError.INSUFFICIENT_SKILLS_FOR_SHIP_TYPE: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InsufficientSkillsForShipType',
    117  SequencingJobError.MASS_SEQUENCING_LIMIT_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/MaxSequencingLimitReached',
    118  SequencingJobError.MAX_CONCURRENT_SEQUENCING_JOBS_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/MaxConcurrentSequencingJobsReached',
    119  SequencingJobError.SKIN_NAME_MISSING: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/SkinNameMissing',
    120  SequencingJobError.INTERNAL_ERROR: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InternalError',
    121  GenericError.TIMEOUT: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InternalError',
    122  GenericError.UNKNOWN: 'UI/Personalization/ShipSkins/SKINR/Studio/SequencingErrors/InternalError'}
    123 
    124 def get_sequencing_error_text(error_code):
    125     if error_code in SEQUENCING_ERROR_TEXT_BY_CODE:
    126         return SEQUENCING_ERROR_TEXT_BY_CODE[error_code]
    127     return SEQUENCING_ERROR_TEXT_BY_CODE[GenericError.UNKNOWN]
    128 
    129 
    130 SEQUENCE_FAILURE_REASON_TO_ERROR = {0: SequencingJobError.INTERNAL_ERROR,
    131  1: SequencingJobError.INSUFFICIENT_FUNDS,
    132  3: SequencingJobError.INSUFFICIENT_SEQUENCE_BINDERS,
    133  4: SequencingJobError.INTERNAL_ERROR}
    134 LISTING_ERROR_TEXT_BY_CODE = {ListingError.INSUFFICIENT_FUNDS: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InsufficientFunds',
    135  ListingError.INVALID_LOCATION: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InvalidLocation',
    136  ListingError.INVALID_LISTING: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InvalidListing',
    137  ListingError.LISTING_NOT_FOUND: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/ListingNotFound',
    138  ListingError.INSUFFICIENT_LICENSES: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError',
    139  ListingError.NO_RIGHT_TO_VIEW: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/NoRightToView',
    140  ListingError.UNAUTHORIZED_PURCHASE: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/UnauthorizedPurchase',
    141  ListingError.MAX_LISTING_LIMIT_REACHED: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/MaxListingLimitReached',
    142  ListingError.FEATURE_FLAG_OFF: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError',
    143  ListingError.UNKNOWN: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError',
    144  GenericError.TIMEOUT: 'UI/Personalization/ShipSkins/SKINR/Studio/ListingErrors/InternalError'}
    145 
    146 def get_listing_error_text(error_code):
    147     if error_code in LISTING_ERROR_TEXT_BY_CODE:
    148         return LISTING_ERROR_TEXT_BY_CODE[error_code]
    149     return LISTING_ERROR_TEXT_BY_CODE[ListingError.UNKNOWN]
    150 
    151 
    152 class GetSkinLicensesFailed(Exception):
    153 
    154     def __init__(self, error_list, opt = ''):
    155         self._msg = 'Failed to load licenses:\n'
    156         for license_id, error_msg in error_list:
    157             self._msg += '%s: %s\n' % (license_id, error_msg)
    158 
    159         Exception.__init__(self, self._msg, opt)
    160 
    161     def __str__(self):
    162         return self._msg