# prance.util.fs¶

This submodule contains file system utilities for Prance.

## Functions¶

prance.util.fs.abspath(filename, relative_to=None)[source]

Return the absolute path of a file relative to a reference file.

If no reference file is given, this function works identical to canonical_filename.

Parameters: filename (str) – The filename to make absolute. relative_to (str) – [optional] the reference file name. The absolute path str
prance.util.fs.canonical_filename(filename)[source]

Return the canonical version of a file name.

The canonical version is defined as the absolute path, and all file system links dereferenced.

Parameters: filename (str) – The filename to make canonical. The canonical filename. str
prance.util.fs.detect_encoding(filename, default_to_utf8=True, **kwargs)[source]

Detect the named file’s character encoding.

If the first parts of the file appear to be ASCII, this function returns ‘UTF-8’, as that’s a safe superset of ASCII. This can be switched off by changing the default_to_utf8 parameter.

Parameters: filename (str) – The name of the file to detect the encoding of. default_to_utf8 (bool) – Defaults to True. Set to False to disable treating ASCII files as UTF-8. read_all (bool) – Keyword argument; if True, reads the entire file for encoding detection. The file encoding. str
prance.util.fs.from_posix(fname)[source]

Convert a path from posix-like, to the platform format.

Parameters: fname (str) – The filename in posix-like format. The filename in the format of the platform. str
prance.util.fs.read_file(filename, encoding=None)[source]

Read and decode a file, taking BOMs into account.

Parameters: filename (str) – The name of the file to read. encoding (str) – The encoding to use. If not given, detect_encoding is used to determine the encoding. The file contents. unicode string
prance.util.fs.to_posix(fname)[source]

Convert a path to posix-like format.

Parameters: fname (str) – The filename to convert to posix format. The filename in posix-like format. str
prance.util.fs.write_file(filename, contents, encoding=None)[source]

Write a file with the given encoding.

The default encoding is ‘utf-8’. It’s recommended not to change that for JSON or YAML output.

Parameters: filename (str) – The name of the file to read. contents (str) – The file contents to write. encoding (str) – The encoding to use. If not given, detect_encoding is used to determine the encoding.