Beispiel #1
0
	def discardCommand(self):
		if self.regex.get() and self.var.get():
			self.regexString = '"'+str(self.var.get())+'='+self.regex.get()+'"'
			if (self.display.size() > 0):
				temp = tempfile.NamedTemporaryFile(delete=False)
				self.status = Mx.writeTemp(temp.file, self.collection)
				tempOutput = tempfile.NamedTemporaryFile(delete=False)
				temp.close()
				tempOutput.close()
				tstr = './mxtool'+' '+'-discard'+' '+self.regexString+' '+'<'+' '+temp.name+' '+'>'+' '+tempOutput.name
				os.system(tstr)
				self.tempCollection = self.collection
				self.status, self.collection, self.nrecs2 = Mx.readFile(tempOutput.name)
				if (self.status == 0):
					self.display.delete(0, END)
					for x in range (0, self.nrecs2):
						self.bibdata = Mx.marc2bib(self.collection, x)
						self.tempstring = str(x+1)+self.bibdata[0]+self.bibdata[1]+self.bibdata[2]+self.bibdata[3]		
						self.display.insert(END,self.tempstring)
					self.label.config(text="Records Remaining: "+str(self.nrecs2))
				else:
					self.label.config(text="Could not carry out regex operation")
				os.unlink(temp.name)
				os.unlink(tempOutput.name)
				self.undo.config(state=NORMAL)
			else:
				tkMessageBox.showerror("Error", "No XML File Open")
		else:
			tkMessageBox.showerror("Warning", "Make sure it is a proper regular expression and one of the buttons has been selected")
Beispiel #2
0
	def appendCommand(self):	#exactly the same as above except switches order of files being concat'd
		if (self.display.size() > 0):
			temp = tempfile.NamedTemporaryFile(delete=False)
			self.status = Mx.writeTemp(temp.file, self.collection)
			self.newfile = askopenfilename(filetypes=[("XML Files", "*.xml")])
			tempOutput = tempfile.NamedTemporaryFile(delete=False)
			temp.close()
			tempOutput.close()
			tstr = './mxtool'+' '+'-cat'+' '+self.newfile+' '+'<'+' '+temp.name+' '+'>'+' '+tempOutput.name
			os.system(tstr)
			Mx.freeFile(self.collection)
			self.status, self.collection, self.nrecs2 = Mx.readFile(tempOutput.name)
			if (self.status == 0):
				self.display.delete(0, END)
				for x in range (0, self.nrecs2):
					self.bibdata = Mx.marc2bib(self.collection, x) #extract 4 string from subelem[recno]
					self.tempstring = str(x+1)+self.bibdata[0]+self.bibdata[1]+self.bibdata[2]+self.bibdata[3]		
					self.display.insert(END,self.tempstring)
				self.label.config(text="Records Added: "+str(self.nrecs2-self.nrecs)+ " Total Records: " +str(self.nrecs2))
			else:
				self.label.config(text="Could not concatenate XML Files")
			os.unlink(temp.name)
			os.unlink(tempOutput.name)
		else:
			tkMessageBox.showerror("Error", "No XML File Open")
Beispiel #3
0
	def insertCommand(self):	
		if (self.display.size() > 0):
			temp = tempfile.NamedTemporaryFile(delete=False)	#tempfile for current display to be written to
			self.status = Mx.writeTemp(temp.file, self.collection)
			self.newfile = askopenfilename(filetypes=[("XML Files", "*.xml")])
			tempOutput = tempfile.NamedTemporaryFile(delete=False)
			temp.close()
			tempOutput.close()
			tstr = './mxtool'+' '+'-cat'+' '+temp.name+' '+'<'+' '+self.newfile+' '+'>'+' '+tempOutput.name
			os.system(tstr)	#command line execution: calls above statement
			Mx.freeFile(self.collection)
			self.status, self.collection, self.nrecs2 = Mx.readFile(tempOutput.name) #reads new file to update display
			if (self.status == 0):
				self.display.delete(0, END)
				for x in range (0, self.nrecs2):
					self.bibdata = Mx.marc2bib(self.collection, x) #extract 4 string from subelem[recno]
					self.tempstring = str(x+1)+self.bibdata[0]+self.bibdata[1]+self.bibdata[2]+self.bibdata[3]		
					self.display.insert(END,self.tempstring)
				self.label.config(text="Records Added: "+str(self.nrecs2-self.nrecs)+ " Total Records: " +str(self.nrecs2))
			else:
				self.label.config(text="Could not concatenate XML Files")
			os.unlink(temp.name)		#removes temporary files now incase user decides to insert multiple times
			os.unlink(tempOutput.name)	#in one session so as to not lose track of all files being created
		else:
			tkMessageBox.showerror("Error", "No XML File Open")
Beispiel #4
0
	def bibCommand(self):
		if (self.display.size() > 0):
			self.newfile = asksaveasfilename(defaultextension=".txt")
			temp = tempfile.NamedTemporaryFile(delete=False)
			self.status = Mx.writeTemp(temp.file, self.collection)
			temp.close()
			tstr = './mxtool'+' '+'-bib'+' '+'<'+' '+temp.name+' '+'>'+' '+self.newfile
			os.system(tstr)
			if (self.nrecs2 != 0):
				self.label.config(text="Records saved as -lib format: " +str(self.nrecs2))
			else:
				self.label.config(text="Records saved as -lib format: "+str(self.nrecs))
			os.unlink(temp.name)
		else:
			tkMessageBox.showerror("Error", "No XML File Open")