mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	Whitespace normalization.
This commit is contained in:
		
							parent
							
								
									a888540593
								
							
						
					
					
						commit
						70c4378dbc
					
				
					 57 changed files with 2434 additions and 2440 deletions
				
			
		|  | @ -4,159 +4,159 @@ | |||
| import re | ||||
| 
 | ||||
| class ReDemo: | ||||
| 	 | ||||
| 	def __init__(self, master): | ||||
| 		self.master = master | ||||
| 
 | ||||
| 		self.promptdisplay = Label(self.master, anchor=W, | ||||
| 			text="Enter a Perl-style regular expression:") | ||||
| 		self.promptdisplay.pack(side=TOP, fill=X) | ||||
|     def __init__(self, master): | ||||
|         self.master = master | ||||
| 
 | ||||
| 		self.regexdisplay = Entry(self.master) | ||||
| 		self.regexdisplay.pack(fill=X) | ||||
| 		self.regexdisplay.focus_set() | ||||
|         self.promptdisplay = Label(self.master, anchor=W, | ||||
|                 text="Enter a Perl-style regular expression:") | ||||
|         self.promptdisplay.pack(side=TOP, fill=X) | ||||
| 
 | ||||
| 		self.addoptions() | ||||
|         self.regexdisplay = Entry(self.master) | ||||
|         self.regexdisplay.pack(fill=X) | ||||
|         self.regexdisplay.focus_set() | ||||
| 
 | ||||
| 		self.statusdisplay = Label(self.master, text="", anchor=W) | ||||
| 		self.statusdisplay.pack(side=TOP, fill=X) | ||||
|         self.addoptions() | ||||
| 
 | ||||
| 		self.labeldisplay = Label(self.master, anchor=W, | ||||
| 			text="Enter a string to search:") | ||||
| 		self.labeldisplay.pack(fill=X) | ||||
| 		self.labeldisplay.pack(fill=X) | ||||
|         self.statusdisplay = Label(self.master, text="", anchor=W) | ||||
|         self.statusdisplay.pack(side=TOP, fill=X) | ||||
| 
 | ||||
| 		self.showframe = Frame(master) | ||||
| 		self.showframe.pack(fill=X, anchor=W) | ||||
|         self.labeldisplay = Label(self.master, anchor=W, | ||||
|                 text="Enter a string to search:") | ||||
|         self.labeldisplay.pack(fill=X) | ||||
|         self.labeldisplay.pack(fill=X) | ||||
| 
 | ||||
| 		self.showvar = StringVar(master) | ||||
| 		self.showvar.set("first") | ||||
|         self.showframe = Frame(master) | ||||
|         self.showframe.pack(fill=X, anchor=W) | ||||
| 
 | ||||
| 		self.showfirstradio = Radiobutton(self.showframe, | ||||
| 						 text="Highlight first match", | ||||
| 						  variable=self.showvar, | ||||
| 						  value="first", | ||||
| 						  command=self.recompile) | ||||
| 		self.showfirstradio.pack(side=LEFT) | ||||
|         self.showvar = StringVar(master) | ||||
|         self.showvar.set("first") | ||||
| 
 | ||||
| 		self.showallradio = Radiobutton(self.showframe, | ||||
| 						text="Highlight all matches", | ||||
| 						variable=self.showvar, | ||||
| 						value="all", | ||||
| 						command=self.recompile) | ||||
| 		self.showallradio.pack(side=LEFT) | ||||
|         self.showfirstradio = Radiobutton(self.showframe, | ||||
|                                          text="Highlight first match", | ||||
|                                           variable=self.showvar, | ||||
|                                           value="first", | ||||
|                                           command=self.recompile) | ||||
|         self.showfirstradio.pack(side=LEFT) | ||||
| 
 | ||||
| 		self.stringdisplay = Text(self.master, width=60, height=4) | ||||
| 		self.stringdisplay.pack(fill=BOTH, expand=1) | ||||
| 		self.stringdisplay.tag_configure("hit", background="yellow") | ||||
|         self.showallradio = Radiobutton(self.showframe, | ||||
|                                         text="Highlight all matches", | ||||
|                                         variable=self.showvar, | ||||
|                                         value="all", | ||||
|                                         command=self.recompile) | ||||
|         self.showallradio.pack(side=LEFT) | ||||
| 
 | ||||
| 		self.grouplabel = Label(self.master, text="Groups:", anchor=W) | ||||
| 		self.grouplabel.pack(fill=X) | ||||
|         self.stringdisplay = Text(self.master, width=60, height=4) | ||||
|         self.stringdisplay.pack(fill=BOTH, expand=1) | ||||
|         self.stringdisplay.tag_configure("hit", background="yellow") | ||||
| 
 | ||||
| 		self.grouplist = Listbox(self.master) | ||||
| 		self.grouplist.pack(expand=1, fill=BOTH) | ||||
|         self.grouplabel = Label(self.master, text="Groups:", anchor=W) | ||||
|         self.grouplabel.pack(fill=X) | ||||
| 
 | ||||
| 		self.regexdisplay.bind('<Key>', self.recompile) | ||||
| 		self.stringdisplay.bind('<Key>', self.reevaluate) | ||||
|         self.grouplist = Listbox(self.master) | ||||
|         self.grouplist.pack(expand=1, fill=BOTH) | ||||
| 
 | ||||
| 		self.compiled = None | ||||
| 		self.recompile() | ||||
|         self.regexdisplay.bind('<Key>', self.recompile) | ||||
|         self.stringdisplay.bind('<Key>', self.reevaluate) | ||||
| 
 | ||||
| 		btags = self.regexdisplay.bindtags() | ||||
| 		self.regexdisplay.bindtags(btags[1:] + btags[:1]) | ||||
|         self.compiled = None | ||||
|         self.recompile() | ||||
| 
 | ||||
| 		btags = self.stringdisplay.bindtags() | ||||
| 		self.stringdisplay.bindtags(btags[1:] + btags[:1]) | ||||
| 	 | ||||
| 	def addoptions(self): | ||||
| 		self.frames = [] | ||||
| 		self.boxes = [] | ||||
| 		self.vars = [] | ||||
| 		for name in ('IGNORECASE', | ||||
| 			     'LOCALE', | ||||
| 			     'MULTILINE', | ||||
| 			     'DOTALL', | ||||
| 			     'VERBOSE'): | ||||
| 			if len(self.boxes) % 3 == 0: | ||||
| 				frame = Frame(self.master) | ||||
| 				frame.pack(fill=X) | ||||
| 				self.frames.append(frame) | ||||
| 			val = getattr(re, name) | ||||
| 			var = IntVar() | ||||
| 			box = Checkbutton(frame, | ||||
| 				variable=var, text=name, | ||||
| 				offvalue=0, onvalue=val, | ||||
| 				command=self.recompile) | ||||
| 			box.pack(side=LEFT) | ||||
| 			self.boxes.append(box) | ||||
| 			self.vars.append(var) | ||||
| 	 | ||||
| 	def getflags(self): | ||||
| 		flags = 0 | ||||
| 		for var in self.vars: | ||||
| 			flags = flags | var.get() | ||||
| 		flags = flags | ||||
| 		return flags | ||||
| 	 | ||||
| 	def recompile(self, event=None): | ||||
| 		try: | ||||
| 			self.compiled = re.compile(self.regexdisplay.get(), | ||||
| 						   self.getflags()) | ||||
| 			bg = self.promptdisplay['background'] | ||||
| 			self.statusdisplay.config(text="", background=bg) | ||||
| 		except re.error, msg: | ||||
| 			self.compiled = None | ||||
| 			self.statusdisplay.config( | ||||
| 				text="re.error: %s" % str(msg), | ||||
| 				background="red") | ||||
| 		self.reevaluate() | ||||
| 	 | ||||
| 	def reevaluate(self, event=None): | ||||
| 		try: | ||||
| 			self.stringdisplay.tag_remove("hit", "1.0", END) | ||||
| 		except TclError: | ||||
| 			pass | ||||
| 		try: | ||||
| 			self.stringdisplay.tag_remove("hit0", "1.0", END) | ||||
| 		except TclError: | ||||
| 			pass | ||||
| 		self.grouplist.delete(0, END) | ||||
| 		if not self.compiled: | ||||
| 			return | ||||
| 		self.stringdisplay.tag_configure("hit", background="yellow") | ||||
| 		self.stringdisplay.tag_configure("hit0", background="orange") | ||||
| 		text = self.stringdisplay.get("1.0", END) | ||||
| 		last = 0 | ||||
| 		nmatches = 0 | ||||
| 		while last <= len(text): | ||||
| 			m = self.compiled.search(text, last) | ||||
| 			if m is None: | ||||
| 				break | ||||
| 			first, last = m.span() | ||||
| 			if last == first: | ||||
| 				last = first+1 | ||||
| 				tag = "hit0" | ||||
| 			else: | ||||
| 				tag = "hit" | ||||
| 			pfirst = "1.0 + %d chars" % first | ||||
| 			plast = "1.0 + %d chars" % last | ||||
| 			self.stringdisplay.tag_add(tag, pfirst, plast) | ||||
| 			if nmatches == 0: | ||||
| 				self.stringdisplay.yview_pickplace(pfirst) | ||||
| 				groups = list(m.groups()) | ||||
| 				groups.insert(0, m.group()) | ||||
| 				for i in range(len(groups)): | ||||
| 					g = "%2d: %s" % (i, `groups[i]`) | ||||
| 					self.grouplist.insert(END, g) | ||||
| 			nmatches = nmatches + 1 | ||||
| 			if self.showvar.get() == "first": | ||||
| 				break | ||||
|         btags = self.regexdisplay.bindtags() | ||||
|         self.regexdisplay.bindtags(btags[1:] + btags[:1]) | ||||
| 
 | ||||
| 		if nmatches == 0: | ||||
| 			self.statusdisplay.config(text="(no match)", | ||||
| 						  background="yellow") | ||||
| 		else: | ||||
| 			self.statusdisplay.config(text="") | ||||
|         btags = self.stringdisplay.bindtags() | ||||
|         self.stringdisplay.bindtags(btags[1:] + btags[:1]) | ||||
| 
 | ||||
|     def addoptions(self): | ||||
|         self.frames = [] | ||||
|         self.boxes = [] | ||||
|         self.vars = [] | ||||
|         for name in ('IGNORECASE', | ||||
|                      'LOCALE', | ||||
|                      'MULTILINE', | ||||
|                      'DOTALL', | ||||
|                      'VERBOSE'): | ||||
|             if len(self.boxes) % 3 == 0: | ||||
|                 frame = Frame(self.master) | ||||
|                 frame.pack(fill=X) | ||||
|                 self.frames.append(frame) | ||||
|             val = getattr(re, name) | ||||
|             var = IntVar() | ||||
|             box = Checkbutton(frame, | ||||
|                     variable=var, text=name, | ||||
|                     offvalue=0, onvalue=val, | ||||
|                     command=self.recompile) | ||||
|             box.pack(side=LEFT) | ||||
|             self.boxes.append(box) | ||||
|             self.vars.append(var) | ||||
| 
 | ||||
|     def getflags(self): | ||||
|         flags = 0 | ||||
|         for var in self.vars: | ||||
|             flags = flags | var.get() | ||||
|         flags = flags | ||||
|         return flags | ||||
| 
 | ||||
|     def recompile(self, event=None): | ||||
|         try: | ||||
|             self.compiled = re.compile(self.regexdisplay.get(), | ||||
|                                        self.getflags()) | ||||
|             bg = self.promptdisplay['background'] | ||||
|             self.statusdisplay.config(text="", background=bg) | ||||
|         except re.error, msg: | ||||
|             self.compiled = None | ||||
|             self.statusdisplay.config( | ||||
|                     text="re.error: %s" % str(msg), | ||||
|                     background="red") | ||||
|         self.reevaluate() | ||||
| 
 | ||||
|     def reevaluate(self, event=None): | ||||
|         try: | ||||
|             self.stringdisplay.tag_remove("hit", "1.0", END) | ||||
|         except TclError: | ||||
|             pass | ||||
|         try: | ||||
|             self.stringdisplay.tag_remove("hit0", "1.0", END) | ||||
|         except TclError: | ||||
|             pass | ||||
|         self.grouplist.delete(0, END) | ||||
|         if not self.compiled: | ||||
|             return | ||||
|         self.stringdisplay.tag_configure("hit", background="yellow") | ||||
|         self.stringdisplay.tag_configure("hit0", background="orange") | ||||
|         text = self.stringdisplay.get("1.0", END) | ||||
|         last = 0 | ||||
|         nmatches = 0 | ||||
|         while last <= len(text): | ||||
|             m = self.compiled.search(text, last) | ||||
|             if m is None: | ||||
|                 break | ||||
|             first, last = m.span() | ||||
|             if last == first: | ||||
|                 last = first+1 | ||||
|                 tag = "hit0" | ||||
|             else: | ||||
|                 tag = "hit" | ||||
|             pfirst = "1.0 + %d chars" % first | ||||
|             plast = "1.0 + %d chars" % last | ||||
|             self.stringdisplay.tag_add(tag, pfirst, plast) | ||||
|             if nmatches == 0: | ||||
|                 self.stringdisplay.yview_pickplace(pfirst) | ||||
|                 groups = list(m.groups()) | ||||
|                 groups.insert(0, m.group()) | ||||
|                 for i in range(len(groups)): | ||||
|                     g = "%2d: %s" % (i, `groups[i]`) | ||||
|                     self.grouplist.insert(END, g) | ||||
|             nmatches = nmatches + 1 | ||||
|             if self.showvar.get() == "first": | ||||
|                 break | ||||
| 
 | ||||
|         if nmatches == 0: | ||||
|             self.statusdisplay.config(text="(no match)", | ||||
|                                       background="yellow") | ||||
|         else: | ||||
|             self.statusdisplay.config(text="") | ||||
| 
 | ||||
| 
 | ||||
| # Main function, run when invoked as a stand-alone Python program. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tim Peters
						Tim Peters