parameters: (filename)
return_statement: return qtpluginname, abspath, rpath
docstring: input: a path to a qt plugin, as returned by otool, that can have this form :
              - an absolute path /../plugins/PLUGINTYPE/PLUGINNAME.dylib
              - @executable_path/../plugins/PLUGINTYPE/PLUGINNAME.dylib
      output:
          a tuple (qtlib, abspath, rpath) where:
              - qtname is the name of the plugin (libqcocoa.dylib, etc.)
              - abspath is the absolute path of the qt lib inside the app bundle of exepath
              - relpath is the correct rpath to a qt lib inside the app bundle
docstring_summary: input: a path to a qt plugin, as returned by otool, that can have this form :
              - an absolute path /../plugins/PLUGINTYPE/PLUGINNAME.dylib
              -
docstring_tokens: input : a path to a qt plugin as returned by otool that can have this form : - an absolute path / .. / plugins / PLUGINTYPE / PLUGINNAME . dylib -
function: def normalize_qtplugin_name(filename):
      """
      input: a path to a qt plugin, as returned by otool, that can have this form :
              - an absolute path /../plugins/PLUGINTYPE/PLUGINNAME.dylib
              - @executable_path/../plugins/PLUGINTYPE/PLUGINNAME.dylib
      output:
          a tuple (qtlib, abspath, rpath) where:
              - qtname is the name of the plugin (libqcocoa.dylib, etc.)
              - abspath is the absolute path of the qt lib inside the app bundle of exepath
              - relpath is the correct rpath to a qt lib inside the app bundle
      """
  
      GlobalConfig.logger.debug('normalize_plugin_name({0})'.format(filename))
  
      qtplugin_name_rgx = re.compile(QTPLUGIN_NAME_REGEX)
      rgxret = qtplugin_name_rgx.match(filename)
      if not rgxret:
          msg = 'couldn\'t normalize a non-qt plugin filename: {0}'.format(filename)
          GlobalConfig.logger.critical(msg)
          raise Exception(msg)
  
      # qtplugin normalization settings
      qtplugintype = rgxret.groups()[0]
      qtpluginname = rgxret.groups()[1]
  
      templ = Template(QTPLUGIN_NORMALIZED)
  
      # from qtlib, forge 2 path :
      #  - absolute path of qt lib in bundle,
      abspath = os.path.normpath(templ.safe_substitute(
          prefix=os.path.dirname(GlobalConfig.exepath) + '/..',
          plugintype=qtplugintype,
          pluginname=qtpluginname))
  
      #  - and rpath containing @executable_path, relative to exepath
      rpath = templ.safe_substitute(
          prefix='@executable_path/..',
          plugintype=qtplugintype,
          pluginname=qtpluginname)
  
      GlobalConfig.logger.debug('\treturns({0})'.format((qtpluginname, abspath, rpath)))
      return qtpluginname, abspath, rpath
function_tokens: def normalize_qtplugin_name ( filename ) : GlobalConfig . logger . debug ( 'normalize_plugin_name({0})' . format ( filename ) ) qtplugin_name_rgx = re . compile ( QTPLUGIN_NAME_REGEX ) rgxret = qtplugin_name_rgx . match ( filename ) if not rgxret : msg = 'couldn\'t normalize a non-qt plugin filename: {0}' . format ( filename ) GlobalConfig . logger . critical ( msg ) raise Exception ( msg ) # qtplugin normalization settings qtplugintype = rgxret . groups ( ) [ 0 ] qtpluginname = rgxret . groups ( ) [ 1 ] templ = Template ( QTPLUGIN_NORMALIZED ) # from qtlib, forge 2 path : #  - absolute path of qt lib in bundle, abspath = os . path . normpath ( templ . safe_substitute ( prefix = os . path . dirname ( GlobalConfig . exepath ) + '/..' , plugintype = qtplugintype , pluginname = qtpluginname ) ) #  - and rpath containing @executable_path, relative to exepath rpath = templ . safe_substitute ( prefix = '@executable_path/..' , plugintype = qtplugintype , pluginname = qtpluginname ) GlobalConfig . logger . debug ( '\treturns({0})' . format ( ( qtpluginname , abspath , rpath ) ) ) return qtpluginname , abspath , rpath