]> granicus.if.org Git - python/commitdiff
Get rid of a bunch more raw_input references
authorNeal Norwitz <nnorwitz@gmail.com>
Fri, 17 Mar 2006 06:49:51 +0000 (06:49 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Fri, 17 Mar 2006 06:49:51 +0000 (06:49 +0000)
42 files changed:
Demo/pdist/cmptree.py
Demo/pdist/mac.py
Demo/pdist/rcvs.py
Demo/pdist/sumtree.py
Demo/scripts/unbirthday.py
Demo/sockets/ftp.py
Demo/sockets/gopher.py
Demo/tkinter/guido/wish.py
Doc/lib/libcmd.tex
Doc/lib/libcode.tex
Doc/lib/libcrypt.tex
Doc/lib/libexcs.tex
Doc/lib/libfuncs.tex
Doc/lib/libsmtplib.tex
Doc/lib/libsys.tex
Doc/lib/libtelnetlib.tex
Doc/lib/libtermios.tex
Doc/ref/ref8.tex
Doc/tools/keywords.py
Doc/tut/tut.tex
Lib/cmd.py
Lib/code.py
Lib/distutils/command/register.py
Lib/getpass.py
Lib/idlelib/PyShell.py
Lib/pdb.py
Lib/plat-mac/aetools.py
Lib/pydoc.py
Lib/rlcompleter.py
Lib/site.py
Lib/test/test_exceptions.py
Lib/urllib.py
Mac/Demo/resources/copyres.py
Mac/Demo/sound/morselib.py
Misc/Vim/python.vim
Misc/cheatsheet
Misc/python-mode.el
Tools/compiler/regrtest.py
Tools/scripts/ftpmirror.py
Tools/scripts/treesync.py
Tools/scripts/xxci.py
Tools/webchecker/wcmac.py

index f6c611f696936152800317f4cbacadae28450ff4..fa06f5f4674dd6fd0771912aa0a9a624e88588d5 100755 (executable)
@@ -6,6 +6,11 @@ import FSProxy
 import time
 import os
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def main():
     pwd = os.getcwd()
     s = raw_input("chdir [%s] " % pwd)
index 107113c18a895370af70233664fcc51593df90d0..61cff09b9fe5eded4f3456f23499964455a83532 100755 (executable)
@@ -1,14 +1,18 @@
 import sys
-import string
 import rcvs
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def main():
     while 1:
         try:
             line = raw_input('$ ')
         except EOFError:
             break
-        words = string.split(line)
+        words = line.split()
         if not words:
             continue
         if words[0] != 'rcvs':
@@ -16,4 +20,5 @@ def main():
         sys.argv = words
         rcvs.main()
 
-main()
+if __name__ == '__main__':
+    main()
index 8b8bae63b930599c7a1898effde4c757d0948f9e..ab1fd872eecec78ec50ade301ec3804883a7b5d2 100755 (executable)
@@ -35,7 +35,6 @@
 from cvslib import CVS, File
 import md5
 import os
-import string
 import sys
 from cmdfw import CommandFrameWork
 
@@ -269,13 +268,13 @@ class RCVS(CVS):
 
     def mailinfo(self, files, message = ""):
         towhom = "sjoerd@cwi.nl, jack@cwi.nl" # XXX
-        mailtext = MAILFORM % (towhom, string.join(files),
-                                string.join(files), message)
+        mailtext = MAILFORM % (towhom, ' '.join(files),
+                                ' '.join(files), message)
         print '-'*70
         print mailtext
         print '-'*70
         ok = raw_input("OK to mail to %s? " % towhom)
-        if string.lower(string.strip(ok)) in ('y', 'ye', 'yes'):
+        if ok.lower().strip() in ('y', 'ye', 'yes'):
             p = os.popen(SENDMAIL, "w")
             p.write(mailtext)
             sts = p.close()
index 9291a56b99a7b44f9c4bec9947353a4c51a7ed3d..68224df27a11a5bce1954ed4728244c0b2c6bb04 100755 (executable)
@@ -1,4 +1,5 @@
 import time
+import sys
 import FSProxy
 
 def main():
@@ -9,7 +10,9 @@ def main():
     proxy._close()
     t2 = time.time()
     print t2-t1, "seconds"
-    raw_input("[Return to exit] ")
+    sys.stdout.write("[Return to exit] ")
+    sys.stdout.flush()
+    sys.stdin.readline()
 
 def sumtree(proxy):
     print "PWD =", proxy.pwd()
index 2d0b8e5f403d73f306c165af21c955f67b3eacc2..94ad448588ec89676f08e62cdd8c41bddf539190 100755 (executable)
@@ -9,6 +9,11 @@ import sys
 import time
 import calendar
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def main():
     # Note that the range checks below also check for bad types,
     # e.g. 3.14 or ().  However syntactically invalid replies
index 6e9282a5921195c6d2a36ee0f639ea404690a55f..eed45befc409e9bf1d74f32225ed94b5f51c804e 100755 (executable)
@@ -130,6 +130,11 @@ def getdata(r):
         sys.stdout.write(data)
     print '(end of data connection)'
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 # Get a command from the user.
 #
 def getcommand():
@@ -143,4 +148,5 @@ def getcommand():
 
 # Call the main program.
 #
-main()
+if __name__ == '__main__':
+    main()
index 34bcdf0cc21f47eb8d94e170e66143b0b91dc831..2488c8129a1043e75e26e2374955c45fc451592b 100755 (executable)
@@ -4,7 +4,6 @@
 #
 # Usage: gopher [ [selector] host [port] ]
 
-import string
 import sys
 import os
 import socket
@@ -42,7 +41,7 @@ def open_socket(host, port):
     if not port:
         port = DEF_PORT
     elif type(port) == type(''):
-        port = string.atoi(port)
+        port = int(port)
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     s.connect((host, port))
     return s
@@ -73,7 +72,7 @@ def get_menu(selector, host, port):
             print '(Empty line from server)'
             continue
         typechar = line[0]
-        parts = string.splitfields(line[1:], TAB)
+        parts = line[1:].split(TAB)
         if len(parts) < 4:
             print '(Bad line from server: %r)' % (line,)
             continue
@@ -160,7 +159,7 @@ def browse_menu(selector, host, port):
         for i in range(len(list)):
             item = list[i]
             typechar, description = item[0], item[1]
-            print string.rjust(repr(i+1), 3) + ':', description,
+            print repr(i+1).rjust(3) + ':', description,
             if typename.has_key(typechar):
                 print typename[typechar]
             else:
@@ -175,8 +174,8 @@ def browse_menu(selector, host, port):
             if not str:
                 return
             try:
-                choice = string.atoi(str)
-            except string.atoi_error:
+                choice = int(str)
+            except ValueError:
                 print 'Choice must be a number; try again:'
                 continue
             if not 0 < choice <= len(list):
@@ -218,6 +217,11 @@ def browse_textfile(selector, host, port):
         print 'IOError:', msg
     x.close()
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 # Browse a search index
 def browse_search(selector, host, port):
     while 1:
@@ -230,7 +234,7 @@ def browse_search(selector, host, port):
         except EOFError:
             print
             break
-        query = string.strip(query)
+        query = query.strip()
         if not query:
             break
         if '\t' in query:
@@ -300,11 +304,11 @@ def open_savefile():
     except EOFError:
         print
         return None
-    savefile = string.strip(savefile)
+    savefile = savefile.strip()
     if not savefile:
         return None
     if savefile[0] == '|':
-        cmd = string.strip(savefile[1:])
+        cmd = savefile[1:].strip()
         try:
             p = os.popen(cmd, 'w')
         except IOError, msg:
@@ -331,10 +335,10 @@ def test():
         browser(sys.argv[1], sys.argv[2], sys.argv[3])
     elif sys.argv[2:]:
         try:
-            port = string.atoi(sys.argv[2])
+            port = int(sys.argv[2])
             selector = ''
             host = sys.argv[1]
-        except string.atoi_error:
+        except ValueError:
             selector = sys.argv[1]
             host = sys.argv[2]
             port = ''
index 0a61ad88d865e9d9d228e2b4e56d5f79747b889b..35e012c7dffc6fc038af35f8511d1bdb91225664 100755 (executable)
@@ -2,6 +2,7 @@
 
 import _tkinter
 import os
+import sys
 
 tk = _tkinter.create(os.environ['DISPLAY'], 'wish', 'Tk', 1)
 tk.call('update')
@@ -12,7 +13,9 @@ while 1:
     if cmd: prompt = ''
     else: prompt = '% '
     try:
-        line = raw_input(prompt)
+        sys.stdout.write(prompt)
+        sys.stdout.flush()
+        line = sys.stdin.readline()
     except EOFError:
         break
     cmd = cmd + (line + '\n')
index 661eb9e45ca372a3104992912b49087a629688b4..9fe8123808f791ec83ccdda0c2c73a75aab1dd50 100644 (file)
@@ -186,13 +186,3 @@ The character used to draw separator lines under the help-message
 headers.  If empty, no ruler line is drawn.  It defaults to
 \character{=}.
 \end{memberdesc}
-
-\begin{memberdesc}{use_rawinput}
-A flag, defaulting to true.  If true, \method{cmdloop()} uses
-\function{raw_input()} to display a prompt and read the next command;
-if false, \method{sys.stdout.write()} and
-\method{sys.stdin.readline()} are used. (This means that by
-importing \refmodule{readline}, on systems that support it, the
-interpreter will automatically support \program{Emacs}-like line editing 
-and command-history keystrokes.)
-\end{memberdesc}
index dc4c717ad8a4273fe4448f63f59d19ee9d5f1ae5..628a1eb7359c3d60b6017afd1fa0ad1205f4f63f 100644 (file)
@@ -167,7 +167,7 @@ Remove any unhandled source text from the input buffer.
 \begin{methoddesc}{raw_input}{\optional{prompt}}
 Write a prompt and read a line.  The returned line does not include
 the trailing newline.  When the user enters the \EOF{} key sequence,
-\exception{EOFError} is raised.  The base implementation uses the
-built-in function \function{raw_input()}; a subclass may replace this
+\exception{EOFError} is raised.  The base implementation reads from
+\code{sys.stdin}; a subclass may replace this
 with a different implementation.
 \end{methoddesc}
index b6a14635b56acc2923a17c71cef35ff4ba87909d..55e716354a2eb8b62d4c8a9ee8a3337d2ecb2d1a 100644 (file)
@@ -41,6 +41,12 @@ A simple example illustrating typical use:
 \begin{verbatim}
 import crypt, getpass, pwd
 
+def raw_input(prompt):
+    import sys
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def login():
     username = raw_input('Python login:')
     cryptedpasswd = pwd.getpwnam(username)[1]
index f52ff0a952b7f2e03836816476b92901c4530b57..85058a414edeb9c511d8f2a49fe7e180ab586492 100644 (file)
@@ -153,9 +153,7 @@ Raised when an \keyword{assert} statement fails.
 
 \begin{excdesc}{EOFError}
 % XXXJH xrefs here
-  Raised when one of the built-in functions (\function{input()} or
-  \function{raw_input()}) hits an end-of-file condition (\EOF) without
-  reading any data.
+  Raised when attempting to read beyond the end of a file.
 % XXXJH xrefs here
   (N.B.: the \method{read()} and \method{readline()} methods of file
   objects return an empty string when they hit \EOF.)
@@ -213,9 +211,6 @@ Raised when an \keyword{assert} statement fails.
   \kbd{Control-C} or \kbd{Delete}).  During execution, a check for
   interrupts is made regularly.
 % XXX(hylton) xrefs here
-  Interrupts typed when a built-in function \function{input()} or
-  \function{raw_input()} is waiting for input also raise this
-  exception.
   The exception inherits from \exception{BaseException} so as to not be
   accidentally caught by code that catches \exception{Exception} and thus
   prevent the interpreter from exiting.
index 9b6bfe9d7b4c5604acc0089245290d977d132ae0..c75c172a60fdcd7b360324b2f24c0167a70a00b7 100644 (file)
@@ -551,23 +551,6 @@ class C:
   note: this is the address of the object.)
 \end{funcdesc}
 
-\begin{funcdesc}{input}{\optional{prompt}}
-  Equivalent to \code{eval(raw_input(\var{prompt}))}.
-  \warning{This function is not safe from user errors!  It
-  expects a valid Python expression as input; if the input is not
-  syntactically valid, a \exception{SyntaxError} will be raised.
-  Other exceptions may be raised if there is an error during
-  evaluation.  (On the other hand, sometimes this is exactly what you
-  need when writing a quick script for expert use.)}
-
-  If the \refmodule{readline} module was loaded, then
-  \function{input()} will use it to provide elaborate line editing and
-  history features.
-
-  Consider using the \function{raw_input()} function for general input
-  from users.
-\end{funcdesc}
-
 \begin{funcdesc}{int}{\optional{x\optional{, radix}}}
   Convert a string or number to a plain integer.  If the argument is a
   string, it must contain a possibly signed decimal number
@@ -811,24 +794,6 @@ class C(object):
 \end{verbatim}
 \end{funcdesc}
 
-\begin{funcdesc}{raw_input}{\optional{prompt}}
-  If the \var{prompt} argument is present, it is written to standard output
-  without a trailing newline.  The function then reads a line from input,
-  converts it to a string (stripping a trailing newline), and returns that.
-  When \EOF{} is read, \exception{EOFError} is raised. Example:
-
-\begin{verbatim}
->>> s = raw_input('--> ')
---> Monty Python's Flying Circus
->>> s
-"Monty Python's Flying Circus"
-\end{verbatim}
-
-  If the \refmodule{readline} module was loaded, then
-  \function{raw_input()} will use it to provide elaborate
-  line editing and history features.
-\end{funcdesc}
-
 \begin{funcdesc}{reduce}{function, sequence\optional{, initializer}}
   Apply \var{function} of two arguments cumulatively to the items of
   \var{sequence}, from left to right, so as to reduce the sequence to
index 2f87bc483b1a88bc9a1067b9b8d157ed3c71ae91..ddf17649c7835df43ee0051752933431bb5c11a0 100644 (file)
@@ -267,6 +267,12 @@ processing of the \rfc{822} headers.  In particular, the `To' and
 \begin{verbatim}
 import smtplib
 
+def raw_input(prompt):
+    import sys
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def prompt(prompt):
     return raw_input(prompt).strip()
 
index ea8950a847fb0b1a200f74b53ed4caae69d5bbf6..1a57da4b37ea0ecc3c4256f82422dd95d21eb0d6 100644 (file)
@@ -511,11 +511,8 @@ else:
 \dataline{stderr}
   File objects corresponding to the interpreter's standard input,
   output and error streams.  \code{stdin} is used for all interpreter
-  input except for scripts but including calls to
-  \function{input()}\bifuncindex{input} and
-  \function{raw_input()}\bifuncindex{raw_input}.  \code{stdout} is
-  used for the output of \keyword{print} and expression statements and
-  for the prompts of \function{input()} and \function{raw_input()}.
+  input except for scripts.  \code{stdout} is
+  used for the output of \keyword{print} and expression statements.
   The interpreter's own prompts and (almost all of) its error messages
   go to \code{stderr}.  \code{stdout} and \code{stderr} needn't be
   built-in file objects: any object is acceptable as long as it has a
index c7a4226dccdc018a1c7b4b9272d285a1878c1cb5..b8dfeee2e005290f9b28561fa0733262cae711ec 100644 (file)
@@ -196,6 +196,11 @@ import getpass
 import sys
 import telnetlib
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 HOST = "localhost"
 user = raw_input("Enter your remote account: ")
 password = getpass.getpass()
index ef99cf9edede6249bec215e011ad698155880d59..64f3438a0ffb58dbda20457196cf37f2dc86cdf2 100644 (file)
@@ -91,6 +91,12 @@ and a \keyword{try} ... \keyword{finally} statement to ensure that the
 old tty attributes are restored exactly no matter what happens:
 
 \begin{verbatim}
+def raw_input(prompt):
+    import sys
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def getpass(prompt = "Password: "):
     import termios, sys
     fd = sys.stdin.fileno()
index d10c87f5bea880f3ab5fc2cb37c7119a1abc8323..801ab582c01e7107e7dff1567afd4901b6a90eaa 100644 (file)
@@ -103,10 +103,7 @@ The input line read by \function{input()} must have the following form:
 \end{productionlist}
 
 Note: to read `raw' input line without interpretation, you can use the
-built-in function \function{raw_input()} or the \method{readline()} method
-of file objects.
+the \method{readline()} method of file objects, including \code{sys.stdin}.
 \obindex{file}
 \index{input!raw}
-\index{raw input}
-\bifuncindex{raw_input}
 \withsubitem{(file method)}{\ttindex{readline()}}
index 9f32056db21a81eea7157a1835937c72cba7c4bf..334402147807721c0011157122853aad97d6e43c 100644 (file)
@@ -2,6 +2,12 @@
 
 # This Python program sorts and reformats the table of keywords in ref2.tex
 
+def raw_input(prompt):
+    import sys
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 l = []
 try:
     while 1:
index efbc08d2dc47e65bfe07938a40c2422a3bf66ea7..054985bbeb670bfcc1691426f9346bce90cabfa7 100644 (file)
@@ -231,7 +231,7 @@ full name on the command line.
 
 Note that there is a difference between \samp{python file} and
 \samp{python <file}.  In the latter case, input requests from the
-program, such as calls to \function{input()} and \function{raw_input()}, are
+program, such as calling \code{sys.stdin.read()}, are
 satisfied from \emph{file}.  Since this file has already been read
 until the end by the parser before the program starts executing, the
 program will encounter end-of-file immediately.  In the former case
@@ -1161,6 +1161,12 @@ Perhaps the most well-known statement type is the
 \keyword{if} statement.  For example:
 
 \begin{verbatim}
+>>> def raw_input(prompt):
+...     import sys
+...     sys.stdout.write(prompt)
+...     sys.stdout.flush()
+...     return sys.stdin.readline()
+... 
 >>> x = int(raw_input("Please enter an integer: "))
 >>> if x < 0:
 ...      x = 0
@@ -1453,6 +1459,12 @@ arguments.  This creates a function that can be called with fewer
 arguments than it is defined to allow.  For example:
 
 \begin{verbatim}
+def raw_input(prompt):
+    import sys
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
     while True:
         ok = raw_input(prompt)
@@ -2711,15 +2723,15 @@ standard module \module{__builtin__}\refbimodindex{__builtin__}:
  'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
  'UserWarning', 'ValueError', 'Warning', 'WindowsError',
  'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__',
- '__name__', 'abs', 'apply', 'basestring', 'bool', 'buffer',
+ '__name__', 'abs', 'basestring', 'bool', 'buffer',
  'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile',
  'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod',
  'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float',
  'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex',
- 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter',
+ 'id', 'int', 'intern', 'isinstance', 'issubclass', 'iter',
  'len', 'license', 'list', 'locals', 'long', 'map', 'max', 'min',
  'object', 'oct', 'open', 'ord', 'pow', 'property', 'quit', 'range',
- 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set',
+ 'reduce', 'reload', 'repr', 'reversed', 'round', 'set',
  'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super',
  'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip']
 \end{verbatim}
@@ -3412,6 +3424,12 @@ supports); note that a user-generated interruption is signalled by
 raising the \exception{KeyboardInterrupt} exception.
 
 \begin{verbatim}
+>>> def raw_input(prompt):
+...     import sys
+...     sys.stdout.write(prompt)
+...     sys.stdout.flush()
+...     return sys.stdin.readline()
+... 
 >>> while True:
 ...     try:
 ...         x = int(raw_input("Please enter a number: "))
@@ -4983,7 +5001,12 @@ renaming utility for a photo browser may elect to use percent signs for
 placeholders such as the current date, image sequence number, or file format:
 
 \begin{verbatim}
->>> import time, os.path
+>>> import time, os.path, sys
+>>> def raw_input(prompt):
+...     sys.stdout.write(prompt)
+...     sys.stdout.flush()
+...     return sys.stdin.readline()
+... 
 >>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']
 >>> class BatchRename(Template):
 ...     delimiter = '%'
index 3f82b487103fffb3b8e67320dc78f0d0ac363bba..23dc5b2fb2612c33750f187ecb80ce9559d01faf 100644 (file)
@@ -40,18 +40,20 @@ The data members `self.doc_header', `self.misc_header', and
 `self.undoc_header' set the headers used for the help function's
 listings of documented functions, miscellaneous topics, and undocumented
 functions respectively.
-
-These interpreters use raw_input; thus, if the readline module is loaded,
-they automatically support Emacs-like command history and editing features.
 """
 
-import string
+import string, sys
 
 __all__ = ["Cmd"]
 
 PROMPT = '(Cmd) '
 IDENTCHARS = string.ascii_letters + string.digits + '_'
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 class Cmd:
     """A simple framework for writing line-oriented command interpreters.
 
index 6bdc658add03d8cea96ca87f7fbefbb86dc859f2..b67009b93b7207430318db2dd8d89a71c698bd8d 100644 (file)
@@ -269,12 +269,14 @@ class InteractiveConsole(InteractiveInterpreter):
         The returned line does not include the trailing newline.
         When the user enters the EOF key sequence, EOFError is raised.
 
-        The base implementation uses the built-in function
-        raw_input(); a subclass may replace this with a different
-        implementation.
+        The base implementation uses sys.stdin.readline(); a subclass
+        may replace this with a different implementation.
 
         """
-        return raw_input(prompt)
+        sys.stdout.write(prompt)
+        sys.stdout.flush()
+        return sys.stdin.readline()
+
 
 
 def interact(banner=None, readfunc=None, local=None):
index dec9aa2bf21c2436b21a8145598b0e1010c5e0c0..f8912621c8dc92a45995d9d9a4d5f547e71d6bfa 100644 (file)
@@ -13,6 +13,11 @@ import StringIO, ConfigParser
 from distutils.core import Command
 from distutils.errors import *
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 class register(Command):
 
     description = ("register the distribution with the Python package index")
index e96491f90bfe2808d14e9f12dc574d7af941ba03..a30d3a154164b70c9a32028134b636bc099b1ad7 100644 (file)
@@ -69,8 +69,7 @@ def default_getpass(prompt='Password: '):
 
 
 def _raw_input(prompt=""):
-    # A raw_input() replacement that doesn't save the string in the
-    # GNU readline history.
+    # This doesn't save the string in the GNU readline history.
     prompt = str(prompt)
     if prompt:
         sys.stdout.write(prompt)
index f81091bc4b65989cb1a1f115f8438153ad0117d2..b6abe408cec85fabef3ac856c42bfcc867272dac 100644 (file)
@@ -1122,7 +1122,7 @@ class PyShell(OutputWindow):
         self.text.tag_add("stdin", "iomark", "end-1c")
         self.text.update_idletasks()
         if self.reading:
-            self.top.quit() # Break out of recursive mainloop() in raw_input()
+            self.top.quit() # Break out of recursive mainloop()
         else:
             self.runit()
         return "break"
index b00f68b79d50f7f20305b13565fabc31e1191ed9..1aa2eaee2722e49cf4ee1d619f0751669c055855 100755 (executable)
@@ -22,6 +22,11 @@ _saferepr = _repr.repr
 __all__ = ["run", "pm", "Pdb", "runeval", "runctx", "runcall", "set_trace",
            "post_mortem", "help"]
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def find_function(funcname, filename):
     cre = re.compile(r'def\s+%s\s*[(]' % funcname)
     try:
index 79f3978316dcfaddd0727a9228109d36e3dbbb0d..861dd2fd1b1c65a68c217486c34bbdf26adcaf18 100644 (file)
@@ -342,6 +342,11 @@ _application_file._elemdict = {
 # XXXX Should test more, really...
 
 def test():
+    def raw_input(prompt):
+        sys.stdout.write(prompt)
+        sys.stdout.flush()
+        return sys.stdin.readline()
+
     target = AE.AECreateDesc('sign', 'quil')
     ae = AE.AECreateAppleEvent('aevt', 'oapp', target, -1, 0)
     print unpackevent(ae)
index ee45643b43242bafc64c544a41ae3bbb4b85d65c..b6afc7f9ad52715098110636593337a4b61bffd4 100755 (executable)
@@ -1505,6 +1505,11 @@ def writedocs(dir, pkgpath='', done=None):
                     done[modname] = 1
                     writedoc(modname)
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 class Helper:
     keywords = {
         'and': 'BOOLEAN',
index 1d291670f148bfa8d6fbaa3b0fc91d0d604d2e56..6eb77f97e13250a09bf17aa585833e36d9dc3ceb 100644 (file)
@@ -28,12 +28,6 @@ application (or the user) to enable this feature, I consider this an
 acceptable risk.  More complicated expressions (e.g. function calls or
 indexing operations) are *not* evaluated.
 
-- GNU readline is also used by the built-in functions input() and
-raw_input(), and thus these also benefit/suffer from the completer
-features.  Clearly an interactive application can benefit by
-specifying its own completer function and using raw_input() for all
-its input.
-
 - When the original stdin is not a tty device, GNU readline is never
 used, and this module (and the readline module) are silently inactive.
 
index 6818e8531f9f00586be3a44032152b3a71097781..5e7ff7bc12205718baf1d089fd8b72444ca57c57 100644 (file)
@@ -299,7 +299,9 @@ class _Printer(object):
                 lineno += self.MAXLINES
                 key = None
                 while key is None:
-                    key = raw_input(prompt)
+                    sys.stdout.write(prompt)
+                    sys.stdout.flush()
+                    key = sys.stdin.readline()
                     if key not in ('', 'q'):
                         key = None
                 if key == 'q':
index fdef876879b2498f8d8655bf33688df60887024e..65f78766730bbe1a08dd0c9f66c87681972c15a9 100644 (file)
@@ -44,8 +44,8 @@ fp = open(TESTFN, 'r')
 savestdin = sys.stdin
 try:
     try:
-        sys.stdin = fp
-        x = raw_input()
+        import marshal
+        marshal.loads('')
     except EOFError:
         pass
 finally:
index aeca3f1007343e31b1418c75ef3d43c69d10ad19..136f42ea20eb1e4ffe0aeba35c2d463e4ff37d17 100644 (file)
@@ -768,10 +768,11 @@ class FancyURLopener(URLopener):
 
     def prompt_user_passwd(self, host, realm):
         """Override this in a GUI environment!"""
-        import getpass
+        import getpass, sys
         try:
-            user = raw_input("Enter username for %s at %s: " % (realm,
-                                                                host))
+            sys.stdout.write("Enter username for %s at %s: " % (realm, host))
+            sys.stdout.flush()
+            user = sys.stdin.readline()
             passwd = getpass.getpass("Enter password for %s in %s at %s: " %
                 (user, realm, host))
             return user, passwd
index 528ff1679465641439166e53754a60475a795099..cb1fa8e286918821d8cfe1144fde6473cfae03a0 100644 (file)
@@ -6,6 +6,12 @@ READ = 1
 WRITE = 2
 smAllScripts = -3
 
+def raw_input(prompt):
+    import sys
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def copyres(src, dst):
     """Copy resource from src file to dst file."""
 
index 98e259059a7834836b3d21d25bece52eb94d1993..3c7493fc4117ae8d6c4390e66c9f110c43973a73 100644 (file)
@@ -61,11 +61,10 @@ morsetab = {
 }
 
 def morsecode(s):
-    from string import lower
     m = ''
     for c in s:
-        c = lower(c)
-        if morsetab.has_key(c):
+        c = c.lower()
+        if c in morsetab:
             c = morsetab[c] + ' '
         else:
             c = '? '
@@ -107,9 +106,12 @@ class BaseMorse:
 
     def sendmorse(self, s):
         for c in s:
-            if c == '.': self.dot()
-            elif c == '-': self.dah()
-            else: self.pdah()
+            if c == '.':
+                self.dot()
+            elif c == '-':
+                self.dah()
+            else:
+                self.pdah()
             self.pdot()
 
     def sendascii(self, s):
@@ -122,8 +124,9 @@ class BaseMorse:
 import Audio_mac
 class MyAudio(Audio_mac.Play_Audio_mac):
     def _callback(self, *args):
-        if hasattr(self, 'usercallback'): self.usercallback()
-        apply(Audio_mac.Play_Audio_mac._callback, (self,) + args)
+        if hasattr(self, 'usercallback'):
+            self.usercallback()
+        Audio_mac.Play_Audio_mac._callback(self, args)
 
 
 class MacMorse(BaseMorse):
@@ -169,12 +172,21 @@ class MacMorse(BaseMorse):
     def usercallback(self):
         if self.morsequeue:
             c, self.morsequeue = self.morsequeue[0], self.morsequeue[1:]
-            if c == '.': self.dot()
-            elif c == '-': self.dah()
-            else: self.pdah()
+            if c == '.':
+                self.dot()
+            elif c == '-':
+                self.dah()
+            else:
+                self.pdah()
             self.pdot()
 
 
+def raw_input(prompt):
+    import sys
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def test():
     m = MacMorse()
     while 1:
@@ -183,6 +195,8 @@ def test():
         except (EOFError, KeyboardInterrupt):
             break
         m.send(line)
-        while m.morsequeue: pass
+        while m.morsequeue:
+            pass
 
-test()
+if __name__ == '__main__':
+    test()
index 0d5e6d05e25cd0bc4a98396a5ec6b6206d189f7d..a31fa308a2b491cb9aee8d46291ba53aee164d54 100644 (file)
@@ -63,16 +63,16 @@ endif
 
 if exists("python_highlight_builtins")
   syn keyword pythonBuiltin    unichr all set abs vars int __import__ unicode
-  syn keyword pythonBuiltin    enumerate reduce coerce intern exit issubclass
-  syn keyword pythonBuiltin    divmod file Ellipsis apply isinstance open any
+  syn keyword pythonBuiltin    enumerate reduce exit issubclass
+  syn keyword pythonBuiltin    divmod file Ellipsis isinstance open any
   syn keyword pythonBuiltin    locals help filter basestring slice copyright min
-  syn keyword pythonBuiltin    super sum tuple hex execfile long id xrange chr
+  syn keyword pythonBuiltin    super sum tuple hex execfile long id chr
   syn keyword pythonBuiltin    complex bool zip pow dict True oct NotImplemented
   syn keyword pythonBuiltin    map None float hash getattr buffer max reversed
   syn keyword pythonBuiltin    object quit len repr callable credits setattr
   syn keyword pythonBuiltin    eval frozenset sorted ord __debug__ hasattr
-  syn keyword pythonBuiltin    delattr False input license classmethod type
-  syn keyword pythonBuiltin    raw_input list iter compile reload range globals
+  syn keyword pythonBuiltin    delattr False license classmethod type
+  syn keyword pythonBuiltin    list iter reload range globals
   syn keyword pythonBuiltin    staticmethod str property round dir cmp
 
 endif
index d50ed2e65687d37c2c02870aa210e6846ce4b253..b8de4281fb89ec33e672a7e26affdb70b35aa4ef 100644 (file)
@@ -925,8 +925,6 @@ __import__(name[,   Imports module within the given context (see lib ref for
 globals[, locals[,  more details)
 fromlist]]])
 abs(x)              Return the absolute value of number x.
-apply(f, args[,     Calls func/method f with arguments args and optional
-keywords])          keywords.
 bool(x)             Returns True when the argument x is true and False otherwise.
 buffer(obj)         Creates a buffer reference to an object.
 callable(x)         Returns True if x callable, else False.
@@ -934,10 +932,6 @@ chr(i)              Returns one-character string whose ASCII code isinteger i
 classmethod(f)      Converts a function f, into a method with the class as the
                     first argument.  Useful for creating alternative constructors.
 cmp(x,y)            Returns negative, 0, positive if x <, ==, > to y
-coerce(x,y)         Returns a tuple of the two numeric arguments converted to a
-                    common type.
-                    Compiles string into a code object.filename is used in
-                    error message, can be any string. It isusually the file
 compile(string,     from which the code was read, or eg. '<string>'if not read
 filename, kind)     from file.kind can be 'eval' if string is a single stmt, or
                     'single' which prints the output of expression statements
@@ -971,8 +965,6 @@ hash(object)        Returns the hash value of the object (if it has one)
 help(f)             Display documentation on object f.
 hex(x)              Converts a number x to a hexadecimal string.
 id(object)          Returns a unique 'identity' integer for an object.
-input([prompt])     Prints prompt if given. Reads input and evaluates it.
-                    Converts a number or a string to a plain integer. Optional
 int(x[, base])      base paramenter specifies base from which to convert string
                     values.
 intern(aString)     Enters aString in the table of "interned strings"
@@ -1013,8 +1005,6 @@ property()          Created a property with access controlled by functions.
 range(start [,end   Returns list of ints from >= start and < end.With 1 arg,
 [, step]])          list from 0..arg-1With 2 args, list from start..end-1With 3
                     args, list from start up to end by step
-raw_input([prompt]) Prints prompt if given, then reads string from stdinput (no
-                    trailing \n). See also input().
 reduce(f, list [,   Applies the binary function f to the items oflist so as to
 init])              reduce the list to a single value.If init given, it is
                     "prepended" to list.
index 202541cd9fd084bb12cefdea8e785afbdf558f9e..1392c84d62f45179118a8f4ca919162886c4c3b3 100644 (file)
@@ -378,18 +378,18 @@ support for features needed by `python-mode'.")
                          "ZeroDivisionError" "__debug__"
                          "__import__" "__name__" "abs" "apply" "basestring"
                          "bool" "buffer" "callable" "chr" "classmethod"
-                         "cmp" "coerce" "compile" "complex" "copyright"
+                         "cmp" "compile" "complex" "copyright"
                          "delattr" "dict" "dir" "divmod"
                          "enumerate" "eval" "execfile" "exit" "file"
                          "filter" "float" "getattr" "globals" "hasattr"
-                         "hash" "hex" "id" "input" "int" "intern"
+                         "hash" "hex" "id" "int" "intern"
                          "isinstance" "issubclass" "iter" "len" "license"
                          "list" "locals" "long" "map" "max" "min" "object"
                          "oct" "open" "ord" "pow" "property" "range"
-                         "raw_input" "reduce" "reload" "repr" "round"
+                         "reduce" "reload" "repr" "round"
                          "setattr" "slice" "staticmethod" "str" "sum"
                          "super" "tuple" "type" "unichr" "unicode" "vars"
-                         "xrange" "zip")
+                         "zip")
                        "\\|"))
        )
     (list
index 50d06e71f3b6203742c22e075576e61b25aafdfe..4244d62c04eddea42f54d0b2daab8371c386bdb3 100644 (file)
@@ -67,6 +67,11 @@ def run_regrtest(lib_dir):
 def cleanup(dir):
     os.system("rm -rf %s" % dir)
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def main():
     lib_dir = copy_library()
     compile_files(lib_dir)
index 0f918b88458943c62e8ef31c8da4b040d98e1951..caade165518d8349c343d25cce1310dcfb8bb93f 100755 (executable)
@@ -352,6 +352,11 @@ class LoggingFile:
     def close(self):
         self.outfp.write('\n')
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 # Ask permission to download a file.
 def askabout(filetype, filename, pwd):
     prompt = 'Retrieve %s %s from %s ? [ny] ' % (filetype, filename, pwd)
index ab9324baeee8717e57cbf5a37d9360ffbc8e5aa6..4fb1798c6033defff1f35c72934ba19a9a56ff68 100755 (executable)
@@ -187,6 +187,11 @@ def copy(src, dst, rmode="rb", wmode="wb", answer='ask'):
     f.close()
     g.close()
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def okay(prompt, answer='ask'):
     answer = answer.strip().lower()
     if not answer or answer[0] not in 'ny':
index c6a7d087209445839d7ca8d531c2b3a4a57735aa..1e77c87e2f83f411fa7e382baa9022629b32c718 100755 (executable)
@@ -105,6 +105,11 @@ def showdiffs(file):
     cmd = 'rcsdiff ' + file + ' 2>&1 | ${PAGER-more}'
     sts = os.system(cmd)
 
+def raw_input(prompt):
+    sys.stdout.write(prompt)
+    sys.stdout.flush()
+    return sys.stdin.readline()
+
 def askyesno(prompt):
     s = raw_input(prompt)
     return s in ['y', 'yes']
index 9c8a199611c0c27c82fee449b5eb0ae39113fb2e..9edcd5de1a18fece59377b526a26f344cfc98fd3 100644 (file)
@@ -4,4 +4,6 @@ webchecker.MAXPAGE = 50000
 webchecker.verbose = 2
 sys.argv.append('-x')
 webchecker.main()
-raw_input("\nCR to exit: ")
+sys.stdout.write("\nCR to exit: ")
+sys.stdout.flush()
+sys.stdin.readline()