Skip to content

Supporting PureXXXPath objects #2430

@germa89

Description

@germa89

The pathlib library is a convenient way to manipulate paths in Python.
This library provides several objects to manipulate these paths. It is commonly used across libraries the Path object.
However there are more like PurePosixPath and PureWindowsPath. I just did realised that PureXXXPath objects (PurePosixPath, PureWindowsPath, and PurePath) are not supported by DPF.

from ansys.dpf.core import Model
from pathlib import Path, PurePosixPath

path_str = "file.rst"

Model(path_str).metadata.mesh_info # Works
Model(Path(path_str)).metadata.mesh_info # works
Model(PurePosixPath(path_str)).metadata.mesh_info # It doesn't work. It does not read the RST file

I am kind of shocked this didn't work. I guess the Path object is supported by DPF, but not the PurePath object. I would expect that DPF convert the Path object to a string behind the scenes. If that is the case, PureXXXPath object should work. So I presume DPF is doing something more exotic with the paths, which might hide something or not.

The solution is quite simple if you need to deal with PureXXXPath objects:

Model(str(PurePosixPath(path_str))).metadata.mesh_info

I am opening this issue for awareness mainly. Since the fix is quite easy, but it might take time to figure out.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions