aboutsummaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorSkip Montanaro <skip@pobox.com>2001-01-20 19:54:20 +0000
committerSkip Montanaro <skip@pobox.com>2001-01-20 19:54:20 +0000
commite99d5ea25ba994491c773d9b5872332334ccd1c5 (patch)
tree9f8fd636e123cc4a9718b7ae70ce0842dd19b755 /Lib
parentdocstring typo (diff)
downloadcpython-e99d5ea25ba994491c773d9b5872332334ccd1c5.tar.gz
cpython-e99d5ea25ba994491c773d9b5872332334ccd1c5.tar.bz2
cpython-e99d5ea25ba994491c773d9b5872332334ccd1c5.zip
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')
-rw-r--r--Lib/BaseHTTPServer.py1
-rw-r--r--Lib/Bastion.py1
-rw-r--r--Lib/CGIHTTPServer.py1
-rw-r--r--Lib/ConfigParser.py5
-rw-r--r--Lib/Cookie.py2
-rw-r--r--Lib/MimeWriter.py1
-rw-r--r--Lib/Queue.py2
-rw-r--r--Lib/SimpleHTTPServer.py1
-rw-r--r--Lib/SocketServer.py7
-rw-r--r--Lib/StringIO.py2
-rw-r--r--Lib/UserDict.py2
-rw-r--r--Lib/UserList.py2
-rwxr-xr-xLib/UserString.py2
-rw-r--r--Lib/aifc.py2
-rw-r--r--Lib/anydbm.py2
-rw-r--r--Lib/atexit.py2
-rw-r--r--Lib/audiodev.py2
-rwxr-xr-xLib/base64.py2
-rw-r--r--Lib/bdb.py2
-rw-r--r--Lib/binhex.py2
-rw-r--r--Lib/bisect.py1
-rw-r--r--Lib/calendar.py4
-rwxr-xr-xLib/cgi.py2
-rw-r--r--Lib/chunk.py2
-rw-r--r--Lib/cmd.py2
-rw-r--r--Lib/code.py3
-rw-r--r--Lib/codecs.py3
-rw-r--r--Lib/codeop.py2
-rw-r--r--Lib/colorsys.py2
-rw-r--r--Lib/commands.py2
-rw-r--r--Lib/compileall.py2
-rw-r--r--Lib/copy.py2
-rw-r--r--Lib/copy_reg.py2
-rw-r--r--Lib/dbhash.py2
-rw-r--r--Lib/dircache.py2
-rw-r--r--Lib/dis.py4
-rw-r--r--Lib/robotparser.py2
-rw-r--r--Lib/test/output/test___all__1
-rw-r--r--Lib/test/test___all__.py55
39 files changed, 138 insertions, 0 deletions
diff --git a/Lib/BaseHTTPServer.py b/Lib/BaseHTTPServer.py
index f075e581dcc..2f17938feb2 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 868b0b6403f..99990a2d7df 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 ba1e76bb3eb..e2bef264ad3 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 f1e77e8d7d1..6d1e6f4b21b 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 4ff0cbb066f..565e6f3fb49 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 9f0465614fd..6aab1cd5f18 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 0e6bbf055a4..050a9660405 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 37e3b38dfab..7bb12626732 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 e1967fe2035..ec0159a0457 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 5fac5904e65..bc5e9e24327 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 b642db73b57..38f0d2631bd 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 ee2658939ff..6867332b70e 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 2d02b9b7d8d..163faa507bb 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 42d5c671a47..0821cffe6e3 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 ba6fa7b54aa..9352fbff561 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 b687cb40237..bcf7e548a03 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 5dfd1ab129d..234514597ca 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 ae67f68eccb..290fa83a047 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
diff --git a/Lib/bdb.py b/Lib/bdb.py
index 6bf0ff4682c..a0bf9b7119e 100644
--- a/Lib/bdb.py
+++ b/Lib/bdb.py
@@ -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 ac2437b9624..8189563944a 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 343bd5da81b..f521babc0e4 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 1d15081133e..2efb1c496b4 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
diff --git a/Lib/cgi.py b/Lib/cgi.py
index 6d590517351..0e808a5acb9 100755
--- a/Lib/cgi.py
+++ b/Lib/cgi.py
@@ -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 0a93cd31377..a38691fc1e2 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
diff --git a/Lib/cmd.py b/Lib/cmd.py
index 76715739532..f2894a94130 100644
--- a/Lib/cmd.py
+++ b/Lib/cmd.py
@@ -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 846cd046423..f9d8225d1d5 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 003aa013e49..21652b6146c 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 080e00b87eb..46926b58c4c 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 4a62f9df987..c2cdf57c970 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 a21460dce0a..cfbb541cfd6 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 e56c8b284e8..93ec7adc73d 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 cdd2fdf8d38..123162cba1c 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 6a8881d0a14..e4f0b3cfdac 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 ff51630bb33..4abd4f03f1e 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 08b127a1afb..a999743a8d1 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):
diff --git a/Lib/dis.py b/Lib/dis.py
index 6ecefd34a4e..f01bf4fe103 100644
--- a/Lib/dis.py
+++ b/Lib/dis.py
@@ -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 e0ff72bb34c..782d623b275 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 00000000000..afdff3839fd
--- /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 00000000000..f5e363038d8
--- /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")