hio.base.hier.hiering

hio.base.hier.hiering Module

Provides hierarchical action support

Syntax notes for Mine and Dock use in boxwork:

H hold (Hold) boxwork shared data attribute syntax with locally scoped
   variable H ref for hold .

so need syntax does not heed to "quote" paths keys into the bags
containers Mine dict subclasses with attribute support.

H.root_dog.value  is equivalent to self.hold["root_dog"].value or
                                   self.hold[("root", "dog")].value

So need term  "H.root_dog.value > 5" should compile directly and eval
as long as H is in the locals() and H is a Mine instance.

Likewise for
D.root_dog.value where D is a Dock and root_dog is a key in the Dock.

So no need to do substitutions or shorthand
The hierarchy in the .mine/.dock is indicated by '_' separated keys
The Box Boxer Actor names are forbidden from having '_" as an element
with Renam regex test.

Module Contents

class hio.base.hier.hiering.WorkDom

Bases: hio.help.MapDom

WorkDom provides state for building boxwork by a boxer to be injected make methods of Boxer by workify wrapper.

Attributes:

box (Box | None): current box in box work. None if not yet a box
over (Box | None): current over Box in box work. None if top level
bxpre (str):  default box name prefix used to generate unique box name
            relative to boxer.boxes
bxidx (int): default box name index used to generate unique box name
            relative to boxer.boxes
acts (dict):  registry of ActBase subclasses by name (including aliases)
context (str): action context for act