Skip to content

Decompose Node #243

@liamhuber

Description

@liamhuber

The Node class has gotten a bit unwieldy. I feel that the way I added storage, especially on top of two backends that are non-optimal (tinybase being incomplete, and h5io -- most of all -- not accommodating rercursive attributes) has resulted in some technical debt.

This became particularly evident in #240 when I tried to merge storage into Joerg's branch. I knew already that Node.iter didn't play well with the graph paradigm, but with storage present simply creating new copies of the same node with

So what I'd like to do is break apart Node into some different pieces to separate out the concerns and break responsibilities into smaller pieces. I had initially tried a purely component-based composition approach (e.g. Node.semantics.label instead of Node.label), but this proliferated trouble with h5io due to all the recursive relationships. So instead I'm opting for mutliple-inheritance mixin-compositions.

My current attack plan is:

Metadata

Metadata

Assignees

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