summaryrefslogtreecommitdiff
path: root/docs/logic.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/logic.rst')
-rw-r--r--docs/logic.rst341
1 files changed, 2 insertions, 339 deletions
diff --git a/docs/logic.rst b/docs/logic.rst
index a56519891..0c27d8ce5 100644
--- a/docs/logic.rst
+++ b/docs/logic.rst
@@ -1,345 +1,8 @@
-.. _`pip logic`:
+:orphan:
================
Internal Details
================
-.. _`Requirements File Format`:
+This content is now covered in the :doc:`Reference Guide <reference/index>`
-Requirements File Format
-========================
-
-Each line of the requirements file indicates something to be installed,
-and like arguments to :ref:`pip install`, the following forms are supported::
-
- <requirement specifier>
- <archive url/path>
- [-e] <local project path>
- [-e] <vcs project url>
-
-See the :ref:`pip install Examples<pip install Examples>` for examples of all these forms.
-
-A line beginning with ``#`` is treated as a comment and ignored.
-
-Additionally, the following :ref:`Package Index Options <Package Index Options>` are supported
-
- * :ref:`-i, --index-url <--index-url>`
- * :ref:`--extra-index-url <--extra-index-url>`
- * :ref:`--no-index <--no-index>`
- * :ref:`-f, --find-links <--find-links>`
- * :ref:`--allow-external <--allow-external>`
- * :ref:`--allow-all-external <--allow-external>`
- * :ref:`--allow-unverified <--allow-unverified>`
-
-For example, to specify :ref:`--no-index <--no-index>` and 2 :ref:`--find-links <--find-links>` locations:
-
-::
-
---no-index
---find-links /my/local/archives
---find-links http://some.archives.com/archives
-
-
-Lastly, if you wish, you can refer to other requirements files, like this::
-
- -r more_requirements.txt
-
-.. _`Requirement Specifiers`:
-
-Requirement Specifiers
-======================
-
-pip supports installing from "requirement specifiers" as implemented in
-`pkg_resources Requirements <http://packages.python.org/setuptools/pkg_resources.html#requirement-objects>`_
-
-Some Examples:
-
- ::
-
- 'FooProject >= 1.2'
- Fizzy [foo, bar]
- 'PickyThing<1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1'
- SomethingWhoseVersionIDontCareAbout
-
-.. note::
-
- Use single or double quotes around specifiers to avoid ``>`` and ``<`` being interpreted as shell redirects. e.g. ``pip install 'FooProject>=1.2'``.
-
-
-.. _`Logging`:
-
-Logging
-=======
-
-Console logging
-~~~~~~~~~~~~~~~
-
-pip offers :ref:`-v, --verbose <--verbose>` and :ref:`-q, --quiet <--quiet>`
-to control the console log level. Each option can be used multiple times and
-used together. One ``-v`` increases the verbosity by one, whereas one ``-q`` decreases it by
-one.
-
-The series of log levels, in order, are as follows::
-
- VERBOSE_DEBUG, DEBUG, INFO, NOTIFY, WARN, ERROR, FATAL
-
-``NOTIFY`` is the default level.
-
-A few examples on how the parameters work to affect the level:
-
-* specifying nothing results in ``NOTIFY``
-* ``-v`` results in ``INFO``
-* ``-vv`` results in ``DEBUG``
-* ``-q`` results in ``WARN``
-* ``-vq`` results in ``NOTIFY``
-
-The most practical use case for users is either ``-v`` or ``-vv`` to see
-additional logging to help troubleshoot an issue.
-
-
-.. _`FileLogging`:
-
-File logging
-~~~~~~~~~~~~
-
-pip offers the :ref:`--log <--log>` option for specifying a file where a maximum
-verbosity log will be kept. This option is empty by default. This log appends
-to previous logging.
-
-Additionally, when commands fail (i.e. return a non-zero exit code), pip writes
-a "failure log" for the failed command. This log overwrites previous
-logging. The default location is as follows:
-
-* On Unix and Mac OS X: :file:`$HOME/.pip/pip.log`
-* On Windows, the configuration file is: :file:`%HOME%\\pip\\pip.log`
-
-The option for the failure log, is :ref:`--log-file <--log-file>`.
-
-Both logs add a line per execution to specify the date and what pip executable wrote the log.
-
-Like all pip options, ``--log`` and ``log-file``, can also be set as an environment
-variable, or placed into the pip config file. See the :ref:`Configuration`
-section.
-
-
-.. _`Pre Release Versions`:
-
-Pre-release Versions
-====================
-
-Starting with v1.4, pip will only install stable versions as specified by `PEP426`_ by default. If
-a version cannot be parsed as a compliant `PEP426`_ version then it is assumed
-to be a pre-release.
-
-If a Requirement specifier includes a pre-release or development version (e.g. ``>=0.0.dev0``) then
-pip will allow pre-release and development versions for that requirement. This does not include
-the != flag.
-
-The ``pip install`` command also supports a :ref:`--pre <install_--pre>` flag that will enable
-installing pre-releases and development releases.
-
-
-.. _PEP426: http://www.python.org/dev/peps/pep-0426
-
-.. _`Externally Hosted Files`:
-
-Externally Hosted Files
-=======================
-
-Starting with v1.4, pip will warn about installing any file that does not come
-from the primary index. As of version 1.5, pip defaults to ignoring these files
-unless asked to consider them.
-
-The ``pip install`` command supports a
-:ref:`--allow-external PROJECT <--allow-external>` option that will enable
-installing links that are linked directly from the simple index but to an
-external host that also have a supported hash fragment. Externally hosted
-files for all projects may be enabled using the
-:ref:`--allow-all-external <--allow-all-external>` flag to the ``pip install``
-command.
-
-The ``pip install`` command also supports a
-:ref:`--allow-unverified PROJECT <--allow-unverified>` option that will enable
-installing insecurely linked files. These are either directly linked (as above)
-files without a hash, or files that are linked from either the home page or the
-download url of a package.
-
-These options can be used in a requirements file. Assuming some fictional
-`ExternalPackage` that is hosted external and unverified, then your requirements
-file would be like so::
-
- --allow-external ExternalPackage
- --allow-unverified ExternalPackage
- ExternalPackage
-
-
-.. _`VCS Support`:
-
-VCS Support
-===========
-
-pip supports installing from Git, Mercurial, Subversion and Bazaar, and detects the type of VCS using url prefixes: "git+", "hg+", "bzr+", "svn+".
-
-pip requires a working VCS command on your path: git, hg, svn, or bzr.
-
-VCS projects can be installed in :ref:`editable mode <editable-installs>` (using the :ref:`--editable <install_--editable>` option) or not.
-
-* For editable installs, the clone location by default is "<venv path>/src/SomeProject" in virtual environments, and "<cwd>/src/SomeProject" for global installs.
- The :ref:`--src <install_--src>` option can be used to modify this location.
-* For non-editable installs, the project is built locally in a temp dir and then installed normally.
-
-The url suffix "egg=<project name>" is used by pip in it's dependency logic to identify the project prior to pip downloading and analyzing the metadata.
-
-Git
-~~~
-
-pip currently supports cloning over ``git``, ``git+https`` and ``git+ssh``:
-
-Here are the supported forms::
-
- [-e] git+git://git.myproject.org/MyProject#egg=MyProject
- [-e] git+https://git.myproject.org/MyProject#egg=MyProject
- [-e] git+ssh://git.myproject.org/MyProject#egg=MyProject
- -e git+git@git.myproject.org:MyProject#egg=MyProject
-
-Passing branch names, a commit hash or a tag name is possible like so::
-
- [-e] git://git.myproject.org/MyProject.git@master#egg=MyProject
- [-e] git://git.myproject.org/MyProject.git@v1.0#egg=MyProject
- [-e] git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject
-
-Mercurial
-~~~~~~~~~
-
-The supported schemes are: ``hg+http``, ``hg+https``,
-``hg+static-http`` and ``hg+ssh``.
-
-Here are the supported forms::
-
- [-e] hg+http://hg.myproject.org/MyProject#egg=MyProject
- [-e] hg+https://hg.myproject.org/MyProject#egg=MyProject
- [-e] hg+ssh://hg.myproject.org/MyProject#egg=MyProject
-
-You can also specify a revision number, a revision hash, a tag name or a local
-branch name like so::
-
- [-e] hg+http://hg.myproject.org/MyProject@da39a3ee5e6b#egg=MyProject
- [-e] hg+http://hg.myproject.org/MyProject@2019#egg=MyProject
- [-e] hg+http://hg.myproject.org/MyProject@v1.0#egg=MyProject
- [-e] hg+http://hg.myproject.org/MyProject@special_feature#egg=MyProject
-
-Subversion
-~~~~~~~~~~
-
-pip supports the URL schemes ``svn``, ``svn+svn``, ``svn+http``, ``svn+https``, ``svn+ssh``.
-
-You can also give specific revisions to an SVN URL, like so::
-
- [-e] svn+svn://svn.myproject.org/svn/MyProject#egg=MyProject
- [-e] svn+http://svn.myproject.org/svn/MyProject/trunk@2019#egg=MyProject
-
-which will check out revision 2019. ``@{20080101}`` would also check
-out the revision from 2008-01-01. You can only check out specific
-revisions using ``-e svn+...``.
-
-Bazaar
-~~~~~~
-
-pip supports Bazaar using the ``bzr+http``, ``bzr+https``, ``bzr+ssh``,
-``bzr+sftp``, ``bzr+ftp`` and ``bzr+lp`` schemes.
-
-Here are the supported forms::
-
- [-e] bzr+http://bzr.myproject.org/MyProject/trunk#egg=MyProject
- [-e] bzr+sftp://user@myproject.org/MyProject/trunk#egg=MyProject
- [-e] bzr+ssh://user@myproject.org/MyProject/trunk#egg=MyProject
- [-e] bzr+ftp://user@myproject.org/MyProject/trunk#egg=MyProject
- [-e] bzr+lp:MyProject#egg=MyProject
-
-Tags or revisions can be installed like so::
-
- [-e] bzr+https://bzr.myproject.org/MyProject/trunk@2019#egg=MyProject
- [-e] bzr+http://bzr.myproject.org/MyProject/trunk@v1.0#egg=MyProject
-
-
-Finding Packages
-================
-
-pip searches for packages on `PyPI <http://pypi.python.org>`_ using the
-`http simple interface <http://pypi.python.org/simple>`_,
-which is documented `here <http://packages.python.org/setuptools/easy_install.html#package-index-api>`_
-and `there <http://www.python.org/dev/peps/pep-0301/>`_
-
-pip offers a set of :ref:`Package Index Options <Package Index Options>` for modifying how packages are found.
-
-See the :ref:`pip install Examples<pip install Examples>`.
-
-
-.. _`SSL Certificate Verification`:
-
-SSL Certificate Verification
-============================
-
-Starting with v1.3, pip provides SSL certificate verification over https, for the purpose
-of providing secure, certified downloads from PyPI.
-
-
-Hash Verification
-=================
-
-PyPI provides md5 hashes in the hash fragment of package download urls.
-
-pip supports checking this, as well as any of the
-guaranteed hashlib algorithms (sha1, sha224, sha384, sha256, sha512, md5).
-
-The hash fragment is case sensitive (i.e. sha1 not SHA1).
-
-This check is only intended to provide basic download corruption protection.
-It is not intended to provide security against tampering. For that,
-see :ref:`SSL Certificate Verification`
-
-
-Download Cache
-==============
-
-pip offers a :ref:`--download-cache <install_--download-cache>` option for installs to prevent redundant downloads of archives from PyPI.
-
-The point of this cache is *not* to circumvent the index crawling process, but to *just* prevent redundant downloads.
-
-Items are stored in this cache based on the url the archive was found at, not simply the archive name.
-
-If you want a fast/local install solution that circumvents crawling PyPI, see the :ref:`Fast & Local Installs` Cookbook entry.
-
-Like all options, :ref:`--download-cache <install_--download-cache>`, can also be set as an environment variable, or placed into the pip config file.
-See the :ref:`Configuration` section.
-
-
-.. _`editable-installs`:
-
-"Editable" Installs
-===================
-
-"Editable" installs are fundamentally `"setuptools develop mode" <http://packages.python.org/setuptools/setuptools.html#development-mode>`_ installs.
-
-You can install local projects or VCS projects in "editable" mode::
-
-$ pip install -e path/to/SomeProject
-$ pip install -e git+http://repo/my_project.git#egg=SomeProject
-
-For local projects, the "SomeProject.egg-info" directory is created relative to the project path.
-This is one advantage over just using ``setup.py develop``, which creates the "egg-info" directly relative the current working directory.
-
-
-setuptools & pkg_resources
-==========================
-
-Internally, pip uses the `setuptools` package, and the `pkg_resources` module, which are available from the project, `Setuptools`_.
-
-Here are some examples of how pip uses `setuptools` and `pkg_resources`:
-
-* The core of pip's install process uses the `setuptools`'s "install" command.
-* Editable ("-e") installs use the `setuptools`'s "develop" command.
-* pip uses `pkg_resources` for version parsing, for detecting version conflicts, and to determine what projects are installed,
-
-
-.. _Setuptools: http://pypi.python.org/pypi/setuptools/