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

SPF-OST / pytrnsys_gui / 11662562960

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

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

38.46
/trnsysGUI/deleteBlockCommand.py
1
from __future__ import annotations
1✔
2

3
import pathlib as _pl
1✔
4
import typing as _tp
1✔
5

6
import PyQt5.QtWidgets as _qtw
1✔
7

8
import trnsysGUI.BlockItem as _bi
1✔
9
import trnsysGUI.blockItemHasInternalPiping as _biip
1✔
10
import trnsysGUI.common as _com
1✔
11
import trnsysGUI.components.ddckFolderHelpers as _dfh
1✔
12
import trnsysGUI.names.undo as _nu
1✔
13

14
if _tp.TYPE_CHECKING:
1✔
15
    import trnsysGUI.diagram.Editor as _ed
×
16

17

18
class DeleteBlockCommand(_qtw.QUndoCommand):
1✔
19
    def __init__(
1✔
20
        self,
21
        blockItem: _bi.BlockItem,
22
        editor: _ed.Editor,  # type: ignore[name-defined]
23
        undoNamingHelper: _nu.UndoNamingHelper,
24
    ) -> None:
25
        assert isinstance(blockItem, _biip.BlockItemHasInternalPiping)
×
26

27
        description = f"Delete {blockItem.name}"
×
28
        super().__init__(description)
×
29

30
        self._blockItem = blockItem
×
31
        self._editor = editor
×
32
        self._undoNamingHelper = undoNamingHelper
×
33

34
        self._createChildDeleteConnectionUndoCommands(blockItem)
×
35

36
    def _createChildDeleteConnectionUndoCommands(self, blockItem):
1✔
37
        portItems = [*blockItem.inputs, *blockItem.outputs]
×
38

39
        connections = {
×
40
            connection
41
            for p in portItems
42
            if (connection := _com.getSingleOrNone(p.connectionList))
43
            is not None
44
        }
45

46
        for connection in connections:
×
47
            connection.createDeleteUndoCommand(self)
×
48

49
    def redo(self):
1✔
50
        super().redo()
×
51

52
        self._blockItem.deleteBlock()
×
53
        self._undoNamingHelper.removeNameForDelete(self._blockItem.displayName)
×
54

NEW
55
        _dfh.maybeDeleteNonEmptyComponentDdckFolder(
×
56
            self._blockItem, _pl.Path(self._editor.projectFolder)
57
        )
58

59
    def undo(self):
1✔
60
        checkDdckFolder = self._blockItem.hasDdckDirectory()
×
61
        oldName = self._blockItem.displayName
×
62
        generatedNamePrefix = self._blockItem.name
×
63

NEW
64
        displayName = (
×
65
            self._undoNamingHelper.addOrGenerateAndAddAnNonCollidingNameForAdd(
66
                oldName,
67
                _nu.DeleteCommandTargetType.COMPONENT,
68
                checkDdckFolder,
69
                generatedNamePrefix,
70
                firstGeneratedNameHasNumber=True,
71
            )
72
        )
73
        self._blockItem.setDisplayName(displayName)
×
74

75
        self._editor.trnsysObj.append(self._blockItem)
×
76
        self._editor.diagramScene.addItem(self._blockItem)
×
77

78
        super().undo()
×
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