What?

xattree (“exa-tree”, or “cat tree” if you like) is an xarray integration for attrs, or vice versa.

xattree maps your attrs objects onto xarray’s data model. Given the former, it gives them back. They act the same, but behind it all is a (network of) xarray.DataTree node(s).

You get

  • a DataTree for each instance living in .data by default

  • dimension and coordinate inheritance

  • hierarchical addressing

..and the goodies offered by xarray more generally.

Why?

[W]e cannot seem to solve the problem of separation of powers. We are not even close. We do not agree on what the principle requires, what its objectives are, or how it does or could accomplish its objectives. — Elizabeth Magill1

You are sovereign. Your will is law, filtered though it may be through untold layers of abstraction and indirection. Surveying your domain, you discern disorder. Dimensions threaten to shift. Perspectives proliferate.

With xarray harmony is possible. Coordinating views is like herding cats, but provided a good tree, they’ll sort themselves out.

Your realm becomes legible to a murky new state management apparatus. Like a well-oiled executive, xattree props up your class hierarchy — respecting the “letter”, i.e. semblance and behavior, while molding the spirit so as to guarantee alignment, protect inheritances, etc.

Your constituents, no longer wholly responsible for (or indeed possessed of) their respective properties, fall quickly into line. Tranquility prevails. Your Janus-faced program pleases your stakeholders and yourself, for the moment.