merge with 3.5
This commit is contained in:
commit
3902d62c4e
|
@ -35,7 +35,7 @@ Key terms
|
|||
repository of open source licensed packages made available for use by
|
||||
other Python users
|
||||
* the `Python Packaging Authority
|
||||
<https://packaging.python.org/en/latest/future.html>`__ are the group of
|
||||
<https://www.pypa.io/>`__ are the group of
|
||||
developers and documentation authors responsible for the maintenance and
|
||||
evolution of the standard packaging tools and the associated metadata and
|
||||
file format standards. They maintain a variety of tools, documentation
|
||||
|
@ -62,7 +62,7 @@ Key terms
|
|||
locally.
|
||||
|
||||
.. _setuptools: https://setuptools.pypa.io/en/latest/setuptools.html
|
||||
.. _wheel: http://wheel.readthedocs.org
|
||||
.. _wheel: https://wheel.readthedocs.org
|
||||
|
||||
Open source licensing and collaboration
|
||||
=======================================
|
||||
|
@ -111,7 +111,7 @@ by invoking the ``pip`` module at the command line::
|
|||
The Python Packaging User Guide includes more details on the `currently
|
||||
recommended tools`_.
|
||||
|
||||
.. _currently recommended tools: https://packaging.python.org/en/latest/current.html#packaging-tool-recommendations
|
||||
.. _currently recommended tools: https://packaging.python.org/en/latest/current/#packaging-tool-recommendations
|
||||
|
||||
Reading the guide
|
||||
=================
|
||||
|
@ -124,11 +124,11 @@ involved in creating a project:
|
|||
* `Uploading the project to the Python Packaging Index`_
|
||||
|
||||
.. _Project structure: \
|
||||
https://packaging.python.org/en/latest/distributing.html#creating-your-own-project
|
||||
https://packaging.python.org/en/latest/distributing/
|
||||
.. _Building and packaging the project: \
|
||||
https://packaging.python.org/en/latest/distributing.html#packaging-your-project
|
||||
https://packaging.python.org/en/latest/distributing/#packaging-your-project
|
||||
.. _Uploading the project to the Python Packaging Index: \
|
||||
https://packaging.python.org/en/latest/distributing.html#uploading-your-project-to-pypi
|
||||
https://packaging.python.org/en/latest/distributing/#uploading-your-project-to-pypi
|
||||
|
||||
|
||||
How do I...?
|
||||
|
@ -160,11 +160,11 @@ Python Packaging User Guide for more information and recommendations.
|
|||
.. seealso::
|
||||
|
||||
`Python Packaging User Guide: Binary Extensions
|
||||
<https://packaging.python.org/en/latest/extensions.html>`__
|
||||
<https://packaging.python.org/en/latest/extensions>`__
|
||||
|
||||
.. other topics:
|
||||
|
||||
Once the Development & Deployment part of PPUG is fleshed out, some of
|
||||
those sections should be linked from new questions here (most notably,
|
||||
we should have a question about avoiding depending on PyPI that links to
|
||||
https://packaging.python.org/en/latest/deployment.html#pypi-mirrors-and-caches)
|
||||
https://packaging.python.org/en/latest/mirrors/)
|
||||
|
|
|
@ -1822,7 +1822,7 @@ Subclasses of :class:`Command` must define the following methods.
|
|||
|
||||
Builds a `Windows Installer`_ (.msi) binary package.
|
||||
|
||||
.. _Windows Installer: http://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx
|
||||
.. _Windows Installer: https://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx
|
||||
|
||||
In most cases, the ``bdist_msi`` installer is a better choice than the
|
||||
``bdist_wininst`` installer, because it provides better support for
|
||||
|
|
|
@ -27,7 +27,7 @@ your system setup; details are given in later chapters.
|
|||
avoid writing C extensions and preserve portability to other implementations.
|
||||
For example, if your use case is calling C library functions or system calls,
|
||||
you should consider using the :mod:`ctypes` module or the `cffi
|
||||
<http://cffi.readthedocs.org>`_ library rather than writing custom C code.
|
||||
<https://cffi.readthedocs.org>`_ library rather than writing custom C code.
|
||||
These modules let you write Python code to interface with C code and are more
|
||||
portable between implementations of Python than writing and compiling a C
|
||||
extension module.
|
||||
|
|
|
@ -32,7 +32,7 @@ approaches to creating C and C++ extensions for Python.
|
|||
|
||||
.. seealso::
|
||||
|
||||
`Python Packaging User Guide: Binary Extensions <https://packaging.python.org/en/latest/extensions.html>`_
|
||||
`Python Packaging User Guide: Binary Extensions <https://packaging.python.org/en/latest/extensions/>`_
|
||||
The Python Packaging User Guide not only covers several available
|
||||
tools that simplify the creation of binary extensions, but also
|
||||
discusses the various reasons why creating an extension module may be
|
||||
|
|
|
@ -370,7 +370,7 @@ Practical answer:
|
|||
|
||||
`Cython <http://cython.org/>`_ and `Pyrex <http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/>`_
|
||||
compile a modified version of Python with optional annotations into C
|
||||
extensions. `Weave <http://docs.scipy.org/doc/scipy-dev/reference/tutorial/weave.html>`_ makes it easy to
|
||||
extensions. `Weave <https://scipy.github.io/devdocs/tutorial/weave.html>`_ makes it easy to
|
||||
intermingle Python and C code in various ways to increase performance.
|
||||
`Nuitka <http://www.nuitka.net/>`_ is an up-and-coming compiler of Python
|
||||
into C++ code, aiming to support the full Python language.
|
||||
|
|
|
@ -50,10 +50,10 @@ to learn Python's C API.
|
|||
If you need to interface to some C or C++ library for which no Python extension
|
||||
currently exists, you can try wrapping the library's data types and functions
|
||||
with a tool such as `SWIG <http://www.swig.org>`_. `SIP
|
||||
<http://www.riverbankcomputing.co.uk/software/sip/intro>`__, `CXX
|
||||
<https://riverbankcomputing.com/software/sip/intro>`__, `CXX
|
||||
<http://cxx.sourceforge.net/>`_ `Boost
|
||||
<http://www.boost.org/libs/python/doc/index.html>`_, or `Weave
|
||||
<http://docs.scipy.org/doc/scipy-dev/reference/tutorial/weave.html>`_ are also
|
||||
<https://scipy.github.io/devdocs/tutorial/weave.html>`_ are also
|
||||
alternatives for wrapping C++ libraries.
|
||||
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ How do I obtain a copy of the Python source?
|
|||
--------------------------------------------
|
||||
|
||||
The latest Python source distribution is always available from python.org, at
|
||||
https://www.python.org/download/. The latest development sources can be obtained
|
||||
https://www.python.org/downloads/. The latest development sources can be obtained
|
||||
via anonymous Mercurial access at https://hg.python.org/cpython.
|
||||
|
||||
The source distribution is a gzipped tar file containing the complete C source,
|
||||
|
@ -218,7 +218,7 @@ can be found at https://www.python.org/community/lists/.
|
|||
How do I get a beta test version of Python?
|
||||
-------------------------------------------
|
||||
|
||||
Alpha and beta releases are available from https://www.python.org/download/. All
|
||||
Alpha and beta releases are available from https://www.python.org/downloads/. All
|
||||
releases are announced on the comp.lang.python and comp.lang.python.announce
|
||||
newsgroups and on the Python home page at https://www.python.org/; an RSS feed of
|
||||
news is available.
|
||||
|
@ -273,7 +273,7 @@ The Python project's infrastructure is located all over the world.
|
|||
`www.python.org <https://www.python.org>`_ is graciously hosted by `Rackspace
|
||||
<http://www.rackspace.com>`_, with CDN caching provided by `Fastly
|
||||
<https://www.fastly.com>`_. `Upfront Systems
|
||||
<http://www.upfrontsystems.co.za>`_ hosts `bugs.python.org
|
||||
<http://www.upfrontsystems.co.za/>`_ hosts `bugs.python.org
|
||||
<https://bugs.python.org>`_. Many other Python services like `the Wiki
|
||||
<https://wiki.python.org>`_ are hosted by `Oregon State
|
||||
University Open Source Lab <https://osuosl.org>`_.
|
||||
|
@ -284,7 +284,7 @@ Why is it called Python?
|
|||
|
||||
When he began implementing Python, Guido van Rossum was also reading the
|
||||
published scripts from `"Monty Python's Flying Circus"
|
||||
<http://en.wikipedia.org/wiki/Monty_Python>`__, a BBC comedy series from the 1970s. Van Rossum
|
||||
<https://en.wikipedia.org/wiki/Monty_Python>`__, a BBC comedy series from the 1970s. Van Rossum
|
||||
thought he needed a name that was short, unique, and slightly mysterious, so he
|
||||
decided to call the language Python.
|
||||
|
||||
|
@ -313,7 +313,7 @@ guaranteed that interfaces will remain the same throughout a series of bugfix
|
|||
releases.
|
||||
|
||||
The latest stable releases can always be found on the `Python download page
|
||||
<https://www.python.org/download/>`_. There are two recommended production-ready
|
||||
<https://www.python.org/downloads/>`_. There are two recommended production-ready
|
||||
versions at this point in time, because at the moment there are two branches of
|
||||
stable releases: 2.x and 3.x. Python 3.x may be less useful than 2.x, since
|
||||
currently there is more third party software available for Python 2 than for
|
||||
|
@ -345,7 +345,7 @@ different companies and organizations.
|
|||
High-profile Python projects include `the Mailman mailing list manager
|
||||
<http://www.list.org>`_ and `the Zope application server
|
||||
<http://www.zope.org>`_. Several Linux distributions, most notably `Red Hat
|
||||
<http://www.redhat.com>`_, have written part or all of their installer and
|
||||
<https://www.redhat.com>`_, have written part or all of their installer and
|
||||
system administration software in Python. Companies that use Python internally
|
||||
include Google, Yahoo, and Lucasfilm Ltd.
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ Tkinter
|
|||
Standard builds of Python include an object-oriented interface to the Tcl/Tk
|
||||
widget set, called :ref:`tkinter <Tkinter>`. This is probably the easiest to
|
||||
install (since it comes included with most
|
||||
`binary distributions <https://www.python.org/download/>`_ of Python) and use.
|
||||
`binary distributions <https://www.python.org/downloads/>`_ of Python) and use.
|
||||
For more info about Tk, including pointers to the source, see the
|
||||
`Tcl/Tk home page <http://www.tcl.tk>`_. Tcl/Tk is fully portable to the
|
||||
Mac OS X, Windows, and Unix platforms.
|
||||
|
@ -58,19 +58,19 @@ Qt
|
|||
---
|
||||
|
||||
There are bindings available for the Qt toolkit (using either `PyQt
|
||||
<http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_ or `PySide
|
||||
<http://www.pyside.org/>`_) and for KDE (`PyKDE <https://techbase.kde.org/Development/Languages/Python>`__).
|
||||
<https://riverbankcomputing.com/software/pyqt/intro>`_ or `PySide
|
||||
<https://wiki.qt.io/PySide>`_) and for KDE (`PyKDE <https://techbase.kde.org/Development/Languages/Python>`__).
|
||||
PyQt is currently more mature than PySide, but you must buy a PyQt license from
|
||||
`Riverbank Computing <http://www.riverbankcomputing.co.uk/software/pyqt/license>`_
|
||||
`Riverbank Computing <https://www.riverbankcomputing.com/commercial/license-faq>`_
|
||||
if you want to write proprietary applications. PySide is free for all applications.
|
||||
|
||||
Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses
|
||||
are available from `The Qt Company <http://www.qt.io/licensing/>`_.
|
||||
are available from `The Qt Company <https://www.qt.io/licensing/>`_.
|
||||
|
||||
Gtk+
|
||||
----
|
||||
|
||||
The `GObject introspection bindings <https://live.gnome.org/PyGObject>`_
|
||||
The `GObject introspection bindings <https://wiki.gnome.org/Projects/PyGObject>`_
|
||||
for Python allow you to write GTK+ 3 applications. There is also a
|
||||
`Python GTK+ 3 Tutorial <http://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_.
|
||||
|
||||
|
|
|
@ -619,7 +619,7 @@ For Win32, POSIX (Linux, BSD, etc.), Jython:
|
|||
|
||||
For Unix, see a Usenet post by Mitch Chapman:
|
||||
|
||||
http://groups.google.com/groups?selm=34A04430.CF9@ohioee.com
|
||||
https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com
|
||||
|
||||
|
||||
Why doesn't closing sys.stdout (stdin, stderr) really close it?
|
||||
|
|
|
@ -63,7 +63,7 @@ PyChecker is a static analysis tool that finds bugs in Python source code and
|
|||
warns about code complexity and style. You can get PyChecker from
|
||||
http://pychecker.sourceforge.net/.
|
||||
|
||||
`Pylint <http://www.logilab.org/projects/pylint>`_ is another tool that checks
|
||||
`Pylint <http://www.pylint.org/>`_ is another tool that checks
|
||||
if a module satisfies a coding standard, and also makes it possible to write
|
||||
plug-ins to add a custom feature. In addition to the bug checking that
|
||||
PyChecker performs, Pylint offers some additional features such as checking line
|
||||
|
|
|
@ -545,7 +545,7 @@ learn more about submitting patches to Python.
|
|||
a lengthy tutorial for C programmers.
|
||||
* `The ncurses man page <http://linux.die.net/man/3/ncurses>`_
|
||||
* `The ncurses FAQ <http://invisible-island.net/ncurses/ncurses.faq.html>`_
|
||||
* `"Use curses... don't swear" <http://www.youtube.com/watch?v=eN1eZtjLEnU>`_:
|
||||
* `"Use curses... don't swear" <https://www.youtube.com/watch?v=eN1eZtjLEnU>`_:
|
||||
video of a PyCon 2013 talk on controlling terminals using curses or Urwid.
|
||||
* `"Console Applications with Urwid" <http://www.pyvideo.org/video/1568/console-applications-with-urwid>`_:
|
||||
video of a PyCon CA 2012 talk demonstrating some applications written using
|
||||
|
|
|
@ -332,7 +332,7 @@ substring.
|
|||
|
||||
List comprehensions and generator expressions (short form: "listcomps" and
|
||||
"genexps") are a concise notation for such operations, borrowed from the
|
||||
functional programming language Haskell (http://www.haskell.org/). You can strip
|
||||
functional programming language Haskell (https://www.haskell.org/). You can strip
|
||||
all the whitespace from a stream of strings with the following code::
|
||||
|
||||
line_list = [' line 1\n', 'line 2 \n', ...]
|
||||
|
@ -716,7 +716,7 @@ returns them in a tuple::
|
|||
It doesn't construct an in-memory list and exhaust all the input iterators
|
||||
before returning; instead tuples are constructed and returned only if they're
|
||||
requested. (The technical term for this behaviour is `lazy evaluation
|
||||
<http://en.wikipedia.org/wiki/Lazy_evaluation>`__.)
|
||||
<https://en.wikipedia.org/wiki/Lazy_evaluation>`__.)
|
||||
|
||||
This iterator is intended to be used with iterables that are all of the same
|
||||
length. If the iterables are of different lengths, the resulting stream will be
|
||||
|
@ -1199,7 +1199,7 @@ General
|
|||
|
||||
**Structure and Interpretation of Computer Programs**, by Harold Abelson and
|
||||
Gerald Jay Sussman with Julie Sussman. Full text at
|
||||
http://mitpress.mit.edu/sicp/. In this classic textbook of computer science,
|
||||
https://mitpress.mit.edu/sicp/. In this classic textbook of computer science,
|
||||
chapters 2 and 3 discuss the use of sequences and streams to organize the data
|
||||
flow inside a program. The book uses Scheme for its examples, but many of the
|
||||
design approaches described in these chapters are applicable to functional-style
|
||||
|
@ -1208,12 +1208,12 @@ Python code.
|
|||
http://www.defmacro.org/ramblings/fp.html: A general introduction to functional
|
||||
programming that uses Java examples and has a lengthy historical introduction.
|
||||
|
||||
http://en.wikipedia.org/wiki/Functional_programming: General Wikipedia entry
|
||||
https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia entry
|
||||
describing functional programming.
|
||||
|
||||
http://en.wikipedia.org/wiki/Coroutine: Entry for coroutines.
|
||||
https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines.
|
||||
|
||||
http://en.wikipedia.org/wiki/Currying: Entry for the concept of currying.
|
||||
https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying.
|
||||
|
||||
Python-specific
|
||||
---------------
|
||||
|
|
|
@ -1316,7 +1316,7 @@ An example dictionary-based configuration
|
|||
-----------------------------------------
|
||||
|
||||
Below is an example of a logging configuration dictionary - it's taken from
|
||||
the `documentation on the Django project <https://docs.djangoproject.com/en/1.3/topics/logging/#configuring-logging>`_.
|
||||
the `documentation on the Django project <https://docs.djangoproject.com/en/1.4/topics/logging/#configuring-logging>`_.
|
||||
This dictionary is passed to :func:`~config.dictConfig` to put the configuration into effect::
|
||||
|
||||
LOGGING = {
|
||||
|
|
|
@ -310,7 +310,7 @@ favourite beverage and carry on.
|
|||
If your logging needs are simple, then use the above examples to incorporate
|
||||
logging into your own scripts, and if you run into problems or don't
|
||||
understand something, please post a question on the comp.lang.python Usenet
|
||||
group (available at http://groups.google.com/group/comp.lang.python) and you
|
||||
group (available at https://groups.google.com/group/comp.lang.python) and you
|
||||
should receive help before too long.
|
||||
|
||||
Still here? You can carry on reading the next few sections, which provide a
|
||||
|
|
|
@ -127,7 +127,7 @@ Sort Stability and Complex Sorts
|
|||
================================
|
||||
|
||||
Sorts are guaranteed to be `stable
|
||||
<http://en.wikipedia.org/wiki/Sorting_algorithm#Stability>`_\. That means that
|
||||
<https://en.wikipedia.org/wiki/Sorting_algorithm#Stability>`_\. That means that
|
||||
when multiple records have the same key, their original order is preserved.
|
||||
|
||||
>>> data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]
|
||||
|
@ -145,7 +145,7 @@ ascending *age*, do the *age* sort first and then sort again using *grade*:
|
|||
>>> sorted(s, key=attrgetter('grade'), reverse=True) # now sort on primary key, descending
|
||||
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
|
||||
|
||||
The `Timsort <http://en.wikipedia.org/wiki/Timsort>`_ algorithm used in Python
|
||||
The `Timsort <https://en.wikipedia.org/wiki/Timsort>`_ algorithm used in Python
|
||||
does multiple sorts efficiently because it can take advantage of any ordering
|
||||
already present in a dataset.
|
||||
|
||||
|
@ -184,7 +184,7 @@ decorated list, but including it gives two benefits:
|
|||
directly.
|
||||
|
||||
Another name for this idiom is
|
||||
`Schwartzian transform <http://en.wikipedia.org/wiki/Schwartzian_transform>`_\,
|
||||
`Schwartzian transform <https://en.wikipedia.org/wiki/Schwartzian_transform>`_\,
|
||||
after Randal L. Schwartz, who popularized it among Perl programmers.
|
||||
|
||||
Now that Python sorting provides key-functions, this technique is not often needed.
|
||||
|
|
|
@ -73,7 +73,7 @@ revision of Unicode.
|
|||
precise historical details aren't necessary for understanding how to
|
||||
use Unicode effectively, but if you're curious, consult the Unicode
|
||||
consortium site listed in the References or
|
||||
the `Wikipedia entry for Unicode <http://en.wikipedia.org/wiki/Unicode#History>`_
|
||||
the `Wikipedia entry for Unicode <https://en.wikipedia.org/wiki/Unicode#History>`_
|
||||
for more information.)
|
||||
|
||||
|
||||
|
@ -223,8 +223,8 @@ If this introduction didn't make things clear to you, you should try
|
|||
reading this alternate article before continuing.
|
||||
|
||||
Wikipedia entries are often helpful; see the entries for "`character encoding
|
||||
<http://en.wikipedia.org/wiki/Character_encoding>`_" and `UTF-8
|
||||
<http://en.wikipedia.org/wiki/UTF-8>`_, for example.
|
||||
<https://en.wikipedia.org/wiki/Character_encoding>`_" and `UTF-8
|
||||
<https://en.wikipedia.org/wiki/UTF-8>`_, for example.
|
||||
|
||||
|
||||
Python's Unicode Support
|
||||
|
|
|
@ -267,7 +267,7 @@ Setting up FastCGI
|
|||
Each web server requires a specific module.
|
||||
|
||||
* Apache has both `mod_fastcgi <http://www.fastcgi.com/drupal/>`_ and `mod_fcgid
|
||||
<http://httpd.apache.org/mod_fcgid/>`_. ``mod_fastcgi`` is the original one, but it
|
||||
<https://httpd.apache.org/mod_fcgid/>`_. ``mod_fastcgi`` is the original one, but it
|
||||
has some licensing issues, which is why it is sometimes considered non-free.
|
||||
``mod_fcgid`` is a smaller, compatible alternative. One of these modules needs
|
||||
to be loaded by Apache.
|
||||
|
@ -277,7 +277,7 @@ Each web server requires a specific module.
|
|||
`SCGI module <http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModSCGI>`_.
|
||||
|
||||
* `nginx <http://nginx.org/>`_ also supports `FastCGI
|
||||
<http://wiki.nginx.org/NginxSimplePythonFCGI>`_.
|
||||
<https://www.nginx.com/resources/wiki/start/topics/examples/simplepythonfcgi/>`_.
|
||||
|
||||
Once you have installed and configured the module, you can test it with the
|
||||
following WSGI-application::
|
||||
|
@ -307,8 +307,8 @@ FastCGI access.
|
|||
|
||||
.. seealso::
|
||||
|
||||
There is some documentation on `setting up Django with FastCGI
|
||||
<https://docs.djangoproject.com/en/dev/howto/deployment/fastcgi/>`_, most of
|
||||
There is some documentation on `setting up Django with WSGI
|
||||
<https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/>`_, most of
|
||||
which can be reused for other WSGI-compliant frameworks and libraries.
|
||||
Only the ``manage.py`` part has to be changed, the example used here can be
|
||||
used instead. Django does more or less the exact same thing.
|
||||
|
@ -358,7 +358,7 @@ testing.
|
|||
|
||||
A really great WSGI feature is middleware. Middleware is a layer around your
|
||||
program which can add various functionality to it. There is quite a bit of
|
||||
`middleware <http://www.wsgi.org/en/latest/libraries.html>`_ already
|
||||
`middleware <https://wsgi.readthedocs.org/en/latest/libraries.html>`_ already
|
||||
available. For example, instead of writing your own session management (HTTP
|
||||
is a stateless protocol, so to associate multiple HTTP requests with a single
|
||||
user your application must create and manage such state via a session), you can
|
||||
|
@ -379,7 +379,7 @@ WSGI Servers
|
|||
The code that is used to connect to various low level gateways like CGI or
|
||||
mod_python is called a *WSGI server*. One of these servers is ``flup``, which
|
||||
supports FastCGI and SCGI, as well as `AJP
|
||||
<http://en.wikipedia.org/wiki/Apache_JServ_Protocol>`_. Some of these servers
|
||||
<https://en.wikipedia.org/wiki/Apache_JServ_Protocol>`_. Some of these servers
|
||||
are written in Python, as ``flup`` is, but there also exist others which are
|
||||
written in C and can be used as drop-in replacements.
|
||||
|
||||
|
@ -390,8 +390,8 @@ compared with other web technologies.
|
|||
.. seealso::
|
||||
|
||||
A good overview of WSGI-related code can be found in the `WSGI homepage
|
||||
<http://www.wsgi.org/en/latest/index.html>`_, which contains an extensive list of `WSGI servers
|
||||
<http://www.wsgi.org/en/latest/servers.html>`_ which can be used by *any* application
|
||||
<https://wsgi.readthedocs.org/>`_, which contains an extensive list of `WSGI servers
|
||||
<https://wsgi.readthedocs.org/en/latest/servers.html>`_ which can be used by *any* application
|
||||
supporting WSGI.
|
||||
|
||||
You might be interested in some WSGI-supporting modules already contained in
|
||||
|
@ -408,7 +408,7 @@ an application that's been around for a while, which was written in
|
|||
Python without using WSGI.
|
||||
|
||||
One of the most widely used wiki software packages is `MoinMoin
|
||||
<http://moinmo.in/>`_. It was created in 2000, so it predates WSGI by about
|
||||
<https://moinmo.in/>`_. It was created in 2000, so it predates WSGI by about
|
||||
three years. Older versions needed separate code to run on CGI, mod_python,
|
||||
FastCGI and standalone.
|
||||
|
||||
|
@ -460,7 +460,7 @@ maintainable web sites.
|
|||
.. seealso::
|
||||
|
||||
The English Wikipedia has an article about the `Model-View-Controller pattern
|
||||
<http://en.wikipedia.org/wiki/Model-view-controller>`_. It includes a long
|
||||
<https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller>`_. It includes a long
|
||||
list of web frameworks for various programming languages.
|
||||
|
||||
|
||||
|
@ -543,10 +543,10 @@ module, and which uses only one file. It has no other dependencies. For
|
|||
smaller sites SQLite is just enough.
|
||||
|
||||
Relational databases are *queried* using a language called `SQL
|
||||
<http://en.wikipedia.org/wiki/SQL>`_. Python programmers in general do not
|
||||
<https://en.wikipedia.org/wiki/SQL>`_. Python programmers in general do not
|
||||
like SQL too much, as they prefer to work with objects. It is possible to save
|
||||
Python objects into a database using a technology called `ORM
|
||||
<http://en.wikipedia.org/wiki/Object-relational_mapping>`_ (Object Relational
|
||||
<https://en.wikipedia.org/wiki/Object-relational_mapping>`_ (Object Relational
|
||||
Mapping). ORM translates all object-oriented access into SQL code under the
|
||||
hood, so the developer does not need to think about it. Most `frameworks`_ use
|
||||
ORMs, and it works quite well.
|
||||
|
@ -579,13 +579,13 @@ alternate storage mechanism.
|
|||
helps with choosing a method for saving data
|
||||
|
||||
* `SQLAlchemy <http://www.sqlalchemy.org/>`_, the most powerful OR-Mapper
|
||||
for Python, and `Elixir <http://elixir.ematia.de/>`_, which makes
|
||||
for Python, and `Elixir <https://pypi.python.org/pypi/Elixir>`_, which makes
|
||||
SQLAlchemy easier to use
|
||||
|
||||
* `SQLObject <http://www.sqlobject.org/>`_, another popular OR-Mapper
|
||||
|
||||
* `ZODB <https://launchpad.net/zodb>`_ and `Durus
|
||||
<http://www.mems-exchange.org/software/durus/>`_, two object oriented
|
||||
<https://www.mems-exchange.org/software/>`_, two object oriented
|
||||
databases
|
||||
|
||||
|
||||
|
@ -671,10 +671,10 @@ experience. TurboGears gives the user flexibility in choosing components. For
|
|||
example the ORM and template engine can be changed to use packages different
|
||||
from those used by default.
|
||||
|
||||
The documentation can be found in the `TurboGears wiki
|
||||
<http://docs.turbogears.org/>`_, where links to screencasts can be found.
|
||||
The documentation can be found in the `TurboGears documentation
|
||||
<https://turbogears.readthedocs.org/>`_, where links to screencasts can be found.
|
||||
TurboGears has also an active user community which can respond to most related
|
||||
questions. There is also a `TurboGears book <http://turbogearsbook.com/>`_
|
||||
questions. There is also a `TurboGears book <http://turbogears.org/1.0/docs/TGBooks.html>`_
|
||||
published, which is a good starting point.
|
||||
|
||||
The newest version of TurboGears, version 2.0, moves even further in direction
|
||||
|
|
|
@ -48,7 +48,7 @@ Key terms
|
|||
repository of open source licensed packages made available for use by
|
||||
other Python users
|
||||
* the `Python Packaging Authority
|
||||
<https://packaging.python.org/en/latest/future.html>`__ are the group of
|
||||
<https://www.pypa.io/en/latest/>`__ are the group of
|
||||
developers and documentation authors responsible for the maintenance and
|
||||
evolution of the standard packaging tools and the associated metadata and
|
||||
file format standards. They maintain a variety of tools, documentation
|
||||
|
@ -106,7 +106,7 @@ into an active virtual environment uses the commands shown above.
|
|||
.. seealso::
|
||||
|
||||
`Python Packaging User Guide: Installing Python Distribution Packages
|
||||
<https://packaging.python.org/en/latest/installing.html#installing-python-distribution-packages>`__
|
||||
<https://packaging.python.org/en/latest/installing/>`__
|
||||
|
||||
|
||||
How do I ...?
|
||||
|
@ -123,8 +123,8 @@ User Guide.
|
|||
|
||||
.. seealso::
|
||||
|
||||
`Python Packaging User Guide: Setup for Installing Distribution Packages
|
||||
<https://packaging.python.org/en/latest/installing.html#setup-for-installing-distribution-packages>`__
|
||||
`Python Packaging User Guide: Requirements for Installing Packages
|
||||
<https://packaging.python.org/en/latest/installing/#requirements-for-installing-packages>`__
|
||||
|
||||
|
||||
.. installing-per-user-installation:
|
||||
|
@ -143,13 +143,13 @@ A number of scientific Python packages have complex binary dependencies, and
|
|||
aren't currently easy to install using ``pip`` directly. At this point in
|
||||
time, it will often be easier for users to install these packages by
|
||||
`other means
|
||||
<https://packaging.python.org/en/latest/science.html>`__
|
||||
<https://packaging.python.org/en/latest/science/>`__
|
||||
rather than attempting to install them with ``pip``.
|
||||
|
||||
.. seealso::
|
||||
|
||||
`Python Packaging User Guide: Installing Scientific Packages
|
||||
<https://packaging.python.org/en/latest/science.html>`__
|
||||
<https://packaging.python.org/en/latest/science/>`__
|
||||
|
||||
|
||||
... work with multiple versions of Python installed in parallel?
|
||||
|
@ -179,7 +179,7 @@ switch::
|
|||
Once the Development & Deployment part of PPUG is fleshed out, some of
|
||||
those sections should be linked from new questions here (most notably,
|
||||
we should have a question about avoiding depending on PyPI that links to
|
||||
https://packaging.python.org/en/latest/deployment.html#pypi-mirrors-and-caches)
|
||||
https://packaging.python.org/en/latest/mirrors/)
|
||||
|
||||
|
||||
Common installation issues
|
||||
|
@ -212,11 +212,11 @@ as users are more regularly able to install pre-built extensions rather
|
|||
than needing to build them themselves.
|
||||
|
||||
Some of the solutions for installing `scientific software
|
||||
<https://packaging.python.org/en/latest/science.html>`__
|
||||
<https://packaging.python.org/en/latest/science/>`__
|
||||
that is not yet available as pre-built ``wheel`` files may also help with
|
||||
obtaining other binary extensions without needing to build them locally.
|
||||
|
||||
.. seealso::
|
||||
|
||||
`Python Packaging User Guide: Binary Extensions
|
||||
<https://packaging.python.org/en/latest/extensions.html>`__
|
||||
<https://packaging.python.org/en/latest/extensions/>`__
|
||||
|
|
|
@ -41,7 +41,7 @@ asyncio currently provides two implementations of event loops:
|
|||
|
||||
On Windows, only sockets are supported (ex: pipes are not supported):
|
||||
see the `MSDN documentation of select
|
||||
<http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141%28v=vs.85%29.aspx>`_.
|
||||
<https://msdn.microsoft.com/en-us/library/windows/desktop/ms740141%28v=vs.85%29.aspx>`_.
|
||||
|
||||
.. class:: ProactorEventLoop
|
||||
|
||||
|
@ -53,7 +53,7 @@ asyncio currently provides two implementations of event loops:
|
|||
.. seealso::
|
||||
|
||||
`MSDN documentation on I/O Completion Ports
|
||||
<http://msdn.microsoft.com/en-us/library/windows/desktop/aa365198%28v=vs.85%29.aspx>`_.
|
||||
<https://msdn.microsoft.com/en-us/library/windows/desktop/aa365198%28v=vs.85%29.aspx>`_.
|
||||
|
||||
Example to use a :class:`ProactorEventLoop` on Windows::
|
||||
|
||||
|
@ -107,7 +107,7 @@ Common limits of Windows event loops:
|
|||
The resolution of the monotonic clock on Windows is usually around 15.6 msec.
|
||||
The best resolution is 0.5 msec. The resolution depends on the hardware
|
||||
(availability of `HPET
|
||||
<http://en.wikipedia.org/wiki/High_Precision_Event_Timer>`_) and on the Windows
|
||||
<https://en.wikipedia.org/wiki/High_Precision_Event_Timer>`_) and on the Windows
|
||||
configuration. See :ref:`asyncio delayed calls <asyncio-delayed-calls>`.
|
||||
|
||||
.. versionchanged:: 3.5
|
||||
|
|
|
@ -51,7 +51,7 @@ Create a subprocess: high-level API using Process
|
|||
|
||||
It is the application's responsibility to ensure that all whitespace and
|
||||
metacharacters are quoted appropriately to avoid `shell injection
|
||||
<http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
|
||||
<https://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
|
||||
vulnerabilities. The :func:`shlex.quote` function can be used to properly
|
||||
escape whitespace and shell metacharacters in strings that are going to be
|
||||
used to construct shell commands.
|
||||
|
@ -134,7 +134,7 @@ Run subprocesses asynchronously using the :mod:`subprocess` module.
|
|||
|
||||
It is the application's responsibility to ensure that all whitespace and
|
||||
metacharacters are quoted appropriately to avoid `shell injection
|
||||
<http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
|
||||
<https://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
|
||||
vulnerabilities. The :func:`shlex.quote` function can be used to properly
|
||||
escape whitespace and shell metacharacters in strings that are going to be
|
||||
used to construct shell commands.
|
||||
|
|
|
@ -374,12 +374,12 @@ or subtracting from an empty counter.
|
|||
|
||||
.. seealso::
|
||||
|
||||
* `Bag class <http://www.gnu.org/software/smalltalk/manual-base/html_node/Bag.html>`_
|
||||
* `Bag class <https://www.gnu.org/software/smalltalk/manual-base/html_node/Bag.html>`_
|
||||
in Smalltalk.
|
||||
|
||||
* Wikipedia entry for `Multisets <http://en.wikipedia.org/wiki/Multiset>`_.
|
||||
* Wikipedia entry for `Multisets <https://en.wikipedia.org/wiki/Multiset>`_.
|
||||
|
||||
* `C++ multisets <http://www.demo2s.com/Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm>`_
|
||||
* `C++ multisets <http://www.java2s.com/Tutorial/Cpp/0380__set-multiset/Catalog0380__set-multiset.htm>`_
|
||||
tutorial with examples.
|
||||
|
||||
* For mathematical operations on multisets and their use cases, see
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
:mod:`dbm` is a generic interface to variants of the DBM database ---
|
||||
:mod:`dbm.gnu` or :mod:`dbm.ndbm`. If none of these modules is installed, the
|
||||
slow-but-simple implementation in module :mod:`dbm.dumb` will be used. There
|
||||
is a `third party interface <http://www.jcea.es/programacion/pybsddb.htm>`_ to
|
||||
is a `third party interface <https://www.jcea.es/programacion/pybsddb.htm>`_ to
|
||||
the Oracle Berkeley DB.
|
||||
|
||||
|
||||
|
|
|
@ -109,9 +109,6 @@ reset them before monitoring a calculation.
|
|||
* IBM's General Decimal Arithmetic Specification, `The General Decimal Arithmetic
|
||||
Specification <http://speleotrove.com/decimal/decarith.html>`_.
|
||||
|
||||
* IEEE standard 854-1987, `Unofficial IEEE 854 Text
|
||||
<http://754r.ucbtest.org/standards/854.pdf>`_.
|
||||
|
||||
.. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ Here are the public methods of the :class:`Generator` class, imported from the
|
|||
followed by a space at the beginning of the line. This is the only guaranteed
|
||||
portable way to avoid having such lines be mistaken for a Unix mailbox format
|
||||
envelope header separator (see `WHY THE CONTENT-LENGTH FORMAT IS BAD
|
||||
<http://www.jwz.org/doc/content-length.html>`_ for details). *mangle_from_*
|
||||
<https://www.jwz.org/doc/content-length.html>`_ for details). *mangle_from_*
|
||||
defaults to ``True``, but you might want to set this to ``False`` if you are not
|
||||
writing Unix mailbox format files.
|
||||
|
||||
|
@ -123,7 +123,7 @@ formatted string representation of a message object. For more detail, see
|
|||
i.e. ``From`` followed by a space at the beginning of the line. This is the
|
||||
only guaranteed portable way to avoid having such lines be mistaken for a
|
||||
Unix mailbox format envelope header separator (see `WHY THE CONTENT-LENGTH
|
||||
FORMAT IS BAD <http://www.jwz.org/doc/content-length.html>`_ for details).
|
||||
FORMAT IS BAD <https://www.jwz.org/doc/content-length.html>`_ for details).
|
||||
*mangle_from_* defaults to ``True``, but you might want to set this to
|
||||
``False`` if you are not writing Unix mailbox format files.
|
||||
|
||||
|
|
|
@ -1418,7 +1418,7 @@ are always available. They are listed here in alphabetical order.
|
|||
|
||||
For practical suggestions on how to design cooperative classes using
|
||||
:func:`super`, see `guide to using super()
|
||||
<http://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
|
||||
<https://rhettinger.wordpress.com/2011/05/26/super-considered-super/>`_.
|
||||
|
||||
|
||||
.. _func-tuple:
|
||||
|
|
|
@ -73,7 +73,7 @@ The :mod:`functools` module defines the following functions:
|
|||
bypassing the cache, or for rewrapping the function with a different cache.
|
||||
|
||||
An `LRU (least recently used) cache
|
||||
<http://en.wikipedia.org/wiki/Cache_algorithms#Examples>`_ works
|
||||
<https://en.wikipedia.org/wiki/Cache_algorithms#Examples>`_ works
|
||||
best when the most recent calls are the best predictors of upcoming calls (for
|
||||
example, the most popular articles on a news server tend to change each day).
|
||||
The cache's size limit assures that the cache does not grow without bound on
|
||||
|
@ -99,9 +99,9 @@ The :mod:`functools` module defines the following functions:
|
|||
CacheInfo(hits=3, misses=8, maxsize=32, currsize=8)
|
||||
|
||||
Example of efficiently computing
|
||||
`Fibonacci numbers <http://en.wikipedia.org/wiki/Fibonacci_number>`_
|
||||
`Fibonacci numbers <https://en.wikipedia.org/wiki/Fibonacci_number>`_
|
||||
using a cache to implement a
|
||||
`dynamic programming <http://en.wikipedia.org/wiki/Dynamic_programming>`_
|
||||
`dynamic programming <https://en.wikipedia.org/wiki/Dynamic_programming>`_
|
||||
technique::
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
|
|
|
@ -132,7 +132,7 @@ the iterable into an actual heap.
|
|||
Basic Examples
|
||||
--------------
|
||||
|
||||
A `heapsort <http://en.wikipedia.org/wiki/Heapsort>`_ can be implemented by
|
||||
A `heapsort <https://en.wikipedia.org/wiki/Heapsort>`_ can be implemented by
|
||||
pushing all values onto a heap and then popping off the smallest values one at a
|
||||
time::
|
||||
|
||||
|
@ -163,7 +163,7 @@ Heap elements can be tuples. This is useful for assigning comparison values
|
|||
Priority Queue Implementation Notes
|
||||
-----------------------------------
|
||||
|
||||
A `priority queue <http://en.wikipedia.org/wiki/Priority_queue>`_ is common use
|
||||
A `priority queue <https://en.wikipedia.org/wiki/Priority_queue>`_ is common use
|
||||
for a heap, and it presents several implementation challenges:
|
||||
|
||||
* Sort stability: how do you get two tasks with equal priorities to be returned
|
||||
|
|
|
@ -21,7 +21,7 @@ HTTPS protocols. It is normally not used directly --- the module
|
|||
|
||||
.. seealso::
|
||||
|
||||
The `Requests package <http://requests.readthedocs.org/>`_
|
||||
The `Requests package <https://requests.readthedocs.org/>`_
|
||||
is recommended for a higher-level http client interface.
|
||||
|
||||
.. note::
|
||||
|
|
|
@ -117,7 +117,7 @@ loops that truncate the stream.
|
|||
:func:`min` for a running minimum, :func:`max` for a running maximum, or
|
||||
:func:`operator.mul` for a running product. Amortization tables can be
|
||||
built by accumulating interest and applying payments. First-order
|
||||
`recurrence relations <http://en.wikipedia.org/wiki/Recurrence_relation>`_
|
||||
`recurrence relations <https://en.wikipedia.org/wiki/Recurrence_relation>`_
|
||||
can be modeled by supplying the initial value in the iterable and using only
|
||||
the accumulated total in *func* argument::
|
||||
|
||||
|
@ -132,7 +132,7 @@ loops that truncate the stream.
|
|||
>>> list(accumulate(cashflows, lambda bal, pmt: bal*1.05 + pmt))
|
||||
[1000, 960.0, 918.0, 873.9000000000001, 827.5950000000001]
|
||||
|
||||
# Chaotic recurrence relation http://en.wikipedia.org/wiki/Logistic_map
|
||||
# Chaotic recurrence relation https://en.wikipedia.org/wiki/Logistic_map
|
||||
>>> logistic_map = lambda x, _: r * x * (1 - x)
|
||||
>>> r = 3.8
|
||||
>>> x0 = 0.4
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
:rfc:`7159` (which obsoletes :rfc:`4627`) and by
|
||||
`ECMA-404 <http://www.ecma-international.org/publications/standards/Ecma-404.htm>`_,
|
||||
is a lightweight data interchange format inspired by
|
||||
`JavaScript <http://en.wikipedia.org/wiki/JavaScript>`_ object literal syntax
|
||||
`JavaScript <https://en.wikipedia.org/wiki/JavaScript>`_ object literal syntax
|
||||
(although it is not a strict subset of JavaScript [#rfc-errata]_ ).
|
||||
|
||||
:mod:`json` exposes an API familiar to users of the standard library
|
||||
|
|
|
@ -1246,7 +1246,7 @@ with the :mod:`warnings` module.
|
|||
The proposal which described this feature for inclusion in the Python standard
|
||||
library.
|
||||
|
||||
`Original Python logging package <http://www.red-dove.com/python_logging.html>`_
|
||||
`Original Python logging package <https://www.red-dove.com/python_logging.html>`_
|
||||
This is the original source for the :mod:`logging` package. The version of the
|
||||
package available from this site is suitable for use with Python 1.5.2, 2.1.x
|
||||
and 2.2.x, which do not include the :mod:`logging` package in the standard
|
||||
|
|
|
@ -484,7 +484,7 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.
|
|||
`mbox man page from tin <http://www.tin.org/bin/man.cgi?section=5&topic=mbox>`_
|
||||
Another specification of the format, with details on locking.
|
||||
|
||||
`Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad <http://www.jwz.org/doc/content-length.html>`_
|
||||
`Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad <https://www.jwz.org/doc/content-length.html>`_
|
||||
An argument for using the original mbox format rather than a variation.
|
||||
|
||||
`"mbox" is a family of several mutually incompatible mailbox formats <http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/mail-mbox-formats.html>`_
|
||||
|
@ -744,7 +744,7 @@ Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF.
|
|||
`mmdf man page from tin <http://www.tin.org/bin/man.cgi?section=5&topic=mmdf>`_
|
||||
A specification of MMDF format from the documentation of tin, a newsreader.
|
||||
|
||||
`MMDF <http://en.wikipedia.org/wiki/MMDF>`_
|
||||
`MMDF <https://en.wikipedia.org/wiki/MMDF>`_
|
||||
A Wikipedia article describing the Multichannel Memorandum Distribution
|
||||
Facility.
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ Number-theoretic and representation functions
|
|||
|
||||
For further discussion and two alternative approaches, see the `ASPN cookbook
|
||||
recipes for accurate floating point summation
|
||||
<http://code.activestate.com/recipes/393090/>`_\.
|
||||
<https://code.activestate.com/recipes/393090/>`_\.
|
||||
|
||||
|
||||
.. function:: gcd(a, b)
|
||||
|
@ -204,7 +204,7 @@ Power and logarithmic functions
|
|||
|
||||
Return ``e**x - 1``. For small floats *x*, the subtraction in ``exp(x) - 1``
|
||||
can result in a `significant loss of precision
|
||||
<http://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1`
|
||||
<https://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1`
|
||||
function provides a way to compute this quantity to full precision::
|
||||
|
||||
>>> from math import exp, expm1
|
||||
|
@ -332,7 +332,7 @@ Angular conversion
|
|||
Hyperbolic functions
|
||||
--------------------
|
||||
|
||||
`Hyperbolic functions <http://en.wikipedia.org/wiki/Hyperbolic_function>`_
|
||||
`Hyperbolic functions <https://en.wikipedia.org/wiki/Hyperbolic_function>`_
|
||||
are analogs of trigonometric functions that are based on hyperbolas
|
||||
instead of circles.
|
||||
|
||||
|
@ -371,12 +371,12 @@ Special functions
|
|||
|
||||
.. function:: erf(x)
|
||||
|
||||
Return the `error function <http://en.wikipedia.org/wiki/Error_function>`_ at
|
||||
Return the `error function <https://en.wikipedia.org/wiki/Error_function>`_ at
|
||||
*x*.
|
||||
|
||||
The :func:`erf` function can be used to compute traditional statistical
|
||||
functions such as the `cumulative standard normal distribution
|
||||
<http://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_::
|
||||
<https://en.wikipedia.org/wiki/Normal_distribution#Cumulative_distribution_function>`_::
|
||||
|
||||
def phi(x):
|
||||
'Cumulative distribution function for the standard normal distribution'
|
||||
|
@ -388,17 +388,17 @@ Special functions
|
|||
.. function:: erfc(x)
|
||||
|
||||
Return the complementary error function at *x*. The `complementary error
|
||||
function <http://en.wikipedia.org/wiki/Error_function>`_ is defined as
|
||||
function <https://en.wikipedia.org/wiki/Error_function>`_ is defined as
|
||||
``1.0 - erf(x)``. It is used for large values of *x* where a subtraction
|
||||
from one would cause a `loss of significance
|
||||
<http://en.wikipedia.org/wiki/Loss_of_significance>`_\.
|
||||
<https://en.wikipedia.org/wiki/Loss_of_significance>`_\.
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
|
||||
.. function:: gamma(x)
|
||||
|
||||
Return the `Gamma function <http://en.wikipedia.org/wiki/Gamma_function>`_ at
|
||||
Return the `Gamma function <https://en.wikipedia.org/wiki/Gamma_function>`_ at
|
||||
*x*.
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
|
|
@ -120,9 +120,9 @@ structures.
|
|||
|
||||
.. seealso::
|
||||
|
||||
`FCICreateFile <http://msdn.microsoft.com/library?url=/library/en-us/devnotes/winprog/fcicreate.asp>`_
|
||||
`UuidCreate <http://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidcreate.asp>`_
|
||||
`UuidToString <http://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidtostring.asp>`_
|
||||
`FCICreateFile <https://msdn.microsoft.com/library?url=/library/en-us/devnotes/winprog/fcicreate.asp>`_
|
||||
`UuidCreate <https://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidcreate.asp>`_
|
||||
`UuidToString <https://msdn.microsoft.com/library?url=/library/en-us/rpc/rpc/uuidtostring.asp>`_
|
||||
|
||||
.. _database-objects:
|
||||
|
||||
|
@ -151,9 +151,9 @@ Database Objects
|
|||
|
||||
.. seealso::
|
||||
|
||||
`MSIDatabaseOpenView <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabaseopenview.asp>`_
|
||||
`MSIDatabaseCommit <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabasecommit.asp>`_
|
||||
`MSIGetSummaryInformation <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msigetsummaryinformation.asp>`_
|
||||
`MSIDatabaseOpenView <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabaseopenview.asp>`_
|
||||
`MSIDatabaseCommit <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msidatabasecommit.asp>`_
|
||||
`MSIGetSummaryInformation <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msigetsummaryinformation.asp>`_
|
||||
|
||||
.. _view-objects:
|
||||
|
||||
|
@ -199,11 +199,11 @@ View Objects
|
|||
|
||||
.. seealso::
|
||||
|
||||
`MsiViewExecute <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewexecute.asp>`_
|
||||
`MSIViewGetColumnInfo <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewgetcolumninfo.asp>`_
|
||||
`MsiViewFetch <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewfetch.asp>`_
|
||||
`MsiViewModify <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewmodify.asp>`_
|
||||
`MsiViewClose <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewclose.asp>`_
|
||||
`MsiViewExecute <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewexecute.asp>`_
|
||||
`MSIViewGetColumnInfo <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewgetcolumninfo.asp>`_
|
||||
`MsiViewFetch <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewfetch.asp>`_
|
||||
`MsiViewModify <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewmodify.asp>`_
|
||||
`MsiViewClose <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msiviewclose.asp>`_
|
||||
|
||||
.. _summary-objects:
|
||||
|
||||
|
@ -243,10 +243,10 @@ Summary Information Objects
|
|||
|
||||
.. seealso::
|
||||
|
||||
`MsiSummaryInfoGetProperty <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetproperty.asp>`_
|
||||
`MsiSummaryInfoGetPropertyCount <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetpropertycount.asp>`_
|
||||
`MsiSummaryInfoSetProperty <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfosetproperty.asp>`_
|
||||
`MsiSummaryInfoPersist <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfopersist.asp>`_
|
||||
`MsiSummaryInfoGetProperty <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetproperty.asp>`_
|
||||
`MsiSummaryInfoGetPropertyCount <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfogetpropertycount.asp>`_
|
||||
`MsiSummaryInfoSetProperty <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfosetproperty.asp>`_
|
||||
`MsiSummaryInfoPersist <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msisummaryinfopersist.asp>`_
|
||||
|
||||
.. _record-objects:
|
||||
|
||||
|
@ -297,11 +297,11 @@ Record Objects
|
|||
|
||||
.. seealso::
|
||||
|
||||
`MsiRecordGetFieldCount <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordgetfieldcount.asp>`_
|
||||
`MsiRecordSetString <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstring.asp>`_
|
||||
`MsiRecordSetStream <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstream.asp>`_
|
||||
`MsiRecordSetInteger <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetinteger.asp>`_
|
||||
`MsiRecordClear <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordclear.asp>`_
|
||||
`MsiRecordGetFieldCount <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordgetfieldcount.asp>`_
|
||||
`MsiRecordSetString <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstring.asp>`_
|
||||
`MsiRecordSetStream <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetstream.asp>`_
|
||||
`MsiRecordSetInteger <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordsetinteger.asp>`_
|
||||
`MsiRecordClear <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/msirecordclear.asp>`_
|
||||
|
||||
.. _msi-errors:
|
||||
|
||||
|
@ -393,10 +393,10 @@ Directory Objects
|
|||
|
||||
.. seealso::
|
||||
|
||||
`Directory Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/directory_table.asp>`_
|
||||
`File Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/file_table.asp>`_
|
||||
`Component Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/component_table.asp>`_
|
||||
`FeatureComponents Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/featurecomponents_table.asp>`_
|
||||
`Directory Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/directory_table.asp>`_
|
||||
`File Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/file_table.asp>`_
|
||||
`Component Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/component_table.asp>`_
|
||||
`FeatureComponents Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/featurecomponents_table.asp>`_
|
||||
|
||||
.. _features:
|
||||
|
||||
|
@ -421,7 +421,7 @@ Features
|
|||
|
||||
.. seealso::
|
||||
|
||||
`Feature Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/feature_table.asp>`_
|
||||
`Feature Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/feature_table.asp>`_
|
||||
|
||||
.. _msi-gui:
|
||||
|
||||
|
@ -516,13 +516,13 @@ for installing Python packages.
|
|||
|
||||
.. seealso::
|
||||
|
||||
`Dialog Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/dialog_table.asp>`_
|
||||
`Control Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/control_table.asp>`_
|
||||
`Control Types <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controls.asp>`_
|
||||
`ControlCondition Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlcondition_table.asp>`_
|
||||
`ControlEvent Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlevent_table.asp>`_
|
||||
`EventMapping Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/eventmapping_table.asp>`_
|
||||
`RadioButton Table <http://msdn.microsoft.com/library?url=/library/en-us/msi/setup/radiobutton_table.asp>`_
|
||||
`Dialog Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/dialog_table.asp>`_
|
||||
`Control Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/control_table.asp>`_
|
||||
`Control Types <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controls.asp>`_
|
||||
`ControlCondition Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlcondition_table.asp>`_
|
||||
`ControlEvent Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/controlevent_table.asp>`_
|
||||
`EventMapping Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/eventmapping_table.asp>`_
|
||||
`RadioButton Table <https://msdn.microsoft.com/library?url=/library/en-us/msi/setup/radiobutton_table.asp>`_
|
||||
|
||||
.. _msi-tables:
|
||||
|
||||
|
|
|
@ -894,7 +894,7 @@ The following constants are options for the *flags* parameter to the
|
|||
:func:`~os.open` function. They can be combined using the bitwise OR operator
|
||||
``|``. Some of them are not available on all platforms. For descriptions of
|
||||
their availability and use, consult the :manpage:`open(2)` manual page on Unix
|
||||
or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windows.
|
||||
or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windows.
|
||||
|
||||
|
||||
.. data:: O_RDONLY
|
||||
|
@ -1922,9 +1922,9 @@ features:
|
|||
and
|
||||
`readdir() <http://pubs.opengroup.org/onlinepubs/009695399/functions/readdir_r.html>`_
|
||||
functions. On Windows, it uses the Win32
|
||||
`FindFirstFileW <http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx>`_
|
||||
`FindFirstFileW <https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx>`_
|
||||
and
|
||||
`FindNextFileW <http://msdn.microsoft.com/en-us/library/windows/desktop/aa364428(v=vs.85).aspx>`_
|
||||
`FindNextFileW <https://msdn.microsoft.com/en-us/library/windows/desktop/aa364428(v=vs.85).aspx>`_
|
||||
functions.
|
||||
|
||||
.. versionadded:: 3.5
|
||||
|
|
|
@ -8,33 +8,33 @@ available for Python:
|
|||
|
||||
.. seealso::
|
||||
|
||||
`PyGObject <https://live.gnome.org/PyGObject>`_
|
||||
`PyGObject <https://wiki.gnome.org/Projects/PyGObject>`_
|
||||
provides introspection bindings for C libraries using
|
||||
`GObject <https://developer.gnome.org/gobject/stable/>`_. One of
|
||||
these libraries is the `GTK+ 3 <http://www.gtk.org/>`_ widget set.
|
||||
GTK+ comes with many more widgets than Tkinter provides. An online
|
||||
`Python GTK+ 3 Tutorial <http://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_
|
||||
`Python GTK+ 3 Tutorial <https://python-gtk-3-tutorial.readthedocs.org/en/latest/>`_
|
||||
is available.
|
||||
|
||||
`PyGTK <http://www.pygtk.org/>`_ provides bindings for an older version
|
||||
of the library, GTK+ 2. It provides an object oriented interface that
|
||||
is slightly higher level than the C one. There are also bindings to
|
||||
`GNOME <http://www.gnome.org>`_. An online `tutorial
|
||||
`GNOME <https://www.gnome.org/>`_. An online `tutorial
|
||||
<http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
|
||||
|
||||
`PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_
|
||||
`PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_
|
||||
PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an
|
||||
extensive C++ GUI application development framework that is
|
||||
available for Unix, Windows and Mac OS X. :program:`sip` is a tool
|
||||
for generating bindings for C++ libraries as Python classes, and
|
||||
is specifically designed for Python. The *PyQt3* bindings have a
|
||||
book, `GUI Programming with Python: QT Edition
|
||||
<http://www.commandprompt.com/community/pyqt/>`_ by Boudewijn
|
||||
<https://www.commandprompt.com/community/pyqt/>`_ by Boudewijn
|
||||
Rempt. The *PyQt4* bindings also have a book, `Rapid GUI Programming
|
||||
with Python and Qt <http://www.qtrac.eu/pyqtbook.html>`_, by Mark
|
||||
Summerfield.
|
||||
|
||||
`PySide <http://qt-project.org/wiki/PySide>`_
|
||||
`PySide <https://wiki.qt.io/PySide>`_
|
||||
is a newer binding to the Qt toolkit, provided by Nokia.
|
||||
Compared to PyQt, its licensing scheme is friendlier to non-open source
|
||||
applications.
|
||||
|
@ -50,7 +50,7 @@ available for Python:
|
|||
low-level device context drawing, drag and drop, system clipboard access,
|
||||
an XML-based resource format and more, including an ever growing library
|
||||
of user-contributed modules. wxPython has a book, `wxPython in Action
|
||||
<http://www.manning.com/rappin/>`_, by Noel Rappin and
|
||||
<https://www.manning.com/books/wxpython-in-action>`_, by Noel Rappin and
|
||||
Robin Dunn.
|
||||
|
||||
PyGTK, PyQt, and wxPython, all have a modern look and feel and more
|
||||
|
|
|
@ -267,7 +267,7 @@ Alternative Generator:
|
|||
|
||||
|
||||
`Complementary-Multiply-with-Carry recipe
|
||||
<http://code.activestate.com/recipes/576707/>`_ for a compatible alternative
|
||||
<https://code.activestate.com/recipes/576707/>`_ for a compatible alternative
|
||||
random number generator with a long period and comparatively simple update
|
||||
operations.
|
||||
|
||||
|
|
|
@ -1389,7 +1389,7 @@ functionally identical:
|
|||
Writing a Tokenizer
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
A `tokenizer or scanner <http://en.wikipedia.org/wiki/Lexical_analysis>`_
|
||||
A `tokenizer or scanner <https://en.wikipedia.org/wiki/Lexical_analysis>`_
|
||||
analyzes a string to categorize groups of characters. This is a useful first
|
||||
step in writing a compiler or interpreter.
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ Two additional methods are supported:
|
|||
|
||||
.. seealso::
|
||||
|
||||
`Persistent dictionary recipe <http://code.activestate.com/recipes/576642/>`_
|
||||
`Persistent dictionary recipe <https://code.activestate.com/recipes/576642/>`_
|
||||
with widely supported storage formats and having the speed of native
|
||||
dictionaries.
|
||||
|
||||
|
@ -137,7 +137,7 @@ Restrictions
|
|||
A subclass of :class:`Shelf` which exposes :meth:`first`, :meth:`!next`,
|
||||
:meth:`previous`, :meth:`last` and :meth:`set_location` which are available
|
||||
in the third-party :mod:`bsddb` module from `pybsddb
|
||||
<http://www.jcea.es/programacion/pybsddb.htm>`_ but not in other database
|
||||
<https://www.jcea.es/programacion/pybsddb.htm>`_ but not in other database
|
||||
modules. The *dict* object passed to the constructor must support those
|
||||
methods. This is generally accomplished by calling one of
|
||||
:func:`bsddb.hashopen`, :func:`bsddb.btopen` or :func:`bsddb.rnopen`. The
|
||||
|
|
|
@ -983,7 +983,7 @@ to sockets.
|
|||
|
||||
The :meth:`ioctl` method is a limited interface to the WSAIoctl system
|
||||
interface. Please refer to the `Win32 documentation
|
||||
<http://msdn.microsoft.com/en-us/library/ms741621%28VS.85%29.aspx>`_ for more
|
||||
<https://msdn.microsoft.com/en-us/library/ms741621%28VS.85%29.aspx>`_ for more
|
||||
information.
|
||||
|
||||
On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl`
|
||||
|
|
|
@ -206,7 +206,7 @@ instead.
|
|||
|
||||
The *ciphers* parameter sets the available ciphers for this SSL object.
|
||||
It should be a string in the `OpenSSL cipher list format
|
||||
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`_.
|
||||
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT>`_.
|
||||
|
||||
The parameter ``do_handshake_on_connect`` specifies whether to do the SSL
|
||||
handshake automatically after doing a :meth:`socket.connect`, or whether the
|
||||
|
@ -296,7 +296,7 @@ Random generation
|
|||
|
||||
Read the Wikipedia article, `Cryptographically secure pseudorandom number
|
||||
generator (CSPRNG)
|
||||
<http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator>`_,
|
||||
<https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator>`_,
|
||||
to get the requirements of a cryptographically generator.
|
||||
|
||||
.. versionadded:: 3.3
|
||||
|
@ -721,7 +721,7 @@ Constants
|
|||
|
||||
Whether the OpenSSL library has built-in support for *Next Protocol
|
||||
Negotiation* as described in the `NPN draft specification
|
||||
<http://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. When true,
|
||||
<https://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. When true,
|
||||
you can use the :meth:`SSLContext.set_npn_protocols` method to advertise
|
||||
which protocols you want to support.
|
||||
|
||||
|
@ -1212,7 +1212,7 @@ to speed up repeated connections from the same clients.
|
|||
|
||||
Set the available ciphers for sockets created with this context.
|
||||
It should be a string in the `OpenSSL cipher list format
|
||||
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`_.
|
||||
<http://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT>`_.
|
||||
If no cipher can be selected (because compile-time options or other
|
||||
configuration forbids use of all the specified ciphers), an
|
||||
:class:`SSLError` will be raised.
|
||||
|
@ -1241,7 +1241,7 @@ to speed up repeated connections from the same clients.
|
|||
handshake. It should be a list of strings, like ``['http/1.1', 'spdy/2']``,
|
||||
ordered by preference. The selection of a protocol will happen during the
|
||||
handshake, and will play out according to the `NPN draft specification
|
||||
<http://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. After a
|
||||
<https://tools.ietf.org/html/draft-agl-tls-nextprotoneg>`_. After a
|
||||
successful handshake, the :meth:`SSLSocket.selected_npn_protocol` method will
|
||||
return the agreed-upon protocol.
|
||||
|
||||
|
@ -2019,7 +2019,7 @@ enabled when negotiating a SSL session is possible through the
|
|||
:meth:`SSLContext.set_ciphers` method. Starting from Python 3.2.3, the
|
||||
ssl module disables certain weak ciphers by default, but you may want
|
||||
to further restrict the cipher choice. Be sure to read OpenSSL's documentation
|
||||
about the `cipher list format <http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT>`_.
|
||||
about the `cipher list format <http://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT>`_.
|
||||
If you want to check which ciphers are enabled by a given cipher list, use the
|
||||
``openssl ciphers`` command on your system.
|
||||
|
||||
|
@ -2040,25 +2040,25 @@ successful call of :func:`~ssl.RAND_add`, :func:`~ssl.RAND_bytes` or
|
|||
Class :class:`socket.socket`
|
||||
Documentation of underlying :mod:`socket` class
|
||||
|
||||
`SSL/TLS Strong Encryption: An Introduction <http://httpd.apache.org/docs/trunk/en/ssl/ssl_intro.html>`_
|
||||
`SSL/TLS Strong Encryption: An Introduction <https://httpd.apache.org/docs/trunk/en/ssl/ssl_intro.html>`_
|
||||
Intro from the Apache webserver documentation
|
||||
|
||||
`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <http://www.ietf.org/rfc/rfc1422>`_
|
||||
`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management <https://www.ietf.org/rfc/rfc1422>`_
|
||||
Steve Kent
|
||||
|
||||
`RFC 1750: Randomness Recommendations for Security <http://www.ietf.org/rfc/rfc1750>`_
|
||||
`RFC 1750: Randomness Recommendations for Security <https://www.ietf.org/rfc/rfc1750>`_
|
||||
D. Eastlake et. al.
|
||||
|
||||
`RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile <http://www.ietf.org/rfc/rfc3280>`_
|
||||
`RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile <https://www.ietf.org/rfc/rfc3280>`_
|
||||
Housley et. al.
|
||||
|
||||
`RFC 4366: Transport Layer Security (TLS) Extensions <http://www.ietf.org/rfc/rfc4366>`_
|
||||
`RFC 4366: Transport Layer Security (TLS) Extensions <https://www.ietf.org/rfc/rfc4366>`_
|
||||
Blake-Wilson et. al.
|
||||
|
||||
`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <http://tools.ietf.org/html/rfc5246>`_
|
||||
`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 <https://tools.ietf.org/html/rfc5246>`_
|
||||
T. Dierks et. al.
|
||||
|
||||
`RFC 6066: Transport Layer Security (TLS) Extensions <http://tools.ietf.org/html/rfc6066>`_
|
||||
`RFC 6066: Transport Layer Security (TLS) Extensions <https://tools.ietf.org/html/rfc6066>`_
|
||||
D. Eastlake
|
||||
|
||||
`IANA TLS: Transport Layer Security (TLS) Parameters <http://www.iana.org/assignments/tls-parameters/tls-parameters.xml>`_
|
||||
|
|
|
@ -403,7 +403,7 @@ See the \*BSD or Mac OS systems man page :manpage:`chflags(2)` for more informat
|
|||
On Windows, the following file attribute constants are available for use when
|
||||
testing bits in the ``st_file_attributes`` member returned by :func:`os.stat`.
|
||||
See the `Windows API documentation
|
||||
<http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117.aspx>`_
|
||||
<https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117.aspx>`_
|
||||
for more detail on the meaning of these constants.
|
||||
|
||||
.. data:: FILE_ATTRIBUTE_ARCHIVE
|
||||
|
|
|
@ -475,7 +475,7 @@ functions.
|
|||
execute. On Windows, in order to run a `side-by-side assembly`_ the
|
||||
specified *env* **must** include a valid :envvar:`SystemRoot`.
|
||||
|
||||
.. _side-by-side assembly: http://en.wikipedia.org/wiki/Side-by-Side_Assembly
|
||||
.. _side-by-side assembly: https://en.wikipedia.org/wiki/Side-by-Side_Assembly
|
||||
|
||||
If *universal_newlines* is ``True``, the file objects *stdin*, *stdout*
|
||||
and *stderr* are opened as text streams in universal newlines mode, as
|
||||
|
@ -536,7 +536,7 @@ including shell metacharacters, can safely be passed to child processes.
|
|||
If the shell is invoked explicitly, via ``shell=True``, it is the application's
|
||||
responsibility to ensure that all whitespace and metacharacters are
|
||||
quoted appropriately to avoid
|
||||
`shell injection <http://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
|
||||
`shell injection <https://en.wikipedia.org/wiki/Shell_injection#Shell_injection>`_
|
||||
vulnerabilities.
|
||||
|
||||
When using ``shell=True``, the :func:`shlex.quote` function can be
|
||||
|
@ -721,7 +721,7 @@ on Windows.
|
|||
.. class:: STARTUPINFO()
|
||||
|
||||
Partial support of the Windows
|
||||
`STARTUPINFO <http://msdn.microsoft.com/en-us/library/ms686331(v=vs.85).aspx>`__
|
||||
`STARTUPINFO <https://msdn.microsoft.com/en-us/library/ms686331(v=vs.85).aspx>`__
|
||||
structure is used for :class:`Popen` creation.
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
@ -757,7 +757,7 @@ on Windows.
|
|||
If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute
|
||||
can be any of the values that can be specified in the ``nCmdShow``
|
||||
parameter for the
|
||||
`ShowWindow <http://msdn.microsoft.com/en-us/library/ms633548(v=vs.85).aspx>`__
|
||||
`ShowWindow <https://msdn.microsoft.com/en-us/library/ms633548(v=vs.85).aspx>`__
|
||||
function, except for ``SW_SHOWDEFAULT``. Otherwise, this attribute is
|
||||
ignored.
|
||||
|
||||
|
|
|
@ -661,7 +661,7 @@ The :mod:`test.support` module defines the following classes:
|
|||
are expected to crash a subprocess.
|
||||
|
||||
On Windows, it disables Windows Error Reporting dialogs using
|
||||
`SetErrorMode <http://msdn.microsoft.com/en-us/library/windows/desktop/ms680621.aspx>`_.
|
||||
`SetErrorMode <https://msdn.microsoft.com/en-us/library/windows/desktop/ms680621.aspx>`_.
|
||||
|
||||
On UNIX, :func:`resource.setrlimit` is used to set
|
||||
:attr:`resource.RLIMIT_CORE`'s soft limit to 0 to prevent coredump file
|
||||
|
|
|
@ -31,13 +31,13 @@ this should open a window demonstrating a simple Tk interface.
|
|||
`Tcl/Tk manual <http://www.tcl.tk/man/tcl8.5/>`_
|
||||
Official manual for the latest tcl/tk version.
|
||||
|
||||
`Programming Python <http://www.rmi.net/~lutz/about-pp4e.html>`_
|
||||
`Programming Python <http://learning-python.com/books/about-pp4e.html>`_
|
||||
Book by Mark Lutz, has excellent coverage of Tkinter.
|
||||
|
||||
`Modern Tkinter for Busy Python Developers <http://www.amazon.com/Modern-Tkinter-Python-Developers-ebook/dp/B0071QDNLO/>`_
|
||||
Book by Mark Rozerman about building attractive and modern graphical user interfaces with Python and Tkinter.
|
||||
|
||||
`Python and Tkinter Programming <http://www.manning.com/grayson/>`_
|
||||
`Python and Tkinter Programming <https://www.manning.com/books/python-and-tkinter-programming>`_
|
||||
The book by John Grayson (ISBN 1-884777-81-3).
|
||||
|
||||
|
||||
|
|
|
@ -549,7 +549,7 @@ Calls to the date constructor are recorded in the ``mock_date`` attributes
|
|||
|
||||
An alternative way of dealing with mocking dates, or other builtin classes,
|
||||
is discussed in `this blog entry
|
||||
<http://www.williamjohnbert.com/2011/07/how-to-unit-testing-in-django-with-mocking-and-patching/>`_.
|
||||
<http://williambert.online/2011/07/how-to-unit-testing-in-django-with-mocking-and-patching/>`_.
|
||||
|
||||
|
||||
Mocking a Generator Method
|
||||
|
@ -1251,7 +1251,7 @@ With a bit of tweaking you could have the comparison function raise the
|
|||
:exc:`AssertionError` directly and provide a more useful failure message.
|
||||
|
||||
As of version 1.5, the Python testing library `PyHamcrest
|
||||
<https://pypi.python.org/pypi/PyHamcrest>`_ provides similar functionality,
|
||||
<https://pyhamcrest.readthedocs.org/>`_ provides similar functionality,
|
||||
that may be useful here, in the form of its equality matcher
|
||||
(`hamcrest.library.integration.match_equality
|
||||
<http://pyhamcrest.readthedocs.org/en/stable/integration/#module-hamcrest.library.integration.match_equality>`_).
|
||||
<https://pyhamcrest.readthedocs.org/en/release-1.8/integration/#module-hamcrest.library.integration.match_equality>`_).
|
||||
|
|
|
@ -14,7 +14,7 @@ authentication, redirections, cookies and more.
|
|||
|
||||
.. seealso::
|
||||
|
||||
The `Requests package <http://requests.readthedocs.org/>`_
|
||||
The `Requests package <https://requests.readthedocs.org/>`_
|
||||
is recommended for a higher-level http client interface.
|
||||
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ This module offers the following functions:
|
|||
The :func:`DeleteKeyEx` function is implemented with the RegDeleteKeyEx
|
||||
Windows API function, which is specific to 64-bit versions of Windows.
|
||||
See the `RegDeleteKeyEx documentation
|
||||
<http://msdn.microsoft.com/en-us/library/ms724847%28VS.85%29.aspx>`__.
|
||||
<https://msdn.microsoft.com/en-us/library/ms724847%28VS.85%29.aspx>`__.
|
||||
|
||||
*key* is an already open key, or one of the predefined
|
||||
:ref:`HKEY_* constants <hkey-constants>`.
|
||||
|
@ -268,7 +268,7 @@ This module offers the following functions:
|
|||
A call to :func:`LoadKey` fails if the calling process does not have the
|
||||
:const:`SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different
|
||||
from permissions -- see the `RegLoadKey documentation
|
||||
<http://msdn.microsoft.com/en-us/library/ms724889%28v=VS.85%29.aspx>`__ for
|
||||
<https://msdn.microsoft.com/en-us/library/ms724889%28v=VS.85%29.aspx>`__ for
|
||||
more details.
|
||||
|
||||
If *key* is a handle returned by :func:`ConnectRegistry`, then the path
|
||||
|
@ -383,7 +383,7 @@ This module offers the following functions:
|
|||
possess the :const:`SeBackupPrivilege` security privilege. Note that
|
||||
privileges are different than permissions -- see the
|
||||
`Conflicts Between User Rights and Permissions documentation
|
||||
<http://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__
|
||||
<https://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__
|
||||
for more details.
|
||||
|
||||
This function passes NULL for *security_attributes* to the API.
|
||||
|
@ -547,7 +547,7 @@ Access Rights
|
|||
+++++++++++++
|
||||
|
||||
For more information, see `Registry Key Security and Access
|
||||
<http://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__.
|
||||
<https://msdn.microsoft.com/en-us/library/ms724878%28v=VS.85%29.aspx>`__.
|
||||
|
||||
.. data:: KEY_ALL_ACCESS
|
||||
|
||||
|
@ -602,7 +602,7 @@ For more information, see `Registry Key Security and Access
|
|||
***************
|
||||
|
||||
For more information, see `Accessing an Alternate Registry View
|
||||
<http://msdn.microsoft.com/en-us/library/aa384129(v=VS.85).aspx>`__.
|
||||
<https://msdn.microsoft.com/en-us/library/aa384129(v=VS.85).aspx>`__.
|
||||
|
||||
.. data:: KEY_WOW64_64KEY
|
||||
|
||||
|
@ -621,7 +621,7 @@ Value Types
|
|||
+++++++++++
|
||||
|
||||
For more information, see `Registry Value Types
|
||||
<http://msdn.microsoft.com/en-us/library/ms724884%28v=VS.85%29.aspx>`__.
|
||||
<https://msdn.microsoft.com/en-us/library/ms724884%28v=VS.85%29.aspx>`__.
|
||||
|
||||
.. data:: REG_BINARY
|
||||
|
||||
|
|
|
@ -24,8 +24,8 @@ for implementing WSGI servers, a demo HTTP server that serves WSGI applications,
|
|||
and a validation tool that checks WSGI servers and applications for conformance
|
||||
to the WSGI specification (:pep:`3333`).
|
||||
|
||||
See http://www.wsgi.org for more information about WSGI, and links to tutorials
|
||||
and other resources.
|
||||
See https://wsgi.readthedocs.org/ for more information about WSGI, and links to
|
||||
tutorials and other resources.
|
||||
|
||||
.. XXX If you're just trying to write a web application...
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ kind sax etree minidom pulldom xmlrpc
|
|||
billion laughs **Yes** **Yes** **Yes** **Yes** **Yes**
|
||||
quadratic blowup **Yes** **Yes** **Yes** **Yes** **Yes**
|
||||
external entity expansion **Yes** No (1) No (2) **Yes** No (3)
|
||||
DTD retrieval **Yes** No No **Yes** No
|
||||
`DTD`_ retrieval **Yes** No No **Yes** No
|
||||
decompression bomb No No No No **Yes**
|
||||
========================= ======== ========= ========= ======== =========
|
||||
|
||||
|
@ -92,7 +92,7 @@ external entity expansion
|
|||
also point to external resources or local files. The XML
|
||||
parser accesses the resource and embeds the content into the XML document.
|
||||
|
||||
DTD retrieval
|
||||
`DTD`_ retrieval
|
||||
Some XML libraries like Python's :mod:`xml.dom.pulldom` retrieve document type
|
||||
definitions from remote or local locations. The feature has similar
|
||||
implications as the external entity expansion issue.
|
||||
|
@ -128,6 +128,6 @@ Python because they break backward compatibility.
|
|||
|
||||
.. _defusedxml: https://pypi.python.org/pypi/defusedxml/
|
||||
.. _defusedexpat: https://pypi.python.org/pypi/defusedexpat/
|
||||
.. _Billion Laughs: http://en.wikipedia.org/wiki/Billion_laughs
|
||||
.. _ZIP bomb: http://en.wikipedia.org/wiki/Zip_bomb
|
||||
.. _DTD: http://en.wikipedia.org/wiki/Document_Type_Definition
|
||||
.. _Billion Laughs: https://en.wikipedia.org/wiki/Billion_laughs
|
||||
.. _ZIP bomb: https://en.wikipedia.org/wiki/Zip_bomb
|
||||
.. _DTD: https://en.wikipedia.org/wiki/Document_type_definition
|
||||
|
|
|
@ -142,7 +142,7 @@ between conformable Python objects and XML on the wire.
|
|||
`XML-RPC Introspection <http://xmlrpc-c.sourceforge.net/introspection.html>`_
|
||||
Describes the XML-RPC protocol extension for introspection.
|
||||
|
||||
`XML-RPC Specification <http://www.xmlrpc.com/spec>`_
|
||||
`XML-RPC Specification <http://xmlrpc.scripting.com/spec.html>`_
|
||||
The official specification.
|
||||
|
||||
`Unofficial XML-RPC Errata <http://effbot.org/zone/xmlrpc-errata.htm>`_
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
The ZIP file format is a common archive and compression standard. This module
|
||||
provides tools to create, read, write, append, and list a ZIP file. Any
|
||||
advanced use of this module will require an understanding of the format, as
|
||||
defined in `PKZIP Application Note
|
||||
<http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_.
|
||||
defined in `PKZIP Application Note`_.
|
||||
|
||||
This module does not currently handle multi-disk ZIP files.
|
||||
It can handle ZIP files that use the ZIP64 extensions
|
||||
|
@ -115,7 +114,7 @@ The module defines the following items:
|
|||
|
||||
.. seealso::
|
||||
|
||||
`PKZIP Application Note <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_
|
||||
`PKZIP Application Note`_
|
||||
Documentation on the ZIP file format by Phil Katz, the creator of the format and
|
||||
algorithms used.
|
||||
|
||||
|
@ -527,8 +526,7 @@ Instances have the following attributes:
|
|||
|
||||
.. attribute:: ZipInfo.extra
|
||||
|
||||
Expansion field data. The `PKZIP Application Note
|
||||
<http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_ contains
|
||||
Expansion field data. The `PKZIP Application Note`_ contains
|
||||
some comments on the internal structure of the data contained in this string.
|
||||
|
||||
|
||||
|
@ -591,10 +589,5 @@ Instances have the following attributes:
|
|||
|
||||
Size of the uncompressed file.
|
||||
|
||||
There is one method:
|
||||
|
||||
.. method:: ZipInfo.is_dir()
|
||||
|
||||
Return ``True`` if the ZipInfo represents a directory.
|
||||
|
||||
.. versionadded:: 3.6
|
||||
.. _PKZIP Application Note: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
|
||||
|
|
|
@ -30,7 +30,7 @@ ZIP archives with an archive comment are currently not supported.
|
|||
|
||||
.. seealso::
|
||||
|
||||
`PKZIP Application Note <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_
|
||||
`PKZIP Application Note <https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT>`_
|
||||
Documentation on the ZIP file format by Phil Katz, the creator of the format and
|
||||
algorithms used.
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ Mac OS X. Packages and documentation are available from http://www.wxpython.org.
|
|||
|
||||
*PyQt* is another popular cross-platform GUI toolkit that runs natively on Mac
|
||||
OS X. More information can be found at
|
||||
http://www.riverbankcomputing.co.uk/software/pyqt/intro.
|
||||
https://riverbankcomputing.com/software/pyqt/intro.
|
||||
|
||||
|
||||
Distributing Python Applications on the Mac
|
||||
|
|
|
@ -26,11 +26,11 @@ following links:
|
|||
|
||||
.. seealso::
|
||||
|
||||
http://www.debian.org/doc/manuals/maint-guide/first.en.html
|
||||
https://www.debian.org/doc/manuals/maint-guide/first.en.html
|
||||
for Debian users
|
||||
http://en.opensuse.org/Portal:Packaging
|
||||
https://en.opensuse.org/Portal:Packaging
|
||||
for OpenSuse users
|
||||
http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html
|
||||
https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html
|
||||
for Fedora users
|
||||
http://www.slackbook.org/html/package-management-making-packages.html
|
||||
for Slackware users
|
||||
|
@ -65,7 +65,7 @@ Building Python
|
|||
===============
|
||||
|
||||
If you want to compile CPython yourself, first thing you should do is get the
|
||||
`source <https://www.python.org/download/source/>`_. You can download either the
|
||||
`source <https://www.python.org/downloads/source/>`_. You can download either the
|
||||
latest release's source or just grab a fresh `clone
|
||||
<https://docs.python.org/devguide/setup.html#getting-the-source-code>`_. (If you want
|
||||
to contribute patches, you will need a clone.)
|
||||
|
|
|
@ -251,12 +251,12 @@ Check :pep:`11` for details on all unsupported platforms.
|
|||
release/python>`_, `Maintainer releases
|
||||
<http://www.tishler.net/jason/software/python/>`_)
|
||||
|
||||
See `Python for Windows <https://www.python.org/download/windows/>`_
|
||||
See `Python for Windows <https://www.python.org/downloads/windows/>`_
|
||||
for detailed information about platforms with pre-compiled installers.
|
||||
|
||||
.. seealso::
|
||||
|
||||
`Python on XP <http://www.richarddooling.com/index.php/2006/03/14/python-on-xp-7-minutes-to-hello-world/>`_
|
||||
`Python on XP <http://dooling.com/index.php/2006/03/14/python-on-xp-7-minutes-to-hello-world/>`_
|
||||
"7 Minutes to "Hello World!""
|
||||
by Richard Dooling, 2006
|
||||
|
||||
|
@ -279,10 +279,10 @@ Besides the standard CPython distribution, there are modified packages including
|
|||
additional functionality. The following is a list of popular versions and their
|
||||
key features:
|
||||
|
||||
`ActivePython <http://www.activestate.com/activepython/>`_
|
||||
`ActivePython <https://www.activestate.com/activepython/>`_
|
||||
Installer with multi-platform compatibility, documentation, PyWin32
|
||||
|
||||
`Anaconda <http://www.continuum.io/downloads/>`_
|
||||
`Anaconda <https://www.continuum.io/downloads/>`_
|
||||
Popular scientific modules (such as numpy, scipy and pandas) and the
|
||||
``conda`` package manager.
|
||||
|
||||
|
@ -352,16 +352,16 @@ System variables, you need non-restricted access to your machine
|
|||
|
||||
.. seealso::
|
||||
|
||||
http://support.microsoft.com/kb/100843
|
||||
https://support.microsoft.com/kb/100843
|
||||
Environment variables in Windows NT
|
||||
|
||||
http://technet.microsoft.com/en-us/library/cc754250.aspx
|
||||
https://technet.microsoft.com/en-us/library/cc754250.aspx
|
||||
The SET command, for temporarily modifying environment variables
|
||||
|
||||
http://technet.microsoft.com/en-us/library/cc755104.aspx
|
||||
https://technet.microsoft.com/en-us/library/cc755104.aspx
|
||||
The SETX command, for permanently modifying environment variables
|
||||
|
||||
http://support.microsoft.com/kb/310519
|
||||
https://support.microsoft.com/kb/310519
|
||||
How To Manage Environment Variables in Windows XP
|
||||
|
||||
http://www.chem.gla.ac.uk/~louis/software/faq/q1.html
|
||||
|
@ -781,18 +781,18 @@ The Windows-specific standard modules are documented in
|
|||
PyWin32
|
||||
-------
|
||||
|
||||
The `PyWin32 <http://python.net/crew/mhammond/win32/>`_ module by Mark Hammond
|
||||
The `PyWin32 <https://pypi.python.org/pypi/pywin32>`_ module by Mark Hammond
|
||||
is a collection of modules for advanced Windows-specific support. This includes
|
||||
utilities for:
|
||||
|
||||
* `Component Object Model <http://www.microsoft.com/com/>`_ (COM)
|
||||
* `Component Object Model <https://www.microsoft.com/com/>`_ (COM)
|
||||
* Win32 API calls
|
||||
* Registry
|
||||
* Event log
|
||||
* `Microsoft Foundation Classes <http://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC)
|
||||
* `Microsoft Foundation Classes <https://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC)
|
||||
user interfaces
|
||||
|
||||
`PythonWin <http://web.archive.org/web/20060524042422/
|
||||
`PythonWin <https://web.archive.org/web/20060524042422/
|
||||
https://www.python.org/windows/pythonwin/>`_ is a sample MFC application
|
||||
shipped with PyWin32. It is an embeddable IDE with a built-in debugger.
|
||||
|
||||
|
@ -831,7 +831,7 @@ Compiling Python on Windows
|
|||
===========================
|
||||
|
||||
If you want to compile CPython yourself, first thing you should do is get the
|
||||
`source <https://www.python.org/download/source/>`_. You can download either the
|
||||
`source <https://www.python.org/downloads/source/>`_. You can download either the
|
||||
latest release's source or just grab a fresh `checkout
|
||||
<https://docs.python.org/devguide/setup.html#getting-the-source-code>`_.
|
||||
|
||||
|
@ -874,7 +874,7 @@ dependants, such as Idle), pip and the Python documentation are not included.
|
|||
.. note::
|
||||
|
||||
The embedded distribution does not include the `Microsoft C Runtime
|
||||
<http://www.microsoft.com/en-us/download/details.aspx?id=48145>`_ and it is
|
||||
<https://www.microsoft.com/en-us/download/details.aspx?id=48145>`_ and it is
|
||||
the responsibility of the application installer to provide this. The
|
||||
runtime may have already been installed on a user's system previously or
|
||||
automatically via Windows Update, and can be detected by finding
|
||||
|
|
|
@ -130,7 +130,7 @@ Guidelines":
|
|||
Read the rest of PEP 1 for the details of the PEP editorial process, style, and
|
||||
format. PEPs are kept in the Python CVS tree on SourceForge, though they're not
|
||||
part of the Python 2.0 distribution, and are also available in HTML form from
|
||||
https://www.python.org/peps/. As of September 2000, there are 25 PEPS, ranging
|
||||
https://www.python.org/dev/peps/. As of September 2000, there are 25 PEPS, ranging
|
||||
from PEP 201, "Lockstep Iteration", to PEP 225, "Elementwise/Objectwise
|
||||
Operators".
|
||||
|
||||
|
@ -337,7 +337,7 @@ comprehension below is a syntax error, while the second one is correct::
|
|||
[ (x,y) for x in seq1 for y in seq2]
|
||||
|
||||
The idea of list comprehensions originally comes from the functional programming
|
||||
language Haskell (http://www.haskell.org). Greg Ewing argued most effectively
|
||||
language Haskell (https://www.haskell.org). Greg Ewing argued most effectively
|
||||
for adding them to Python and wrote the initial list comprehension patch, which
|
||||
was then discussed for a seemingly endless time on the python-dev mailing list
|
||||
and kept up-to-date by Skip Montanaro.
|
||||
|
|
|
@ -562,7 +562,7 @@ You can start creating packages containing :file:`PKG-INFO` even if you're not
|
|||
using Python 2.1, since a new release of the Distutils will be made for users of
|
||||
earlier Python versions. Version 1.0.2 of the Distutils includes the changes
|
||||
described in PEP 241, as well as various bugfixes and enhancements. It will be
|
||||
available from the Distutils SIG at https://www.python.org/sigs/distutils-sig/.
|
||||
available from the Distutils SIG at https://www.python.org/community/sigs/current/distutils-sig/.
|
||||
|
||||
|
||||
.. seealso::
|
||||
|
|
|
@ -1080,9 +1080,9 @@ Here are all of the changes that Python 2.3 makes to the core Python language.
|
|||
hierarchy. Classic classes are unaffected by this change. Python 2.2
|
||||
originally used a topological sort of a class's ancestors, but 2.3 now uses the
|
||||
C3 algorithm as described in the paper `"A Monotonic Superclass Linearization
|
||||
for Dylan" <http://www.webcom.com/haahr/dylan/linearization-oopsla96.html>`_. To
|
||||
for Dylan" <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.3910>`_. To
|
||||
understand the motivation for this change, read Michele Simionato's article
|
||||
`"Python 2.3 Method Resolution Order" <https://www.python.org/2.3/mro.html>`_, or
|
||||
`"Python 2.3 Method Resolution Order" <http://www.phyast.pitt.edu/~micheles/mro.html>`_, or
|
||||
read the thread on python-dev starting with the message at
|
||||
https://mail.python.org/pipermail/python-dev/2002-October/029035.html. Samuele
|
||||
Pedroni first pointed out the problem and also implemented the fix by coding the
|
||||
|
@ -1306,7 +1306,7 @@ complete list of changes, or look through the CVS logs for all the details.
|
|||
partially sorted order such that, for every index *k*, ``heap[k] <=
|
||||
heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]``. This makes it quick to remove the
|
||||
smallest item, and inserting a new item while maintaining the heap property is
|
||||
O(lg n). (See http://www.nist.gov/dads/HTML/priorityque.html for more
|
||||
O(lg n). (See https://xlinux.nist.gov/dads//HTML/priorityque.html for more
|
||||
information about the priority queue data structure.)
|
||||
|
||||
The :mod:`heapq` module provides :func:`heappush` and :func:`heappop` functions
|
||||
|
@ -1949,7 +1949,7 @@ The RPM spec files, found in the :file:`Misc/RPM/` directory in the Python
|
|||
source distribution, were updated for 2.3. (Contributed by Sean Reifschneider.)
|
||||
|
||||
Other new platforms now supported by Python include AtheOS
|
||||
(http://www.atheos.cx/), GNU/Hurd, and OpenVMS.
|
||||
(http://atheos.cx/), GNU/Hurd, and OpenVMS.
|
||||
|
||||
.. ======================================================================
|
||||
|
||||
|
|
|
@ -337,7 +337,7 @@ returned.
|
|||
wrote patches implementing function decorators, but the one that was actually
|
||||
checked in was patch #979728, written by Mark Russell.
|
||||
|
||||
https://www.python.org/moin/PythonDecoratorLibrary
|
||||
https://wiki.python.org/moin/PythonDecoratorLibrary
|
||||
This Wiki page contains several examples of decorators.
|
||||
|
||||
.. ======================================================================
|
||||
|
@ -687,7 +687,7 @@ includes a quick-start tutorial and a reference.
|
|||
The article uses Fortran code to illustrate many of the problems that floating-
|
||||
point inaccuracy can cause.
|
||||
|
||||
http://www2.hursley.ibm.com/decimal/
|
||||
http://speleotrove.com/decimal/
|
||||
A description of a decimal-based representation. This representation is being
|
||||
proposed as a standard, and underlies the new Python decimal type. Much of this
|
||||
material was written by Mike Cowlishaw, designer of the Rexx language.
|
||||
|
@ -756,7 +756,7 @@ API that perform ASCII-only conversions, ignoring the locale setting:
|
|||
:c:type:`double` to an ASCII string.
|
||||
|
||||
The code for these functions came from the GLib library
|
||||
(http://library.gnome.org/devel/glib/stable/), whose developers kindly
|
||||
(https://developer.gnome.org/glib/stable/), whose developers kindly
|
||||
relicensed the relevant functions and donated them to the Python Software
|
||||
Foundation. The :mod:`locale` module can now change the numeric locale,
|
||||
letting extensions such as GTK+ produce the correct results.
|
||||
|
|
|
@ -330,7 +330,7 @@ statement, only the ``from ... import`` form.
|
|||
:pep:`328` - Imports: Multi-Line and Absolute/Relative
|
||||
PEP written by Aahz; implemented by Thomas Wouters.
|
||||
|
||||
http://codespeak.net/py/current/doc/index.html
|
||||
https://pylib.readthedocs.org/
|
||||
The py library by Holger Krekel, which contains the :mod:`py.std` package.
|
||||
|
||||
.. ======================================================================
|
||||
|
@ -547,7 +547,7 @@ exhausted.
|
|||
Earlier versions of these features were proposed in :pep:`288` by Raymond
|
||||
Hettinger and :pep:`325` by Samuele Pedroni.
|
||||
|
||||
http://en.wikipedia.org/wiki/Coroutine
|
||||
https://en.wikipedia.org/wiki/Coroutine
|
||||
The Wikipedia entry for coroutines.
|
||||
|
||||
http://www.sidhe.org/~dan/blog/archives/000178.html
|
||||
|
@ -2088,7 +2088,7 @@ Changes to Python's build process and to the C API include:
|
|||
provided the results of their examination of the Python source code. The
|
||||
analysis found about 60 bugs that were quickly fixed. Many of the bugs were
|
||||
refcounting problems, often occurring in error-handling code. See
|
||||
http://scan.coverity.com for the statistics.
|
||||
https://scan.coverity.com for the statistics.
|
||||
|
||||
* The largest change to the C API came from :pep:`353`, which modifies the
|
||||
interpreter to use a :c:type:`Py_ssize_t` type definition instead of
|
||||
|
|
|
@ -153,8 +153,8 @@ The infrastructure committee of the Python Software Foundation
|
|||
therefore posted a call for issue trackers, asking volunteers to set
|
||||
up different products and import some of the bugs and patches from
|
||||
SourceForge. Four different trackers were examined: `Jira
|
||||
<http://www.atlassian.com/software/jira/>`__,
|
||||
`Launchpad <http://www.launchpad.net>`__,
|
||||
<https://www.atlassian.com/software/jira/>`__,
|
||||
`Launchpad <https://www.launchpad.net>`__,
|
||||
`Roundup <http://roundup.sourceforge.net/>`__, and
|
||||
`Trac <http://trac.edgewall.org/>`__.
|
||||
The committee eventually settled on Jira
|
||||
|
@ -217,7 +217,7 @@ the time required to finish the job.
|
|||
During the 2.6 development cycle, Georg Brandl put a lot of effort
|
||||
into building a new toolchain for processing the documentation. The
|
||||
resulting package is called Sphinx, and is available from
|
||||
http://sphinx.pocoo.org/.
|
||||
http://sphinx-doc.org/.
|
||||
|
||||
Sphinx concentrates on HTML output, producing attractively styled and
|
||||
modern HTML; printed output is still supported through conversion to
|
||||
|
@ -1796,7 +1796,7 @@ changes, or look through the Subversion logs for all the details.
|
|||
* The :mod:`bsddb` module also has a new maintainer, Jesús Cea Avión, and the package
|
||||
is now available as a standalone package. The web page for the package is
|
||||
`www.jcea.es/programacion/pybsddb.htm
|
||||
<http://www.jcea.es/programacion/pybsddb.htm>`__.
|
||||
<https://www.jcea.es/programacion/pybsddb.htm>`__.
|
||||
The plan is to remove the package from the standard library
|
||||
in Python 3.0, because its pace of releases is much more frequent than
|
||||
Python's.
|
||||
|
@ -1926,7 +1926,7 @@ changes, or look through the Subversion logs for all the details.
|
|||
the left to six places. (Contributed by Skip Montanaro; :issue:`1158`.)
|
||||
|
||||
* The :mod:`decimal` module was updated to version 1.66 of
|
||||
`the General Decimal Specification <http://www2.hursley.ibm.com/decimal/decarith.html>`__. New features
|
||||
`the General Decimal Specification <http://speleotrove.com/decimal/decarith.html>`__. New features
|
||||
include some methods for some basic mathematical functions such as
|
||||
:meth:`exp` and :meth:`log10`::
|
||||
|
||||
|
|
|
@ -1029,7 +1029,7 @@ changes, or look through the Subversion logs for all the details.
|
|||
|
||||
* Updated module: the :mod:`bsddb` module has been updated from 4.7.2devel9
|
||||
to version 4.8.4 of
|
||||
`the pybsddb package <http://www.jcea.es/programacion/pybsddb.htm>`__.
|
||||
`the pybsddb package <https://www.jcea.es/programacion/pybsddb.htm>`__.
|
||||
The new version features better Python 3.x compatibility, various bug fixes,
|
||||
and adds several new BerkeleyDB flags and methods.
|
||||
(Updated by Jesús Cea Avión; :issue:`8156`. The pybsddb
|
||||
|
@ -1513,7 +1513,7 @@ changes, or look through the Subversion logs for all the details.
|
|||
(Contributed by Kristján Valur Jónsson; :issue:`6192` and :issue:`6267`.)
|
||||
|
||||
* Updated module: the :mod:`sqlite3` module has been updated to
|
||||
version 2.6.0 of the `pysqlite package <http://code.google.com/p/pysqlite/>`__. Version 2.6.0 includes a number of bugfixes, and adds
|
||||
version 2.6.0 of the `pysqlite package <https://github.com/ghaering/pysqlite>`__. Version 2.6.0 includes a number of bugfixes, and adds
|
||||
the ability to load SQLite extensions from shared libraries.
|
||||
Call the ``enable_load_extension(True)`` method to enable extensions,
|
||||
and then call :meth:`~sqlite3.Connection.load_extension` to load a particular shared library.
|
||||
|
|
|
@ -565,7 +565,7 @@ review:
|
|||
core standard library has proved over time to be a particular burden
|
||||
for the core developers due to testing instability and Berkeley DB's
|
||||
release schedule. However, the package is alive and well,
|
||||
externally maintained at http://www.jcea.es/programacion/pybsddb.htm.
|
||||
externally maintained at https://www.jcea.es/programacion/pybsddb.htm.
|
||||
|
||||
* Some modules were renamed because their old name disobeyed
|
||||
:pep:`0008`, or for various other reasons. Here's the list:
|
||||
|
|
|
@ -845,9 +845,9 @@ collections
|
|||
|
||||
* The :class:`collections.Counter` class now has two forms of in-place
|
||||
subtraction, the existing *-=* operator for `saturating subtraction
|
||||
<http://en.wikipedia.org/wiki/Saturation_arithmetic>`_ and the new
|
||||
<https://en.wikipedia.org/wiki/Saturation_arithmetic>`_ and the new
|
||||
:meth:`~collections.Counter.subtract` method for regular subtraction. The
|
||||
former is suitable for `multisets <http://en.wikipedia.org/wiki/Multiset>`_
|
||||
former is suitable for `multisets <https://en.wikipedia.org/wiki/Multiset>`_
|
||||
which only have positive counts, and the latter is more suitable for use cases
|
||||
that allow negative counts:
|
||||
|
||||
|
@ -906,7 +906,7 @@ with multiple preconditions does not run until all of the predecessor tasks are
|
|||
complete.
|
||||
|
||||
Barriers can work with an arbitrary number of threads. This is a generalization
|
||||
of a `Rendezvous <http://en.wikipedia.org/wiki/Synchronous_rendezvous>`_ which
|
||||
of a `Rendezvous <https://en.wikipedia.org/wiki/Synchronous_rendezvous>`_ which
|
||||
is defined for only two threads.
|
||||
|
||||
Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` objects
|
||||
|
@ -1043,7 +1043,7 @@ of nearly equal quantities:
|
|||
0.013765762467652909
|
||||
|
||||
The :func:`~math.erf` function computes a probability integral or `Gaussian
|
||||
error function <http://en.wikipedia.org/wiki/Error_function>`_. The
|
||||
error function <https://en.wikipedia.org/wiki/Error_function>`_. The
|
||||
complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:
|
||||
|
||||
>>> erf(1.0/sqrt(2.0)) # portion of normal distribution within 1 standard deviation
|
||||
|
@ -1054,7 +1054,7 @@ complementary error function, :func:`~math.erfc`, is ``1 - erf(x)``:
|
|||
1.0
|
||||
|
||||
The :func:`~math.gamma` function is a continuous extension of the factorial
|
||||
function. See http://en.wikipedia.org/wiki/Gamma_function for details. Because
|
||||
function. See https://en.wikipedia.org/wiki/Gamma_function for details. Because
|
||||
the function is related to factorials, it grows large even for small values of
|
||||
*x*, so there is also a :func:`~math.lgamma` function for computing the natural
|
||||
logarithm of the gamma function:
|
||||
|
@ -2180,7 +2180,7 @@ urllib.parse
|
|||
A number of usability improvements were made for the :mod:`urllib.parse` module.
|
||||
|
||||
The :func:`~urllib.parse.urlparse` function now supports `IPv6
|
||||
<http://en.wikipedia.org/wiki/IPv6>`_ addresses as described in :rfc:`2732`:
|
||||
<https://en.wikipedia.org/wiki/IPv6>`_ addresses as described in :rfc:`2732`:
|
||||
|
||||
>>> import urllib.parse
|
||||
>>> urllib.parse.urlparse('http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/')
|
||||
|
@ -2328,7 +2328,7 @@ A number of small performance enhancements have been added:
|
|||
(Contributed by Alexandre Vassalotti, Antoine Pitrou
|
||||
and the Unladen Swallow team in :issue:`9410` and :issue:`3873`.)
|
||||
|
||||
* The `Timsort algorithm <http://en.wikipedia.org/wiki/Timsort>`_ used in
|
||||
* The `Timsort algorithm <https://en.wikipedia.org/wiki/Timsort>`_ used in
|
||||
:meth:`list.sort` and :func:`sorted` now runs faster and uses less memory
|
||||
when called with a :term:`key function`. Previously, every element of
|
||||
a list was wrapped with a temporary object that remembered the key value
|
||||
|
@ -2380,7 +2380,7 @@ Unicode
|
|||
|
||||
Python has been updated to `Unicode 6.0.0
|
||||
<http://unicode.org/versions/Unicode6.0.0/>`_. The update to the standard adds
|
||||
over 2,000 new characters including `emoji <http://en.wikipedia.org/wiki/Emoji>`_
|
||||
over 2,000 new characters including `emoji <https://en.wikipedia.org/wiki/Emoji>`_
|
||||
symbols which are important for mobile phones.
|
||||
|
||||
In addition, the updated standard has altered the character properties for two
|
||||
|
@ -2432,7 +2432,7 @@ The documentation continues to be improved.
|
|||
**Source code** :source:`Lib/functools.py`.
|
||||
|
||||
(Contributed by Raymond Hettinger; see
|
||||
`rationale <http://rhettinger.wordpress.com/2011/01/28/open-your-source-more/>`_.)
|
||||
`rationale <https://rhettinger.wordpress.com/2011/01/28/open-your-source-more/>`_.)
|
||||
|
||||
* The docs now contain more examples and recipes. In particular, :mod:`re`
|
||||
module has an extensive section, :ref:`re-examples`. Likewise, the
|
||||
|
@ -2468,7 +2468,7 @@ Code Repository
|
|||
===============
|
||||
|
||||
In addition to the existing Subversion code repository at http://svn.python.org
|
||||
there is now a `Mercurial <http://mercurial.selenic.com/>`_ repository at
|
||||
there is now a `Mercurial <https://www.mercurial-scm.org/>`_ repository at
|
||||
https://hg.python.org/\ .
|
||||
|
||||
After the 3.2 release, there are plans to switch to Mercurial as the primary
|
||||
|
@ -2478,7 +2478,7 @@ members of the community to create and share external changesets. See
|
|||
|
||||
To learn to use the new version control system, see the `tutorial by Joel
|
||||
Spolsky <http://hginit.com>`_ or the `Guide to Mercurial Workflows
|
||||
<http://mercurial.selenic.com/guide>`_.
|
||||
<https://www.mercurial-scm.org/guide>`_.
|
||||
|
||||
|
||||
Build and C API Changes
|
||||
|
|
|
@ -1884,13 +1884,13 @@ socket
|
|||
Heiko Wundram)
|
||||
|
||||
* The :class:`~socket.socket` class now supports the PF_CAN protocol family
|
||||
(http://en.wikipedia.org/wiki/Socketcan), on Linux
|
||||
(http://lwn.net/Articles/253425).
|
||||
(https://en.wikipedia.org/wiki/Socketcan), on Linux
|
||||
(https://lwn.net/Articles/253425).
|
||||
|
||||
(Contributed by Matthias Fuchs, updated by Tiago Gonçalves in :issue:`10141`.)
|
||||
|
||||
* The :class:`~socket.socket` class now supports the PF_RDS protocol family
|
||||
(http://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and
|
||||
(https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and
|
||||
https://oss.oracle.com/projects/rds/).
|
||||
|
||||
* The :class:`~socket.socket` class now supports the ``PF_SYSTEM`` protocol
|
||||
|
|
|
@ -144,7 +144,7 @@ Security improvements:
|
|||
all of the parent's inheritable handles, only the necessary ones.
|
||||
* A new :func:`hashlib.pbkdf2_hmac` function provides
|
||||
the `PKCS#5 password-based key derivation function 2
|
||||
<http://en.wikipedia.org/wiki/PBKDF2>`_.
|
||||
<https://en.wikipedia.org/wiki/PBKDF2>`_.
|
||||
* :ref:`TLSv1.1 and TLSv1.2 support <whatsnew-tls-11-12>` for :mod:`ssl`.
|
||||
* :ref:`Retrieving certificates from the Windows system cert store support
|
||||
<whatsnew34-win-cert-store>` for :mod:`ssl`.
|
||||
|
@ -902,7 +902,7 @@ hashlib
|
|||
|
||||
A new :func:`hashlib.pbkdf2_hmac` function provides
|
||||
the `PKCS#5 password-based key derivation function 2
|
||||
<http://en.wikipedia.org/wiki/PBKDF2>`_. (Contributed by Christian
|
||||
<https://en.wikipedia.org/wiki/PBKDF2>`_. (Contributed by Christian
|
||||
Heimes in :issue:`18582`.)
|
||||
|
||||
The :attr:`~hashlib.hash.name` attribute of :mod:`hashlib` hash objects is now
|
||||
|
@ -1917,8 +1917,8 @@ Other Build and C API Changes
|
|||
:issue:`18596`.)
|
||||
|
||||
* The Windows build now uses `Address Space Layout Randomization
|
||||
<http://en.wikipedia.org/wiki/ASLR>`_ and `Data Execution Prevention
|
||||
<http://en.wikipedia.org/wiki/Data_Execution_Prevention>`_. (Contributed by
|
||||
<https://en.wikipedia.org/wiki/Address_space_layout_randomization>`_ and `Data Execution Prevention
|
||||
<https://en.wikipedia.org/wiki/Data_Execution_Prevention>`_. (Contributed by
|
||||
Christian Heimes in :issue:`16632`.)
|
||||
|
||||
* New function :c:func:`PyObject_LengthHint` is the C API equivalent
|
||||
|
|
|
@ -2169,7 +2169,7 @@ for details.)
|
|||
The :c:member:`PyTypeObject.tp_finalize` slot is now part of the stable ABI.
|
||||
|
||||
Windows builds now require Microsoft Visual C++ 14.0, which
|
||||
is available as part of `Visual Studio 2015 <http://www.visualstudio.com>`_.
|
||||
is available as part of `Visual Studio 2015 <https://www.visualstudio.com/>`_.
|
||||
|
||||
Extension modules now include a platform information tag in their filename on
|
||||
some platforms (the tag is optional, and CPython will import extensions without
|
||||
|
|
|
@ -7917,7 +7917,7 @@ Library
|
|||
|
||||
- Issue #16245: Fix the value of a few entities in html.entities.html5.
|
||||
|
||||
- Issue #16301: Fix the localhost verification in urllib/request.py for file://
|
||||
- Issue #16301: Fix the localhost verification in urllib/request.py for ``file://``
|
||||
urls.
|
||||
|
||||
- Issue #16250: Fix the invocations of URLError which had misplaced filename
|
||||
|
|
Loading…
Reference in New Issue