Skip to content

Add support for other graph libries without expanding the dependency stack #38

@ethanholz

Description

@ethanholz

Is your feature request related to a problem? Please describe.

Currently, exorcist relies on networkx to manipulate the task graph. This works well, but locks users into using networkx for any exorcist usecase. This means, that we would not be able to use new tools such as rustworkx or other custom graph frameworks. Adoption of these other libraries is already starting to take place in other OMSF projects such as openff-pablo.

Describe the solution you'd like

Ideally, I would like to see an implementation akin to Python's PathLike class but for graphs. I propose the use of a GraphLike class to enshrine the minimum number of required operations to be done by exorcist. This would enable users to bring their own graph library to the table.

Describe alternatives you've considered

I briefly looked at Python's graphlib for this case, but I think it is too minimal for what we are trying to achieve.

Additional context

I am open to any and all discussion about this, I think this project could be a good testing ground for this idea.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions