| 121 | class HandledModuleList(HandledList): |
| 122 | |
| 123 | def append(self, mod): |
| 124 | emptyPosition = float("Inf") |
| 125 | for i in range(len(self)): |
| 126 | currMod = self[i] |
| 127 | if currMod.isEmpty and not mod.isEmpty and currMod.slot == mod.slot: |
| 128 | currPos = mod.position or i |
| 129 | if currPos < emptyPosition: |
| 130 | emptyPosition = currPos |
| 131 | |
| 132 | if emptyPosition < len(self): |
| 133 | mod.position = emptyPosition |
| 134 | self.__toModule(emptyPosition, mod) |
| 135 | if mod.isInvalid: |
| 136 | self.__toDummy(mod.position) |
| 137 | else: |
| 138 | self.appendIgnoreEmpty(mod) |
| 139 | |
| 140 | @collection.appender |
| 141 | def appendIgnoreEmpty(self, mod): |