def __save_module()

in extensions/yaml_support/yaml_support/model/lg_unit_model.py [0:0]


    def __save_module(self, file) -> None:

        obj = {
            f"{self.name}": {
                "type": self.base
            }
        }

        if "state" in self.members:
            obj[self.name]["state"] = self.members["state"]

        if "config" in self.members:
            obj[self.name]["config"] = self.members["config"]

        # inputs and outputs
        inputs = set()
        outputs = set()

        for method in self.methods:
            for subscriber in self.methods[method]["subscribers"]:
                inputs.add(self.members[subscriber])

            for publisher in self.methods[method]["publishers"]:
                outputs.add(self.members[publisher])

        obj[self.name]["inputs"] = list(inputs)
        obj[self.name]["outputs"] = list(outputs)

        if self.base in (
            LabGraphBuiltinUnits.GROUP,
            LabGraphBuiltinUnits.GRAPH
        ):
            if "OUTPUT" in self.members:
                obj[self.name]["outputs"] = [self.members["OUTPUT"]]

            if "connections" in self.methods:
                connections: Dict[str, str] = {
                    self.members[k]:
                    (self.members[v] if v != self.name else v)
                    for k, v in
                    self.methods["connections"]["return"]
                                ["connections_dict"].items()
                }

                obj[self.name]["connections"] = connections

        YamlSerializer.serialize(obj, file)