From 6711e7fde14d02ec3e881a1636eed04bcd0bdc56 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 14 Mar 2016 12:33:49 -0400 Subject: [PATCH 001/209] Removed references to Setuptools/easy_install in favor of pip. A new Python user hardly needs to know that easy_install ever existed --- docs/starting/install/osx.rst | 44 ++++++++++++++++------------------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index cb0062cc7..db029822b 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -5,11 +5,11 @@ Installing Python on Mac OS X The latest version of Mac OS X, El Capitan, **comes with Python 2.7 out of the box**. -You do not need to install or configure anything else to use Python. Having -said that, I would strongly recommend that you install the tools and libraries -described in the next section before you start building Python applications -for real-world use. In particular, you should always install Setuptools, as it -makes it much easier for you to use other third-party Python libraries. +You do not need to install or configure anything else to use Python. Having said +that, I would strongly recommend that you install the tools and libraries +described in the next section before you start building Python applications for +real-world use. In particular, you should always install ``pip``, as it makes +it much easier for you to install and manage other third-party Python libraries. The version of Python that ships with OS X is great for learning but it's not good for development. The version shipped with OS X may be out of date from the @@ -33,11 +33,11 @@ package. diagnose. .. note:: - If you perform a fresh install of XCode, you will also need to add the + If you perform a fresh install of XCode, you will also need to add the commandline tools by running ``xcode-select --install`` on the terminal. While OS X comes with a large number of UNIX utilities, those familiar with -Linux systems will notice one key component missing: a decent package manager. +Linux systems will notice one key component missing: a package manager. `Homebrew `_ fills this void. To `install Homebrew `_, open :file:`Terminal` or @@ -63,37 +63,33 @@ Now, we can install Python 2.7: $ brew install python -This will take a minute or two. +This will take a minute or two. -Setuptools & Pip +Pip ---------------- -Homebrew installs Setuptools and ``pip`` for you. +Homebrew installs ``pip`` for you. -Setuptools enables you to download and install any compliant Python -software over a network (usually the Internet) with a single command -(``easy_install``). It also enables you to add this network installation -capability to your own Python software with very little work. - -``pip`` is a tool for easily installing and managing Python packages, -that is recommended over ``easy_install``. It is superior to ``easy_install`` in `several ways `_, +``pip`` is a tool for easily installing and managing Python packages, that is +recommended over the deprecated ``easy_install``. It is superior to +``easy_install`` in `several ways +`_, and is actively maintained. Virtual Environments -------------------- -A Virtual Environment is a tool to keep the dependencies required by different projects -in separate places, by creating virtual Python environments for them. It solves the -"Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps +A Virtual Environment (commonly referred to as a 'virtualenv') is a tool to keep the dependencies required by different projects +in separate places, by creating virtual Python environments for them. It solves the +"Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps your global site-packages directory clean and manageable. -For example, you can work on a project which requires Django 1.3 while also -maintaining a project which requires Django 1.0. - -To start using this and see more information: :ref:`Virtual Environments ` docs. +For example, you can work on a project which requires Django 1.10 while also +maintaining a project which requires Django 1.7. +To start using this and see more information: :ref:`Virtual Environments ` docs. -------------------------------- From 304728846623c831fa549c40c60b1329c99a1264 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 14 Mar 2016 13:22:14 -0400 Subject: [PATCH 002/209] Removed references to main install page --- docs/starting/installation.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/starting/installation.rst b/docs/starting/installation.rst index 04aaaa0b8..c0118f68c 100644 --- a/docs/starting/installation.rst +++ b/docs/starting/installation.rst @@ -7,14 +7,14 @@ If so, you do not need to install or configure anything else to use Python. Having said that, I would strongly recommend that you install the tools and libraries described in the guides below before you start building Python applications for real-world use. In particular, you should always install -Setuptools, Pip, and Virtualenv — they make it much easier for you to use +Pip, and Virtualenv — they make it much easier for you to use other third-party Python libraries. Installation Guides ------------------- These guides go over the proper installation of :ref:`Python 2.7 ` -for development purposes, as well as setuptools, pip, and virtualenv setup. +for development purposes, as well as pip and virtualenv. - :ref:`Mac OS X `. - :ref:`Microsoft Windows `. From 8da905eae316c897bc61ffbc9d093483f6341519 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 14 Mar 2016 14:28:01 -0400 Subject: [PATCH 003/209] First stab at Python3 OS X docs --- docs/dev/virtualenvs.rst | 35 ++++++---- docs/starting/install/osx.rst | 3 + docs/starting/install3/osx.rst | 116 +++++++++++++++++++++++++++++++++ docs/starting/installation.rst | 10 +-- 4 files changed, 146 insertions(+), 18 deletions(-) create mode 100644 docs/starting/install3/osx.rst diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index bb3f9487c..90c7f19df 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -8,15 +8,22 @@ projects in separate places, by creating virtual Python environments for them. It solves the "Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps your global site-packages directory clean and manageable. -For example, you can work on a project which requires Django 1.3 while also -maintaining a project which requires Django 1.0. +For example, you can work on a project which requires Django 1.9 while also +maintaining a project which requires Django 1.8. + +If you are using Python 3, make sure you run something like the following (or +have it in your env variables in `~/.bashrc`): + +.. code-block:: console + + $ export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 virtualenv ---------- `virtualenv `_ is a tool to create -isolated Python environments. virtualenv creates a folder which contains all the -necessary executables to use the packages that a Python project would need. +isolated Python environments. virtualenv creates a folder which contains all the +necessary executables to use the packages that a Python project would need. Install virtualenv via pip: @@ -43,13 +50,13 @@ in the current directory instead. This creates a copy of Python in whichever directory you ran the command in, placing it in a folder named :file:`venv`. -You can also use a Python interpreter of your choice. +You can also use the Python interpreter of your choice. .. code-block:: console - $ virtualenv -p /usr/bin/python2.7 venv + $ virtualenv -p /usr/local/bin/python3 venv -This will use the Python interpreter in :file:`/usr/bin/python2.7` +This will use the Python interpreter in :file:`/usr/local/bin/python3` 2. To begin using the virtual environment, it needs to be activated: @@ -57,9 +64,9 @@ This will use the Python interpreter in :file:`/usr/bin/python2.7` $ source venv/bin/activate -The name of the current virtual environment will now appear on the left of -the prompt (e.g. ``(venv)Your-Computer:your_project UserName$)`` to let you know -that it's active. From now on, any package that you install using pip will be +The name of the current virtual environment will now appear on the left of +the prompt (e.g. ``(venv)Your-Computer:your_project UserName$)`` to let you know +that it's active. From now on, any package that you install using pip will be placed in the ``venv`` folder, isolated from the global Python installation. Install packages as usual, for example: @@ -78,7 +85,7 @@ Install packages as usual, for example: This puts you back to the system's default Python interpreter with all its installed libraries. -To delete a virtual environment, just delete its folder. (In this case, +To delete a virtual environment, just delete its folder. (In this case, it would be ``rm -rf venv``.) After a while, though, you might end up with a lot of virtual environments @@ -102,8 +109,8 @@ the current state of the environment packages. To do this, run This will create a :file:`requirements.txt` file, which contains a simple list of all the packages in the current environment, and their respective -versions. You can see the list of installed packages without the requirements -format using "pip list". Later it will be easier for a different developer +versions. You can see the list of installed packages without the requirements +format using "pip list". Later it will be easier for a different developer (or you, if you need to re-create the environment) to install the same packages using the same versions: @@ -143,7 +150,7 @@ To install (make sure **virtualenv** is already installed): .. code-block:: console $ pip install virtualenvwrapper-win - + In Windows, the default path for WORKON_HOME is %USERPROFILE%\Envs Basic Usage diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index db029822b..549b8063f 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -3,6 +3,9 @@ Installing Python on Mac OS X ============================= +.. note:: + Check out our :ref:`guide for installing Python 3 on OS X`. + The latest version of Mac OS X, El Capitan, **comes with Python 2.7 out of the box**. You do not need to install or configure anything else to use Python. Having said diff --git a/docs/starting/install3/osx.rst b/docs/starting/install3/osx.rst new file mode 100644 index 000000000..d5a33291c --- /dev/null +++ b/docs/starting/install3/osx.rst @@ -0,0 +1,116 @@ +.. _install3-osx: + +Installing Python 3 on Mac OS X +================================ + +The latest version of Mac OS X, El Capitan, **comes with Python 2.7 out of the box**. + +You do not need to install or configure anything else to use Python 2. These +instructions document the installation of Python 3. + +The version of Python that ships with OS X is great for learning but it's not +good for development. The version shipped with OS X may be out of date from the +`official current Python release `_, +which is considered the stable production version. + +Doing it Right +-------------- + +Let's install a real version of Python. + +Before installing Python, you'll need to install GCC. GCC can be obtained +by downloading `XCode `_, the smaller +`Command Line Tools `_ (must have an +Apple account) or the even smaller `OSX-GCC-Installer `_ +package. + +.. note:: + If you already have XCode installed, do not install OSX-GCC-Installer. + In combination, the software can cause issues that are difficult to + diagnose. + +.. note:: + If you perform a fresh install of XCode, you will also need to add the + commandline tools by running ``xcode-select --install`` on the terminal. + +While OS X comes with a large number of UNIX utilities, those familiar with +Linux systems will notice one key component missing: a package manager. +`Homebrew `_ fills this void. + +To `install Homebrew `_, open :file:`Terminal` or +your favorite OSX terminal emulator and run + +.. code-block:: console + + $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + +The script will explain what changes it will make and prompt you before the +installation begins. +Once you've installed Homebrew, insert the Homebrew directory at the top +of your :envvar:`PATH` environment variable. You can do this by adding the following +line at the bottom of your :file:`~/.profile` file + +.. code-block:: console + + export PATH=/usr/local/bin:/usr/local/sbin:$PATH + +Now, we can install Python 3: + +.. code-block:: console + + $ brew install python3 + +This will take a minute or two. + + +Pip +---------------- + +Homebrew installs ``pip3`` for you. + +``pip3`` is the alias for the Python 3 version of ``pip`` on systems with both +the Homebrew'd Python 2 and 3 installed. + +Working with Python3 +-------------------- + +At this point, you have the system Python 2.7 available, potentially the +:ref:`Homebrew version of Python 2 ` installed, and the Homebrew +version of Python 3 as well. + +.. code-block:: console + + $ python + +will launch the Python 2 interpreter. + +.. code-block:: console + + $ python3 + +will launch the Python 3 interpreter + +``pip3`` and ``pip`` will both be available. If the Homebrew version of Python +2 is not installed, they will be the same. If the Homebrew version of Python 2 +is installed then ``pip`` will point to Python 2 and ``pip3`` will point to +Python 3. + + +Virtual Environments +-------------------- + +A Virtual Environment (commonly referred to as a 'virtualenv') is a tool to keep +the dependencies required by different projects in separate places, by creating +virtual Python environments for them. It solves the "Project X depends on +version 1.x but, Project Y needs 4.x" dilemma, and keeps your global +site-packages directory clean and manageable. + +For example, you can work on a project which requires Django 1.10 while also +maintaining a project which requires Django 1.8. + +To start using this and see more information: :ref:`Virtual Environments ` docs. + +-------------------------------- + +This page is a remixed version of `another guide `_, +which is available under the same license. diff --git a/docs/starting/installation.rst b/docs/starting/installation.rst index c0118f68c..3c747bf03 100644 --- a/docs/starting/installation.rst +++ b/docs/starting/installation.rst @@ -13,9 +13,11 @@ other third-party Python libraries. Installation Guides ------------------- -These guides go over the proper installation of :ref:`Python 2.7 ` +These guides go over the proper installation of :ref:`Python ` for development purposes, as well as pip and virtualenv. -- :ref:`Mac OS X `. -- :ref:`Microsoft Windows `. -- :ref:`Ubuntu Linux `. +- :ref:`Python 3 on Mac OS X `. + +- :ref:`Python 2 on Mac OS X `. +- :ref:`Python 2 on Microsoft Windows `. +- :ref:`Python 2 on Ubuntu Linux `. From 53a249a58ec90c04e92247c1fc22a2b69135062b Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 15 Mar 2016 09:47:32 -0400 Subject: [PATCH 004/209] Bad tick marks in virtualenv doc --- docs/dev/virtualenvs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index 90c7f19df..37841e214 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -12,7 +12,7 @@ For example, you can work on a project which requires Django 1.9 while also maintaining a project which requires Django 1.8. If you are using Python 3, make sure you run something like the following (or -have it in your env variables in `~/.bashrc`): +have it in your env variables in ``~/.bashrc``): .. code-block:: console From 9223381e4e695968931fa5f684cb5dafe2452593 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 15 Mar 2016 10:00:26 -0400 Subject: [PATCH 005/209] Python3 stuff in virtualenv less prominent --- docs/dev/virtualenvs.rst | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index 37841e214..ee05a1343 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -11,13 +11,6 @@ dilemma, and keeps your global site-packages directory clean and manageable. For example, you can work on a project which requires Django 1.9 while also maintaining a project which requires Django 1.8. -If you are using Python 3, make sure you run something like the following (or -have it in your env variables in ``~/.bashrc``): - -.. code-block:: console - - $ export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 - virtualenv ---------- @@ -50,13 +43,18 @@ in the current directory instead. This creates a copy of Python in whichever directory you ran the command in, placing it in a folder named :file:`venv`. -You can also use the Python interpreter of your choice. +You can also use the Python interpreter of your choice (like +:file:`/usr/local/bin/python3`). .. code-block:: console $ virtualenv -p /usr/local/bin/python3 venv -This will use the Python interpreter in :file:`/usr/local/bin/python3` +or change the interpreter globally with an env variable in ``~/.bashrc``: + +.. code-block:: console + + $ export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 2. To begin using the virtual environment, it needs to be activated: From 328a261c4fd30a9f66690d6c94bd9466a1abb66a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 31 Mar 2016 09:37:57 -0400 Subject: [PATCH 006/209] Re-instated references to setuptools --- docs/dev/virtualenvs.rst | 6 +++--- docs/starting/install/osx.rst | 15 ++++++++++----- docs/starting/installation.rst | 5 ++--- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index ee05a1343..fa0bbfc8c 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -44,17 +44,17 @@ This creates a copy of Python in whichever directory you ran the command in, placing it in a folder named :file:`venv`. You can also use the Python interpreter of your choice (like -:file:`/usr/local/bin/python3`). +:file:`/usr/bin/python2.7`). .. code-block:: console - $ virtualenv -p /usr/local/bin/python3 venv + $ virtualenv -p /usr/bin/python2.7 venv or change the interpreter globally with an env variable in ``~/.bashrc``: .. code-block:: console - $ export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 + $ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 2. To begin using the virtual environment, it needs to be activated: diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index ae3f10aea..4ffba8648 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -11,7 +11,7 @@ The latest version of Mac OS X, El Capitan, **comes with Python 2.7 out of the b You do not need to install or configure anything else to use Python. Having said that, I would strongly recommend that you install the tools and libraries described in the next section before you start building Python applications for -real-world use. In particular, you should always install ``pip``, as it makes +real-world use. In particular, you should always install Setuptools, as it makes it much easier for you to install and manage other third-party Python libraries. The version of Python that ships with OS X is great for learning but it's not @@ -40,7 +40,7 @@ package. commandline tools by running ``xcode-select --install`` on the terminal. While OS X comes with a large number of UNIX utilities, those familiar with -Linux systems will notice one key component missing: a package manager. +Linux systems will notice one key component missing: a decent package manager. `Homebrew `_ fills this void. To `install Homebrew `_, open :file:`Terminal` or @@ -69,13 +69,18 @@ Now, we can install Python 2.7: This will take a minute or two. -Pip +Setuptools and Pip ---------------- -Homebrew installs ``pip`` for you. +Homebrew installs Setuptools and ``pip`` for you. + +Setuptools enables you to download and install any compliant Python + -software over a network (usually the Internet) with a single command + -(``easy_install``). It also enables you to add this network installation + -capability to your own Python software with very little work. ``pip`` is a tool for easily installing and managing Python packages, that is -recommended over the deprecated ``easy_install``. It is superior to +recommended over ``easy_install``. It is superior to ``easy_install`` in `several ways `_, and is actively maintained. diff --git a/docs/starting/installation.rst b/docs/starting/installation.rst index 3c747bf03..46b9fe4eb 100644 --- a/docs/starting/installation.rst +++ b/docs/starting/installation.rst @@ -7,17 +7,16 @@ If so, you do not need to install or configure anything else to use Python. Having said that, I would strongly recommend that you install the tools and libraries described in the guides below before you start building Python applications for real-world use. In particular, you should always install -Pip, and Virtualenv — they make it much easier for you to use +Setuptools, Pip, and Virtualenv — they make it much easier for you to use other third-party Python libraries. Installation Guides ------------------- These guides go over the proper installation of :ref:`Python ` -for development purposes, as well as pip and virtualenv. +for development purposes, as well as setuptools, pip and virtualenv. - :ref:`Python 3 on Mac OS X `. - - :ref:`Python 2 on Mac OS X `. - :ref:`Python 2 on Microsoft Windows `. - :ref:`Python 2 on Ubuntu Linux `. From 7c8dfd0d3e8f4cafe874d293c2ed647cf8d91844 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 6 Nov 2016 19:57:59 +0800 Subject: [PATCH 007/209] Correct name for the game "Civilization IV" --- docs/shipping/freezing.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/shipping/freezing.rst b/docs/shipping/freezing.rst index d42f2d61b..4e2de50e8 100644 --- a/docs/shipping/freezing.rst +++ b/docs/shipping/freezing.rst @@ -8,7 +8,7 @@ Freezing Your Code to end-users, that contains all of your application code as well as the Python interpreter. -Applications such as 'Dropbox', 'Eve Online', 'Civilisation IV', and +Applications such as 'Dropbox', 'Eve Online', 'Civilization IV', and BitTorrent clients do this. The advantage of distributing this way is that your application will "just work", From b832f669e682d5b4f97e2bb4e71e62f8834871c9 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 14 Nov 2016 14:31:53 -0500 Subject: [PATCH 008/209] Previous merge didnt handle 2 conflicts properly --- docs/dev/virtualenvs.rst | 4 ---- docs/starting/install/osx.rst | 24 ++---------------------- 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index d8d746c7e..927d213fa 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -8,11 +8,7 @@ projects in separate places, by creating virtual Python environments for them. It solves the "Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps your global site-packages directory clean and manageable. -<<<<<<< HEAD -For example, you can work on a project which requires Django 1.9 while also -======= For example, you can work on a project which requires Django 1.10 while also ->>>>>>> upstream/master maintaining a project which requires Django 1.8. virtualenv diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index bc5e53928..fe081b3d8 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -74,9 +74,6 @@ Now, we can install Python 2.7: $ brew install python -<<<<<<< HEAD -This will take a minute or two. -======= or Python 3: .. code-block:: console @@ -84,7 +81,6 @@ or Python 3: $ brew install python3 This will take a minute or two. ->>>>>>> upstream/master Setuptools and Pip @@ -93,23 +89,13 @@ Setuptools and Pip Homebrew installs Setuptools and ``pip`` for you. Setuptools enables you to download and install any compliant Python -<<<<<<< HEAD - -software over a network (usually the Internet) with a single command - -(``easy_install``). It also enables you to add this network installation - -capability to your own Python software with very little work. - -``pip`` is a tool for easily installing and managing Python packages, that is -recommended over ``easy_install``. It is superior to -``easy_install`` in `several ways -`_, -======= software over a network (usually the Internet) with a single command (``easy_install``). It also enables you to add this network installation capability to your own Python software with very little work. ``pip`` is a tool for easily installing and managing Python packages, -that is recommended over ``easy_install``. It is superior to ``easy_install`` in `several ways `_, ->>>>>>> upstream/master +that is recommended over ``easy_install``. It is superior to ``easy_install`` +in `several ways `_, and is actively maintained. @@ -122,14 +108,8 @@ in separate places, by creating virtual Python environments for them. It solves your global site-packages directory clean and manageable. For example, you can work on a project which requires Django 1.10 while also -<<<<<<< HEAD -maintaining a project which requires Django 1.7. -======= maintaining a project which requires Django 1.8. -To start using this and see more information: :ref:`Virtual Environments ` docs. ->>>>>>> upstream/master - To start using this and see more information: :ref:`Virtual Environments ` docs. -------------------------------- From 0d3c9a131f566f56a6256e3e507fbef3733c93c1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 14 Nov 2016 14:47:23 -0500 Subject: [PATCH 009/209] Previous merge did not handle 1 more conflict properly :-( --- docs/starting/install/osx.rst | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index fe081b3d8..97baf03d8 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -33,7 +33,6 @@ minimal but unofficial package. .. note:: -<<<<<<< HEAD If you already have XCode installed, do not install OSX-GCC-Installer. In combination, the software can cause issues that are difficult to diagnose. @@ -41,11 +40,7 @@ package. .. note:: If you perform a fresh install of XCode, you will also need to add the commandline tools by running ``xcode-select --install`` on the terminal. -======= - If you already have Xcode installed or plan to use Homebrew, do not install - OSX-GCC-Installer. In combination, the software can cause issues that are - difficult to diagnose. ->>>>>>> upstream/master + While OS X comes with a large number of UNIX utilities, those familiar with Linux systems will notice one key component missing: a decent package manager. From 35372867d9b7f2c7e0907e13697198776159d467 Mon Sep 17 00:00:00 2001 From: Gabriel Pitali Date: Thu, 17 Nov 2016 09:05:10 -0200 Subject: [PATCH 010/209] Update link for ez_setup.py Update link for ez_setup.py, in python-guide/docs/starting/install/win.rst file, because the old link was broken. --- docs/starting/install/win.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst index 131ace663..6496a3a78 100644 --- a/docs/starting/install/win.rst +++ b/docs/starting/install/win.rst @@ -54,7 +54,7 @@ command. It also enables you to add this network installation capability to your own Python software with very little work. To obtain the latest version of Setuptools for Windows, run the Python script -available here: `ez_setup.py `_ +available here: `ez_setup.py `_ You'll now have a new command available to you: **easy_install**. It is From 1d6d88bbb9105756725e67eb42e421c3b724813f Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 20 Nov 2016 22:50:12 -0500 Subject: [PATCH 011/209] Update sidebarlogo.html --- docs/_templates/sidebarlogo.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index bea79f74c..64db4c4ae 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -16,7 +16,7 @@

Get Updates

allowtransparency="true" frameborder="0" scrolling="0" width="200" height="20">

- +

Say Thanks!

Join Mailing List.

O'Reilly Book

From 521bcdaafbaa5ae19a9af339a80e1e247c157b73 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 20 Nov 2016 22:50:25 -0500 Subject: [PATCH 012/209] Update sidebarintro.html --- docs/_templates/sidebarintro.html | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index 5a49dc072..28f824998 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -19,6 +19,7 @@

Stay Informed

Join Mailing List.

+

Say Thanks!

O'Reilly Book

From 1b2a943ad808bd2c6a4f495986172b1f8a682076 Mon Sep 17 00:00:00 2001 From: caimaoy Date: Tue, 22 Nov 2016 18:36:08 +0800 Subject: [PATCH 013/209] update tox docs url --- docs/writing/tests.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst index b8b7ca022..a9f2bb617 100644 --- a/docs/writing/tests.rst +++ b/docs/writing/tests.rst @@ -218,7 +218,8 @@ multiple interpreter configurations tox allows you to configure complicated multi-parameter test matrices via a simple ini-style configuration file. - `tox `_ + `tox `_ + Unittest2 --------- From c769b54e76ed92cbc34ba0cd5d6558e4cdb1b607 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:05:19 -0500 Subject: [PATCH 014/209] rewrite of 3 vs 2 --- docs/starting/which-python.rst | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index 26732e34e..ae7254a5b 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -13,10 +13,11 @@ one might think. The basic gist of the state of things is as follows: -1. Python 2.7 has been the standard for a *long* time. -2. Python 3 introduced major changes to the language, which many developers are unhappy with. -3. Python 2.7 will receive necessary security updates until 2020 [#pep373_eol]_. +1. Python 2.7 has been the standard for a *long* time, and is being officially deprecated `in 2020 `_. +2. Python 3 introduced major changes to the language, which have taken some time for the community to adjust to. +3. As menitoned, Python 2.7 will only receive necessary security updates until 2020 [#pep373_eol]_. 4. Python 3 is continually evolving, like Python 2 did in years past. +5. The brand name "Python" encapsulates both Python 3 and Python 2. So, you can now see why this is not such an easy decision. @@ -26,21 +27,13 @@ Recommendations I'll be blunt: - -**Use Python 3 if...** - -- You don't care. -- You love Python 3. -- You are indifferent towards 2 vs 3. -- You don't know which one to use. -- You embrace change. - -**Use Python 2 if...** - -- You love Python 2 and are saddened by the future being Python 3. -- The stability requirements of your software would be improved by a language and runtime that never changes. -- Software that you depend on requires it. - +- Use Python 3 for new Python applications. +- If you're learning Python for the first time, familiarizing yourself with Python 2.7 will be very + useful, but not more useful than learning Python 3. Learn both. They are both "Python". +- Software that is already built (e.g. commercial software) often depends on Python 2.7. +- If you are writing a new open source Python library, it's best to write it for both Python 2 and 3 + simultaneously. Supporting 3 only is a political statment and will alienate many of your users. + This is not a problem — slowly, over the next three years, this will become less the case. So.... 3? ~~~~~~~~~ From a3f777d0b4bf3683f41cc9a4679fa566b0e4903a Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:08:53 -0500 Subject: [PATCH 015/209] which python --- docs/starting/which-python.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index ae7254a5b..85978f0dd 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -38,13 +38,13 @@ I'll be blunt: So.... 3? ~~~~~~~~~ -If you're choosing a Python interpreter to use, and aren't opinionated, then I +If you're choosing a Python interpreter to use, I recommend you use the newest Python 3.x, since every version brings new and -improved standard library modules, security and bug fixes. Progress is progress. +improved standard library modules, security and bug fixes. -Given such, only use Python 2 if you have a strong reason to, such as a Python 2 -exclusive library which has no adequate Python 3 ready alternative, or you -(like me) absolutely love and are inspired by Python 2. +Given such, only use Python 2 if you have a strong reason to, such as a +pre-existing code-base, a Python 2 exclusive library, simplicity/familiarity, +or, of course, you absolutely love and are inspired by Python 2. No harm in that. Check out `Can I Use Python 3? `_ to see if any software you're depending on will block your adoption of Python 3. From f8451532834fbf18ddb8a145ba669ec231542a63 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:14:13 -0500 Subject: [PATCH 016/209] python 3 --- docs/starting/which-python.rst | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index 85978f0dd..fc8701df0 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -13,14 +13,10 @@ one might think. The basic gist of the state of things is as follows: -1. Python 2.7 has been the standard for a *long* time, and is being officially deprecated `in 2020 `_. -2. Python 3 introduced major changes to the language, which have taken some time for the community to adjust to. -3. As menitoned, Python 2.7 will only receive necessary security updates until 2020 [#pep373_eol]_. -4. Python 3 is continually evolving, like Python 2 did in years past. -5. The brand name "Python" encapsulates both Python 3 and Python 2. - -So, you can now see why this is not such an easy decision. - +1. Python 2.7 has been the standard for a *long* time, and most running applications today use it. +2. The Python community is prepared and adjusted for production deployment of Python 3 applications. +3. Python 2.7 will only receive necessary security updates until 2020 [#pep373_eol]_, then deprecate. +4. The brand name "Python" encapsulates both Python 3 and Python 2. Recommendations ~~~~~~~~~~~~~~~ From 0dc24a34e7d0e17ba49298b5fe0312a3834d39ec Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:16:50 -0500 Subject: [PATCH 017/209] less aggressive --- docs/starting/which-python.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index fc8701df0..b8b503069 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -3,8 +3,8 @@ Picking an Interpreter .. _which-python: -The State of Python (2 vs 3) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The State of Python (3 & 2) +~~~~~~~~~~~~~~~~~~~~~~~~~~~ When choosing a Python interpreter, one looming question is always present: "Should I choose Python 2 or Python 3"? The answer is not as obvious as From cfce3eac7a7ec91f29a3127636de7c75a7825a6e Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:19:14 -0500 Subject: [PATCH 018/209] further clarification --- docs/starting/which-python.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index b8b503069..b8bf97cc0 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -25,11 +25,12 @@ I'll be blunt: - Use Python 3 for new Python applications. - If you're learning Python for the first time, familiarizing yourself with Python 2.7 will be very - useful, but not more useful than learning Python 3. Learn both. They are both "Python". -- Software that is already built (e.g. commercial software) often depends on Python 2.7. + useful, but not more useful than learning Python 3. +- Learn both. They are both "Python". +- Software that is already built often depends on Python 2.7. - If you are writing a new open source Python library, it's best to write it for both Python 2 and 3 - simultaneously. Supporting 3 only is a political statment and will alienate many of your users. - This is not a problem — slowly, over the next three years, this will become less the case. + simultaneously. Only supporting Python 3 for a new library you want to be widely adopted is a + political statment and will alienate many of your users. This is not a problem — slowly, over the next three years, this will become less the case. So.... 3? ~~~~~~~~~ From ed82f8d4401f510f64e80321a8b2b9a6a1671b94 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:24:11 -0500 Subject: [PATCH 019/209] further clarification --- docs/starting/which-python.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index b8bf97cc0..709a55d13 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -13,9 +13,9 @@ one might think. The basic gist of the state of things is as follows: -1. Python 2.7 has been the standard for a *long* time, and most running applications today use it. -2. The Python community is prepared and adjusted for production deployment of Python 3 applications. -3. Python 2.7 will only receive necessary security updates until 2020 [#pep373_eol]_, then deprecate. +1. Most production applications today use Python 2.7 . +2. Python 3 is ready for the production deployment of applications today. +3. Python 2.7 will only receive necessary security updates until 2020 [#pep373_eol]_. 4. The brand name "Python" encapsulates both Python 3 and Python 2. Recommendations From 3058b21a88f8f47e7abe74bda064634ab0904f40 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:24:58 -0500 Subject: [PATCH 020/209] subtle --- docs/starting/which-python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index 709a55d13..1936d0c38 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -7,7 +7,7 @@ The State of Python (3 & 2) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ When choosing a Python interpreter, one looming question is always present: -"Should I choose Python 2 or Python 3"? The answer is not as obvious as +"Should I choose Python 2 or Python 3"? The answer is a bit more subtle than one might think. From 249e7a9d2aa0eacd196f05a7902df19cc160a762 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 26 Nov 2016 19:28:40 -0500 Subject: [PATCH 021/209] 2.7 --- docs/starting/which-python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index 1936d0c38..b3befa2ed 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -13,7 +13,7 @@ one might think. The basic gist of the state of things is as follows: -1. Most production applications today use Python 2.7 . +1. Most production applications today use Python 2.7. 2. Python 3 is ready for the production deployment of applications today. 3. Python 2.7 will only receive necessary security updates until 2020 [#pep373_eol]_. 4. The brand name "Python" encapsulates both Python 3 and Python 2. From 220001839df03eb89b8f66c8b0527a5ab81d22bd Mon Sep 17 00:00:00 2001 From: Will Humphreys Date: Tue, 29 Nov 2016 18:24:54 +0000 Subject: [PATCH 022/209] Fix missing space --- docs/dev/env.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dev/env.rst b/docs/dev/env.rst index d5870274a..53d798531 100644 --- a/docs/dev/env.rst +++ b/docs/dev/env.rst @@ -148,7 +148,7 @@ known for IntelliJ IDEA. Both share the same code base and most of PyCharm's features can be brought to IntelliJ with the free `Python Plug-In `_. There are two versions of PyCharm: Professional Edition (Free 30-day trial) and Community -Edition(Apache 2.0 License) with fewer features. +Edition (Apache 2.0 License) with fewer features. Python (on Visual Studio Code) ----------------------------- From 0b43cd8fce49d1c42317324d88e69332be8ace3b Mon Sep 17 00:00:00 2001 From: He Huang Date: Tue, 29 Nov 2016 21:22:29 -0500 Subject: [PATCH 023/209] Fixed broken link on Magic Methods with new link and a brief note. The original website is down. --- docs/intro/learning.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst index 823da5bab..97623a8c5 100644 --- a/docs/intro/learning.rst +++ b/docs/intro/learning.rst @@ -209,6 +209,8 @@ in Python. Magic methods are surrounded by double underscores (i.e. __init__) and can make classes and objects behave in different and magical ways. `A Guide to Python's Magic Methods `_ +Note: The Rafekettler.com is currently down, you can go to their Github version directly. Here you can find a PDF version: + `A Guide to Python's Magic Methods (repo on GitHub) `_ For Engineers and Scientists From 9c33ab68ab94a98012b0666a9ce8a69a10bf8e4f Mon Sep 17 00:00:00 2001 From: He Huang Date: Tue, 29 Nov 2016 21:27:15 -0500 Subject: [PATCH 024/209] Change the link to Magic Methods from its GitHub repo to its pdf file directly. --- docs/intro/learning.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst index 97623a8c5..f99dd56a0 100644 --- a/docs/intro/learning.rst +++ b/docs/intro/learning.rst @@ -210,7 +210,7 @@ and can make classes and objects behave in different and magical ways. `A Guide to Python's Magic Methods `_ Note: The Rafekettler.com is currently down, you can go to their Github version directly. Here you can find a PDF version: - `A Guide to Python's Magic Methods (repo on GitHub) `_ + `A Guide to Python's Magic Methods (repo on GitHub) `_ For Engineers and Scientists From 48ee67897b44e40143c9c4bca653a01a89dd0bff Mon Sep 17 00:00:00 2001 From: He Huang Date: Tue, 29 Nov 2016 23:04:15 -0500 Subject: [PATCH 025/209] Format note according to the Style Guide --- docs/intro/learning.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst index f99dd56a0..a5e264661 100644 --- a/docs/intro/learning.rst +++ b/docs/intro/learning.rst @@ -209,7 +209,7 @@ in Python. Magic methods are surrounded by double underscores (i.e. __init__) and can make classes and objects behave in different and magical ways. `A Guide to Python's Magic Methods `_ -Note: The Rafekettler.com is currently down, you can go to their Github version directly. Here you can find a PDF version: +.. note:: The Rafekettler.com is currently down, you can go to their Github version directly. Here you can find a PDF version: `A Guide to Python's Magic Methods (repo on GitHub) `_ From e41404737716e74018355a7290750985ea8b5caf Mon Sep 17 00:00:00 2001 From: Nathan Goldbaum Date: Sun, 4 Dec 2016 13:38:35 -0600 Subject: [PATCH 026/209] typo fix in virtualenv development instructions --- docs/dev/pip-virtualenv.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dev/pip-virtualenv.rst b/docs/dev/pip-virtualenv.rst index 51927e689..07f93c679 100644 --- a/docs/dev/pip-virtualenv.rst +++ b/docs/dev/pip-virtualenv.rst @@ -18,8 +18,8 @@ environment of the project. Over time this can result in a messy global package list. In order to make sure that you install packages to your active virtual -environment when you use ``pip install``, consider adding the following two -lines to your :file:`~/.bashrc` file: +environment when you use ``pip install``, consider adding the following +line to your :file:`~/.bashrc` file: .. code-block:: console From 61ad4a642fcf79ff1ce74dd57707fad5f462d38a Mon Sep 17 00:00:00 2001 From: Gabbarnama Date: Tue, 6 Dec 2016 19:43:59 +0530 Subject: [PATCH 027/209] Update structure.rst Removed hyperlink from setup.py --- docs/writing/structure.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst index a156fba7f..0775311c4 100644 --- a/docs/writing/structure.rst +++ b/docs/writing/structure.rst @@ -200,7 +200,7 @@ it. You can do this a few ways: package properly. I highly recommend the latter. Requiring a developer to run -`setup.py `__ develop to test an actively changing +``setup.py develop`` to test an actively changing codebase also requires them to have an isolated environment setup for each instance of the codebase. From 63841bdc50763663b80db585a168ea9bd5f287d1 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 7 Dec 2016 11:32:47 -0800 Subject: [PATCH 028/209] sierra --- docs/starting/install/osx.rst | 4 ++-- docs/starting/install3/osx.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index 97baf03d8..67c7aafea 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -6,7 +6,7 @@ Installing Python on Mac OS X .. note:: Check out our :ref:`guide for installing Python 3 on OS X`. -The latest version of Mac OS X, El Capitan, **comes with Python 2.7 out of the box**. +The latest version of Mac OS X, Sierra, **comes with Python 2.7 out of the box**. You do not need to install or configure anything else to use Python. Having said that, I would strongly recommend that you install the tools and libraries @@ -75,7 +75,7 @@ or Python 3: $ brew install python3 -This will take a minute or two. +This will take a minute or two. Setuptools and Pip diff --git a/docs/starting/install3/osx.rst b/docs/starting/install3/osx.rst index d5a33291c..456c6d1ec 100644 --- a/docs/starting/install3/osx.rst +++ b/docs/starting/install3/osx.rst @@ -3,7 +3,7 @@ Installing Python 3 on Mac OS X ================================ -The latest version of Mac OS X, El Capitan, **comes with Python 2.7 out of the box**. +The latest version of Mac OS X, Sierra, **comes with Python 2.7 out of the box**. You do not need to install or configure anything else to use Python 2. These instructions document the installation of Python 3. From 96ddd776e0b626968ef7577d76f4231af2a920c3 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 7 Dec 2016 11:34:28 -0800 Subject: [PATCH 029/209] improvements --- docs/dev/virtualenvs.rst | 2 +- docs/starting/install/osx.rst | 2 +- docs/starting/install3/osx.rst | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index 927d213fa..c85b8e844 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -44,7 +44,7 @@ This creates a copy of Python in whichever directory you ran the command in, placing it in a folder named :file:`venv`. You can also use the Python interpreter of your choice (like -:file:`/usr/bin/python2.7`). +``python2.7``). .. code-block:: console diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index 67c7aafea..6312215a5 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -78,7 +78,7 @@ or Python 3: This will take a minute or two. -Setuptools and Pip +Setuptools & Pip ---------------- Homebrew installs Setuptools and ``pip`` for you. diff --git a/docs/starting/install3/osx.rst b/docs/starting/install3/osx.rst index 456c6d1ec..33af41f37 100644 --- a/docs/starting/install3/osx.rst +++ b/docs/starting/install3/osx.rst @@ -64,15 +64,15 @@ This will take a minute or two. Pip ----------------- +--- Homebrew installs ``pip3`` for you. ``pip3`` is the alias for the Python 3 version of ``pip`` on systems with both the Homebrew'd Python 2 and 3 installed. -Working with Python3 --------------------- +Working with Python 3 +--------------------- At this point, you have the system Python 2.7 available, potentially the :ref:`Homebrew version of Python 2 ` installed, and the Homebrew From 54ff4fcd59af05ed93e12ccaa2814fc6aec37244 Mon Sep 17 00:00:00 2001 From: David Fischer Date: Sun, 11 Dec 2016 20:35:43 -0800 Subject: [PATCH 030/209] Click is stable - not upcoming --- docs/scenarios/cli.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst index ab357c2fd..617de28c0 100644 --- a/docs/scenarios/cli.rst +++ b/docs/scenarios/cli.rst @@ -30,7 +30,7 @@ column printer, iterator based progress bars and implicit argument handling. Click ----- -`click `_ is an upcoming Python package for creating +`click `_ is a Python package for creating command-line interfaces in a composable way with as little code as possible. This “Command-line Interface Creation Kit” is highly configurable but comes with good defaults out of the box. From 5350bc4d949ecdb050ec8b2681da716b10b59892 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Mon, 12 Dec 2016 13:24:13 +0000 Subject: [PATCH 031/209] Update section about Gondor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gondor has changed name, it’s now called [Eldarion](http://eldarion.cloud). I haven’t used it myself, but I thought I would update the page. --- docs/scenarios/web.rst | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst index 9e07a59f5..ecbbbc4b5 100644 --- a/docs/scenarios/web.rst +++ b/docs/scenarios/web.rst @@ -221,19 +221,12 @@ how to set up your first application. Heroku is the recommended PaaS for deploying Python web applications today. -Gondor ------- - -`Gondor `_ is a PaaS specialized for deploying Django -and Pinax applications. Gondor recommends Django version 1.6 and supports any -WSGI application on Python version 2.7. Gondor can automatically configure your -Django site if you use :file:`local_settings.py` for site-specific configuration -information. - -Gondor has a guide on deploying `Django projects `_. +Eldarion +-------- -Gondor is run by a small company and focuses on helping businesses find success with -Python and Django. +`Eldarion `_ (formely known as Gondor) is a PaaS powered +by Kubernetes, CoreOS, and Docker. They support any WSGI application and have a +guide on deploying `Django projects `_. Templating :::::::::: From 9c4af31253c9ead770cf179d36d887a34f158c7b Mon Sep 17 00:00:00 2001 From: Nick Klauer Date: Fri, 16 Dec 2016 13:27:48 -0600 Subject: [PATCH 032/209] Update psutil project page to not use Google Code Since Google Code is defunct, the new homepage for `psutil` is on GitHub. I've updated the link, nothing more. --- docs/scenarios/admin.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst index 8e738d9c0..a438ab40c 100644 --- a/docs/scenarios/admin.rst +++ b/docs/scenarios/admin.rst @@ -131,7 +131,7 @@ State files can be written using YAML, the Jinja2 template system or pure Python Psutil ------ -`Psutil `_ is an interface to different +`Psutil `_ is an interface to different system information (e.g. CPU, memory, disks, network, users and processes). Here is an example to be aware of some server overload. If any of the From 2d4d8b4dfc7e6d420d29436a2df8801876e6b34c Mon Sep 17 00:00:00 2001 From: Derek Argueta Date: Sat, 17 Dec 2016 15:59:21 -0700 Subject: [PATCH 033/209] Typo fix --- docs/starting/which-python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst index b3befa2ed..2d2868e29 100644 --- a/docs/starting/which-python.rst +++ b/docs/starting/which-python.rst @@ -30,7 +30,7 @@ I'll be blunt: - Software that is already built often depends on Python 2.7. - If you are writing a new open source Python library, it's best to write it for both Python 2 and 3 simultaneously. Only supporting Python 3 for a new library you want to be widely adopted is a - political statment and will alienate many of your users. This is not a problem — slowly, over the next three years, this will become less the case. + political statement and will alienate many of your users. This is not a problem — slowly, over the next three years, this will become less the case. So.... 3? ~~~~~~~~~ From 8ef764dc3e21e111696f9dab0afa27c4d3fe3a49 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 4 Jan 2017 20:49:44 -0500 Subject: [PATCH 034/209] new japanese translation! --- docs/_templates/sidebarintro.html | 2 +- docs/_templates/sidebarlogo.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index 28f824998..52c9757a4 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -63,6 +63,6 @@

Translations

  • English
  • French
  • Chinese
  • -
  • Japanese
  • +
  • Japanese
  • Korean
  • diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index 64db4c4ae..78f7d7054 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -44,6 +44,6 @@

    Translations

  • English
  • French
  • Chinese
  • -
  • Japanese
  • +
  • Japanese
  • Korean
  • From cde1e4feed9e59184b3a6458ff806523d995cca2 Mon Sep 17 00:00:00 2001 From: Abhik Pal Date: Mon, 23 Jan 2017 14:13:07 +0530 Subject: [PATCH 035/209] broken link fix --- docs/scenarios/scrape.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scenarios/scrape.rst b/docs/scenarios/scrape.rst index 889a93082..90e5252e4 100644 --- a/docs/scenarios/scrape.rst +++ b/docs/scenarios/scrape.rst @@ -49,7 +49,7 @@ will focus on the former. XPath is a way of locating information in structured documents such as HTML or XML documents. A good introduction to XPath is on -`W3Schools `_ . +`W3Schools `_ . There are also various tools for obtaining the XPath of elements such as FireBug for Firefox or the Chrome Inspector. If you're using Chrome, you From 9826b1b82d30336bb8e42208e7e344ae5b169e49 Mon Sep 17 00:00:00 2001 From: Harsh Vardhan Date: Mon, 23 Jan 2017 17:16:09 +0530 Subject: [PATCH 036/209] Update W3Schools link to the XPath Tutorial. --- docs/scenarios/scrape.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scenarios/scrape.rst b/docs/scenarios/scrape.rst index 889a93082..90e5252e4 100644 --- a/docs/scenarios/scrape.rst +++ b/docs/scenarios/scrape.rst @@ -49,7 +49,7 @@ will focus on the former. XPath is a way of locating information in structured documents such as HTML or XML documents. A good introduction to XPath is on -`W3Schools `_ . +`W3Schools `_ . There are also various tools for obtaining the XPath of elements such as FireBug for Firefox or the Chrome Inspector. If you're using Chrome, you From 5af55049645e61d50de20105fd2f9b2c74fe217a Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 2 Feb 2017 22:22:23 -0500 Subject: [PATCH 037/209] upgraded sidebar --- docs/_templates/sidebarintro.html | 3 ++- docs/_templates/sidebarlogo.html | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index 52c9757a4..ab0edb3eb 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -33,12 +33,13 @@

    Other Projects

    More Kenneth Reitz projects:

    Contributors

    diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index 78f7d7054..e6e3ddc82 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -31,12 +31,13 @@

    Other Projects

    More Kenneth Reitz projects:

    Translations

    From 0b1f1d944229f910ce56a1d46fa6721a0ceaac33 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 4 Feb 2017 15:22:40 -0600 Subject: [PATCH 038/209] Update web.rst --- docs/scenarios/web.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst index ecbbbc4b5..2bbe36509 100644 --- a/docs/scenarios/web.rst +++ b/docs/scenarios/web.rst @@ -1,6 +1,6 @@ -================ -Web Applications -================ +============================= +Web Applications & Frameworks +============================= As a powerful scripting language adapted to both fast prototyping and bigger projects, Python is widely used in web application From 50a60121ad3da0bee92fbd824bea5dd6853a5eff Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sun, 12 Feb 2017 02:18:02 -0500 Subject: [PATCH 039/209] edmsynths.com --- docs/_templates/sidebarintro.html | 1 + docs/_templates/sidebarlogo.html | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index ab0edb3eb..869b3bcf6 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -33,6 +33,7 @@

    Other Projects

    More Kenneth Reitz projects:

      +
    • edmsynths.com
    • pipenv
    • pep8.org
    • Requests: HTTP for Humans
    • diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index e6e3ddc82..9ff209013 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -31,6 +31,7 @@

      Other Projects

      More Kenneth Reitz projects:

        +
      • edmsynths.com
      • pipenv
      • pep8.org
      • Requests: HTTP for Humans
      • From 46b5e63b0a3fb42b2f6d444604be768a7e45c84c Mon Sep 17 00:00:00 2001 From: Dan Shorstein Date: Sat, 18 Feb 2017 11:03:26 -0500 Subject: [PATCH 040/209] add example to mutable/immutable types added the map example, with explanation --- docs/writing/structure.rst | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst index a156fba7f..ebe13d4ab 100644 --- a/docs/writing/structure.rst +++ b/docs/writing/structure.rst @@ -785,7 +785,12 @@ its parts, it is much more efficient to accumulate the parts in a list, which is mutable, and then glue ('join') the parts together when the full string is needed. One thing to notice, however, is that list comprehensions are better and faster than constructing a list in a loop -with calls to ``append()``. +with calls to ``append()``. + +One other option is using the map function, which can 'map' a function +('str') to an iterable ('range(20)'). This results in a map object, +which you can then ('join') together just like the other examples. +The map function can be even faster than a list comprehension in some cases. **Bad** @@ -807,13 +812,21 @@ with calls to ``append()``. nums.append(str(n)) print "".join(nums) # much more efficient -**Best** +**Better** .. code-block:: python # create a concatenated string from 0 to 19 (e.g. "012..1819") nums = [str(n) for n in range(20)] print "".join(nums) + +**Best** + +.. code-block:: python + + # create a concatenated string from 0 to 19 (e.g. "012..1819") + nums = map(str, range(20)) + print "".join(nums) One final thing to mention about strings is that using ``join()`` is not always best. In the instances where you are creating a new string from a pre-determined From f20a2f63c46a6d57c1fe00c51eae6dc12704270e Mon Sep 17 00:00:00 2001 From: Luis Rueda Date: Thu, 23 Feb 2017 13:48:52 -0500 Subject: [PATCH 041/209] Update logging.rst Update to include changes proposed in issue #794 --- docs/writing/logging.rst | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/writing/logging.rst b/docs/writing/logging.rst index 9b41abadf..ad2bda1bc 100644 --- a/docs/writing/logging.rst +++ b/docs/writing/logging.rst @@ -55,17 +55,8 @@ this in your ``__init__.py`` .. code-block:: python - # Set default logging handler to avoid "No handler found" warnings. import logging - try: # Python 2.7+ - from logging import NullHandler - except ImportError: - class NullHandler(logging.Handler): - def emit(self, record): - pass - - logging.getLogger(__name__).addHandler(NullHandler()) - + logging.getLogger(__name__).addHandler(logging.NullHandler()) Logging in an Application From ff3879cf6f914869f845655cd242b4ed638e3bc2 Mon Sep 17 00:00:00 2001 From: Luis Rueda Date: Thu, 23 Feb 2017 14:03:50 -0500 Subject: [PATCH 042/209] Update virtualenvs.rst Renames the virtual environment name from venv to my_project so that the reader is clear that they should not name their environment venv which could lead to confusion later (venv appearing on the left of the prompt) --- docs/dev/virtualenvs.rst | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index c85b8e844..77773f6ae 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -32,23 +32,23 @@ Basic Usage .. code-block:: console $ cd my_project_folder - $ virtualenv venv + $ virtualenv my_project -``virtualenv venv`` will create a folder in the current directory which will +``virtualenv my_project`` will create a folder in the current directory which will contain the Python executable files, and a copy of the ``pip`` library which you can use to install other packages. The name of the virtual environment (in this -case, it was ``venv``) can be anything; omitting the name will place the files +case, it was ``my_project``) can be anything; omitting the name will place the files in the current directory instead. This creates a copy of Python in whichever directory you ran the command in, -placing it in a folder named :file:`venv`. +placing it in a folder named :file:`my_project`. You can also use the Python interpreter of your choice (like ``python2.7``). .. code-block:: console - $ virtualenv -p /usr/bin/python2.7 venv + $ virtualenv -p /usr/bin/python2.7 my_project or change the interpreter globally with an env variable in ``~/.bashrc``: @@ -60,12 +60,12 @@ or change the interpreter globally with an env variable in ``~/.bashrc``: .. code-block:: console - $ source venv/bin/activate + $ source my_project/bin/activate The name of the current virtual environment will now appear on the left of -the prompt (e.g. ``(venv)Your-Computer:your_project UserName$)`` to let you know +the prompt (e.g. ``(my_project)Your-Computer:your_project UserName$)`` to let you know that it's active. From now on, any package that you install using pip will be -placed in the ``venv`` folder, isolated from the global Python installation. +placed in the ``my_project`` folder, isolated from the global Python installation. Install packages as usual, for example: @@ -84,7 +84,7 @@ This puts you back to the system's default Python interpreter with all its installed libraries. To delete a virtual environment, just delete its folder. (In this case, -it would be ``rm -rf venv``.) +it would be ``rm -rf my_project``.) After a while, though, you might end up with a lot of virtual environments littered across your system, and its possible you'll forget their names or @@ -158,15 +158,15 @@ Basic Usage .. code-block:: console - $ mkvirtualenv venv + $ mkvirtualenv my_project -This creates the :file:`venv` folder inside :file:`~/Envs`. +This creates the :file:`my_project` folder inside :file:`~/Envs`. 2. Work on a virtual environment: .. code-block:: console - $ workon venv + $ workon my_project Alternatively, you can make a project, which creates the virtual environment, and also a project directory inside ``$PROJECT_HOME``, which is ``cd`` -ed into From d1f24121eff4ea20dd31619261cba91bef7356f0 Mon Sep 17 00:00:00 2001 From: Simon Chiang Date: Fri, 24 Feb 2017 08:21:52 -0700 Subject: [PATCH 043/209] Indentation typo --- docs/writing/structure.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst index 3d7413eaa..5d09fe39b 100644 --- a/docs/writing/structure.rst +++ b/docs/writing/structure.rst @@ -633,7 +633,7 @@ with the class approach: class CustomOpen(object): def __init__(self, filename): - self.file = open(filename) + self.file = open(filename) def __enter__(self): return self.file From f3bf91aceceb0392bc0b0ad57df65bffd89c1bd6 Mon Sep 17 00:00:00 2001 From: tv3141 Date: Tue, 28 Feb 2017 11:33:48 +0000 Subject: [PATCH 044/209] tests: use __file__ for package import --- docs/writing/structure.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst index 3d7413eaa..b06e15a73 100644 --- a/docs/writing/structure.rst +++ b/docs/writing/structure.rst @@ -211,7 +211,7 @@ file: import os import sys - sys.path.insert(0, os.path.abspath('..')) + sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) import sample From 04587705fa365252539cb33edb64bd67d014171e Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 11:28:36 +0100 Subject: [PATCH 045/209] Fix undeline warnings https://travis-ci.org/kennethreitz/python-guide/builds/204641280 --- docs/dev/env.rst | 2 +- docs/intro/news.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/dev/env.rst b/docs/dev/env.rst index 53d798531..59500ff8f 100644 --- a/docs/dev/env.rst +++ b/docs/dev/env.rst @@ -151,7 +151,7 @@ versions of PyCharm: Professional Edition (Free 30-day trial) and Community Edition (Apache 2.0 License) with fewer features. Python (on Visual Studio Code) ------------------------------ +------------------------------ `Python for Visual Studio `_ is an extension for the `Visual Studio Code IDE `_. This is a free, light weight, open source IDE, with support for Mac, Windows, and Linux. diff --git a/docs/intro/news.rst b/docs/intro/news.rst index 54f8ff70f..074821fa4 100644 --- a/docs/intro/news.rst +++ b/docs/intro/news.rst @@ -49,7 +49,7 @@ delivered in your inbox. Keep Your Python Programming Skills Updated. `Import Python Weekly Newsletter `_ Awesome Python Newsletter -~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~ A weekly overview of the most popular Python news, articles and packages. From 157a3ff8114701babe2be7f233f91dfe6577b48f Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 14:12:19 +0100 Subject: [PATCH 046/209] Fix block quote --- docs/intro/learning.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst index a5e264661..a9eb4e0b5 100644 --- a/docs/intro/learning.rst +++ b/docs/intro/learning.rst @@ -209,8 +209,10 @@ in Python. Magic methods are surrounded by double underscores (i.e. __init__) and can make classes and objects behave in different and magical ways. `A Guide to Python's Magic Methods `_ + .. note:: The Rafekettler.com is currently down, you can go to their Github version directly. Here you can find a PDF version: `A Guide to Python's Magic Methods (repo on GitHub) `_ + For Engineers and Scientists From d55db9791dc1a176a0276f7c2113399678a05bf9 Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 14:21:48 +0100 Subject: [PATCH 047/209] Add reference to Lock --- docs/scenarios/speed.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst index 2c775b880..01223809c 100644 --- a/docs/scenarios/speed.rst +++ b/docs/scenarios/speed.rst @@ -448,3 +448,4 @@ Multiprocessing .. _`threading`: https://docs.python.org/3/library/threading.html .. _`stackoverflow post`: http://stackoverflow.com/questions/26688424/python-threads-are-printing-at-the-same-time-messing-up-the-text-output .. _`data race`: https://en.wikipedia.org/wiki/Race_condition +.. _`Lock`: https://docs.python.org/3/library/threading.html#lock-objects From 85762b82822436a787c8f5dbf9a04f0b48883987 Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 14:29:39 +0100 Subject: [PATCH 048/209] We do not want to have it show up in any toc We dot his by marking this page as orphan --- docs/starting/install3/osx.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/starting/install3/osx.rst b/docs/starting/install3/osx.rst index 33af41f37..de0d4b396 100644 --- a/docs/starting/install3/osx.rst +++ b/docs/starting/install3/osx.rst @@ -1,3 +1,5 @@ +:orphan: This article should not be added to a toctree for now + .. _install3-osx: Installing Python 3 on Mac OS X From 0cb55a887b6cfd0ea502d326cdc4f2d8d63549c8 Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 14:48:20 +0100 Subject: [PATCH 049/209] This is not a highlightable cpp code block --- docs/scenarios/clibs.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/scenarios/clibs.rst b/docs/scenarios/clibs.rst index 82e041fe3..fc859eb04 100644 --- a/docs/scenarios/clibs.rst +++ b/docs/scenarios/clibs.rst @@ -96,26 +96,27 @@ Example: Overloading __repr__ std::string getName(); }; + :file:`myclass.i` -.. code-block:: c++ +.. code-block:: :linenos: %include "string.i" - + %module myclass %{ #include #include "MyClass.h" %} - + %extend MyClass { std::string __repr__() { return $self->getName(); } } - + %include "MyClass.h" From 3b63e28f4c9872ee0cfd416bbb114c4aecf059b7 Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 14:53:16 +0100 Subject: [PATCH 050/209] Use Mako highlighting instead of html --- docs/scenarios/web.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst index 2bbe36509..6008ddd09 100644 --- a/docs/scenarios/web.rst +++ b/docs/scenarios/web.rst @@ -10,6 +10,7 @@ Context ::::::: + WSGI ---- @@ -457,7 +458,7 @@ frameworks. An example template in Mako looks like: -.. code-block:: html +.. code-block:: mako <%inherit file="base.html"/> <% From 873b21fe0b648015c8d5fe080f19ca4e0f7e4f3a Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 15:02:08 +0100 Subject: [PATCH 051/209] Properly set code-block --- docs/scenarios/clibs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scenarios/clibs.rst b/docs/scenarios/clibs.rst index fc859eb04..2066489cd 100644 --- a/docs/scenarios/clibs.rst +++ b/docs/scenarios/clibs.rst @@ -99,7 +99,7 @@ Example: Overloading __repr__ :file:`myclass.i` -.. code-block:: +.. code-block:: idl :linenos: %include "string.i" From 2f9028969c5232a8e2738ee5080246e2cc901f6d Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Sat, 11 Mar 2017 15:18:48 +0100 Subject: [PATCH 052/209] Remove wrong usage of :option: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From http://www.sphinx-doc.org/en/stable/domains.html#directive-option: > The directive will create cross-reference targets for the given options, > referencable by option (in the example case, you’d use something like > :option:`dest_dir`, :option:`-m`, or :option:`--module`). I don't think we're intending here to create cross references, we simply want to render it nicely. So just use code formatting instead. This gets rid of the last build warnings. --- docs/dev/env.rst | 2 +- docs/dev/virtualenvs.rst | 2 +- docs/shipping/freezing.rst | 2 +- docs/shipping/packaging.rst | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/dev/env.rst b/docs/dev/env.rst index 59500ff8f..3330fb667 100644 --- a/docs/dev/env.rst +++ b/docs/dev/env.rst @@ -38,7 +38,7 @@ over the syntax file included in Vim 6.1. These plugins supply you with a basic environment for developing in Python. To get the most out of Vim, you should continually check your code for syntax errors and PEP8 compliance. Luckily PEP8_ and Pyflakes_ will do this for you. -If your Vim is compiled with :option:`+python` you can also utilize some very +If your Vim is compiled with ``+python`` you can also utilize some very handy plugins to do these checks from within the editor. For PEP8 checking and pyflakes, you can install vim-flake8_. Now you can map the diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index 77773f6ae..99b21db2d 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -93,7 +93,7 @@ where they were placed. Other Notes ~~~~~~~~~~~ -Running ``virtualenv`` with the option :option:`--no-site-packages` will not +Running ``virtualenv`` with the option ``--no-site-packages`` will not include the packages that are installed globally. This can be useful for keeping the package list clean in case it needs to be accessed later. [This is the default behavior for ``virtualenv`` 1.7 and later.] diff --git a/docs/shipping/freezing.rst b/docs/shipping/freezing.rst index 4e2de50e8..b75d0c169 100644 --- a/docs/shipping/freezing.rst +++ b/docs/shipping/freezing.rst @@ -60,7 +60,7 @@ py2app no no yes yes MIT no yes yes .. note:: All solutions need MS Visual C++ dll to be installed on target machine, except py2app. Only Pyinstaller makes self-executable exe that bundles the dll when - passing :option:`--onefile` to :file:`Configure.py`. + passing ``--onefile`` to :file:`Configure.py`. Windows ------- diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst index c67957529..8100ee343 100644 --- a/docs/shipping/packaging.rst +++ b/docs/shipping/packaging.rst @@ -101,7 +101,7 @@ pypiserver `Pypiserver `_ is a minimal PyPI compatible server. It can be used to serve a set of packages to easy_install or pip. It includes helpful features like an administrative command -(:option:`-U`) which will update all its packages to their latest versions +(``-U``) which will update all its packages to their latest versions found on PyPI. From aa152492e281efe9cf0c35c95f55f540068d8215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCttler?= Date: Tue, 14 Mar 2017 14:44:21 +0100 Subject: [PATCH 053/209] Link to **Python** docs of travis. I think this make more sense, since all of these options are explained there. --- docs/scenarios/ci.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst index 16e0ea0df..b3327b141 100644 --- a/docs/scenarios/ci.rst +++ b/docs/scenarios/ci.rst @@ -77,7 +77,7 @@ this example content:: This will get your project tested on all the listed Python versions by running the given script, and will only build the master branch. There are a lot more options you can enable, like notifications, before and after steps -and much more. The `travis-ci docs `_ +and much more. The `travis-ci docs `_ explain all of these options, and are very thorough. In order to activate testing for your project, go to `the travis-ci site `_ From 1fd684ad518b1229f2df035007026d006baed4b2 Mon Sep 17 00:00:00 2001 From: Victor Caldas Date: Sun, 19 Mar 2017 12:47:03 +0100 Subject: [PATCH 054/209] Add Pt_BR - Fixes #788 pt_BR translation ongoing, --- docs/_templates/sidebarlogo.html | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index bea79f74c..ef931a432 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -46,4 +46,5 @@

        Translations

      • Chinese
      • Japanese
      • Korean
      • +
      • Brazilian Portuguese
      From 8376cfaa18379d8d5967456379cd079b45ab7dc9 Mon Sep 17 00:00:00 2001 From: Victor Caldas Date: Sun, 19 Mar 2017 12:47:28 +0100 Subject: [PATCH 055/209] Update sidebarintro.html --- docs/_templates/sidebarintro.html | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index 5a49dc072..6ab0c1471 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -64,4 +64,5 @@

      Translations

    • Chinese
    • Japanese
    • Korean
    • +
    • Brazilian Portuguese
    From d6789d22f1942bfba823d865b50928a1c8a63e45 Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Singh Date: Mon, 10 Apr 2017 20:53:19 +0530 Subject: [PATCH 056/209] Check virtualenv installation, close #657 --- docs/dev/virtualenvs.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst index 99b21db2d..71307da50 100644 --- a/docs/dev/virtualenvs.rst +++ b/docs/dev/virtualenvs.rst @@ -23,6 +23,12 @@ Install virtualenv via pip: .. code-block:: console $ pip install virtualenv + +Test your installation + +.. code-block:: console + + $ virtualenv --version Basic Usage ~~~~~~~~~~~ From d3d2fcc496984ce16363b6b9fc181628a16197a9 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 10:43:52 -0400 Subject: [PATCH 057/209] python 3 guides --- docs/starting/install3/linux.rst | 66 +++++++++++++++++++++++++ docs/starting/install3/win.rst | 84 ++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 docs/starting/install3/linux.rst create mode 100644 docs/starting/install3/win.rst diff --git a/docs/starting/install3/linux.rst b/docs/starting/install3/linux.rst new file mode 100644 index 000000000..9e33ff3c4 --- /dev/null +++ b/docs/starting/install3/linux.rst @@ -0,0 +1,66 @@ +.. _install3-linux: + +Installing Python 3 on Linux +============================ + +This document describes how to install Python 3.6 on Ubuntu Linux machines. + +To see which version of Python 3 you have installed, open a command prompt and run + +.. code-block:: console + + $ python3 --version + +If you are using Ubuntu 16.10 or newer, then you can easily install Python 3.6 with the following commands:: + + $ sudo apt-get update + $ sudo apt-get install python3.6 + +If you're using another version of Ubuntu (e.g. the latest LTS release), we recommend using the `deadsnakes PPA `_ to install Python 3.6:: + + $ sudo add-apt-repository ppa:fkrull/deadsnakes + $ sudo apt-get update + $ sudo apt-get install python3.6 + + +Setuptools & Pip +---------------- + +The two most crucial third-party Python packages are `setuptools `_ and `pip `_. + +Once installed, you can download, install and uninstall any compliant Python software +product with a single command. It also enables you to add this network installation +capability to your own Python software with very little work. + +Python 2.7.9 and later (on the python2 series), and Python 3.4 and later include +pip by default. + +To see if pip is installed, open a command prompt and run + +.. code-block:: console + + $ command -v pip + +To install pip, `follow the official pip installation guide `_ - this will automatically install the latest version of setuptools. + +Virtual Environments +-------------------- + +A Virtual Environment is a tool to keep the dependencies required by different projects +in separate places, by creating virtual Python environments for them. It solves the +"Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps +your global site-packages directory clean and manageable. + +For example, you can work on a project which requires Django 1.10 while also +maintaining a project which requires Django 1.8. + +To start using this and see more information: :ref:`Virtual Environments ` docs. + +You can also use :ref:`virtualenvwrapper ` to make it easier to +manage your virtual environments. + +-------------------------------- + +This page is a remixed version of `another guide `_, +which is available under the same license. + diff --git a/docs/starting/install3/win.rst b/docs/starting/install3/win.rst new file mode 100644 index 000000000..d1d00a985 --- /dev/null +++ b/docs/starting/install3/win.rst @@ -0,0 +1,84 @@ +.. _install3-windows: + +Installing Python 3 on Windows +============================ + +First, download the `latest version `_ +of Python 3.6 from the official website. If you want to be sure you are installing a fully +up-to-date version, click the Downloads > Windows link from the home page of the +`Python.org web site `_ . + +By design, Python installs to a directory with the version number embedded, +e.g. Python version 3.6 will install at :file:`C:\\Python36\\`, so that you can +have multiple versions of Python on the +same system without conflicts. Of course, only one interpreter can be the +default application for Python file types. It also does not automatically +modify the :envvar:`PATH` environment variable, so that you always have control over +which copy of Python is run. + +Typing the full path name for a Python interpreter each time quickly gets +tedious, so add the directories for your default Python version to the :envvar:`PATH`. +Assuming that your Python installation is in :file:`C:\\Python36\\`, add this to your +:envvar:`PATH`: + +.. code-block:: console + + C:\Python36\;C:\Python36\Scripts\ + +You can do this easily by running the following in ``powershell``: + +.. code-block:: console + + [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User") + +This is also an option during the installation process. + +The second (:file:`Scripts`) directory receives command files when certain +packages are installed, so it is a very useful addition. +You do not need to install or configure anything else to use Python. Having +said that, I would strongly recommend that you install the tools and libraries +described in the next section before you start building Python applications for +real-world use. In particular, you should always install Setuptools, as it +makes it much easier for you to use other third-party Python libraries. + +Setuptools + Pip +---------------- + +The most crucial third-party Python software of all is Setuptools, which +extends the packaging and installation facilities provided by the distutils in +the standard library. Once you add Setuptools to your Python system you can +download and install any compliant Python software product with a single +command. It also enables you to add this network installation capability to +your own Python software with very little work. + +To obtain the latest version of Setuptools for Windows, run the Python script +available here: `ez_setup.py `_ + + +You'll now have a new command available to you: **easy_install**. It is +considered by many to be deprecated, so we will install its replacement: +**pip**. Pip allows for uninstallation of packages, and is actively maintained, +unlike easy_install. + +To install pip, run the Python script available here: +`get-pip.py `_ + + +Virtual Environments +-------------------- + +A Virtual Environment is a tool to keep the dependencies required by different projects +in separate places, by creating virtual Python environments for them. It solves the +"Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps +your global site-packages directory clean and manageable. + +For example, you can work on a project which requires Django 1.10 while also +maintaining a project which requires Django 1.8. + +To start using this and see more information: :ref:`Virtual Environments ` docs. + + +-------------------------------- + +This page is a remixed version of `another guide `_, +which is available under the same license. From 0c97ce5a31f8110910232a68997ee33b5bf92924 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 10:43:58 -0400 Subject: [PATCH 058/209] update python 2 guides --- docs/starting/install/linux.rst | 20 ++++++++++---------- docs/starting/install/osx.rst | 4 ++-- docs/starting/install/win.rst | 18 ++++++++++-------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/docs/starting/install/linux.rst b/docs/starting/install/linux.rst index aa56ec07d..c9b779b3d 100644 --- a/docs/starting/install/linux.rst +++ b/docs/starting/install/linux.rst @@ -1,9 +1,9 @@ .. _install-linux: -Installing Python on Linux -========================== +Installing Python 2 on Linux +============================ -The latest versions of CentOS, Fedora, Redhat Enterprise (RHEL) and Ubuntu +The latest versions of CentOS, Fedora, Redhat Enterprise (RHEL) and Ubuntu **come with Python 2.7 out of the box**. To see which version of Python you have installed, open a command prompt and run @@ -32,11 +32,11 @@ Setuptools & Pip The two most crucial third-party Python packages are `setuptools `_ and `pip `_. -Once installed, you can download, install and uninstall any compliant Python software -product with a single command. It also enables you to add this network installation +Once installed, you can download, install and uninstall any compliant Python software +product with a single command. It also enables you to add this network installation capability to your own Python software with very little work. -Python 2.7.9 and later (on the python2 series), and Python 3.4 and later include +Python 2.7.9 and later (on the python2 series), and Python 3.4 and later include pip by default. To see if pip is installed, open a command prompt and run @@ -50,15 +50,15 @@ To install pip, `follow the official pip installation guide ` docs. +To start using this and see more information: :ref:`Virtual Environments ` docs. You can also use :ref:`virtualenvwrapper ` to make it easier to manage your virtual environments. diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index 6312215a5..f0851d380 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -1,7 +1,7 @@ .. _install-osx: -Installing Python on Mac OS X -============================= +Installing Python 2 on Mac OS X +=============================== .. note:: Check out our :ref:`guide for installing Python 3 on OS X`. diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst index 6496a3a78..bbcae9ccb 100644 --- a/docs/starting/install/win.rst +++ b/docs/starting/install/win.rst @@ -1,10 +1,10 @@ .. _install-windows: -Installing Python on Windows -============================ +Installing Python 2 on Windows +============================== -First, download the `latest version `_ -of Python 2.7 from the official Website. If you want to be sure you are installing a fully +First, download the `latest version `_ +of Python 2.7 from the official website. If you want to be sure you are installing a fully up-to-date version, click the Downloads > Windows link from the home page of the `Python.org web site `_ . @@ -35,6 +35,8 @@ You can do this easily by running the following in ``powershell``: [Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User") +This is also an option during the installation process. + The second (:file:`Scripts`) directory receives command files when certain packages are installed, so it is a very useful addition. You do not need to install or configure anything else to use Python. Having @@ -69,15 +71,15 @@ To install pip, run the Python script available here: Virtual Environments -------------------- -A Virtual Environment is a tool to keep the dependencies required by different projects -in separate places, by creating virtual Python environments for them. It solves the -"Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps +A Virtual Environment is a tool to keep the dependencies required by different projects +in separate places, by creating virtual Python environments for them. It solves the +"Project X depends on version 1.x but, Project Y needs 4.x" dilemma, and keeps your global site-packages directory clean and manageable. For example, you can work on a project which requires Django 1.10 while also maintaining a project which requires Django 1.8. -To start using this and see more information: :ref:`Virtual Environments ` docs. +To start using this and see more information: :ref:`Virtual Environments ` docs. -------------------------------- From ef35770716f6a32afb0ddaa3bd8c074c1bfe769e Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 10:46:45 -0400 Subject: [PATCH 059/209] update installation --- docs/starting/installation.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/starting/installation.rst b/docs/starting/installation.rst index 55114b21d..83d4ad1bd 100644 --- a/docs/starting/installation.rst +++ b/docs/starting/installation.rst @@ -16,7 +16,12 @@ Installation Guides These guides go over the proper installation of :ref:`Python ` for development purposes, as well as setuptools, pip and virtualenv. -- :ref:`Python 3 on MacOS `. +- :ref:`Python 3 on MacOS ` +- :ref:`Python 3 on Windows `. +- :ref:`Python 3 on Linux `. + +-------------------------------- + - :ref:`Python 2 on MacOS `. - :ref:`Python 2 on Microsoft Windows `. - :ref:`Python 2 on Ubuntu Linux `. From fd8cce0708f933c4c0dbfdfebd8d1211b11aa517 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 10:49:47 -0400 Subject: [PATCH 060/209] fix contents --- docs/contents.rst.inc | 3 +++ docs/starting/installation.rst | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/contents.rst.inc b/docs/contents.rst.inc index 22cbdc940..b5673cc92 100644 --- a/docs/contents.rst.inc +++ b/docs/contents.rst.inc @@ -14,6 +14,9 @@ New to Python? Let's properly setup up your Python environment. :maxdepth: 1 starting/installation + starting/install3/osx + starting/install3/win + starting/install3/linux starting/install/osx starting/install/win starting/install/linux diff --git a/docs/starting/installation.rst b/docs/starting/installation.rst index 83d4ad1bd..1fe651956 100644 --- a/docs/starting/installation.rst +++ b/docs/starting/installation.rst @@ -18,7 +18,7 @@ for development purposes, as well as setuptools, pip and virtualenv. - :ref:`Python 3 on MacOS ` - :ref:`Python 3 on Windows `. -- :ref:`Python 3 on Linux `. +- :ref:`Python 3 on Linux `. -------------------------------- From 7096c951326ae691fe3f7bd88596570dcff40ca5 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 10:51:59 -0400 Subject: [PATCH 061/209] syntax --- docs/starting/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/starting/installation.rst b/docs/starting/installation.rst index 1fe651956..36bf6898d 100644 --- a/docs/starting/installation.rst +++ b/docs/starting/installation.rst @@ -16,7 +16,7 @@ Installation Guides These guides go over the proper installation of :ref:`Python ` for development purposes, as well as setuptools, pip and virtualenv. -- :ref:`Python 3 on MacOS ` +- :ref:`Python 3 on MacOS `. - :ref:`Python 3 on Windows `. - :ref:`Python 3 on Linux `. From 9164a1b1e91084cf8873fd07da12fbd39e4ca29d Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 10:53:18 -0400 Subject: [PATCH 062/209] working with python 3 --- docs/starting/install3/linux.rst | 18 ++++++++++++++++++ docs/starting/install3/osx.rst | 2 +- docs/starting/install3/win.rst | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/docs/starting/install3/linux.rst b/docs/starting/install3/linux.rst index 9e33ff3c4..eee5620ad 100644 --- a/docs/starting/install3/linux.rst +++ b/docs/starting/install3/linux.rst @@ -22,6 +22,23 @@ If you're using another version of Ubuntu (e.g. the latest LTS release), we reco $ sudo apt-get update $ sudo apt-get install python3.6 +Working with Python 3 +--------------------- + +At this point, you have the system Python 2.7 available, potentially the +:ref:`Homebrew version of Python 2 ` installed, and the Homebrew +version of Python 3 as well. + +.. code-block:: console + + $ python + +will launch the Python 2 interpreter. + +.. code-block:: console + + $ python3 + Setuptools & Pip ---------------- @@ -59,6 +76,7 @@ To start using this and see more information: :ref:`Virtual Environments ` to make it easier to manage your virtual environments. + -------------------------------- This page is a remixed version of `another guide `_, diff --git a/docs/starting/install3/osx.rst b/docs/starting/install3/osx.rst index de0d4b396..8a8282277 100644 --- a/docs/starting/install3/osx.rst +++ b/docs/starting/install3/osx.rst @@ -90,7 +90,7 @@ will launch the Python 2 interpreter. $ python3 -will launch the Python 3 interpreter +will launch the Python 3 interpreter. ``pip3`` and ``pip`` will both be available. If the Homebrew version of Python 2 is not installed, they will be the same. If the Homebrew version of Python 2 diff --git a/docs/starting/install3/win.rst b/docs/starting/install3/win.rst index d1d00a985..c940b9beb 100644 --- a/docs/starting/install3/win.rst +++ b/docs/starting/install3/win.rst @@ -41,6 +41,24 @@ described in the next section before you start building Python applications for real-world use. In particular, you should always install Setuptools, as it makes it much easier for you to use other third-party Python libraries. +Working with Python 3 +--------------------- + +At this point, you have the system Python 2.7 available, potentially the +:ref:`Homebrew version of Python 2 ` installed, and the Homebrew +version of Python 3 as well. + +.. code-block:: console + + $ python + +will launch the Python 2 interpreter. + +.. code-block:: console + + $ python3 + + Setuptools + Pip ---------------- From a8ed45d5c402bdef16e8f6cb309b0a7b001d97a8 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 10:58:14 -0400 Subject: [PATCH 063/209] fixes --- docs/starting/install3/linux.rst | 7 +++---- docs/starting/install3/win.rst | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/starting/install3/linux.rst b/docs/starting/install3/linux.rst index eee5620ad..f9171bcfc 100644 --- a/docs/starting/install3/linux.rst +++ b/docs/starting/install3/linux.rst @@ -25,20 +25,19 @@ If you're using another version of Ubuntu (e.g. the latest LTS release), we reco Working with Python 3 --------------------- -At this point, you have the system Python 2.7 available, potentially the -:ref:`Homebrew version of Python 2 ` installed, and the Homebrew -version of Python 3 as well. +At this point, you may have system Python 2.7 available as well. .. code-block:: console $ python -will launch the Python 2 interpreter. +This will launch the Python 2 interpreter. .. code-block:: console $ python3 +This will launch the Python 3 interpreter. Setuptools & Pip ---------------- diff --git a/docs/starting/install3/win.rst b/docs/starting/install3/win.rst index c940b9beb..4a7aadd6f 100644 --- a/docs/starting/install3/win.rst +++ b/docs/starting/install3/win.rst @@ -44,20 +44,20 @@ makes it much easier for you to use other third-party Python libraries. Working with Python 3 --------------------- -At this point, you have the system Python 2.7 available, potentially the -:ref:`Homebrew version of Python 2 ` installed, and the Homebrew -version of Python 3 as well. +At this point, you may also have Python 2.7 installed. .. code-block:: console $ python -will launch the Python 2 interpreter. +This will launch the Python 2 interpreter. .. code-block:: console $ python3 +This will launch the Python 3 interpreter. + Setuptools + Pip ---------------- From 83d1fd49d521f2b2c7b1f79050c9f98eee52e96c Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 13 Apr 2017 11:00:51 -0400 Subject: [PATCH 064/209] fixes --- docs/starting/install/osx.rst | 2 +- docs/starting/install3/osx.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst index f0851d380..24eb27437 100644 --- a/docs/starting/install/osx.rst +++ b/docs/starting/install/osx.rst @@ -14,7 +14,7 @@ described in the next section before you start building Python applications for real-world use. In particular, you should always install Setuptools, as it makes it much easier for you to install and manage other third-party Python libraries. -The version of Python that ships with OS X is great for learning but it's not +The version of Python that ships with OS X is great for learning, but it's not good for development. The version shipped with OS X may be out of date from the `official current Python release `_, which is considered the stable production version. diff --git a/docs/starting/install3/osx.rst b/docs/starting/install3/osx.rst index 8a8282277..8844f2e1f 100644 --- a/docs/starting/install3/osx.rst +++ b/docs/starting/install3/osx.rst @@ -10,7 +10,7 @@ The latest version of Mac OS X, Sierra, **comes with Python 2.7 out of the box** You do not need to install or configure anything else to use Python 2. These instructions document the installation of Python 3. -The version of Python that ships with OS X is great for learning but it's not +The version of Python that ships with OS X is great for learning, but it's not good for development. The version shipped with OS X may be out of date from the `official current Python release `_, which is considered the stable production version. From d3e97f2ec1ae42bd4bae48b11ad32e21a071cb9d Mon Sep 17 00:00:00 2001 From: Dmytro Brykovets Date: Sat, 15 Apr 2017 12:34:19 +0300 Subject: [PATCH 065/209] Remove junk in Jinja code block The "
    From 6e0c78df7b2693c8937bafe58c8b856c1e2bdc39 Mon Sep 17 00:00:00 2001 From: monchitos Date: Tue, 18 Apr 2017 10:02:15 -0500 Subject: [PATCH 066/209] Adding a reminder for preventing a misuse of the example in "common gotchas/mutable default arguments" --- docs/writing/gotchas.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/writing/gotchas.rst b/docs/writing/gotchas.rst index f8e2e2377..fcf143943 100644 --- a/docs/writing/gotchas.rst +++ b/docs/writing/gotchas.rst @@ -76,6 +76,7 @@ signal that no argument was provided (:py:data:`None` is often a good choice). to.append(element) return to +Do not forget, you are passing a *list* object as the second argument. When the Gotcha Isn't a Gotcha ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From a3055ae6b6ad6cfcdf92573513a54195922a4579 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 27 Apr 2017 17:42:17 -0400 Subject: [PATCH 067/209] sponsor --- docs/_templates/sidebarintro.html | 5 +++++ docs/_templates/sidebarlogo.html | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index 81272b5ec..08ebba00c 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -21,6 +21,11 @@

    Stay Informed

    Join Mailing List.

    Say Thanks!

    +

    Sponsor

    + + + +

    O'Reilly Book

    This guide is now available in tangible book form!

    diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index 45f447a0a..688c9f91e 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -19,6 +19,11 @@

    Get Updates

    Say Thanks!

    Join Mailing List.

    +

    Sponsor

    + + + +

    O'Reilly Book

    This guide is now available in tangible book form!

    @@ -27,6 +32,8 @@

    O'Reilly Book

    All proceeds are being directly donated to the DjangoGirls organization.

    + +

    Other Projects

    More Kenneth Reitz projects:

    From a094400701a49685797cbe2d0f4af245ba7c93e8 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 27 Apr 2017 17:46:12 -0400 Subject: [PATCH 068/209] tweaks --- docs/_templates/sidebarintro.html | 2 +- docs/_templates/sidebarlogo.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index 08ebba00c..036d0cb63 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -23,7 +23,7 @@

    Stay Informed

    Sponsor

    - +

    O'Reilly Book

    diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index 688c9f91e..9e91c1c3a 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -21,7 +21,7 @@

    Get Updates

    Sponsor

    - +

    O'Reilly Book

    From 7f118fc3d042dd6fd2e6569f61477c285ba3f0f7 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 27 Apr 2017 17:51:06 -0400 Subject: [PATCH 069/209] changes --- docs/_templates/sidebarintro.html | 6 ++++-- docs/_templates/sidebarlogo.html | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index 036d0cb63..7927c6953 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -21,11 +21,13 @@

    Stay Informed

    Join Mailing List.

    Say Thanks!

    -

    Sponsor

    + - + +
    +

    O'Reilly Book

    This guide is now available in tangible book form!

    diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index 9e91c1c3a..73c6c2dc2 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -19,11 +19,12 @@

    Get Updates

    Say Thanks!

    Join Mailing List.

    -

    Sponsor

    - + +
    +

    O'Reilly Book

    This guide is now available in tangible book form!

    From 39d7cbfebb1a859b876bf9aa1a9adb6218347a20 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Thu, 27 Apr 2017 17:53:14 -0400 Subject: [PATCH 070/209] ad placement --- docs/_static/ad.png | Bin 0 -> 40171 bytes docs/_templates/sidebarintro.html | 2 +- docs/_templates/sidebarlogo.html | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 docs/_static/ad.png diff --git a/docs/_static/ad.png b/docs/_static/ad.png new file mode 100644 index 0000000000000000000000000000000000000000..48a78947a480b09bd69cfdf0f9e88602edfd9f15 GIT binary patch literal 40171 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 Informed - +
    diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html index 73c6c2dc2..6bc860c5d 100644 --- a/docs/_templates/sidebarlogo.html +++ b/docs/_templates/sidebarlogo.html @@ -20,7 +20,7 @@

    Get Updates

    Join Mailing List.

    - +
    From 40ac0adc14ab265f907c2bf8a930370ab59f6f0f Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Mon, 1 May 2017 10:30:55 -0400 Subject: [PATCH 071/209] wsl-guide --- docs/_templates/sidebarintro.html | 1 + docs/_templates/sidebarlogo.html | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html index d15f74599..c00f996c6 100644 --- a/docs/_templates/sidebarintro.html +++ b/docs/_templates/sidebarintro.html @@ -40,6 +40,7 @@

    Other Projects

    More Kenneth Reitz projects: