• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

SPF-OST / pytrnsys_gui / 11576810878

29 Oct 2024 03:09PM UTC coverage: 67.508% (-0.08%) from 67.591%
11576810878

push

github

web-flow
Merge pull request #564 from SPF-OST/560-black-change-line-length-to-pep8-standard-of-79-and-check-ci-reaction

changed line length in black to 79

1054 of 1475 new or added lines in 174 files covered. (71.46%)

150 existing lines in 74 files now uncovered.

10399 of 15404 relevant lines covered (67.51%)

0.68 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.06
/trnsysGUI/HPDoubleDual.py
1
# pylint: skip-file
2

3
import typing as _tp
1✔
4

5
import trnsysGUI.blockItemGraphicItemMixins as _gimx
1✔
6
import trnsysGUI.blockItemHasInternalPiping as _bip
1✔
7
import trnsysGUI.createSinglePipePortItem as _cspi
1✔
8
import trnsysGUI.images as _img
1✔
9
import trnsysGUI.internalPiping as _ip
1✔
10
import trnsysGUI.massFlowSolver.networkModel as _mfn
1✔
11

12

13
class HPDoubleDual(
1✔
14
    _bip.BlockItemHasInternalPiping, _gimx.SvgBlockItemGraphicItemMixin
15
):
16
    def __init__(self, trnsysType: str, editor, displayName: str) -> None:
1✔
17
        super().__init__(trnsysType, editor, displayName)
1✔
18

19
        self.inputs.append(_cspi.createSinglePipePortItem("i", self))
1✔
20
        self.inputs.append(_cspi.createSinglePipePortItem("i", self))
1✔
21
        self.inputs.append(_cspi.createSinglePipePortItem("i", self))
1✔
22

23
        self.outputs.append(_cspi.createSinglePipePortItem("o", self))
1✔
24
        self.outputs.append(_cspi.createSinglePipePortItem("o", self))
1✔
25
        self.outputs.append(_cspi.createSinglePipePortItem("o", self))
1✔
26

27
        # For restoring correct order of trnsysObj list
28
        self.childIds = []
1✔
29
        self.childIds.append(self.trnsysId)
1✔
30
        self.childIds.append(self.editor.idGen.getTrnsysID())
1✔
31
        self.childIds.append(self.editor.idGen.getTrnsysID())
1✔
32

33
        self.changeSize()
1✔
34

35
    def getDisplayName(self) -> str:
1✔
36
        return self.displayName
1✔
37

38
    @classmethod
1✔
39
    @_tp.override
1✔
40
    def _getImageAccessor(
1✔
41
        cls,
42
    ) -> _img.SvgImageAccessor:  # pylint: disable=arguments-differ
UNCOV
43
        return _img.HP_DOUBLE_DUAL_SVG
×
44

45
    def changeSize(self):
1✔
46
        w = self.w
1✔
47
        h = self.h
1✔
48

49
        """ Resize block function """
1✔
50
        delta = 20
1✔
51

52
        # Limit the block size:
53
        if h < 20:
1✔
54
            h = 20
×
55
        if w < 40:
1✔
56
            w = 40
×
57
        # center label:
58
        rect = self.label.boundingRect()
1✔
59
        lw, lh = rect.width(), rect.height()
1✔
60
        lx = (w - lw) / 2
1✔
61
        self.label.setPos(lx, h)
1✔
62

63
        self.origInputsPos = [
1✔
64
            [0, h - 2 * delta],
65
            [w, h - delta],
66
            [w, 2 * delta],
67
        ]  # inlet of [evap, cond, cond]
68
        self.origOutputsPos = [
1✔
69
            [0, h - delta],
70
            [w, h - 2 * delta],
71
            [w, delta],
72
        ]  # outlet of [evap, cond, cond]
73

74
        self.inputs[0].setPos(
1✔
75
            self.origInputsPos[0][0], self.origInputsPos[0][1]
76
        )  # evaporator
77
        self.inputs[1].setPos(
1✔
78
            self.origInputsPos[1][0], self.origInputsPos[1][1]
79
        )  # bottom condenser
80
        self.inputs[2].setPos(
1✔
81
            self.origInputsPos[2][0], self.origInputsPos[2][1]
82
        )  # top condenser
83
        self.outputs[0].setPos(
1✔
84
            self.origOutputsPos[0][0], self.origOutputsPos[0][1]
85
        )  # evaporator
86
        self.outputs[1].setPos(
1✔
87
            self.origOutputsPos[1][0], self.origOutputsPos[1][1]
88
        )  # bottom condenser
89
        self.outputs[2].setPos(
1✔
90
            self.origOutputsPos[2][0], self.origOutputsPos[2][1]
91
        )  # top condenser
92

93
        self.updateFlipStateH(self.flippedH)
1✔
94
        self.updateFlipStateV(self.flippedV)
1✔
95

96
        return w, h
1✔
97

98
    def encode(self):
1✔
99
        if self.isVisible():
1✔
100
            self.logger.debug("Encoding a HeatPump")
1✔
101

102
            portListInputs = []
1✔
103
            portListOutputs = []
1✔
104

105
            for p in self.inputs:
1✔
106
                portListInputs.append(p.id)
1✔
107
            for p in self.outputs:
1✔
108
                portListOutputs.append(p.id)
1✔
109

110
            dct = {}
1✔
111
            dct[".__BlockDict__"] = True
1✔
112
            dct["BlockName"] = self.name
1✔
113
            dct["BlockDisplayName"] = self.displayName
1✔
114
            dct["PortsIDIn"] = portListInputs
1✔
115
            dct["PortsIDOut"] = portListOutputs
1✔
116
            dct["HeatPumpPosition"] = (
1✔
117
                float(self.pos().x()),
118
                float(self.pos().y()),
119
            )
120
            dct["trnsysID"] = self.trnsysId
1✔
121
            dct["childIds"] = self.childIds
1✔
122
            dct["FlippedH"] = self.flippedH
1✔
123
            dct["FlippedV"] = self.flippedH
1✔
124
            dct["RotationN"] = self.rotationN
1✔
125

126
            dictName = "Block-"
1✔
127

128
            return dictName, dct
1✔
129

130
    def decode(self, i, resBlockList):
1✔
131
        self.flippedH = i["FlippedH"]
1✔
132
        self.flippedV = i["FlippedV"]
1✔
133
        self.childIds = i["childIds"]
1✔
134
        self.displayName = i["BlockDisplayName"]
1✔
135
        self.changeSize()
1✔
136

137
        for x in range(len(self.inputs)):
1✔
138
            self.inputs[x].id = i["PortsIDIn"][x]
1✔
139
            self.logger.debug("Input at heatExchanger")
1✔
140

141
        for x in range(len(self.outputs)):
1✔
142
            self.outputs[x].id = i["PortsIDOut"][x]
1✔
143
            self.logger.debug("Output at heatExchanger")
1✔
144

145
        self.setPos(
1✔
146
            float(i["HeatPumpPosition"][0]), float(i["HeatPumpPosition"][1])
147
        )
148
        self.trnsysId = i["trnsysID"]
1✔
149

150
        resBlockList.append(self)
1✔
151

152
    def getInternalPiping(self) -> _ip.InternalPiping:
1✔
153
        evaporatorInput = _mfn.PortItem("In", _mfn.PortItemDirection.INPUT)
1✔
154
        evaporatorOutput = _mfn.PortItem("Out", _mfn.PortItemDirection.OUTPUT)
1✔
155
        evaporatorPipe = _mfn.Pipe(evaporatorInput, evaporatorOutput, "Evap")
1✔
156

157
        condenser1Input = _mfn.PortItem("In", _mfn.PortItemDirection.INPUT)
1✔
158
        condenser1Output = _mfn.PortItem("Out", _mfn.PortItemDirection.OUTPUT)
1✔
159
        condenser1Pipe = _mfn.Pipe(condenser1Input, condenser1Output, "Cond1")
1✔
160

161
        condenser2Input = _mfn.PortItem("In", _mfn.PortItemDirection.INPUT)
1✔
162
        condenser2Output = _mfn.PortItem("Out", _mfn.PortItemDirection.OUTPUT)
1✔
163
        condenser2Pipe = _mfn.Pipe(condenser2Input, condenser2Output, "Cond2")
1✔
164

165
        modelPortItemsToGraphicalPortItem = {
1✔
166
            evaporatorInput: self.inputs[0],
167
            evaporatorOutput: self.outputs[0],
168
            condenser1Input: self.inputs[1],
169
            condenser1Output: self.outputs[1],
170
            condenser2Input: self.inputs[2],
171
            condenser2Output: self.outputs[2],
172
        }
173
        nodes = [evaporatorPipe, condenser1Pipe, condenser2Pipe]
1✔
174

175
        return _ip.InternalPiping(nodes, modelPortItemsToGraphicalPortItem)
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc