cpython/Lib
Marc-André Lemburg 2d9204199f This patch changes the way the string .encode() method works slightly
and introduces a new method .decode().

The major change is that strg.encode() will no longer try to convert
Unicode returns from the codec into a string, but instead pass along
the Unicode object as-is. The same is now true for all other codec
return types. The underlying C APIs were changed accordingly.

Note that even though this does have the potential of breaking
existing code, the chances are low since conversion from Unicode
previously took place using the default encoding which is normally
set to ASCII rendering this auto-conversion mechanism useless for
most Unicode encodings.

The good news is that you can now use .encode() and .decode() with
much greater ease and that the door was opened for better accessibility
of the builtin codecs.

As demonstration of the new feature, the patch includes a few new
codecs which allow string to string encoding and decoding (rot13,
hex, zip, uu, base64).

Written by Marc-Andre Lemburg. Copyright assigned to the PSF.
2001-05-15 12:00:02 +00:00
..
compiler Pop loop off the loop stack before handling the loop's else clause. 2001-04-12 21:54:41 +00:00
curses Bug #412086, reported by Peter Wilson: The _curses module doesn't 2001-04-05 16:08:41 +00:00
distutils Fix typo in docstring 2001-04-23 17:13:03 +00:00
encodings This patch changes the way the string .encode() method works slightly 2001-05-15 12:00:02 +00:00
idlelib
lib-old Remove all remaining uses of the FCNTL module from the standard library. 2001-05-10 15:33:31 +00:00
lib-tk The lower() and tkraise() methods were calling the Canvas widget 2001-04-10 21:13:06 +00:00
plat-aix3 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-aix4 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-beos5 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-freebsd2 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-freebsd3 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-freebsd4 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-freebsd5 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-generic
plat-irix5 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-irix6 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-linux1 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-linux2 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-netbsd1 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
plat-next3 Do no regenerate modules that should no longer be here. 2001-05-10 15:52:47 +00:00
plat-riscos Updated version of RISCOS support. SF patch 411213 by Dietmar Schwertberger 2001-04-10 22:07:43 +00:00
plat-sunos4 Do no regenerate modules that should no longer be here. 2001-05-10 15:52:47 +00:00
plat-sunos5 Do no regenerate modules that should no longer be here. 2001-05-10 15:52:47 +00:00
plat-unixware7 Remove the old platform-specific FCNTL.py modules; these are no longer 2001-05-09 21:15:06 +00:00
site-packages
test This patch changes the way the string .encode() method works slightly 2001-05-15 12:00:02 +00:00
xml Corrected default value of the DocumentType.internalSubset attribute based 2001-04-05 14:41:30 +00:00
__future__.py Remove redundant "__future__:" from module docstring. 2001-03-15 10:45:44 +00:00
aifc.py
anydbm.py Catch only the relevant exceptions instead of using a bare except clause. 2001-05-11 18:27:00 +00:00
asynchat.py Fix from the Madusa mailing list: 2001-04-08 07:23:44 +00:00
asyncore.py <socket>.getsockopt() and <socket>.setsockopt() can only raise socket.error, 2001-05-11 18:28:54 +00:00
atexit.py
audiodev.py
base64.py
BaseHTTPServer.py Correction to test main. 2001-02-09 05:38:46 +00:00
Bastion.py
bdb.py Make it clear that a bdb subclass must implement do_clear(). 2001-04-08 15:05:16 +00:00
binhex.py String method cleanup. 2001-02-10 00:06:00 +00:00
bisect.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
builtin.py
calendar.py
cgi.py Add a whole lot of stuff to __all__. 2001-03-19 13:40:44 +00:00
CGIHTTPServer.py Eliminate use of string.whitespace and a string import with it. 2001-02-09 12:10:26 +00:00
chunk.py Clean up bare except: when determining whether a file is seekable. 2001-05-11 19:14:51 +00:00
cmd.py This is SF patch #405952, by Anthony Baxter: 2001-03-22 21:59:20 +00:00
code.py InteractiveInterpreter.showsyntaxerror(): 2001-05-03 04:58:49 +00:00
codecs.py
codeop.py Remove useless imports, as reported by PyChecker. 2001-04-08 00:43:13 +00:00
colorsys.py
commands.py
compileall.py Fix compileall.py so that it fails on SyntaxErrors 2001-04-18 01:20:21 +00:00
ConfigParser.py Make sure ConfigParser uses .optionxform() consistently; this affects 2001-02-26 21:55:34 +00:00
Cookie.py Get rid of the superstitious "~" in dict hashing's "i = (~hash) & mask". 2001-05-13 00:19:31 +00:00
copy.py
copy_reg.py
dbhash.py fail more completely by deleting dbhash from sys.modules if bsddb can't be 2001-01-25 13:47:00 +00:00
difflib.py Improve accuracy. In the .tex file, note the new "% BUG:" comments: an 2001-02-20 11:24:35 +00:00
dircache.py Whitespace normalization. 2001-03-16 08:29:48 +00:00
dis.py Iterators phase 1. This comprises: 2001-04-20 19:13:02 +00:00
doctest.py Changed doctest to run tests in alphabetic order of name. 2001-03-21 23:07:59 +00:00
dospath.py
dumbdbm.py Added support for .__contains__(), .__iter__(), .iterkeys(). 2001-05-03 04:55:47 +00:00
FCNTL.py Add a new FCNTL.py backward compatibility module that issues a deprecation 2001-05-09 21:13:23 +00:00
filecmp.py
fileinput.py
fnmatch.py Donovan Baarda <abo@users.sourceforge.net>: 2001-03-21 18:05:48 +00:00
formatter.py Remove a bare try/except completely -- it just did not make sense! 2001-05-11 19:25:08 +00:00
fpformat.py
ftplib.py remove global decl about unused variable 2001-04-09 04:31:50 +00:00
getopt.py
getpass.py Get the needed constants from termios, not TERMIOS. 2001-02-27 21:23:31 +00:00
gettext.py added a few more __all__ lists 2001-01-23 15:35:05 +00:00
glob.py
gopherlib.py String method conversion. 2001-02-09 10:10:02 +00:00
gzip.py Bug #409419: delete seek() and tell() methods, so callers can use getattr() 2001-03-20 15:51:14 +00:00
htmlentitydefs.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
htmllib.py int() of a string is only expected to through ValueError, so do not use 2001-05-11 18:45:52 +00:00
httplib.py SF patch #405845 by Martin von Löwis 2001-04-13 14:57:08 +00:00
ihooks.py String method conversion. 2001-02-09 10:18:37 +00:00
imaplib.py Fix previous checkin, hopelessly broken as it was; reported by Detlef Lannert. 2001-02-22 13:24:27 +00:00
imghdr.py a few more modules get __all__ 2001-01-24 06:27:27 +00:00
imputil.py Add an uninstall method to the ImportManager. 2001-04-07 16:05:24 +00:00
inspect.py Clean up isroutine(). 2001-04-13 14:04:02 +00:00
keyword.py String method conversion. 2001-02-09 09:10:35 +00:00
knee.py String method conversion. 2001-02-09 09:48:45 +00:00
linecache.py a few more modules get __all__ 2001-01-24 06:27:27 +00:00
locale.py Implement Mark Favas's suggestion. There's a clear bug in _group(): 2001-04-16 16:04:10 +00:00
macpath.py a few more modules get __all__ 2001-01-24 06:27:27 +00:00
macstat.py
macurl2path.py String method conversion. 2001-02-09 09:48:45 +00:00
mailbox.py Make the Mailbox objects support iteration -- they already had the 2001-05-02 20:20:53 +00:00
mailcap.py Opening a file for reading can raise IOError, so only catch that. 2001-05-11 18:47:54 +00:00
mhlib.py String method cleanup. 2001-02-10 00:22:33 +00:00
mimetools.py Do not hide a failure to create a temporary file; if it fails the work 2001-02-23 20:04:54 +00:00
mimetypes.py String method conversion. Added a trivial main to test it with. 2001-02-09 09:44:47 +00:00
MimeWriter.py String method conversion. 2001-02-09 09:39:08 +00:00
mimify.py Fix an unqualified except:. 2001-04-10 15:42:02 +00:00
multifile.py Multifile.read(): Fix a broken conversion to string methods. 2001-03-12 02:56:15 +00:00
mutex.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
netrc.py Fix typo in attribute name (file should be filename) found by 2001-04-15 12:51:42 +00:00
nntplib.py String method conversion. 2001-02-09 07:02:17 +00:00
ntpath.py Add support for Windows using "mbcs" as the default Unicode encoding when dealing with the file system. As discussed on python-dev and in patch 410465. 2001-05-13 08:04:26 +00:00
nturl2path.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
os.py Unify _Environ processing on riscos with other platforms. 2001-03-07 09:05:45 +00:00
pdb.doc
pdb.py SF bug #131560: pdb imports 'repr', causing name collision 2001-02-09 23:28:07 +00:00
persist.py
pickle.py test_pickle works on sizeof(long)==8 boxes again. 2001-04-10 05:02:52 +00:00
pipes.py SF bug 418615: regular expression bug in pipes.py. 2001-04-25 03:43:14 +00:00
popen2.py Whitespace normalization. 2001-02-09 20:06:00 +00:00
poplib.py __all__ for several more modules 2001-02-12 02:00:42 +00:00
posixfile.py Remove all remaining uses of the FCNTL module from the standard library. 2001-05-10 15:33:31 +00:00
posixpath.py In walk(), don't die when os.lstat() raises os.error, e.g. because a 2001-04-16 18:12:04 +00:00
pprint.py pprint's workhorse _safe_repr() function took time quadratic in the # of 2001-05-14 18:39:41 +00:00
pre.py Clean up a bare except where we only expect to catch pcre.error. 2001-05-11 19:20:17 +00:00
profile.doc
profile.py Add doc string for run from profile.doc. (pydoc motivates me to write 2001-03-14 20:01:19 +00:00
pstats.py When guarding an import, only catch ImportError. 2001-05-11 19:21:41 +00:00
pty.py A disgusting "fix" for the test___all__ failure under Windows. 2001-05-13 09:01:06 +00:00
py_compile.py __all__ for several more modules 2001-02-12 02:00:42 +00:00
pyclbr.py __all__ for several more modules 2001-02-12 02:00:42 +00:00
pydoc.py Change some text just a little to avoid font-lock hell. 2001-05-10 18:41:02 +00:00
Queue.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
quopri.py Strip \r as trailing whitespace as part of soft line endings. 2001-03-22 22:30:21 +00:00
random.py Whitespace normalization. 2001-02-15 23:56:39 +00:00
re.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
reconvert.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
regex_syntax.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
regsub.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
repr.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
rexec.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
rfc822.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
rlcompleter.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
robotparser.py Whitespace normalization. 2001-02-15 23:56:39 +00:00
sched.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
sgmllib.py Fix typo in exception name (SGMLParserError should be SGMLParseError) 2001-04-15 13:01:41 +00:00
shelve.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
shlex.py Unused variable (caught by PyChecker) removed. 2001-04-17 17:20:19 +00:00
shutil.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
SimpleHTTPServer.py Correction after translation test. 2001-02-09 10:26:06 +00:00
site.py Two minor changes for better Jython compatibility. Finn Bock says: 2001-03-23 17:53:49 +00:00
smtpd.py Fix typo in exception name (UnimplementedError should be 2001-04-15 13:06:04 +00:00
smtplib.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
sndhdr.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
socket.py Whitespace normalization. 2001-03-29 04:36:09 +00:00
SocketServer.py Add a close_request method to the BaseServer so that the TCPServer class 2001-04-11 04:02:05 +00:00
sre.py sre 2.1b2 update: 2001-03-22 15:50:10 +00:00
sre_compile.py sre 2.1b2 update: 2001-03-22 15:50:10 +00:00
sre_constants.py sre 2.1b2 update: 2001-03-22 15:50:10 +00:00
sre_parse.py sre 2.1b2 update: 2001-03-22 15:50:10 +00:00
stat.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
statcache.py bunch more __all__ lists 2001-02-15 22:15:14 +00:00
statvfs.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
string.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
StringIO.py Remove silly EMPTYSTRING global. Saves a global lookup. 2001-02-09 13:37:37 +00:00
stringold.py Nuke accurate but confusing and unhelpful comments about split vs splitfields. 2001-02-09 20:18:41 +00:00
sunau.py
sunaudio.py
symbol.py
symtable.py Fix three PyChecker-detected gotchas. 2001-04-16 18:43:18 +00:00
tabnanny.py Get rid of useless string import, as reported by Neal Norwitz's PyChecker.py 2001-04-08 00:38:42 +00:00
telnetlib.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
tempfile.py Search /tmp before /var/tmp and /usr/tmp -- this seems preferred. 2001-03-02 05:51:16 +00:00
TERMIOS.py No need to call filterwarnings() to suppress further warnings from this 2001-02-27 21:51:47 +00:00
threading.py SF bug [#410708] Condition.wait() and KeyboardInterrupt. 2001-04-02 20:15:57 +00:00
toaiff.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
token.py String method cleanup. 2001-02-10 00:22:33 +00:00
tokenize.py Provide a StopTokenizing exception for conveniently exiting the loop. 2001-03-23 05:22:49 +00:00
traceback.py Whitespace normalization. 2001-03-29 04:36:09 +00:00
tty.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
types.py
tzparse.py Add a deprecation warning to this module. 2001-03-20 18:36:48 +00:00
unittest.py patch 418489 from Andrew Dalke for string format bug 2001-05-10 01:28:40 +00:00
urllib.py Fix SF bug [ #416231 ] urllib.basejoin fails to apply some ../. 2001-04-15 20:47:33 +00:00
urllib2.py Raise useful exception when called with URL for which request type 2001-05-09 15:49:24 +00:00
urlparse.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
user.py
UserDict.py Added support for .iteritems(), .iterkeys(), .itervalues(). 2001-05-03 04:54:41 +00:00
UserList.py removed __all__ from several modules 2001-02-18 03:30:53 +00:00
UserString.py This patch changes the way the string .encode() method works slightly 2001-05-15 12:00:02 +00:00
uu.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
warnings.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
wave.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
weakref.py Added iterator support to the Weak*Dictionary classes. 2001-05-02 05:43:09 +00:00
webbrowser.py _synthesize(): Helper function: when the users passes a specific 2001-04-12 22:07:27 +00:00
whichdb.py Whitespace normalization. 2001-03-16 08:29:48 +00:00
whrandom.py
xdrlib.py final round of __all__ lists (I hope) - skipped urllib2 because Moshe may be 2001-03-01 04:27:19 +00:00
xmllib.py Moved clearing of "literal" flag. The flag is set in setliteral which 2001-03-14 17:03:30 +00:00
zipfile.py Fix one bare except: clause. 2001-05-11 19:52:57 +00:00