개정판 4bf032f1
issue #641: improve open speed minor
Change-Id: If86706c7da8f93bcc3d7d821baacfe0f82647461
DTI_PID/DTI_PID/Commands/LoadCommand.py | ||
---|---|---|
100 | 100 |
items = [item for item in scene.items() if hasattr(item, 'uid') and str(item.uid) == str(uid)] |
101 | 101 |
return items[0] if items else None |
102 | 102 |
|
103 |
def find_items(scene, uids): |
|
104 |
uids = [str(uid) for uid in uids] |
|
105 |
items = [(item, uids.index(str(item.uid))) for item in scene.items() if hasattr(item, 'uid') and str(item.uid) in uids] |
|
106 |
|
|
107 |
items = [item[0] for item in sorted(items, key= lambda param:param[1])] |
|
108 |
|
|
109 |
return items |
|
110 |
|
|
103 | 111 |
import concurrent.futures as futures |
104 | 112 |
from xml.etree.ElementTree import Element, SubElement, dump, ElementTree, parse |
105 | 113 |
from App import App |
... | ... | |
248 | 256 |
|
249 | 257 |
for run_node in runs_node: |
250 | 258 |
line_run = QEngineeringRunItem() |
259 |
uids = [] |
|
251 | 260 |
for child_node in run_node: |
252 | 261 |
uidElement = child_node.find('UID') |
253 | 262 |
if uidElement is not None: |
254 | 263 |
uid = uidElement.text |
264 |
uids.append(uid) |
|
265 |
''' |
|
255 | 266 |
run_item = find_item(scene, uid) |
256 | 267 |
if run_item is not None: |
257 | 268 |
run_item._owner = line_no |
258 | 269 |
line_run.items.append(run_item) |
270 |
''' |
|
271 |
run_items = find_items(scene, uids) |
|
272 |
for run_item in run_items: |
|
273 |
run_item._owner = line_no |
|
274 |
line_run.items.append(run_item) |
|
275 |
|
|
259 | 276 |
line_run.owner = line_no |
260 | 277 |
line_no.runs.append(line_run) |
261 | 278 |
|
... | ... | |
274 | 291 |
|
275 | 292 |
for run in runs_node: |
276 | 293 |
line_run = QEngineeringRunItem() |
294 |
uids = [] |
|
277 | 295 |
for child in run: |
278 | 296 |
uidElement = child.find('UID') |
279 | 297 |
if uidElement is not None: |
280 | 298 |
uid = uidElement.text |
299 |
uids.append(uid) |
|
300 |
''' |
|
281 | 301 |
run_item = find_item(scene, uid) |
282 | 302 |
if run_item is not None: |
283 | 303 |
run_item.owner = line_no |
284 | 304 |
line_run.items.append(run_item) |
305 |
''' |
|
306 |
run_items = find_items(scene, uids) |
|
307 |
for run_item in run_items: |
|
308 |
run_item._owner = line_no |
|
309 |
line_run.items.append(run_item) |
|
310 |
|
|
285 | 311 |
line_run.owner = line_no |
286 | 312 |
line_no.runs.append(line_run) |
287 | 313 |
|
... | ... | |
342 | 368 |
items = [item for item in scene.items() if hasattr(item, 'uid') and str(item.uid) == str(uid)] |
343 | 369 |
return items[0] if items else None |
344 | 370 |
|
371 |
def find_items(scene, uids): |
|
372 |
uids = [str(uid) for uid in uids] |
|
373 |
items = [(item, uids.index(str(item.uid))) for item in scene.items() if hasattr(item, 'uid') and str(item.uid) in uids] |
|
374 |
|
|
375 |
items = [item[0] for item in sorted(items, key= lambda param:param[1])] |
|
376 |
|
|
377 |
return items |
|
378 |
|
|
345 | 379 |
value = 0 |
346 | 380 |
app_doc_data = AppDocData.instance() |
347 | 381 |
try: |
... | ... | |
444 | 478 |
for run in runs: |
445 | 479 |
line_run = QEngineeringRunItem() |
446 | 480 |
run_items = app_doc_data.get_pipe_run_items(run['UID']) |
481 |
uids = [] |
|
447 | 482 |
for record in run_items: |
448 | 483 |
uid = record['Components_UID'] |
484 |
uids.append(uid) |
|
485 |
''' |
|
449 | 486 |
run_item = find_item(scene, uid) |
450 | 487 |
if run_item is not None: |
451 | 488 |
run_item._owner = line_no |
452 | 489 |
line_run.items.append(run_item) |
490 |
''' |
|
491 |
run_items = find_items(scene, uids) |
|
492 |
for run_item in run_items: |
|
493 |
run_item._owner = line_no |
|
494 |
line_run.items.append(run_item) |
|
495 |
|
|
453 | 496 |
line_run.owner = line_no |
454 | 497 |
line_no.runs.append(line_run) |
455 | 498 |
|
... | ... | |
470 | 513 |
for run in runs: |
471 | 514 |
line_run = QEngineeringRunItem() |
472 | 515 |
run_items = app_doc_data.get_pipe_run_items(run['UID']) |
516 |
uids = [] |
|
473 | 517 |
for record in run_items: |
474 | 518 |
uid = record['Components_UID'] |
519 |
uids.append(uid) |
|
520 |
''' |
|
475 | 521 |
run_item = find_item(scene, uid) |
476 | 522 |
if run_item is not None: |
477 | 523 |
run_item.owner = line_no |
478 | 524 |
line_run.items.append(run_item) |
525 |
''' |
|
526 |
run_items = find_items(scene, uids) |
|
527 |
for run_item in run_items: |
|
528 |
run_item._owner = line_no |
|
529 |
line_run.items.append(run_item) |
|
530 |
|
|
479 | 531 |
line_run.owner = line_no |
480 | 532 |
line_no.runs.append(line_run) |
481 | 533 |
|
내보내기 Unified diff