
"user" --- User-specific configuration hook
*******************************************

Deprecated since version 2.6: The "user" module has been removed in
Python 3.

As a policy, Python doesn't run user-specified code on startup of
Python programs.  (Only interactive sessions execute the script
specified in the "PYTHONSTARTUP" 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

   import user

The "user" module looks for a file ".pythonrc.py" in the user's home
directory and if it can be opened, executes it (using "execfile()") in
its own (the module "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 "HOME" environment variable; if this is not set, the current
directory is used.

The user's ".pythonrc.py" could conceivably test for "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
".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 ".pythonrc.py" file that you test in your
module.  For example, a module "spam" that has a verbosity level can
look for a variable "user.spam_verbose", as follows:

   import user

   verbose = bool(getattr(user, "spam_verbose", 0))

(The three-argument form of "getattr()" is used in case the user has
not defined "spam_verbose" in their ".pythonrc.py" file.)

Programs with extensive customization needs are better off reading a
program-specific customization file.

Programs with security or privacy concerns should *not* import this
module; a user can easily break into a program by placing arbitrary
code in the ".pythonrc.py" file.

Modules for general use should *not* import this module; it may
interfere with the operation of the importing program.

See also:

  Module "site"
     Site-wide customization mechanism.
