(lines)
| 643 | return traceDict |
| 644 | |
| 645 | def _makeOPtraces(lines): |
| 646 | traceDict = {} |
| 647 | varNames = [] |
| 648 | stepPar = None |
| 649 | stepVals = [] |
| 650 | step = True |
| 651 | for i in range(len(lines)): |
| 652 | fields = lines[i].split() |
| 653 | if i == 0: |
| 654 | firstVar = fields[0] |
| 655 | labels = [fields[j].strip() for j in range(1, len(fields))] |
| 656 | for var in labels: |
| 657 | try: |
| 658 | varName, parDef = var.split(":") |
| 659 | stepPar, stepVal = parDef.split("=") |
| 660 | varNames.append(varName) |
| 661 | traceDict[varName] = [] |
| 662 | except ValueError: |
| 663 | step = False |
| 664 | varNames.append(var) |
| 665 | traceDict[var] = [] |
| 666 | if step: |
| 667 | if fields[0] == firstVar: |
| 668 | var = fields[1].strip() |
| 669 | varName, parDef = var.split(":") |
| 670 | stepPar, stepVal = parDef.split("=") |
| 671 | else: |
| 672 | values = [eval(field) for field in fields] |
| 673 | for j in range(1, len(values)): |
| 674 | traceDict[varNames[j-1]].append(values[j]) |
| 675 | stepVals.append(eval(stepVal)) |
| 676 | elif fields[0] != firstVar: |
| 677 | try: |
| 678 | values = [eval(fields[j]) for j in range(1, len(fields))] |
| 679 | for j in range(1, len(fields)): |
| 680 | traceDict[varNames[j-1]].append(values[j-1]) |
| 681 | except NameError: |
| 682 | print("Error in parsing NGspice results (often indicating 'nan' values). Check the log file for details.") |
| 683 | return traceDict |
| 684 | if step: |
| 685 | for key in traceDict: |
| 686 | traceDict[key] = trace([stepVals, traceDict[key]]) |
| 687 | traceDict[key].label = key |
| 688 | traceDict = (traceDict, stepPar, "") |
| 689 | else: |
| 690 | for key in traceDict: |
| 691 | traceDict[key] = traceDict[key][0] |
| 692 | return traceDict |
| 693 | |
| 694 | def _makeDCTRNStraces(lines): |
| 695 | traceDict = {} |
no test coverage detected