mirror of
https://github.com/python/cpython.git
synced 2024-12-14 12:26:47 +08:00
a871ef2b3e
Based on lsprof (patch #1212837) by Brett Rosen and Ted Czotter. With further editing by Michael Hudson and myself. History in svn repo: http://codespeak.net/svn/user/arigo/hack/misc/lsprof * Module/_lsprof.c is the internal C module, Lib/cProfile.py a wrapper. * pstats.py updated to display cProfile's caller/callee timings if available. * setup.py and NEWS updated. * documentation updates in the profiler section: - explain the differences between the three profilers that we have now - profile and cProfile can use a unified documentation, like (c)Pickle - mention that hotshot is "for specialized usage" now - removed references to the "old profiler" that no longer exists * test updates: - extended test_profile to cover delicate cases like recursion - added tests for the caller/callee displays - added test_cProfile, performing the same tests for cProfile * TO-DO: - cProfile gives a nicer name to built-in, particularly built-in methods, which could be backported to profile. - not tested on Windows recently!
482 lines
10 KiB
TeX
482 lines
10 KiB
TeX
\documentclass{manual}
|
|
|
|
% NOTE: this file controls which chapters/sections of the library
|
|
% manual are actually printed. It is easy to customize your manual
|
|
% by commenting out sections that you're not interested in.
|
|
|
|
\title{Python Library Reference}
|
|
|
|
\input{boilerplate}
|
|
|
|
\makeindex % tell \index to actually write the
|
|
% .idx file
|
|
\makemodindex % ... and the module index as well.
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\ifhtml
|
|
\chapter*{Front Matter\label{front}}
|
|
\fi
|
|
|
|
\input{copyright}
|
|
|
|
\begin{abstract}
|
|
|
|
\noindent
|
|
Python is an extensible, interpreted, object-oriented programming
|
|
language. It supports a wide range of applications, from simple text
|
|
processing scripts to interactive Web browsers.
|
|
|
|
While the \citetitle[../ref/ref.html]{Python Reference Manual}
|
|
describes the exact syntax and semantics of the language, it does not
|
|
describe the standard library that is distributed with the language,
|
|
and which greatly enhances its immediate usability. This library
|
|
contains built-in modules (written in C) that provide access to system
|
|
functionality such as file I/O that would otherwise be inaccessible to
|
|
Python programmers, as well as modules written in Python that provide
|
|
standardized solutions for many problems that occur in everyday
|
|
programming. Some of these modules are explicitly designed to
|
|
encourage and enhance the portability of Python programs.
|
|
|
|
This library reference manual documents Python's standard library, as
|
|
well as many optional library modules (which may or may not be
|
|
available, depending on whether the underlying platform supports them
|
|
and on the configuration choices made at compile time). It also
|
|
documents the standard types of the language and its built-in
|
|
functions and exceptions, many of which are not or incompletely
|
|
documented in the Reference Manual.
|
|
|
|
This manual assumes basic knowledge about the Python language. For an
|
|
informal introduction to Python, see the
|
|
\citetitle[../tut/tut.html]{Python Tutorial}; the
|
|
\citetitle[../ref/ref.html]{Python Reference Manual} remains the
|
|
highest authority on syntactic and semantic questions. Finally, the
|
|
manual entitled \citetitle[../ext/ext.html]{Extending and Embedding
|
|
the Python Interpreter} describes how to add new extensions to Python
|
|
and how to embed it in other applications.
|
|
|
|
\end{abstract}
|
|
|
|
\tableofcontents
|
|
|
|
% Chapter title:
|
|
|
|
\input{libintro} % Introduction
|
|
|
|
|
|
% =============
|
|
% BUILT-INs
|
|
% =============
|
|
|
|
\input{libobjs} % Built-in Types, Exceptions and Functions
|
|
\input{libfuncs}
|
|
\input{libstdtypes}
|
|
\input{libexcs}
|
|
\input{libconsts}
|
|
|
|
|
|
|
|
% =============
|
|
% BASIC/GENERAL-PURPOSE OBJECTS
|
|
% =============
|
|
|
|
% Strings
|
|
\input{libstrings} % String Services
|
|
\input{libstring}
|
|
\input{libre}
|
|
\input{libreconvert}
|
|
\input{libstruct} % XXX also/better in File Formats?
|
|
\input{libdifflib}
|
|
\input{libstringio}
|
|
\input{libtextwrap}
|
|
\input{libcodecs}
|
|
\input{libunicodedata}
|
|
\input{libstringprep}
|
|
\input{libfpformat}
|
|
|
|
|
|
\input{datatypes} % Data types and structures
|
|
\input{libdatetime}
|
|
\input{libcalendar}
|
|
\input{libcollections}
|
|
\input{libheapq}
|
|
\input{libbisect}
|
|
\input{libarray}
|
|
\input{libsets}
|
|
\input{libsched}
|
|
\input{libmutex}
|
|
\input{libqueue}
|
|
\input{libweakref}
|
|
\input{libuserdict}
|
|
|
|
% General object services
|
|
% XXX intro
|
|
\input{libtypes}
|
|
\input{libnew}
|
|
\input{libcopy}
|
|
\input{libpprint}
|
|
\input{librepr}
|
|
|
|
|
|
\input{numeric} % Numeric/Mathematical modules
|
|
\input{libmath}
|
|
\input{libcmath}
|
|
\input{libdecimal}
|
|
\input{librandom}
|
|
|
|
% Functions, Functional, Generators and Iterators
|
|
% XXX intro functional
|
|
\input{libitertools}
|
|
\input{libfunctional}
|
|
\input{liboperator} % from runtime - better with itertools and functional
|
|
|
|
|
|
% =============
|
|
% DATA FORMATS
|
|
% =============
|
|
|
|
% Big move - include all the markup and internet formats here
|
|
|
|
% MIME & email stuff
|
|
\input{netdata} % Internet Data Handling
|
|
\input{email}
|
|
\input{libmailcap}
|
|
\input{libmailbox}
|
|
\input{libmhlib}
|
|
\input{libmimetools}
|
|
\input{libmimetypes}
|
|
\input{libmimewriter}
|
|
\input{libmimify}
|
|
\input{libmultifile}
|
|
\input{librfc822}
|
|
|
|
% encoding stuff
|
|
\input{libbase64}
|
|
\input{libbinascii}
|
|
\input{libbinhex}
|
|
\input{libquopri}
|
|
\input{libuu}
|
|
|
|
\input{markup} % Structured Markup Processing Tools
|
|
\input{libhtmlparser}
|
|
\input{libsgmllib}
|
|
\input{libhtmllib}
|
|
\input{libpyexpat}
|
|
\input{xmldom}
|
|
\input{xmldomminidom}
|
|
\input{xmldompulldom}
|
|
\input{xmlsax}
|
|
\input{xmlsaxhandler}
|
|
\input{xmlsaxutils}
|
|
\input{xmlsaxreader}
|
|
% \input{libxmllib}
|
|
|
|
\input{fileformats} % Miscellaneous file formats
|
|
\input{libcsv}
|
|
\input{libcfgparser}
|
|
\input{librobotparser}
|
|
\input{libnetrc}
|
|
\input{libxdrlib}
|
|
|
|
\input{libcrypto} % Cryptographic Services
|
|
\input{libhashlib}
|
|
\input{libhmac}
|
|
\input{libmd5}
|
|
\input{libsha}
|
|
|
|
% =============
|
|
% FILE & DATABASE STORAGE
|
|
% =============
|
|
|
|
\input{filesys} % File/directory support
|
|
\input{libposixpath} % os.path
|
|
\input{libfileinput}
|
|
\input{libstat}
|
|
\input{libstatvfs}
|
|
\input{libfilecmp}
|
|
\input{libtempfile}
|
|
\input{libglob}
|
|
\input{libfnmatch}
|
|
\input{liblinecache}
|
|
\input{libshutil}
|
|
\input{libdircache}
|
|
|
|
|
|
\input{archiving} % Data compression and archiving
|
|
\input{libzlib}
|
|
\input{libgzip}
|
|
\input{libbz2}
|
|
\input{libzipfile}
|
|
\input{libtarfile}
|
|
|
|
|
|
\input{persistence} % Persistent storage
|
|
\input{libpickle}
|
|
\input{libcopyreg} % really copy_reg % from runtime...
|
|
\input{libshelve}
|
|
\input{libmarshal}
|
|
\input{libanydbm}
|
|
\input{libwhichdb}
|
|
\input{libdbm}
|
|
\input{libgdbm}
|
|
\input{libdbhash}
|
|
\input{libbsddb}
|
|
\input{libdumbdbm}
|
|
|
|
|
|
% =============
|
|
% OS
|
|
% =============
|
|
|
|
|
|
\input{liballos} % Generic Operating System Services
|
|
\input{libos}
|
|
\input{libtime}
|
|
\input{liboptparse}
|
|
\input{libgetopt}
|
|
\input{liblogging}
|
|
\input{libgetpass}
|
|
\input{libcurses}
|
|
\input{libascii} % curses.ascii
|
|
\input{libcursespanel}
|
|
\input{libplatform}
|
|
\input{liberrno}
|
|
|
|
\input{libsomeos} % Optional Operating System Services
|
|
\input{libselect}
|
|
\input{libthread}
|
|
\input{libthreading}
|
|
\input{libdummythread}
|
|
\input{libdummythreading}
|
|
\input{libmmap}
|
|
\input{libreadline}
|
|
\input{librlcompleter}
|
|
|
|
\input{libunix} % UNIX Specific Services
|
|
\input{libposix}
|
|
\input{libpwd}
|
|
\input{libspwd}
|
|
\input{libgrp}
|
|
\input{libcrypt}
|
|
\input{libdl}
|
|
\input{libtermios}
|
|
\input{libtty}
|
|
\input{libpty}
|
|
\input{libfcntl}
|
|
\input{libpipes}
|
|
\input{libposixfile}
|
|
\input{libresource}
|
|
\input{libnis}
|
|
\input{libsyslog}
|
|
\input{libcommands}
|
|
|
|
|
|
% =============
|
|
% NETWORK & COMMUNICATIONS
|
|
% =============
|
|
|
|
\input{ipc} % Interprocess communication/networking
|
|
\input{libsubprocess}
|
|
\input{libsocket}
|
|
\input{libsignal}
|
|
\input{libpopen2}
|
|
\input{libasyncore}
|
|
\input{libasynchat}
|
|
|
|
\input{internet} % Internet Protocols
|
|
\input{libwebbrowser}
|
|
\input{libcgi}
|
|
\input{libcgitb}
|
|
\input{liburllib}
|
|
\input{liburllib2}
|
|
\input{libhttplib}
|
|
\input{libftplib}
|
|
\input{libgopherlib}
|
|
\input{libpoplib}
|
|
\input{libimaplib}
|
|
\input{libnntplib}
|
|
\input{libsmtplib}
|
|
\input{libsmtpd}
|
|
\input{libtelnetlib}
|
|
\input{liburlparse}
|
|
\input{libsocksvr}
|
|
\input{libbasehttp}
|
|
\input{libsimplehttp}
|
|
\input{libcgihttp}
|
|
\input{libcookielib}
|
|
\input{libcookie}
|
|
\input{libxmlrpclib}
|
|
\input{libsimplexmlrpc}
|
|
\input{libdocxmlrpc}
|
|
|
|
% =============
|
|
% MULTIMEDIA
|
|
% =============
|
|
|
|
\input{libmm} % Multimedia Services
|
|
\input{libaudioop}
|
|
\input{libimageop}
|
|
\input{libaifc}
|
|
\input{libsunau}
|
|
\input{libwave}
|
|
\input{libchunk}
|
|
\input{libcolorsys}
|
|
\input{librgbimg}
|
|
\input{libimghdr}
|
|
\input{libsndhdr}
|
|
\input{libossaudiodev}
|
|
|
|
% Tkinter is a chapter in its own right.
|
|
\input{tkinter}
|
|
|
|
% % Internationalization
|
|
\input{i18n}
|
|
\input{libgettext}
|
|
\input{liblocale}
|
|
|
|
% =============
|
|
% PROGRAM FRAMEWORKS
|
|
% =============
|
|
\input{frameworks}
|
|
\input{libcmd}
|
|
\input{libshlex}
|
|
|
|
|
|
% =============
|
|
% DEVELOPMENT TOOLS
|
|
% =============
|
|
% % Software development support
|
|
\input{development}
|
|
\input{libpydoc}
|
|
\input{libdoctest}
|
|
\input{libunittest}
|
|
\input{libtest}
|
|
|
|
\input{libpdb} % The Python Debugger
|
|
|
|
\input{libprofile} % The Python Profiler
|
|
\input{libhotshot} % unmaintained C profiler
|
|
\input{libtimeit}
|
|
|
|
|
|
% =============
|
|
% PYTHON ENGINE
|
|
% =============
|
|
|
|
% Runtime services
|
|
\input{libpython} % Python Runtime Services
|
|
\input{libsys}
|
|
\input{libbltin} % really __builtin__
|
|
\input{libmain} % really __main__
|
|
\input{libwarnings}
|
|
\input{libatexit}
|
|
\input{libtraceback}
|
|
\input{libfuture} % really __future__
|
|
\input{libgc}
|
|
\input{libinspect}
|
|
\input{libsite}
|
|
\input{libuser}
|
|
\input{libfpectl}
|
|
|
|
|
|
\input{custominterp} % Custom interpreter
|
|
\input{libcode}
|
|
\input{libcodeop}
|
|
\input{librestricted} % Restricted Execution
|
|
\input{librexec}
|
|
\input{libbastion}
|
|
|
|
|
|
\input{modules} % Importing Modules
|
|
\input{libimp}
|
|
\input{libzipimport}
|
|
\input{libpkgutil}
|
|
\input{libmodulefinder}
|
|
|
|
|
|
% =============
|
|
% PYTHON LANGUAGE & COMPILER
|
|
% =============
|
|
|
|
\input{language} % Python Language Services
|
|
\input{libparser}
|
|
\input{libsymbol}
|
|
\input{libtoken}
|
|
\input{libkeyword}
|
|
\input{libtokenize}
|
|
\input{libtabnanny}
|
|
\input{libpyclbr}
|
|
\input{libpycompile} % really py_compile
|
|
\input{libcompileall}
|
|
\input{libdis}
|
|
\input{libpickletools}
|
|
\input{distutils}
|
|
|
|
\input{compiler} % compiler package
|
|
|
|
\input{libmisc} % Miscellaneous Services
|
|
\input{libformatter}
|
|
|
|
% =============
|
|
% OTHER PLATFORM-SPECIFIC STUFF
|
|
% =============
|
|
|
|
%\input{libamoeba} % AMOEBA ONLY
|
|
|
|
%\input{libstdwin} % STDWIN ONLY
|
|
|
|
\input{libsgi} % SGI IRIX ONLY
|
|
\input{libal}
|
|
\input{libcd}
|
|
\input{libfl}
|
|
\input{libfm}
|
|
\input{libgl}
|
|
\input{libimgfile}
|
|
\input{libjpeg}
|
|
%\input{libpanel}
|
|
|
|
\input{libsun} % SUNOS ONLY
|
|
\input{libsunaudio}
|
|
|
|
\input{windows} % MS Windows ONLY
|
|
\input{libmsvcrt}
|
|
\input{libwinreg}
|
|
\input{libwinsound}
|
|
|
|
\appendix
|
|
\input{libundoc}
|
|
|
|
%\chapter{Obsolete Modules}
|
|
%\input{libcmpcache}
|
|
%\input{libcmp}
|
|
%\input{libni}
|
|
%\input{libregex}
|
|
%\input{libregsub}
|
|
|
|
\chapter{Reporting Bugs}
|
|
\input{reportingbugs}
|
|
|
|
\chapter{History and License}
|
|
\input{license}
|
|
|
|
%
|
|
% The ugly "%begin{latexonly}" pseudo-environments are really just to
|
|
% keep LaTeX2HTML quiet during the \renewcommand{} macros; they're
|
|
% not really valuable.
|
|
%
|
|
|
|
%begin{latexonly}
|
|
\renewcommand{\indexname}{Module Index}
|
|
%end{latexonly}
|
|
\input{modlib.ind} % Module Index
|
|
|
|
%begin{latexonly}
|
|
\renewcommand{\indexname}{Index}
|
|
%end{latexonly}
|
|
\input{lib.ind} % Index
|
|
|
|
\end{document}
|