diff options
author | Guido van Rossum <guido@python.org> | 1997-08-30 20:02:25 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-08-30 20:02:25 (GMT) |
commit | 36764b8b0e2f7fee83196bb08d78efda7092c472 (patch) | |
tree | c06d82ced6752ed5c1cb18310d9f98e646db98c6 /Doc/lib/libuser.tex | |
parent | d7ed683a7ead15583899d7f7fbfb9078139c6a80 (diff) | |
download | cpython-36764b8b0e2f7fee83196bb08d78efda7092c472.zip cpython-36764b8b0e2f7fee83196bb08d78efda7092c472.tar.gz cpython-36764b8b0e2f7fee83196bb08d78efda7092c472.tar.bz2 |
Added docs for 'user' customization module. Renamed libuser.tex
(which had UserDict/UserList) to libuserdict.tex.
Diffstat (limited to 'Doc/lib/libuser.tex')
-rw-r--r-- | Doc/lib/libuser.tex | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Doc/lib/libuser.tex b/Doc/lib/libuser.tex new file mode 100644 index 0000000..d90132c --- /dev/null +++ b/Doc/lib/libuser.tex @@ -0,0 +1,60 @@ +\section{Standard Module \sectcode{user}} +\label{module-user} +\stmodindex{user} +\kwindex{.pythonrc.py} + +As a policy, Python doesn't run user-specified code on startup of +Python programs. (Only interactive sessions execute the script +specified in the \code{PYTHONPATH} environment variable if it exists). + +However, some programs or sites may find it convenient to allow users +to have a standard customization file, which gets run when a program +requests it. This module implements such a mechanism. A program +that wishes to use the mechanism must execute the statement + +\bcode\begin{verbatim} +import user +\end{verbatim}\ecode + +The user module looks for a file \file{.pythonrc.py} in the user's +home directory and if it can be opened, exececutes it (using +\code{execfile()}) in its own (i.e. the module \code{user}'s) global +namespace. Errors during this phase are not caught; that's up to the +program that imports the user module, if it wishes. The home +directory is assumed to be named by the \code{HOME} environment +variable; if this is not set, the current directory is used. + +The user's \file{.pythonrc.py} could conceivably test for +\code{sys.version} if it wishes to do different things depending on +the Python version. + +A warning to users: be very conservative in what you place in your +\file{.pythonrc.py} file. Since you don't know which programs will +use it, changing the behavior of standard modules or functions is +generally not a good idea. + +A suggestion for programmers who wish to use this mechanism: a simple +way to let users specify options for your package is to have them +define variables in their \var{.pythonrc.py} file that you test in +your module. For example, a module \code{spam} that has a verbosity +level can look for a variable \code{user.spam_verbose}, as follows: + +\bcode\begin{verbatim} +import user +try: + verbose = user.spam_verbose # user's verbosity preference +except AttributeError: + verbose = 0 # default verbosity +\end{verbatim}\ecode + +Programs with extensive customization needs are better off reading a +program-specific customization file. + +Programs with security or privacy concerns should \emph{not} import +this module; a user can easily break into a a program by placing +arbitrary code in the \file{.pythonrc.py} file. + +Modules for general use should \emph{not} import this module; it may +interfere with the operation of the importing program. + +For a site-wide customization mechanism, see module \code{site}. |