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

strangeStrings.py (1791B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\common\script\sys\strangeStrings.py
      2 from future.utils import raise_
      3 import stackless
      4 
      5 class A:
      6     __module__ = 'sys'
      7     __guid__ = 'sys.A'
      8     __passbyvalue__ = 1
      9 
     10     def __call__(self, messageID, formatDict = None):
     11         s = sm.StartService('agentMgr').GetStaticBlob(messageID)
     12         if formatDict:
     13             s = s % formatDict
     14         if type(s) is unicode:
     15             r = AgentUnicode(s)
     16         elif type(s) is str:
     17             r = AgentString(s)
     18         else:
     19             try:
     20                 r = AgentUnicode(unicode(s))
     21             except:
     22                 raise_(TypeError, "Can't unpickle strange string of type %s" % type(s))
     23 
     24         r.messageID = messageID
     25         if formatDict:
     26             r.formatDict = formatDict
     27         return r
     28 
     29 
     30 class AgentString(str):
     31     __module__ = 'sys'
     32     __guid__ = 'sys.AgentString'
     33 
     34     def __reduce__(self):
     35         if stackless.getcurrent().frame.f_back.f_code.co_name == 'SaveConfig_170472':
     36             if hasattr(self, 'messageID'):
     37                 if getattr(self, 'formatDict', False):
     38                     return (A(), (self.messageID, self.formatDict))
     39                 else:
     40                     return (A(), (self.messageID,))
     41         return (str, (str(self),))
     42 
     43 
     44 class AgentUnicode(unicode):
     45     __module__ = 'sys'
     46     __guid__ = 'sys.AgentUnicode'
     47 
     48     def __reduce__(self):
     49         if stackless.getcurrent().frame.f_back.f_code.co_name == 'SaveConfig_170472':
     50             if hasattr(self, 'messageID'):
     51                 if getattr(self, 'formatDict', False):
     52                     return (A(), (self.messageID, self.formatDict))
     53                 else:
     54                     return (A(), (self.messageID,))
     55         return (unicode, (unicode(self),))