def __init__(self, 
              sft_name='VIM', 
              need_download=False, 
              need_install=False, 
              need_update=False):
     '''
     @param sft_name: give a software(package) name for this package manager. 
                      If you need invoke download_pkg(),
                      you should ensure this name already define in the configure such as 'software.ini'
     '''
     super(self.__class__, self).__init__(sft_name, need_download, need_install, need_update)
     
     self._is_x86 = is_x86_platform()
     self.DEFAULT_INSTALL_PKG_NAME = "gvim74.exe"
     
     self.install_pkg_search_ptn = '^(gvim)(.*)(\.exe)$'
 def __init__(self, 
              sft_name='wxPython', 
              need_download=False, 
              need_install=False, 
              need_update=False):
     '''
     @param sft_name: give a software(package) name for this package manager. 
                      If you need invoke download_pkg(),
                      you should ensure this name already define in the configure such as 'software.ini'
     '''
     super(self.__class__, self).__init__(sft_name, need_download, need_install, need_update)
     
     self._is_x86 = is_x86_platform()
     self.DEFAULT_INSTALL_PKG_NAME = "wxPython2.8-win32-unicode-2.8.12.1-py27.exe" if self._is_x86 \
                                     else "wxPython2.8-win64-unicode-2.8.12.1-py27.exe"
     
     self.install_pkg_search_ptn = '^(wxPython)(.*)(win32)(.*)(\.exe)$' if self._is_x86 \
                                     else '^(wxPython)(.*)(win64)(.*)(\.exe)$'
 def __init__(self, 
              sft_name='JavaRuntimeEnvironment', 
              need_download=False, 
              need_install=False, 
              need_update=False):
     '''
     @param sft_name: give a software(package) name for this package manager. 
                      If you need invoke download_pkg(),
                      you should ensure this name already define in the configure such as 'software.ini'
     '''
     super(self.__class__, self).__init__(sft_name, False, need_install, need_update)
     
     self._is_x86 = is_x86_platform()
     self.DEFAULT_INSTALL_PKG_NAME = "jre-8u51-windows-i586.exe" if self._is_x86 \
                                     else "jre-8u51-windows-x64.exe"
     
     self.install_pkg_search_ptn = '^(jre-)(.*)(-windows-i586\.exe)$' if self._is_x86 \
                                     else '^(jre-)(.*)(-windows-x64\.exe)$'
 def __init__(self, log_filename='install.log'):
     '''
     '''
     self._setup_log(log_filename)
     self._pkg_mgr_dict = {}
     self._is_x86 = is_x86_platform()