def run(self, ): listaBase = [] self.lista = [] self.ch = CompaniesHouse(self.apikey) self.getLinesCount() with open(self.fileImport, newline='') as csvfile: spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|') count = 1 # counter for progress bar signal for row in spamreader: while True: if not self.pause: try: if self.siHayChance(): print(row[0]) if len(row[0]) == 7: CompanyNumber = '0' + row[0] elif len(row[0]) > 8: print('Error: Very long company number') self.updateSignal.emit(count) count = count + 1 break elif len(row[0]) == 8: CompanyNumber = row[0] company = self.ch.getCompany(CompanyNumber) if 'errors' in company.keys(): print('Error: ' + company['errors'][0]['error']) break else: insolvency = self.ch.getInsolvency( CompanyNumber) fillingHistory = self.ch.getListFillingHistory( CompanyNumber) #PDFs Download. if self.ch.existForm1(fillingHistory): self.ch.downloadDocument( self.ch.getUrlForm1( fillingHistory), os.path.dirname(self.fileOutput) + '/pdfs/' + CompanyNumber + '-419') if self.ch.existForm2(fillingHistory): self.ch.downloadDocument( self.ch.getUrlForm2( fillingHistory), os.path.dirname(self.fileOutput) + '/pdfs/' + CompanyNumber + '-47') registeredOffice = self.ch.getRegisteredOffice( CompanyNumber) rOfficeIndex = len(registeredOffice[0]) officers = self.ch.getOfficers( CompanyNumber) insolvencyNumber = 0 if insolvency is not None: if 'cases' in insolvency.keys(): insolvencyNumber = len( insolvency['cases']) listaBase = ([ company[ 'company_name'], # Company Name '="' + CompanyNumber + '"', # Company Number insolvencyNumber, # Insolvency History 'PRESENT' if self.ch.existForm1(fillingHistory) else 'FAIL', # Form 4.19 'PRESENT' if self.ch.existForm2(fillingHistory) else 'FAIL', # Form 4.7 insolvencyNumber, # Insolvency Proceddings Number registeredOffice[0], registeredOffice[1], registeredOffice[2], registeredOffice[3], registeredOffice[4] ]) logging.info(CompanyNumber + '- Added') for row in officers: listaBase.append(row['name']) listaBase.append(row['appointed_on']) listaBase.append( row['resigned_on'] if 'resigned_on' in row.keys() else 'FAIL') listaBase.append( str(row['date_of_birth']['month'] ) + '-' + str(row['date_of_birth']['year']) if 'date_of_birth' in row.keys() else 'FAIL') listaBase.append(row['officer_role']) officerAddress = self.dict2list( row['address']) for n in range(5): try: listaBase.append( officerAddress[n]) except: listaBase.append('FAIL') self.lista.append(list(listaBase)) del listaBase[( -10):] #Delete 10 fields. self.updateSignal.emit(count) count = count + 1 break except: break else: print('Paused') time.sleep(5) self.save(True) self.closeSignal.emit(True)