gemseo / utils

# file_path_manager module¶

Services for handling file paths.

Classes:

 FileDefinition(name, extension) Create new instance of FileDefinition(name, extension) FilePathManager(file_type[, default_name, ...]) A factory of file paths for a given type of file and with default settings. FileType(value) The type of a file, defined by its default name and format.
class gemseo.utils.file_path_manager.FileDefinition(name, extension)

Bases: tuple

Create new instance of FileDefinition(name, extension)

Methods:

 count(value, /) Return number of occurrences of value. index(value[, start, stop]) Return first index of value.

Attributes:

 extension Alias for field number 1 name Alias for field number 0
count(value, /)

Return number of occurrences of value.

extension

Alias for field number 1

index(value, start=0, stop=9223372036854775807, /)

Return first index of value.

Raises ValueError if the value is not present.

name

Alias for field number 0

class gemseo.utils.file_path_manager.FilePathManager(file_type, default_name=None, default_directory=None, default_extension=None)[source]

Bases: object

A factory of file paths for a given type of file and with default settings.

Parameters
• file_type (FileType) – The type of file, defined by its default file name and format; select a file type by iterating over FileType.

• default_name (str) –

The default file name. If None, use the default file name related to the given type of file.

By default it is set to None.

• default_directory (Optional[Path]) –

The default directory path. If None, use the current working directory.

By default it is set to None.

• default_extension (Optional[str]) –

The default extension. If None, use the default extension related to the given type of file.

By default it is set to None.

Return type

None

Methods:

 add_suffix(file_path, suffix) Add a suffix to an existing file path between the filename and the extension. create_file_path([file_path, ...]) Make a file path from a directory path, a file name and a file extension. to_snake_case(message) Snake case a string.

Add a suffix to an existing file path between the filename and the extension.

E.g. directory/filename_suffix.pdf.

Parameters
• file_path (pathlib.Path) – The file path to be suffixed.

• suffix (str) – The suffix to be added to the file path.

Returns

The directory path, the file name and the file extension obtained from the file path.

Return type

pathlib.Path

create_file_path(file_path=None, directory_path=None, file_name=None, file_extension=None)[source]

Make a file path from a directory path, a file name and a file extension.

Parameters
• file_path (Optional[Union[str, pathlib.Path]]) –

The path of the file to be returned. If None, create a file path from directory_path, file_name and file_extension.

By default it is set to None.

• directory_path (Optional[Union[str, pathlib.Path]]) –

The path of the directory. If None, use the default directory path.

By default it is set to None.

• file_name (Optional[str]) –

The file name to be used. If None, use the default file name.

By default it is set to None.

• file_extension (Optional[str]) –

A file extension, e.g. ‘png’, ‘pdf’, ‘svg’, … If None, use the default file extension.

By default it is set to None.

Returns

The file path.

Return type

pathlib.Path

static to_snake_case(message)[source]

Snake case a string.

That means:

1. Split the message.

2. Lowercase the resulting elements.

- and   are replaced with _.

Parameters

message (str) – The message to be snake-cased.

Returns

The snake-cased message.

Return type

str

class gemseo.utils.file_path_manager.FileType(value)[source]

Bases: enum.Enum

The type of a file, defined by its default name and format.

Attributes:

FIGURE = FileDefinition(name='figure', extension='png')
SCHEMA = FileDefinition(name='schema', extension='json')
TEXT = FileDefinition(name='document', extension='txt')
WEBPAGE = FileDefinition(name='page', extension='html')