From 905335093997fae2c48f3d6cbc2178e6832dc481 Mon Sep 17 00:00:00 2001
From: Jay Mistry
Date: Sat, 21 Aug 2021 14:20:41 +0530
Subject: Update Model.py

---
 src/kicadtoNgspice/Model.py | 191 ++++++++++++++++++++++++--------------------
 1 file changed, 106 insertions(+), 85 deletions(-)

(limited to 'src/kicadtoNgspice')

diff --git a/src/kicadtoNgspice/Model.py b/src/kicadtoNgspice/Model.py
index 1270f072..7bed33c2 100644
--- a/src/kicadtoNgspice/Model.py
+++ b/src/kicadtoNgspice/Model.py
@@ -1,131 +1,148 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
 from PyQt5 import QtWidgets, QtCore, QtGui
 from PyQt5.QtCore import QObject, pyqtSlot
-from . import TrackWidget
+from  import TrackWidget
 from xml.etree import ElementTree as ET
 import os
 import sys
 
+
 class Model(QtWidgets.QWidget):
+
     """
     - This class creates Model Tab of KicadtoNgspice window.
       The widgets are created dynamically in the Model Tab.
     """
-    #by Sumanto and Jay
+
+    # by Sumanto and Jay
+
     def addHex(self):
         """
         This function is use to keep track of all Device Model widget
         """
-        #print("Calling Track Device Model Library funtion")
-       
+
+        # print("Calling Track Device Model Library funtion")
 
         init_path = '../../../'
         if os.name == 'nt':
             init_path = ''
 
-        self.hexfile = QtCore.QDir.toNativeSeparators(
-            QtWidgets.QFileDialog.getOpenFileName(
-                self, "Open Hex Directory",
-                init_path + "home", "*.hex"
-            )[0]
-        )
+        self.hexfile = \
+            QtCore.QDir.toNativeSeparators(QtWidgets.QFileDialog.getOpenFileName(self,
+                'Open Hex Directory', init_path + 'home', '*.hex')[0])
         self.text = open(self.hexfile).read()
         chosen_file_path = os.path.abspath(self.hexfile)
-        print(os.path.abspath(self.hexfile))
+        print os.path.abspath(self.hexfile)
+
+    # By Sumanto and Jay
 
-    #By Sumanto and Jay
     def uploadHex(self):
         """
         This function is use to keep track of all Device Model widget
         """
-        #print("Calling Track Device Model Library funtion")
+
+        # print("Calling Track Device Model Library funtion")
+
         path1 = os.path.expanduser('~')
         path2 = '/ngspice-nghdl/src/xspice/icm/ghdl'
         init_path = path1 + path2
         if os.name == 'nt':
             init_path = ''
 
-        self.hexloc = QtWidgets.QFileDialog.getExistingDirectory(
-                self, "Open Hex Directory",
-                init_path)
-        print(self.hexloc)
-        self.file = open(self.hexloc+"/hex.txt","w")
+        self.hexloc = QtWidgets.QFileDialog.getExistingDirectory(self,
+                'Open Hex Directory', init_path)
+        print self.hexloc
+        self.file = open(self.hexloc + '/hex.txt', 'w')
         self.file.write(self.text)
         self.file.close()
-        
-    def __init__(self, schematicInfo, modelList, clarg1):
+
+    def __init__(
+        self,
+        schematicInfo,
+        modelList,
+        clarg1,
+        ):
 
         QtWidgets.QWidget.__init__(self)
 
         # Processing for getting previous values
+
         kicadFile = clarg1
         (projpath, filename) = os.path.split(kicadFile)
         project_name = os.path.basename(projpath)
         check = 1
         try:
-            f = open(
-                os.path.join(
-                    projpath,
-                    project_name +
-                    "_Previous_Values.xml"),
-                'r')
+            f = open(os.path.join(projpath, project_name
+                     + '_Previous_Values.xml'), 'r')
             tree = ET.parse(f)
             parent_root = tree.getroot()
             for child in parent_root:
-                if child.tag == "model":
+                if child.tag == 'model':
                     root = child
-
         except BaseException:
+
             check = 0
-            print("Model Previous Values XML is Empty")
+            print 'Model Previous Values XML is Empty'
 
         # Creating track widget object
+
         self.obj_trac = TrackWidget.TrackWidget()
 
         # for increasing row and counting/tracking line edit widget
+
         self.nextrow = 0
         self.nextcount = 0
 
         # for storing line edit details position details
+
         self.start = 0
         self.end = 0
         self.entry_var = {}
-        self.text = ""
+        self.text = ''
+
         # Creating GUI dynamically for Model tab
+
         self.grid = QtWidgets.QGridLayout()
         self.setLayout(self.grid)
 
         for line in modelList:
+
             # print "ModelList Item:",line
             # Adding title label for model
             # Key: Tag name,Value:Entry widget number
+
             tag_dict = {}
             modelbox = QtWidgets.QGroupBox()
             modelgrid = QtWidgets.QGridLayout()
             modelbox.setTitle(line[5])
             self.start = self.nextcount
-           
-           
+
             # line[7] is parameter dictionary holding parameter tags.
+
             i = 0
-            for key, value in line[7].items():
+            for (key, value) in line[7].items():
+
                 # Check if value is iterable
-                if not isinstance(value, str) and hasattr(value, '__iter__'):
+
+                if not isinstance(value, str) and hasattr(value,
+                        '__iter__'):
+
                     # For tag having vector value
+
                     temp_tag = []
                     for item in value:
                         paramLabel = QtWidgets.QLabel(item)
                         modelgrid.addWidget(paramLabel, self.nextrow, 0)
-                        self.obj_trac.model_entry_var[self.nextcount] = (
+                        self.obj_trac.model_entry_var[self.nextcount] = \
                             QtWidgets.QLineEdit()
-                        )
-                        modelgrid.addWidget(
-                            self.obj_trac.model_entry_var
-                            [self.nextcount], self.nextrow, 1)
+                        modelgrid.addWidget(self.obj_trac.model_entry_var[self.nextcount],
+                                self.nextrow, 1)
 
                         try:
                             for child in root:
-                                if child.text == line[2] \
-                                        and child.tag == line[3]:
+                                if child.text == line[2] and child.tag \
+                                    == line[3]:
                                     self.obj_trac.model_entry_var
                                     [self.nextcount].setText(child[i].text)
                                     i = i + 1
@@ -136,93 +153,106 @@ class Model(QtWidgets.QWidget):
                         self.nextcount = self.nextcount + 1
                         self.nextrow = self.nextrow + 1
                         if 'upload_hex_file:1' in tag_dict:
-                            self.addbtn = QtWidgets.QPushButton("Add Hex File")
-                            self.addbtn.setObjectName("%d" % self.nextcount)
+                            self.addbtn = \
+                                QtWidgets.QPushButton('Add Hex File')
+                            self.addbtn.setObjectName('%d'
+                                    % self.nextcount)
                             self.addbtn.clicked.connect(self.addHex)
-                            modelgrid.addWidget(self.addbtn, self.nextrow, 2)
+                            modelgrid.addWidget(self.addbtn,
+                                    self.nextrow, 2)
                             modelbox.setLayout(modelgrid)
 
                             # CSS
+
                             modelbox.setStyleSheet(" \
                             QGroupBox { border: 1px solid gray; border-radius:\
                             9px; margin-top: 0.5em; } \
                             QGroupBox::title { subcontrol-origin: margin; left:\
                             10px; padding: 0 3px 0 3px; } \
-                            ")
+                            "
+                                    )
 
                             self.grid.addWidget(modelbox)
-                            self.addbtn = QtWidgets.QPushButton("Upload Hex File")
-                            self.addbtn.setObjectName("%d" % self.nextcount)
+                            self.addbtn = \
+                                QtWidgets.QPushButton('Upload Hex File')
+                            self.addbtn.setObjectName('%d'
+                                    % self.nextcount)
                             self.addbtn.clicked.connect(self.uploadHex)
-                            modelgrid.addWidget(self.addbtn, self.nextrow, 3)
+                            modelgrid.addWidget(self.addbtn,
+                                    self.nextrow, 3)
                             modelbox.setLayout(modelgrid)
 
                             # CSS
+
                             modelbox.setStyleSheet(" \
                             QGroupBox { border: 1px solid gray; border-radius:\
                             9px; margin-top: 0.5em; } \
                             QGroupBox::title { subcontrol-origin: margin; left:\
                             10px; padding: 0 3px 0 3px; } \
-                            ")
+                            "
+                                    )
 
                             self.grid.addWidget(modelbox)
 
                     tag_dict[key] = temp_tag
-
                 else:
+
                     paramLabel = QtWidgets.QLabel(value)
                     modelgrid.addWidget(paramLabel, self.nextrow, 0)
-                    self.obj_trac.model_entry_var[self.nextcount] = (
+                    self.obj_trac.model_entry_var[self.nextcount] = \
                         QtWidgets.QLineEdit()
-                    )
-                    modelgrid.addWidget(
-                        self.obj_trac.model_entry_var[self.nextcount],
-                        self.nextrow, 1
-                    )
-                 
+                    modelgrid.addWidget(self.obj_trac.model_entry_var[self.nextcount],
+                            self.nextrow, 1)
 
                     try:
                         for child in root:
-                            if child.text == line[2] and child.tag == line[3]:
-                                self.obj_trac.model_entry_var[self.nextcount] \
-                                                .setText(child[i].text)
+                            if child.text == line[2] and child.tag \
+                                == line[3]:
+                                self.obj_trac.model_entry_var[self.nextcount].setText(child[i].text)
                                 i = i + 1
                     except BaseException:
                         pass
-                   
-                   
+
                     tag_dict[key] = self.nextcount
                     self.nextcount = self.nextcount + 1
                     self.nextrow = self.nextrow + 1
                     if 'upload_hex_file:1' in tag_dict:
-                        self.addbtn = QtWidgets.QPushButton("Add Hex File")
-                        self.addbtn.setObjectName("%d" % self.nextcount)
+                        self.addbtn = \
+                            QtWidgets.QPushButton('Add Hex File')
+                        self.addbtn.setObjectName('%d' % self.nextcount)
                         self.addbtn.clicked.connect(self.addHex)
-                        modelgrid.addWidget(self.addbtn, self.nextrow, 2)
+                        modelgrid.addWidget(self.addbtn, self.nextrow,
+                                2)
                         modelbox.setLayout(modelgrid)
 
                         # CSS
+
                         modelbox.setStyleSheet(" \
                         QGroupBox { border: 1px solid gray; border-radius:\
                         9px; margin-top: 0.5em; } \
                         QGroupBox::title { subcontrol-origin: margin; left:\
                         10px; padding: 0 3px 0 3px; } \
-                        ")
+                        "
+                                )
 
                         self.grid.addWidget(modelbox)
-                        self.addbtn = QtWidgets.QPushButton("Upload Hex File")
-                        self.addbtn.setObjectName("%d" % self.nextcount)
+                        self.addbtn = \
+                            QtWidgets.QPushButton('Upload Hex File')
+                        self.addbtn.setObjectName('%d' % self.nextcount)
                         self.addbtn.clicked.connect(self.uploadHex)
-                        modelgrid.addWidget(self.addbtn, self.nextrow, 3)
+                        modelgrid.addWidget(self.addbtn, self.nextrow,
+                                3)
                         modelbox.setLayout(modelgrid)
 
                         # CSS
+
                         modelbox.setStyleSheet(" \
                         QGroupBox { border: 1px solid gray; border-radius:\
                         9px; margin-top: 0.5em; } \
                         QGroupBox::title { subcontrol-origin: margin; left:\
                         10px; padding: 0 3px 0 3px; } \
-                        ")
+                        "
+                                )
 
                         self.grid.addWidget(modelbox)
 
@@ -230,29 +260,19 @@ class Model(QtWidgets.QWidget):
             modelbox.setLayout(modelgrid)
 
             # CSS
+
             modelbox.setStyleSheet(" \
             QGroupBox { border: 1px solid gray; border-radius: \
             9px; margin-top: 0.5em; } \
             QGroupBox::title { subcontrol-origin: margin; left:\
              10px; padding: 0 3px 0 3px; } \
-            ")
+            "
+                                   )
 
             self.grid.addWidget(modelbox)
 
-            '''
-            Listing all
-            line[0] = index
-            line[1] = compLine
-            line[2] = modelname  #Change from compType to modelname
-            line[3] = compName
-            line[4] = comment
-            line[5] = title
-            line[6] = type i.e analog or digital
-            Now adding start,end and tag_dict which will be line[7],
-            line[8] and line[9] respectively
-            '''
-
             # This keeps the track of Model Tab Widget
+
             lst = [
                 line[0],
                 line[1],
@@ -263,7 +283,8 @@ class Model(QtWidgets.QWidget):
                 line[6],
                 self.start,
                 self.end,
-                tag_dict]
+                tag_dict,
+                ]
             check = 0
             for itr in self.obj_trac.modelTrack:
                 if itr == lst:
-- 
cgit