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

sample.py (1166B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\devtools\script\uiControlCatalog\sample.py
      2 import inspect
      3 import linecache
      4 import textwrap
      5 from signals import Signal
      6 
      7 class Sample(object):
      8     name = None
      9     description = None
     10     cls = None
     11     on_code_changed = Signal('on_code_changed')
     12 
     13     def get_name(self):
     14         if self.name:
     15             return self.name
     16         elif self.cls:
     17             return self.cls.__name__
     18         else:
     19             return self.__class__.__name__
     20 
     21     def get_description(self):
     22         if self.description:
     23             return self.description
     24         if self.cls:
     25             return self.cls.__doc__
     26 
     27     def construct_sample(self, parent):
     28         self.sample_code(parent)
     29 
     30     def sample_code(self, parent):
     31         pass
     32 
     33     def get_snippet(self):
     34         linecache.checkcache(filename=inspect.getfile(self.__class__))
     35         method = self.sample_code
     36         if method.__code__ == Sample.sample_code.__code__:
     37             return ''
     38         lines = inspect.getsourcelines(method)[0][1:]
     39         ret = ''
     40         for line in lines:
     41             ret += line
     42 
     43         return textwrap.dedent(ret)