diff options
author | Skip Montanaro <skip@pobox.com> | 2001-01-20 19:54:20 (GMT) |
---|---|---|
committer | Skip Montanaro <skip@pobox.com> | 2001-01-20 19:54:20 (GMT) |
commit | e99d5ea25ba994491c773d9b5872332334ccd1c5 (patch) | |
tree | 9f8fd636e123cc4a9718b7ae70ce0842dd19b755 /Lib | |
parent | c955f892254359194b3b1c4462156753acc4de90 (diff) | |
download | cpython-e99d5ea25ba994491c773d9b5872332334ccd1c5.zip cpython-e99d5ea25ba994491c773d9b5872332334ccd1c5.tar.gz cpython-e99d5ea25ba994491c773d9b5872332334ccd1c5.tar.bz2 |
added __all__ lists to a number of Python modules
added test script and expected output file as well
this closes patch 103297.
__all__ attributes will be added to other modules without first submitting
a patch, just adding the necessary line to the test script to verify
more-or-less correct implementation.
Diffstat (limited to 'Lib')
39 files changed, 138 insertions, 0 deletions
diff --git a/Lib/BaseHTTPServer.py b/Lib/BaseHTTPServer.py index f075e58..2f17938 100644 --- a/Lib/BaseHTTPServer.py +++ b/Lib/BaseHTTPServer.py @@ -63,6 +63,7 @@ XXX To do: __version__ = "0.2" +__all__ = ["HTTPServer", "BaseHTTPRequestHandler"] import sys import time diff --git a/Lib/Bastion.py b/Lib/Bastion.py index 868b0b6..99990a2 100644 --- a/Lib/Bastion.py +++ b/Lib/Bastion.py @@ -26,6 +26,7 @@ bastion is created. """ +__all__ = ["BastionClass", "Bastion"] from types import MethodType diff --git a/Lib/CGIHTTPServer.py b/Lib/CGIHTTPServer.py index ba1e76b..e2bef26 100644 --- a/Lib/CGIHTTPServer.py +++ b/Lib/CGIHTTPServer.py @@ -19,6 +19,7 @@ SECURITY WARNING: DON'T USE THIS CODE UNLESS YOU ARE INSIDE A FIREWALL __version__ = "0.4" +__all__ = ["CGIHTTPRequestHandler"] import os import sys diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py index f1e77e8..6d1e6f4 100644 --- a/Lib/ConfigParser.py +++ b/Lib/ConfigParser.py @@ -89,6 +89,11 @@ import sys import string import re +__all__ = ["NoSectionError","DuplicateSectionError","NoOptionError", + "InterpolationError","InterpolationDepthError","ParsingError", + "MissingSectionHeaderError","ConfigParser", + "MAX_INTERPOLATION_DEPTH"] + DEFAULTSECT = "DEFAULT" MAX_INTERPOLATION_DEPTH = 10 diff --git a/Lib/Cookie.py b/Lib/Cookie.py index 4ff0cbb..565e6f3 100644 --- a/Lib/Cookie.py +++ b/Lib/Cookie.py @@ -228,6 +228,8 @@ try: except ImportError: raise ImportError, "Cookie.py requires 're' from Python 1.5 or later" +__all__ = ["CookieError","BaseCookie","SimpleCookie","SerialCookie", + "SmartCookie","Cookie"] # # Define an exception visible to External modules diff --git a/Lib/MimeWriter.py b/Lib/MimeWriter.py index 9f04656..6aab1cd 100644 --- a/Lib/MimeWriter.py +++ b/Lib/MimeWriter.py @@ -10,6 +10,7 @@ MimeWriter - the only thing here. import string import mimetools +__all__ = ["MimeWriter"] class MimeWriter: diff --git a/Lib/Queue.py b/Lib/Queue.py index 0e6bbf0..050a966 100644 --- a/Lib/Queue.py +++ b/Lib/Queue.py @@ -1,5 +1,7 @@ """A multi-producer, multi-consumer queue.""" +__all__ = ["Queue","Empty","Full"] + class Empty(Exception): "Exception raised by Queue.get(block=0)/get_nowait()." pass diff --git a/Lib/SimpleHTTPServer.py b/Lib/SimpleHTTPServer.py index 37e3b38..7bb1262 100644 --- a/Lib/SimpleHTTPServer.py +++ b/Lib/SimpleHTTPServer.py @@ -8,6 +8,7 @@ and HEAD requests in a fairly straightforward manner. __version__ = "0.6" +__all__ = ["SimpleHTTPRequestHandler"] import os import string diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py index e1967fe..ec0159a 100644 --- a/Lib/SocketServer.py +++ b/Lib/SocketServer.py @@ -127,6 +127,13 @@ import socket import sys import os +__all__ = ["TCPServer","UDPServer","ForkingUDPServer","ForkingTCPServer", + "ThreadingUDPServer","ThreadingTCPServer","BaseRequestHandler", + "StreamRequestHandler","DatagramRequestHandler"] +if hasattr(socket, "AF_UNIX"): + __all__.extend(["UnixStreamServer","UnixDatagramServer", + "ThreadingUnixStreamServer", + "ThreadingUnixDatagramServer"]) class BaseServer: diff --git a/Lib/StringIO.py b/Lib/StringIO.py index 5fac590..bc5e9e2 100644 --- a/Lib/StringIO.py +++ b/Lib/StringIO.py @@ -34,6 +34,8 @@ try: except ImportError: EINVAL = 22 +__all__ = ["StringIO"] + EMPTYSTRING = '' class StringIO: diff --git a/Lib/UserDict.py b/Lib/UserDict.py index b642db7..38f0d26 100644 --- a/Lib/UserDict.py +++ b/Lib/UserDict.py @@ -1,5 +1,7 @@ """A more or less complete user-defined wrapper around dictionary objects.""" +__all__ = ["UserDict"] + class UserDict: def __init__(self, dict=None): self.data = {} diff --git a/Lib/UserList.py b/Lib/UserList.py index ee26589..6867332 100644 --- a/Lib/UserList.py +++ b/Lib/UserList.py @@ -1,5 +1,7 @@ """A more or less complete user-defined wrapper around list objects.""" +__all__ = ["UserList"] + class UserList: def __init__(self, initlist=None): self.data = [] diff --git a/Lib/UserString.py b/Lib/UserString.py index 2d02b9b..163faa5 100755 --- a/Lib/UserString.py +++ b/Lib/UserString.py @@ -8,6 +8,8 @@ This module requires Python 1.6 or later. from types import StringType, UnicodeType import sys +__all__ = ["UserString","MutableString"] + class UserString: def __init__(self, seq): if isinstance(seq, StringType) or isinstance(seq, UnicodeType): diff --git a/Lib/aifc.py b/Lib/aifc.py index 42d5c67..0821cff 100644 --- a/Lib/aifc.py +++ b/Lib/aifc.py @@ -137,6 +137,8 @@ writeframesraw. import struct import __builtin__ +__all__ = ["Error","open","openfp"] + class Error(Exception): pass diff --git a/Lib/anydbm.py b/Lib/anydbm.py index ba6fa7b..9352fbf 100644 --- a/Lib/anydbm.py +++ b/Lib/anydbm.py @@ -42,6 +42,8 @@ only if it doesn't exist; and 'n' always creates a new database. """ +__all__ = ["error","open"] + try: class error(Exception): pass diff --git a/Lib/atexit.py b/Lib/atexit.py index b687cb4..bcf7e54 100644 --- a/Lib/atexit.py +++ b/Lib/atexit.py @@ -5,6 +5,8 @@ upon normal program termination. One public function, register, is defined. """ +__all__ = ["register"] + _exithandlers = [] def _run_exitfuncs(): """run any registered exit functions diff --git a/Lib/audiodev.py b/Lib/audiodev.py index 5dfd1ab..2345145 100644 --- a/Lib/audiodev.py +++ b/Lib/audiodev.py @@ -1,5 +1,7 @@ """Classes for manipulating audio devices (currently only for Sun and SGI)""" +__all__ = ["error","AudioDev"] + class error(Exception): pass diff --git a/Lib/base64.py b/Lib/base64.py index ae67f68..290fa83 100755 --- a/Lib/base64.py +++ b/Lib/base64.py @@ -6,6 +6,8 @@ import binascii +__all__ = ["encode","decode","encodestring","decodestring"] + MAXLINESIZE = 76 # Excluding the CRLF MAXBINSIZE = (MAXLINESIZE/4)*3 @@ -4,6 +4,8 @@ import sys import os import types +__all__ = ["BdbQuit","Bdb","Breakpoint"] + BdbQuit = 'bdb.BdbQuit' # Exception to give up completely diff --git a/Lib/binhex.py b/Lib/binhex.py index ac2437b..8189563 100644 --- a/Lib/binhex.py +++ b/Lib/binhex.py @@ -27,6 +27,8 @@ import struct import string import binascii +__all__ = ["binhex","hexbin","Error"] + class Error(Exception): pass diff --git a/Lib/bisect.py b/Lib/bisect.py index 343bd5d..f521bab 100644 --- a/Lib/bisect.py +++ b/Lib/bisect.py @@ -1,5 +1,6 @@ """Bisection algorithms.""" +__all__ = ["bisect_right","insort_right","bisect_left","insort_left"] def insort_right(a, x, lo=0, hi=None): """Insert item x in list a, and keep it sorted assuming a is sorted. diff --git a/Lib/calendar.py b/Lib/calendar.py index 1d15081..2efb1c4 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -10,6 +10,10 @@ set the first day of the week (0=Monday, 6=Sunday).""" # Import functions and variables from time module from time import localtime, mktime +__all__ = ["error","setfirstweekday","firstweekday","isleap", + "leapdays","weekday","monthrange","monthcalendar", + "prmonth","month","prcal","calendar","timegm"] + # Exception raised for bad input (with string parameter for details) error = ValueError @@ -34,6 +34,8 @@ import rfc822 import UserDict from StringIO import StringIO +__all__ = ["MiniFieldStorage","FieldStorage","FormContentDict", + "SvFormContentDict","InterpFormContentDict","FormContent"] # Logging support # =============== diff --git a/Lib/chunk.py b/Lib/chunk.py index 0a93cd3..a38691f 100644 --- a/Lib/chunk.py +++ b/Lib/chunk.py @@ -48,6 +48,8 @@ specifies whether or not chunks are aligned on 2-byte boundaries. The default is 1, i.e. aligned. """ +__all__ = ["Chunk"] + class Chunk: def __init__(self, file, align = 1, bigendian = 1, inclheader = 0): import struct @@ -37,6 +37,8 @@ they automatically support Emacs-like command history and editing features. import string +__all__ = ["Cmd"] + PROMPT = '(Cmd) ' IDENTCHARS = string.letters + string.digits + '_' diff --git a/Lib/code.py b/Lib/code.py index 846cd04..f9d8225 100644 --- a/Lib/code.py +++ b/Lib/code.py @@ -10,6 +10,9 @@ import string import traceback from codeop import compile_command +__all__ = ["InteractiveInterpreter","InteractiveConsole","interact", + "compile_command"] + def softspace(file, newvalue): oldvalue = 0 try: diff --git a/Lib/codecs.py b/Lib/codecs.py index 003aa01..21652b6 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -17,6 +17,9 @@ except ImportError,why: raise SystemError,\ 'Failed to load the builtin codecs: %s' % why +__all__ = ["register","lookup","open","EncodedFile","BOM","BOM_BE", + "BOM_LE","BOM32_BE","BOM32_LE","BOM64_BE","BOM64_LE"] + ### Constants # diff --git a/Lib/codeop.py b/Lib/codeop.py index 080e00b..46926b5 100644 --- a/Lib/codeop.py +++ b/Lib/codeop.py @@ -4,6 +4,8 @@ import sys import string import traceback +__all__ = ["compile_command"] + def compile_command(source, filename="<input>", symbol="single"): r"""Compile a command and determine whether it is incomplete. diff --git a/Lib/colorsys.py b/Lib/colorsys.py index 4a62f9d..c2cdf57 100644 --- a/Lib/colorsys.py +++ b/Lib/colorsys.py @@ -17,6 +17,8 @@ HSV: Hue, Saturation, Value # References: # XXX Where's the literature? +__all__ = ["rgb_to_yiq","yiq_to_rgb","rgb_to_hls","hls_to_rgb", + "rgb_to_hsv","hsv_to_rgb"] # Some floating point constants diff --git a/Lib/commands.py b/Lib/commands.py index a21460d..cfbb541 100644 --- a/Lib/commands.py +++ b/Lib/commands.py @@ -19,6 +19,8 @@ Encapsulates the basic operation: [Note: it would be nice to add functions to interpret the exit status.] """ +__all__ = ["getstatusoutput","getoutput","getstatus"] + # Module 'commands' # # Various tools for executing commands and looking at their output and status. diff --git a/Lib/compileall.py b/Lib/compileall.py index e56c8b2..93ec7ad 100644 --- a/Lib/compileall.py +++ b/Lib/compileall.py @@ -17,6 +17,8 @@ import stat import sys import py_compile +__all__ = ["compile_dir","compile_path"] + def compile_dir(dir, maxlevels=10, ddir=None, force=0): """Byte-compile all modules in the given directory tree. diff --git a/Lib/copy.py b/Lib/copy.py index cdd2fdf..123162c 100644 --- a/Lib/copy.py +++ b/Lib/copy.py @@ -61,6 +61,8 @@ try: except ImportError: PyStringMap = None +__all__ = ["Error","error","copy","deepcopy"] + def copy(x): """Shallow copy operation on arbitrary Python objects. diff --git a/Lib/copy_reg.py b/Lib/copy_reg.py index 6a8881d..e4f0b3c 100644 --- a/Lib/copy_reg.py +++ b/Lib/copy_reg.py @@ -6,6 +6,8 @@ C, not for instances of user-defined classes. from types import ClassType as _ClassType +__all__ = ["pickle","constructor"] + dispatch_table = {} safe_constructors = {} diff --git a/Lib/dbhash.py b/Lib/dbhash.py index ff51630..4abd4f0 100644 --- a/Lib/dbhash.py +++ b/Lib/dbhash.py @@ -2,6 +2,8 @@ import bsddb +__all__ = ["error","open"] + error = bsddb.error # Exported for anydbm def open(file, flag, mode=0666): diff --git a/Lib/dircache.py b/Lib/dircache.py index 08b127a..a999743 100644 --- a/Lib/dircache.py +++ b/Lib/dircache.py @@ -6,6 +6,8 @@ The annotate() routine appends slashes to directories.""" import os +__all__ = ["listdir","opendir","annotate"] + cache = {} def listdir(path): @@ -4,6 +4,10 @@ import sys import string import types +__all__ = ["dis","disassemble","distb","disco","opname","cmp_op", + "hasconst","hasname","hasjrel","hasjabs","haslocal", + "hascompare"] + def dis(x=None): """Disassemble classes, methods, functions, or code. diff --git a/Lib/robotparser.py b/Lib/robotparser.py index e0ff72b..782d623 100644 --- a/Lib/robotparser.py +++ b/Lib/robotparser.py @@ -11,6 +11,8 @@ """ import re,string,urlparse,urllib +__all__ = ["RobotFileParser"] + debug = 0 def _debug(msg): diff --git a/Lib/test/output/test___all__ b/Lib/test/output/test___all__ new file mode 100644 index 0000000..afdff38 --- /dev/null +++ b/Lib/test/output/test___all__ @@ -0,0 +1 @@ +test___all__ diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py new file mode 100644 index 0000000..f5e3630 --- /dev/null +++ b/Lib/test/test___all__.py @@ -0,0 +1,55 @@ + +from test_support import verify, verbose, TestFailed +import sys + +def check_all(_modname): + exec "import %s" % _modname + verify(hasattr(sys.modules[_modname],"__all__"), + "%s has no __all__ attribute" % _modname) + exec "del %s" % _modname + exec "from %s import *" % _modname + + _keys = locals().keys() + _keys.remove("_modname") + _keys.sort() + all = list(sys.modules[_modname].__all__) # in case it's a tuple + all.sort() + verify(_keys==all,"%s != %s" % (_keys,all)) + +check_all("BaseHTTPServer") +check_all("Bastion") +check_all("CGIHTTPServer") +check_all("ConfigParser") +check_all("Cookie") +check_all("MimeWriter") +check_all("Queue") +check_all("SimpleHTTPServer") +check_all("SocketServer") +check_all("StringIO") +check_all("UserDict") +check_all("UserList") +check_all("UserString") +check_all("aifc") +check_all("anydbm") +check_all("atexit") +check_all("audiodev") +check_all("base64") +check_all("bdb") +check_all("binhex") +check_all("bisect") +check_all("calendar") +check_all("cgi") +check_all("chunk") +check_all("cmd") +check_all("code") +check_all("codecs") +check_all("codeop") +check_all("colorsys") +check_all("commands") +check_all("compileall") +check_all("copy") +check_all("copy_reg") +check_all("dbhash") +check_all("dircache") +check_all("dis") +check_all("robotparser") |