Skip to content

HeadV2 should inherit from HeadV1 which should inherit from HeadV0 which should inherit from Head

Heads classes does not inherit from each others.

One can argue that composition (as it is used actually) is a good practice over inheritance.

But it leads to this kind of code in clients:

                # capture sofware and version
                if isinstance(head, HeadV2):
                    node.software = head.v1.software
                    node.version = head.v1.software_version
                else:
                    node.software = head.software
                    node.version = head.software_version

As each Head version only add some fields and not some logic or complex configuration, inheritance should be used.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information