1# Copyright 2004-2008 Roman Yakovenko. 2# Distributed under the Boost Software License, Version 1.0. (See 3# accompanying file LICENSE_1_0.txt or copy at 4# http://www.boost.org/LICENSE_1_0.txt) 5 6from . import code_creator 7 8class custom_t(code_creator.code_creator_t): 9 def __init__(self, works_on_instance=True): 10 """ Base class for custom code. 11 works_on_instance: If true, the custom code can be applied directly to obj inst. 12 Ex: ObjInst."CustomCode" 13 """ 14 code_creator.code_creator_t.__init__(self) 15 self.works_on_instance = works_on_instance 16 17 def _create_impl(self): 18 raise NotImplementedError() 19 20 def _get_system_files_impl( self ): 21 return [] 22 23class custom_text_t(custom_t): 24 def __init__(self, text, works_on_instance=True): 25 custom_t.__init__(self, works_on_instance) 26 self._text = text 27 28 def _get_text(self): 29 return self._text 30 def _set_text(self, new_text): 31 self._text = new_text 32 text = property( _get_text, _set_text ) 33 34 def _create_impl(self): 35 return self.text 36 37 def _get_system_files_impl( self ): 38 return [] 39