[Python-checkins] CVS: python/dist/src/Tools/scripts pindent.py,1.8,1.9

Peter Schneider-Kamp python-dev@python.org
2000年7月11日 09:43:19 -0700


Update of /cvsroot/python/python/dist/src/Tools/scripts
In directory slayer.i.sourceforge.net:/tmp/cvs-serv22421
Modified Files:
	pindent.py 
Log Message:
add expandtabs command (-e)
change eliminate to delete (-d)
Index: pindent.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/scripts/pindent.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** pindent.py	2000年06月28日 22:55:20	1.8
--- pindent.py	2000年07月11日 16:43:16	1.9
***************
*** 5,9 ****
 # programs. When called as "pindent -c", it takes a valid Python
 # program as input and outputs a version augmented with block-closing
! # comments. When called as "pindent -e", it assumes its input is a
 # Python program with block-closing comments and outputs a commentless
 # version. When called as "pindent -r" it assumes its input is a
--- 5,9 ----
 # programs. When called as "pindent -c", it takes a valid Python
 # program as input and outputs a version augmented with block-closing
! # comments. When called as "pindent -d", it assumes its input is a
 # Python program with block-closing comments and outputs a commentless
 # version. When called as "pindent -r" it assumes its input is a
***************
*** 47,50 ****
--- 47,51 ----
 # -s stepsize: set the indentation step size (default 8)
 # -t tabsize : set the number of spaces a tab character is worth (default 8)
+ # -e : expand TABs into spaces
 # file ... : input file(s) (default standard input)
 # The results always go to standard output
***************
*** 79,82 ****
--- 80,84 ----
 STEPSIZE = 8
 TABSIZE = 8
+ EXPANDTABS = 0
 
 import os
***************
*** 97,101 ****
 
 	def __init__(self, fpi = sys.stdin, fpo = sys.stdout,
! 		 indentsize = STEPSIZE, tabsize = TABSIZE):
 		self.fpi = fpi
 		self.fpo = fpo
--- 99,103 ----
 
 	def __init__(self, fpi = sys.stdin, fpo = sys.stdout,
! 		 indentsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 		self.fpi = fpi
 		self.fpo = fpo
***************
*** 103,107 ****
 		self.tabsize = tabsize
 		self.lineno = 0
! 		self.write = fpo.write
 		self.kwprog = re.compile(
 			r'^\s*(?P<kw>[a-z]+)'
--- 105,110 ----
 		self.tabsize = tabsize
 		self.lineno = 0
! 		self.expandtabs = expandtabs
! 		self._write = fpo.write
 		self.kwprog = re.compile(
 			r'^\s*(?P<kw>[a-z]+)'
***************
*** 115,118 ****
--- 118,129 ----
 	# end def __init__
 
+ 	def write(self, line):
+ 		if self.expandtabs:
+ 			self._write(string.expandtabs(line, self.tabsize))
+ 		else:
+ 			self._write(line)
+ 		# end if
+ 	# end def write
+ 
 	def readline(self):
 		line = self.fpi.readline()
***************
*** 197,201 ****
 	# end def reformat
 
! 	def eliminate(self):
 		begin_counter = 0
 		end_counter = 0
--- 208,212 ----
 	# end def reformat
 
! 	def delete(self):
 		begin_counter = 0
 		end_counter = 0
***************
*** 223,227 ****
 			sys.stderr.write('Warning: input contained less end tags than expected\n')
 		# end if
! 	# end def eliminate
 	
 	def complete(self):
--- 234,238 ----
 			sys.stderr.write('Warning: input contained less end tags than expected\n')
 		# end if
! 	# end def delete
 	
 	def complete(self):
***************
*** 326,343 ****
 
 def complete_filter(input = sys.stdin, output = sys.stdout,
! 		 stepsize = STEPSIZE, tabsize = TABSIZE):
! 	pi = PythonIndenter(input, output, stepsize, tabsize)
 	pi.complete()
 # end def complete_filter
 
! def eliminate_filter(input= sys.stdin, output = sys.stdout,
! 	stepsize = STEPSIZE, tabsize = TABSIZE):
! 	pi = PythonIndenter(input, output, stepsize, tabsize)
! 	pi.eliminate()
! # end def eliminate_filter
 
 def reformat_filter(input = sys.stdin, output = sys.stdout,
! 		 stepsize = STEPSIZE, tabsize = TABSIZE):
! 	pi = PythonIndenter(input, output, stepsize, tabsize)
 	pi.reformat()
 # end def reformat_filter
--- 337,354 ----
 
 def complete_filter(input = sys.stdin, output = sys.stdout,
! 		 stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
! 	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.complete()
 # end def complete_filter
 
! def delete_filter(input= sys.stdin, output = sys.stdout,
! 		 	stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
! 	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
! 	pi.delete()
! # end def delete_filter
 
 def reformat_filter(input = sys.stdin, output = sys.stdout,
! 		 stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
! 	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.reformat()
 # end def reformat_filter
***************
*** 387,417 ****
 # end class StringWriter
 
! def complete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE):
 	input = StringReader(source)
 	output = StringWriter()
! 	pi = PythonIndenter(input, output, stepsize, tabsize)
 	pi.complete()
 	return output.getvalue()
 # end def complete_string
 
! def eliminate_string(source, stepsize = STEPSIZE, tabsize = TABSIZE):
 	input = StringReader(source)
 	output = StringWriter()
! 	pi = PythonIndenter(input, output, stepsize, tabsize)
! 	pi.eliminate()
 	return output.getvalue()
! # end def eliminate_string
 
! def reformat_string(source, stepsize = STEPSIZE, tabsize = TABSIZE):
 	input = StringReader(source)
 	output = StringWriter()
! 	pi = PythonIndenter(input, output, stepsize, tabsize)
 	pi.reformat()
 	return output.getvalue()
 # end def reformat_string
 
! def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE):
 	source = open(filename, 'r').read()
! 	result = complete_string(source, stepsize, tabsize)
 	if source == result: return 0
 	# end if
--- 398,428 ----
 # end class StringWriter
 
! def complete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	input = StringReader(source)
 	output = StringWriter()
! 	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.complete()
 	return output.getvalue()
 # end def complete_string
 
! def delete_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	input = StringReader(source)
 	output = StringWriter()
! 	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
! 	pi.delete()
 	return output.getvalue()
! # end def delete_string
 
! def reformat_string(source, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	input = StringReader(source)
 	output = StringWriter()
! 	pi = PythonIndenter(input, output, stepsize, tabsize, expandtabs)
 	pi.reformat()
 	return output.getvalue()
 # end def reformat_string
 
! def complete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	source = open(filename, 'r').read()
! 	result = complete_string(source, stepsize, tabsize, expandtabs)
 	if source == result: return 0
 	# end if
***************
*** 426,432 ****
 # end def complete_file
 
! def eliminate_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE):
 	source = open(filename, 'r').read()
! 	result = eliminate_string(source, stepsize, tabsize)
 	if source == result: return 0
 	# end if
--- 437,443 ----
 # end def complete_file
 
! def delete_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	source = open(filename, 'r').read()
! 	result = delete_string(source, stepsize, tabsize, expandtabs)
 	if source == result: return 0
 	# end if
***************
*** 439,447 ****
 	f.close()
 	return 1
! # end def eliminate_file
 
! def reformat_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE):
 	source = open(filename, 'r').read()
! 	result = reformat_string(source, stepsize, tabsize)
 	if source == result: return 0
 	# end if
--- 450,458 ----
 	f.close()
 	return 1
! # end def delete_file
 
! def reformat_file(filename, stepsize = STEPSIZE, tabsize = TABSIZE, expandtabs = EXPANDTABS):
 	source = open(filename, 'r').read()
! 	result = reformat_string(source, stepsize, tabsize, expandtabs)
 	if source == result: return 0
 	# end if
***************
*** 459,468 ****
 
 usage = """
! usage: pindent (-c|-e|-r) [-s stepsize] [-t tabsize] [file] ...
 -c : complete a correctly indented program (add #end directives)
! -e : eliminate #end directives
 -r : reformat a completed program (use #end directives)
 -s stepsize: indentation step (default %(STEPSIZE)d)
 -t tabsize : the worth in spaces of a tab (default %(TABSIZE)d)
 [file] ... : files are changed in place, with backups in file~
 If no files are specified or a single - is given,
--- 470,480 ----
 
 usage = """
! usage: pindent (-c|-d|-r) [-s stepsize] [-t tabsize] [-e] [file] ...
 -c : complete a correctly indented program (add #end directives)
! -d : delete #end directives
 -r : reformat a completed program (use #end directives)
 -s stepsize: indentation step (default %(STEPSIZE)d)
 -t tabsize : the worth in spaces of a tab (default %(TABSIZE)d)
+ -e : expand TABs into spaces (defailt OFF)
 [file] ... : files are changed in place, with backups in file~
 If no files are specified or a single - is given,
***************
*** 470,477 ****
 """ % vars()
 
 def test():
 	import getopt
 	try:
! 		opts, args = getopt.getopt(sys.argv[1:], 'cers:t:')
 	except getopt.error, msg:
 		sys.stderr.write('Error: %s\n' % msg)
--- 482,495 ----
 """ % vars()
 
+ def error_both(op1, op2):
+ 	sys.stderr.write('Error: You can not specify both '+op1+' and -'+op2[0]+' at the same time\n')
+ 	sys.stderr.write(usage)
+ 	sys.exit(2)
+ # end def error_both
+ 
 def test():
 	import getopt
 	try:
! 		opts, args = getopt.getopt(sys.argv[1:], 'cdrs:t:e')
 	except getopt.error, msg:
 		sys.stderr.write('Error: %s\n' % msg)
***************
*** 482,491 ****
 	stepsize = STEPSIZE
 	tabsize = TABSIZE
 	for o, a in opts:
 		if o == '-c':
 			action = 'complete'
! 		elif o == '-e':
! 			action = 'eliminate'
 		elif o == '-r':
 			action = 'reformat'
 		elif o == '-s':
--- 500,516 ----
 	stepsize = STEPSIZE
 	tabsize = TABSIZE
+ 	expandtabs = EXPANDTABS
 	for o, a in opts:
 		if o == '-c':
+ 			if action: error_both(o, action)
+ 			# end if
 			action = 'complete'
! 		elif o == '-d':
! 			if action: error_both(o, action)
! 			# end if
! 			action = 'delete'
 		elif o == '-r':
+ 			if action: error_both(o, action)
+ 			# end if
 			action = 'reformat'
 		elif o == '-s':
***************
*** 493,501 ****
 		elif o == '-t':
 			tabsize = string.atoi(a)
 		# end if
 	# end for
 	if not action:
 		sys.stderr.write(
! 			'You must specify -c(omplete), -e(eliminate) or -r(eformat)\n')
 		sys.stderr.write(usage)
 		sys.exit(2)
--- 518,528 ----
 		elif o == '-t':
 			tabsize = string.atoi(a)
+ 		elif o == '-e':
+ 			expandtabs = 1
 		# end if
 	# end for
 	if not action:
 		sys.stderr.write(
! 			'You must specify -c(omplete), -d(elete) or -r(eformat)\n')
 		sys.stderr.write(usage)
 		sys.exit(2)
***************
*** 503,511 ****
 	if not args or args == ['-']:
 		action = eval(action + '_filter')
! 		action(sys.stdin, sys.stdout, stepsize, tabsize)
 	else:
 		action = eval(action + '_file')
 		for file in args:
! 			action(file, stepsize, tabsize)
 		# end for
 	# end if
--- 530,538 ----
 	if not args or args == ['-']:
 		action = eval(action + '_filter')
! 		action(sys.stdin, sys.stdout, stepsize, tabsize, expandtabs)
 	else:
 		action = eval(action + '_file')
 		for file in args:
! 			action(file, stepsize, tabsize, expandtabs)
 		# end for
 	# end if

AltStyle によって変換されたページ (->オリジナル) /