qi.path API

Introduction

qi.path is a set of functions to find binaries, libraries, data and configuration files on the system.

Reference

qi.path.findBin(name) → string
Parameters:
  • name – string. The full name of the binary, or just the name.
  • searchInPath – boolean. Search in $PATH if it haven’t been found in sdk dirs. Optionnal.
Returns:

the complete, native path to the file found. An empty string otherwise.

Look for a binary in the system.

qi.path.findLib(name) → string
Parameters:name – string. The full name of the library, or just the name.
Returns:the complete, native path to the file found. An empty string otherwise.

Look for a library in the system.

qi.path.findConf(application, file) → string
Parameters:
  • application – string. The name of the application.
  • file – string. The name of the file to look for. You can specify subdirectories using ‘/’ as a separator.
  • excludeUserWritablePath – If true, findConf() won’t search into userWritableConfPath.
Returns:

the complete, native path to the file found. An empty string otherwise.

Look for a configuration file in the system.

qi.path.findData(application, file) → string
Parameters:
  • application – string. The name of the application.
  • file – string. The name of the file to look for. You can specify subdirectories using a ‘/’ as a separator.
  • excludeUserWritablePath – If true, findData() won’t search into userWritableDataPath.
Returns:

the complete, native path to the file found. An empty string otherwise.

Look for a file in all dataPaths(application) directories. Return the first match.

qi.path.listData(application, pattern) → [string]
Parameters:
  • application – string. The name of the application.
  • patten – string. Wildcard pattern of the files to look for. You can specify subdirectories using a ‘/’ as a separator. * by default.
Returns:

a list of the complete, native paths of the files that matched.

List data files matching the given pattern in all dataPaths(application) directories. For each match, return the occurence from the first dataPaths prefix. Directories are discarded.

qi.path.confPaths(application) → [string]
Parameters:application – string. Name of the application. “” by default.
Returns:The list of configuration directories.

Get the list of directories used when searching for configuration files for the given application.

Warning

You should not assume those directories exist, nor that they are writable.

qi.path.dataPaths(application) → [string]
Parameters:application – string. Name of the application. “” by default.
Returns:The list of data directories.

Get the list of directories used when searching for configuration files for the given application.

Warning

You should not assume those directories exist, nor that they are writable.

qi.path.binPaths() → [string]
Returns:The list of directories used when searching for binaries.

Warning

You should not assume those directories exist, nor that they are writable.

qi.path.libPaths() → [string]
Returns:The list of directories used when searching for libraries.

Warning

You should not assume those directories exist, nor that they are writable.

qi.path.setWritablePath(path) → None
Parameters:path – string. A path on the system.

Set the writable files path for users. Use an empty path to reset it to its initial value.

qi.path.userWritableDataPath(application, file) → string
Parameters:
  • application – string. Name of the application.
  • file – string. Name of the file.
Returns:

The file path.

Get the writable data files path for users.

qi.path.userWritableConfPath(application, file) → string
Parameters:
  • application – string. Name of the application.
  • file – string. Name of the file.
Returns:

The file path.

Get the writable configuration files path for users.

qi.path.sdkPrefix() → string
Returns:The SDK prefix path. It is always a complete, native path.
qi.path.sdkPrefixes() → list
Returns:The list of sdk prefix.

List of SDK prefix.

qi.path.addOptionalSdkPrefix(path)
Param:an sdk prefix.

add a new SDK path.

qi.path.clearOptionalSdkPrefix()

Clear all optional sdk prefix.

Libraries and binaries names

Some qi.path functions take the name of a library or a binary as a parameter.

Full name of the library means you will include the OS specific extensions in your name.

For example, libopencv_objdetect.so .

Just the name means that you can just have the simple name of the library you want,

and do not need to worry about its extension.

For example, opencv_objdetect .

Example

import qi
#where should I write the files for my application "myapp"?

dataPath = qi.path.userWritableDataPath("myapp", "mydatafile")
# datapath => /home/nao/.local/share/myapp/mydatafile
confPath = qi.path.userWritableConfPath("myapp", "myconffile")
# confPath => /home/nao/.config/myapp/myconffile


# I want to save all my data and configuration files in a personal folder
qi.path.setWritablePath("/home/nao/my_path")

dataPath = qi.path.userWritableDataPath("myapp", "mydatafile")
# datapath => /home/nao/my_path/data/myapp/mydatafile
confPath = qi.path.userWritableConfPath("myapp", "myconffile")
# confPath => /home/nao/my_path/config/myapp/myconffile