def get_abs_image_path(self, path):
        """
        Get the absolute path of an image

        :param path: file path
        :return: file path
        """

        if not path:
            return ""
        orig_path = path

        server_config = self.config.get_section_config("Server")
        img_directory = self.get_images_directory()

        # Windows path should not be send to a unix server
        if not sys.platform.startswith("win"):
            if re.match(r"^[A-Z]:", path) is not None:
                raise NodeError("{} is not allowed on this remote server. Please use only a filename in {}.".format(path, img_directory))

        if not os.path.isabs(path):
            for directory in images_directories(self._NODE_TYPE):
                path = self._recursive_search_file_in_directory(directory, orig_path)
                if path:
                    return force_unix_path(path)

            # Not found we try the default directory
            s = os.path.split(orig_path)
            path = force_unix_path(os.path.join(img_directory, *s))
            if os.path.exists(path):
                return path
            raise ImageMissingError(orig_path)

        # For non local server we disallow using absolute path outside image directory
        if server_config.getboolean("local", False) is True:
            path = force_unix_path(path)
            if os.path.exists(path):
                return path
            raise ImageMissingError(orig_path)

        path = force_unix_path(path)
        for directory in images_directories(self._NODE_TYPE):
            if os.path.commonprefix([directory, path]) == directory:
                if os.path.exists(path):
                    return path
                raise ImageMissingError(orig_path)
        raise NodeError("{} is not allowed on this remote server. Please use only a filename in {}.".format(path, img_directory))
def get_abs_image_path ( self , path ) : if not path : return "" orig_path = path server_config = self . config . get_section_config ( "Server" ) img_directory = self . get_images_directory ( ) if not sys . platform . startswith ( "win" ) : if re . match ( r"^[A-Z]:" , path ) is not None : raise NodeError ( "{} is not allowed on this remote server. Please use only a filename in {}." . format ( path , img_directory ) ) if not os . path . isabs ( path ) : for directory in images_directories ( self . _NODE_TYPE ) : path = self . _recursive_search_file_in_directory ( directory , orig_path ) if path : return force_unix_path ( path ) s = os . path . split ( orig_path ) path = force_unix_path ( os . path . join ( img_directory , * s ) ) if os . path . exists ( path ) : return path raise ImageMissingError ( orig_path ) if server_config . getboolean ( "local" , False ) is True : path = force_unix_path ( path ) if os . path . exists ( path ) : return path raise ImageMissingError ( orig_path ) path = force_unix_path ( path ) for directory in images_directories ( self . _NODE_TYPE ) : if os . path . commonprefix ( [ directory , path ] ) == directory : if os . path . exists ( path ) : return path raise ImageMissingError ( orig_path ) raise NodeError ( "{} is not allowed on this remote server. Please use only a filename in {}." . format ( path , img_directory ) )
Get the absolute path of an image

        :param path: file path
        :return: file path