Class: QgsPathResolver

class qgis.core.QgsPathResolver

Bases: sip.wrapper

Resolves relative paths into absolute paths and vice versa. Used for writing

New in version 3.0.

QgsPathResolver(baseFileName: str = ‘’, attachmentDir: str = ‘’) Initialize path resolver with a base filename. Null filename means no conversion between relative/absolute path

QgsPathResolver(QgsPathResolver)

Methods

readPath

Turn filename read from the project file to an absolute path

removePathPreprocessor

Removes the custom pre-processor function with matching id.

removePathWriter

Removes the custom writer function with matching id.

setPathPreprocessor

Sets a path pre-processor function, which allows for manipulation of paths and data sources prior to resolving them to file references or layer sources.

setPathWriter

Sets a path writer function, which allows for manipulation of paths and data sources prior to writing them to the project file.

writePath

Prepare a filename to save it to the project file.

readPath(self, filename: str) str

Turn filename read from the project file to an absolute path

Parameters

filename (str) –

Return type

str

removePathPreprocessor(id: str)

Removes the custom pre-processor function with matching id.

The id must correspond to a pre-processor previously added via a call to setPathPreprocessor().

Raises

KeyError – if no processor with the specified id exists.

New in version 3.10.

Parameters

id (str) –

removePathWriter(id: str)

Removes the custom writer function with matching id.

The id must correspond to a writer previously added via a call to setPathWriter(). An KeyError will be raised if no processor with the specified id exists.

See also

setPathWriter()

New in version 3.22.

Parameters

id (str) –

setPathPreprocessor(Callable[..., None]) str

Sets a path pre-processor function, which allows for manipulation of paths and data sources prior to resolving them to file references or layer sources.

The processor function must accept a single string argument (representing the original file path or data source), and return a processed version of this path.

The path pre-processor function is called before any bad layer handler.

If multiple preprocessors are set, they will be called in sequence based on the order in which they were originally set.

Example - replace an outdated folder path with a new one:

def my_processor(path):
   return path.replace('c:/Users/ClintBarton/Documents/Projects', 'x:/Projects/')

QgsPathResolver.setPathPreprocessor(my_processor)

Example - replace a stored database host with a new one:

def my_processor(path):
   return path.replace('host=10.1.1.115', 'host=10.1.1.116')

QgsPathResolver.setPathPreprocessor(my_processor)

Example - replace stored database credentials with new ones:

def my_processor(path):
   path = path.replace("user='gis_team'", "user='team_awesome'")
   path = path.replace("password='cats'", "password='g7as!m*'")
   return path

QgsPathResolver.setPathPreprocessor(my_processor)

New in version 3.10.

Return type

str

setPathWriter(Callable[..., None]) str

Sets a path writer function, which allows for manipulation of paths and data sources prior to writing them to the project file.

The writer function must accept a single string argument (representing the original file path or data source), and return a processed version of this path.

The path writer function is called before any bad layer handler.

If multiple writers are set, they will be called in sequence based on the order in which they were originally set.

Example - replace path with a variable:

def my_processor(path):
   return path.replace('c:/Users/ClintBarton/Documents/Projects', '$projectdir$')

QgsPathResolver.setPathWriter(my_processor)

New in version 3.22.

Return type

str

writePath(self, filename: str) str

Prepare a filename to save it to the project file. Creates an absolute or relative path according to the project settings. Paths written to the project file should be prepared with this method.

Parameters

filename (str) –

Return type

str