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)