From 63c74becf0cc9ba2b8a386458e0837d1ee778819 Mon Sep 17 00:00:00 2001
From: Lyndsy Simon
Date: Mon, 3 Jun 2013 08:53:56 -0400
Subject: [PATCH 0001/1051] Removes completed TODO re: scientific Python
---
docs/scenarios/scientific.rst | 2 --
1 file changed, 2 deletions(-)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index 031721091..7f9a66cb3 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -43,8 +43,6 @@ Virtual Machine) (through special decorators).
Briefly, Numba using system that compiles Python code with LLVM to code which
can be natively executed at runtime.
-.. todo:: Write about Numba
-
SciPy
-----
From f4e3c36d6c7a59810e8aebac5a7a2398139245df Mon Sep 17 00:00:00 2001
From: Lyndsy Simon
Date: Mon, 3 Jun 2013 08:56:04 -0400
Subject: [PATCH 0002/1051] Adds Sphinx to requirements.txt
---
requirements.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 663bd1f6a..f47f24596 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1,2 @@
-requests
\ No newline at end of file
+requests
+sphinx
From 598c5695b79b15672e679b1567a2fa7f7d220298 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 12 Jun 2013 19:39:32 -0700
Subject: [PATCH 0003/1051] Correct spelling of 'aforementioned'.
---
docs/writing/gotchas.rst | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/writing/gotchas.rst b/docs/writing/gotchas.rst
index 45c0e5605..d96d3d848 100644
--- a/docs/writing/gotchas.rst
+++ b/docs/writing/gotchas.rst
@@ -2,11 +2,11 @@ Common Gotchas
==============
For the most part, Python aims to be a clean and consistent language that
-avoids surprises, but there are a few cases where newcomers to the language
-often get tripped up.
+avoids surprises. However, there are a few cases that can be confusing to
+newcomers.
-Some of these are intentional but potentially surprising. Some could arguably
-be considered language warts. In general though, what follows is a collection
+Some of these cases are intentional but can be potentially surprising. Some
+could arguably be considered language warts. In general though, what follows is a collection
of potentially tricky behavior that might seem strange at first glance, but is
generally sensible once you're aware of the underlying cause for the surprise.
@@ -157,7 +157,7 @@ What You Should Do Instead
~~~~~~~~~~~~~~~~~~~~~~~~~~
The most general solution is arguably a bit of a hack. Due to Python's
-afformentioned behavior concerning evaluating default arguments to functions
+aforementioned behavior concerning evaluating default arguments to functions
(see :ref:`default_args`), you can create a closure that binds immediately to
its arguments by using a default arg like so:
From c1f649cc6ba50d896ecc503d0e1ae89273bfd671 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 12 Jun 2013 19:56:48 -0700
Subject: [PATCH 0004/1051] Nitpicky rewordings and grammar fixes.
---
docs/starting/which-python.rst | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst
index 7c995ac83..8d4c01265 100644
--- a/docs/starting/which-python.rst
+++ b/docs/starting/which-python.rst
@@ -52,11 +52,11 @@ level of compatibility with Python packages and C extension modules.
If you are writing open-source Python code and want to reach the widest possible
audience, targeting CPython is your best bet. If you need to use any packages
-that rely on C extensions for their functionality (eg: numpy) then CPython
+that rely on C extensions for their functionality (e.g. numpy) then CPython
is your only choice.
Being the reference implementation, all versions of the Python language are
-available as CPython. Python 3 is only available in a CPython implementation.
+available as CPython. Python 3 is only available as a CPython implementation.
PyPy
----
@@ -78,14 +78,14 @@ Jython
------
`Jython `_ is a Python implementation that compiles
-Python code to Java byte code that then executes on a JVM. It has the additional
-advantage of being able to import and use any Java class the same as a Python
+Python code to Java byte code that is then executed in a JVM. It has the additional
+advantage of being able to import and use any Java class like a Python
module.
If you need to interface with an existing Java codebase or have other reasons to
need to write Python code for the JVM, Jython is the best choice.
-Currently Jython supports up to Python 2.5. [#jython_ver]_
+Jython currently supports up to Python 2.5. [#jython_ver]_
IronPython
----------
@@ -95,7 +95,7 @@ framework. It can use both Python and .NET framework libraries, and can also
expose Python code to other .NET languages.
`Python Tools for Visual Studio `_ integrates
-IronPython directly in to the Visual Studio development environment, making it
+IronPython directly into the Visual Studio development environment, making it
an ideal choice for Windows developers.
IronPython supports Python 2.7. [#iron_ver]_
From 8c5ba090489f280ba83c50c2cd400dd28d0dd4b3 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 12 Jun 2013 20:33:00 -0700
Subject: [PATCH 0005/1051] Add line breaks for conformance with the Style
Guide.
---
docs/scenarios/gui.rst | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 49dd0ad5e..3af9a91b9 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -29,7 +29,11 @@ PyObjC
wxPython
--------
-wxPython is a GUI toolkit for the Python programming language. It allows Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily. It is implemented as a Python extension module (native code) that wraps the popular wxWidgets cross platform GUI library, which is written in C++.
+wxPython is a GUI toolkit for the Python programming language. It allows
+Python programmers to create programs with a robust, highly functional
+graphical user interface, simply and easily. It is implemented as a Python
+extension module (native code) that wraps the popular wxWidgets cross platform
+GUI library, which is written in C++.
Install (Stable)
~~~~~~~~~~~~~~~~
@@ -60,10 +64,15 @@ available on the `Python Wiki `_.
Kivy
----
-`Kivy `_ is a Python library for development of multi-touch enabled media rich applications. The aim is to allow for quick and easy interaction design and rapid prototyping, while making your code reusable and deployable.
+`Kivy `_ is a Python library for development of multi-touch
+enabled media rich applications. The aim is to allow for quick and easy
+interaction design and rapid prototyping, while making your code reusable
+and deployable.
-Kivy is written in Python, based on OpenGL and supports different input devices such as: Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch, Apple's products and so on.
+Kivy is written in Python, based on OpenGL and supports different input devices
+such as: Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch, Apple's products and so on.
-Kivy is actively being developed by a community and free to use. It operates on all major platforms (Linux, OSX, Windows, Android).
+Kivy is actively being developed by a community and free to use. It operates
+on all major platforms (Linux, OSX, Windows, Android).
The main resource for information is the website: http://kivy.org
From fa99cd86e32d79b5181d5ae692b3e126c9f515d9 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 12 Jun 2013 20:33:45 -0700
Subject: [PATCH 0006/1051] GtK --> GTK
---
docs/scenarios/gui.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 3af9a91b9..7194f57bd 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -40,7 +40,7 @@ Install (Stable)
*Go to http://www.wxpython.org/download.php#stable and download the appropriate
package for your OS.*
-Gtk
+GTk
---
PyGTK provides Python bindings for the GTK+ toolkit. Like the GTK+ library
itself, it is currently licensed under the GNU LGPL. It is worth noting that
From b832bb907dc31d8f97716a3c89a3b08439186c19 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 12 Jun 2013 20:35:15 -0700
Subject: [PATCH 0007/1051] 'many' --> 'much'
---
docs/scenarios/network.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/scenarios/network.rst b/docs/scenarios/network.rst
index b01c0efe5..56031aa9d 100644
--- a/docs/scenarios/network.rst
+++ b/docs/scenarios/network.rst
@@ -4,10 +4,10 @@ Networking
Twisted
-------
-`Twisted `_ is an event-driven networking engine. It can be
-used to build applications around many different networking protocols, including http servers
-and clients, applications using SMTP, POP3, IMAP or SSH protocols, instant messaging and
-`many more `_.
+`Twisted `_ is an event-driven networking
+engine. It can be used to build applications around many different networking
+protocols, including http servers and clients, applications using SMTP, POP3,
+IMAP or SSH protocols, instant messaging and `much more `_.
PyZMQ
-----
From 16d92c428d677187437a2cb0e56ff9e906006508 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 12 Jun 2013 20:51:15 -0700
Subject: [PATCH 0008/1051] PEP and Python are capitalized.
---
docs/dev/env.rst | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 56301fc9f..bdab904bb 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -14,7 +14,7 @@ VIM
Vim is a text editor which uses keyboard shortcuts for editing instead of menus
or icons. There exist a couple of plugins and settings for the VIM editor to
-aid python development. If you only develop in Python, a good start is to set
+aid Python development. If you only develop in Python, a good start is to set
the default settings for indentation and line-wrapping to values compliant with
`PEP 8 `_. In your home directory,
open a file called `.vimrc` and add the following lines:::
@@ -29,7 +29,7 @@ open a file called `.vimrc` and add the following lines:::
With these settings, newlines are inserted after 79 characters and indentation
is set to 4 spaces per tab. If you also use VIM for other languages, there is a
-handy plugin at indent_, which handles indentation settings for python source
+handy plugin at indent_, which handles indentation settings for Python source
files.
There is also a handy syntax plugin at syntax_ featuring some improvements over
@@ -67,12 +67,12 @@ Python-mode
Python-mode_ is a complex solution in VIM for working with python code.
It has:
-- Async python code checking (pylint, pyflakes, pep8, mccabe) in any combination
+- Async Python code checking (pylint, pyflakes, pep8, mccabe) in any combination
- Code refactoring and autocompletion with Rope
-- Fast python folding
+- Fast Python folding
- Virtualenv support
-- Search by python documentation and run python code
-- Auto pep8 error fixes
+- Search by Python documentation and run Python code
+- Auto PEP8 error fixes
And more.
@@ -148,7 +148,7 @@ Spyder
------
`Spyder `_ is an IDE specifically geared
-toward working with scientific python libraries (namely `Scipy `_).
+toward working with scientific Python libraries (namely `Scipy `_).
It includes integration with pyflakes_, `pylint `_,
and `rope `_.
@@ -159,7 +159,7 @@ class and function browser, and object inspection.
WingIDE
-------
-`WingIDE `_ is a python specific IDE. It runs on Linux,
+`WingIDE `_ is a Python specific IDE. It runs on Linux,
Windows, and Mac (as an X11 application, which frustrates some Mac users).
WingIDE offers code completion, syntax highlighting, source browser, graphical
From 0eff17af228b634c74b8282e2dbdd95ff3e101e6 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Thu, 13 Jun 2013 00:51:26 -0700
Subject: [PATCH 0009/1051] 'async' --> 'asynchronous'
---
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 bdab904bb..7ec103539 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -67,7 +67,7 @@ Python-mode
Python-mode_ is a complex solution in VIM for working with python code.
It has:
-- Async Python code checking (pylint, pyflakes, pep8, mccabe) in any combination
+- Asynchronous Python code checking (pylint, pyflakes, pep8, mccabe) in any combination
- Code refactoring and autocompletion with Rope
- Fast Python folding
- Virtualenv support
From 9667754f9527a45b09a5342d8e5ee0c8bc3dd3b1 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Thu, 13 Jun 2013 00:55:17 -0700
Subject: [PATCH 0010/1051] Code block type is 'console', not 'bash'.
---
docs/scenarios/admin.rst | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 3397d6632..481b3410a 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -4,13 +4,14 @@ Systems Administration
Fabric
------
-`Fabric `_ is a library for simplifying system administration tasks. While Chef
-and Puppet tend to focus on managing servers and system libraries,
-fabric is more focused on application level tasks such as deployment.
+`Fabric `_ is a library for simplifying system
+administration tasks. While Chef and Puppet tend to focus on managing servers
+and system libraries, fabric is more focused on application level tasks such
+as deployment.
Install Fabric:
-.. code-block:: bash
+.. code-block:: console
$ pip install fabric
@@ -40,7 +41,7 @@ server.
With the previous code saved in a file named fabfile.py, we can check memory
usage with:
-.. code-block:: bash
+.. code-block:: console
$ fab memory_usage
[my_server1] Executing task 'memory'
@@ -59,7 +60,7 @@ usage with:
and we can deploy with:
-.. code-block:: bash
+.. code-block:: console
$ fab deploy
@@ -78,7 +79,7 @@ multiple servers using simple template files.
Salt supports python versions 2.6 and 2.7 and can be installed via pip:
-.. code-block:: bash
+.. code-block:: console
$ pip install salt
@@ -87,7 +88,7 @@ shell commands or use pre-built modules of complex commands on our minions.
The following command lists all available minion hosts, using the ping module.
-.. code-block:: bash
+.. code-block:: console
$ salt '*' test.ping
@@ -98,7 +99,7 @@ provide a host taxonomy for the salt modules.
The following command lists all available minions running CentOS using the grains system:
-.. code-block:: bash
+.. code-block:: console
$ salt -G 'os:CentOS' test.ping
From b68582609b551a00f597821e17146dd5a6e867d0 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Thu, 13 Jun 2013 19:31:48 -0700
Subject: [PATCH 0011/1051] Added note about OSX-GCC-Installer and Xcode
conflict.
---
docs/starting/install/osx.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index 2384a64ed..6d2a156f2 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -26,6 +26,11 @@ by downloading `XCode `_, the smaller
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.
+
While Lion comes with a large number of UNIX utilities, those familiar with
Linux systems will notice one key component missing: a decent package manager.
`Homebrew `_ fills this void.
From 925818a8278952c942f8a5699044bf4f055e3848 Mon Sep 17 00:00:00 2001
From: Martin Puppe
Date: Thu, 20 Jun 2013 00:17:43 +0300
Subject: [PATCH 0012/1051] Fix link to Dive Into Python 3
---
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 5425d84f3..b412311ab 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -39,7 +39,7 @@ Dive Into Python 3 is a good book for those ready to jump in to Python 3. It's
a good read if you are moving from Python 2 to 3 or if you already have some
experience programming in another language.
- `Dive Into Python 3 `_
+ `Dive Into Python 3 `_
Think Python: How to Think Like a Computer Scientist
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From 8d6f737438a3cb9f8109c350745ab4b7808ed550 Mon Sep 17 00:00:00 2001
From: Arthur Loder
Date: Fri, 21 Jun 2013 22:35:10 -0400
Subject: [PATCH 0013/1051] minor formatting changes.
---
docs/conf.py | 2 +-
docs/writing/license.rst | 12 ++++++------
docs/writing/style.rst | 2 +-
docs/writing/tests.rst | 2 +-
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/docs/conf.py b/docs/conf.py
index fc31228e7..f5effd924 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -46,7 +46,7 @@
# General information about the project.
project = u'pythonguide'
-copyright = u'2013. A Kenneth Reitz Project. Creative Commons Share-Alike 3.0.'
+copyright = u'2013. A Kenneth Reitz Project. Creative Commons Share-Alike 3.0'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
diff --git a/docs/writing/license.rst b/docs/writing/license.rst
index 9e759baf6..6f0df77d2 100644
--- a/docs/writing/license.rst
+++ b/docs/writing/license.rst
@@ -14,22 +14,22 @@ from.
In general, these licenses tend to fall into one of two categories:
1. licenses that focus more on the user's freedom to do with the
- software as they please (these are the more-permissive open
+ software as they please (these are the more permissive open
source licenses such as the MIT, BSD, & Apache).
2. licenses that focus more on making sure that the code itself â
including any changes made to it and distributed along with it â
- always remains free (these are the less-permissive free software
- licenses, for example, the GPL and LGPL).
+ always remains free (these are the less permissive free software
+ licenses such as the GPL and LGPL).
-The latter are less-permissive in the sense that they don't permit
+The latter are less permissive in the sense that they don't permit
someone to add code to the software and distribute it without also
including the source code for their changes.
To help you choose one for your project, there's a `license chooser `_,
**use it**.
-**More-Permissive**
+**More Permissive**
- PSFL (Python Software Foundation License) -- for contributing to python itself
- MIT / BSD / ISC
@@ -40,7 +40,7 @@ To help you choose one for your project, there's a `license chooser `_ and at `Stack Overflow `_.
Idiomatic Python code is often referred to as being *Pythonic*.
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 70c08f577..492e47a0d 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -146,7 +146,7 @@ py.test is a no-boilerplate alternative to Python's standard unittest module.
$ pip install pytest
-Despite being a fully-featured and extensible test tool it boasts a simple
+Despite being a fully-featured and extensible test tool, it boasts a simple
syntax. Creating a test suite is as easy as writing a module with a couple of
functions
From 7e7e3d02e657101ef902b257f7b586ab4a231315 Mon Sep 17 00:00:00 2001
From: Markus Unterwaditzer
Date: Sat, 29 Jun 2013 20:18:17 +0200
Subject: [PATCH 0014/1051] Rewrite section on choosing a Python version
---
docs/starting/which-python.rst | 39 +++++++++++++++-------------------
1 file changed, 17 insertions(+), 22 deletions(-)
diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst
index 7c995ac83..e07ad4bc1 100644
--- a/docs/starting/which-python.rst
+++ b/docs/starting/which-python.rst
@@ -3,37 +3,32 @@ Picking an Interpreter
.. _which-python:
-Which Python to use?
-
-
-2.x vs 3.x
-~~~~~~~~~~
-
- Python 2.x is the status quo, Python 3.x is the shiny new thing.
-
-
-`Further Reading `_
-
-
-Today
------
+Today (Python 2)
+~~~~~~~~~~~~~~~~
If you're choosing a Python interpreter to use, I *highly* recommend you use
Python 2.7.x, unless you have a strong reason not to.
+Also use Python 2.7.x if you're starting to work on a new Python module. If you
+have managed to get it working on 2.7, you can add support for older 2.x
+versions.
-The Future
-----------
+The Future (Python 3)
+~~~~~~~~~~~~~~~~~~~~~
-As more and more modules get ported over to Python3, the easier it will be for
-others to use it.
+ Python 2.x is the status quo, Python 3.x is the shiny new thing.
+`Further Reading `_
-Which Python to Support?
-~~~~~~~~~~~~~~~~~~~~~~~~
+Python 3, on the other hand, differs much more greatly from Python 2, so
+writing code that works both on Python 2 and Python 3 is a very complicated
+process.
-If you're starting work on a new Python module, I recommend you write it for
-Python 2.5 or 2.6, and add support for Python3 in a later iteration.
+It is still possible to `write code that works on Python 2.6, 2.7 and 3.3
+`_. Depending on
+the kind of software you are writing, this might be either tricky or extremely
+hard, and if you're a beginner there are much more important things to worry
+about.
Implementations
~~~~~~~~~~~~~~~
From 4651e48d37f96f40c97c776245c4b18599e2e503 Mon Sep 17 00:00:00 2001
From: Konstantin Molchanov
Date: Thu, 4 Jul 2013 23:53:08 +0400
Subject: [PATCH 0015/1051] [+] Scenarios: CLI: Added docopt description.
---
docs/scenarios/cli.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index bc952c74f..2416125f7 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -7,3 +7,8 @@ Clint
-----
.. todo:: Write about Clint
+
+docopt
+------
+
+`docopt `_ is a lightweight, highly Pythonic package that allows creating command line interfaces easily and intuitively, by parsing POSIX-style usage instructions.
From 93cb68e3081aed10f2fdb4a8458a8347b522f01c Mon Sep 17 00:00:00 2001
From: Roland van Laar
Date: Sat, 20 Jul 2013 09:08:59 +0200
Subject: [PATCH 0016/1051] Fix link to tox documentation.
---
docs/writing/tests.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 492e47a0d..fdbd6715e 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -217,7 +217,7 @@ multiple interpreter configurations
tox allows you to configure complicated multi-parameter test matrices via a
simple ini-style configuration file.
- `tox `_
+ `tox `_
Unittest2
---------
From 963ab0aabff4f782364be233e1b9e6547596e071 Mon Sep 17 00:00:00 2001
From: Matthew Boehm
Date: Sun, 28 Jul 2013 10:20:47 -0400
Subject: [PATCH 0017/1051] Fix enumerate code snippet to run without error
message
Code previously added numbers to strings, which results in a TypeError
---
docs/writing/style.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 1fbf637d6..f9146493a 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -548,11 +548,11 @@ keep a count of your place in the list.
.. code-block:: python
for i, item in enumerate(a):
- print i + ", " + item
+ print i, item
# prints
- # 0, 3
- # 1, 4
- # 2, 5
+ # 0 3
+ # 1 4
+ # 2 5
The ``enumerate`` function has better readability than handling a counter
manually. Moreover,
From d08407291a209bcdda96fa63e3cb9abca8ab937a Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Mon, 29 Jul 2013 14:18:20 +0200
Subject: [PATCH 0018/1051] entry about different tutorials added
---
Readme.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/Readme.rst b/Readme.rst
index a789e7fee..b0e60c62c 100644
--- a/Readme.rst
+++ b/Readme.rst
@@ -26,6 +26,7 @@ Topics include:
- Testing. Jenkins + tox guides.
- How to interface w/ hg from git easily
- what libraries to use for what
+- Different tutorials
If you are not fond of reading reStructuredText, there is an
almost up-to-date `HTML version at docs.python-guide.org
From 2fbb7ddf3f27c623962ba84cf1a26e7c8ebb4607 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 29 Jul 2013 21:59:59 -0700
Subject: [PATCH 0019/1051] Added note on Python 3 and Pillow.
---
docs/scenarios/imaging.rst | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/imaging.rst b/docs/scenarios/imaging.rst
index 8defa0b73..f55815797 100644
--- a/docs/scenarios/imaging.rst
+++ b/docs/scenarios/imaging.rst
@@ -20,8 +20,9 @@ Installation
PIL has a reputation of not being very straightforward to install. Listed below
are installation notes on various systems.
-Also, there's a fork named `Pillow `_ which is easier
-to install. It has good setup instructions for all platforms.
+Also, there's a fork named `Pillow `_ which
+is easier to install. It has good setup instructions for all platforms and
+supports Python 3 (PIL currently does not).
Installing on Linux
~~~~~~~~~~~~~~~~~~~
From 63fecf8808ed942bb7bf17eede67f8a61085653d Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 00:06:29 -0700
Subject: [PATCH 0020/1051] Completely recommend Pillow over PIL.
---
docs/scenarios/imaging.rst | 63 +++++---------------------------------
1 file changed, 8 insertions(+), 55 deletions(-)
diff --git a/docs/scenarios/imaging.rst b/docs/scenarios/imaging.rst
index f55815797..171043228 100644
--- a/docs/scenarios/imaging.rst
+++ b/docs/scenarios/imaging.rst
@@ -9,67 +9,20 @@ Python Imaging Library
----------------------
The `Python Imaging Library `_, or PIL
-for short, is *the* library for image manipulation in Python.
+for short, is *the* library for image manipulation in Python. Unfortunately, its
+development has stagnated, with its last release in 2009.
-It works with Python 1.5.2 and above, including 2.5, 2.6 and 2.7. Unfortunately,
-it doesn't work with 3.0+ yet.
+Lucky for you, there's an actively-developed fork of PIL called `Pillow `_ -
+it's easier to install, runs on all operating systems, and supports Python 3.
Installation
~~~~~~~~~~~~
-PIL has a reputation of not being very straightforward to install. Listed below
-are installation notes on various systems.
+Before installing Pillow, you'll have to install Pillow's prerequisites. Find
+the instructions for your platform `here `_.
-Also, there's a fork named `Pillow `_ which
-is easier to install. It has good setup instructions for all platforms and
-supports Python 3 (PIL currently does not).
-
-Installing on Linux
-~~~~~~~~~~~~~~~~~~~
-
-Arch Linux
-``````````
-
-PIL is maintained in the official community repository, and installed with the system installer as:
-
-.. code-block:: bash
-
- $ sudo pacman -S python2-imaging
-
-Ubuntu 12.10
-````````````
-
-Can be installed on the command line as:
-
-.. code-block:: bash
-
- $ sudo apt-get install python-imaging
-
-
-Installing on Mac OS X
-~~~~~~~~~~~~~~~~~~~~~~
-
-PIP doesn't know about the Mac OS X Freetype paths. To rectify that:
-
-.. code-block:: bash
-
- $ ln -s /usr/X11/include/freetype2 /usr/local/include/
- $ ln -s /usr/X11/include/ft2build.h /usr/local/include/
- $ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
- $ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib
-
-then:
+After that, it's straightforward:
.. code-block:: bash
- $ brew install libjpeg
- $ pip install PIL
-
-
-Installing on Windows
-~~~~~~~~~~~~~~~~~~~~~
-
-.. todo::
- Notes on installing on Windows machines
-
-
+ $ pip install Pillow
From 60cdeae7f7e4d1cfb4d3dd9428b13ce667b0c44a Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Tue, 30 Jul 2013 10:37:24 +0200
Subject: [PATCH 0021/1051] Tornado web server and Jinja2 template engine with
example added
---
docs/scenarios/web.rst | 130 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 130 insertions(+)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 1520b4bbc..2093c15cc 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -90,6 +90,15 @@ application that is not commonly found in other web frameworks.
Support can be found on its `mailing list `_.
+Tornado
+--------
+`Tornado `_ is a scalable, non-blocking web server and web application framework with
+a relative simple usage. Tornado is known for his high performance.
+It was initially developed for `friendfeed `_ , a real time chat and blog system.
+
+In the Jinja2 template engine example it is used to serve the rendered pages.
+
+
Pyramid
--------
@@ -269,6 +278,127 @@ and to the templates themselves.
the parts where the HTML template passes some variable content
to the javascript code.
+
+
+Jinja2
+------
+`Jinja2 `_ is a template engine which is similar to the Django template system with some extra features. It is a text-based template
+language and thus can be used to generate any markup. It allows customization of filters, tags, tests and globals.
+Unlike the template system implemented in the Django Framework it allows to call functions. The Code is staying under the BSD license.
+
+Here some important html tags in jinja2:
+
+.. code-block:: html
+
+ {# This is a comment #}
+ {# The next tag is a variable output: #}
+ {{title}}
+ {# Tag for a block, can be replaced through inheritance with other html code #}
+ {% block head %}
+
I'm the head!
+ {% endblock %}
+ {# Output of an array as an iteration #}
+ {% for item in list %}
+
{{ item }}
+ {% endfor %}
+
+
+
+The next listings is an example of a web site in combination with the tornado web server. Tornado is not very complicate
+to use.
+
+.. code-block:: python
+
+ from jinja2 import Environment, FileSystemLoader
+ TEMPLATE_FILE = "site.html"
+ templateLoader = FileSystemLoader( searchpath="templates/" )
+ templateEnv = Environment( loader=templateLoader )
+ template = templateEnv.get_template(TEMPLATE_FILE)
+ import tornado.ioloop
+ import tornado.web
+ #import jinja2
+ from jinja2 import Environment, FileSystemLoader
+ #load tamplate file templates/site.html
+ TEMPLATE_FILE = "site.html"
+ templateLoader = FileSystemLoader( searchpath="templates/" )
+ templateEnv = Environment( loader=templateLoader )
+ template = templateEnv.get_template(TEMPLATE_FILE)
+ #import tornado
+ import tornado.ioloop
+ import tornado.web
+ #list for famous movie rendering
+ movie_list = [[1,"The Hitchhiker's Guide to the Galaxy"],[2,"Back to future"],[3,"Matrix"]]
+
+ # template.render() returns a string which contains the rendered html
+ html_output = template.render(list=movie_list,
+ title="Here is my favorite movie list")
+
+ #Handler for main page
+ class MainHandler(tornado.web.RequestHandler):
+ def get(self):
+ #returns rendered template string to the browser request
+ self.write(html_output)
+
+ # Assign handler to the server root (127.0.0.1:PORT/)
+ application = tornado.web.Application([
+ (r"/", MainHandler),
+ ])
+ PORT=8884
+ if __name__ == "__main__":
+ # Setup the server
+ application.listen(PORT)
+ tornado.ioloop.IOLoop.instance().start()
+
+The `base.html` file can be used as base for all site pages which are for example implemented in the content block.
+
+.. code-block:: html
+
+
+
+
+
+
+ {{title}} - My Webpage
+
+
+
+ {# In the next line the content from the site.html template will be added #}
+ {% block content %}{% endblock %}
+
+
+
+
+
+The next listing is our site page (`site.html`) loaded in the python app which extends `base.html`. The content block is automatically
+set into the corresponding block in the base.html page.
+
+.. code-block:: html
+
+
+
+
{{title}}
+
{{ list_title }}
+
+ {% for item in list %}
+
{{ item[0]}} : {{ item[1]}}
+ {% endfor %}
+
+
+
+ {% endblock %}
+
+
+
+
+
+
+
.. rubric:: References
.. [1] `The mod_python project is now officially dead `_
From f7d35dafa7f019a54c2a50619a5f151c8238f7f3 Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Tue, 30 Jul 2013 11:17:54 +0200
Subject: [PATCH 0022/1051] Review of Jinja2 template system and tornado
webserver Some issues found
---
Readme.rst | 1 -
1 file changed, 1 deletion(-)
diff --git a/Readme.rst b/Readme.rst
index b0e60c62c..a789e7fee 100644
--- a/Readme.rst
+++ b/Readme.rst
@@ -26,7 +26,6 @@ Topics include:
- Testing. Jenkins + tox guides.
- How to interface w/ hg from git easily
- what libraries to use for what
-- Different tutorials
If you are not fond of reading reStructuredText, there is an
almost up-to-date `HTML version at docs.python-guide.org
From cee6b239aa6a21edc4aed2816d15b9066a88b51f Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Tue, 30 Jul 2013 11:31:15 +0200
Subject: [PATCH 0023/1051] Tornado web server and Jinja2 template engine with
example added
---
docs/scenarios/web.rst | 38 ++++++++++++++++----------------------
1 file changed, 16 insertions(+), 22 deletions(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 2093c15cc..32a0ce231 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -286,17 +286,20 @@ Jinja2
language and thus can be used to generate any markup. It allows customization of filters, tags, tests and globals.
Unlike the template system implemented in the Django Framework it allows to call functions. The Code is staying under the BSD license.
-Here some important html tags in jinja2:
+Here some important html tags in Jinja2:
.. code-block:: html
{# This is a comment #}
+
{# The next tag is a variable output: #}
{{title}}
+
{# Tag for a block, can be replaced through inheritance with other html code #}
{% block head %}
-
I'm the head!
+
This is the head!
{% endblock %}
+
{# Output of an array as an iteration #}
{% for item in list %}
{{ item }}
@@ -309,34 +312,30 @@ to use.
.. code-block:: python
+ # import Jinja2
from jinja2 import Environment, FileSystemLoader
- TEMPLATE_FILE = "site.html"
- templateLoader = FileSystemLoader( searchpath="templates/" )
- templateEnv = Environment( loader=templateLoader )
- template = templateEnv.get_template(TEMPLATE_FILE)
+
+ # import Tornado
import tornado.ioloop
import tornado.web
- #import jinja2
- from jinja2 import Environment, FileSystemLoader
- #load tamplate file templates/site.html
+
+ # Load tamplate file templates/site.html
TEMPLATE_FILE = "site.html"
templateLoader = FileSystemLoader( searchpath="templates/" )
templateEnv = Environment( loader=templateLoader )
template = templateEnv.get_template(TEMPLATE_FILE)
- #import tornado
- import tornado.ioloop
- import tornado.web
- #list for famous movie rendering
+
+ # List for famous movie rendering
movie_list = [[1,"The Hitchhiker's Guide to the Galaxy"],[2,"Back to future"],[3,"Matrix"]]
# template.render() returns a string which contains the rendered html
html_output = template.render(list=movie_list,
title="Here is my favorite movie list")
- #Handler for main page
+ # Handler for main page
class MainHandler(tornado.web.RequestHandler):
def get(self):
- #returns rendered template string to the browser request
+ # Returns rendered template string to the browser request
self.write(html_output)
# Assign handler to the server root (127.0.0.1:PORT/)
@@ -373,8 +372,8 @@ The `base.html` file can be used as base for all site pages which are for exampl
-The next listing is our site page (`site.html`) loaded in the python app which extends `base.html`. The content block is automatically
-set into the corresponding block in the base.html page.
+The next listing is our site page (`site.html`) loaded in the python app which extends `base.html`. The content block is
+automatically set into the corresponding block in the base.html page.
.. code-block:: html
@@ -394,11 +393,6 @@ set into the corresponding block in the base.html page.
{% endblock %}
-
-
-
-
-
.. rubric:: References
.. [1] `The mod_python project is now officially dead `_
From f8586cd010cad935f06fc8fbed52e47a81b2232a Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Tue, 30 Jul 2013 20:25:17 +0200
Subject: [PATCH 0024/1051] Psutil system resources library to scenarios/admin
added
---
docs/scenarios/admin.rst | 54 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 481b3410a..8260e641a 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -120,6 +120,60 @@ State files can be written using YAML, the Jinja2 template system or pure python
`Salt Documentation `_
+
+Psutil
+------
+ `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. In case of some failed test (net, CPU) it send an email.
+
+.. code-block:: python
+
+ # Functions to get system values:
+ from psutil import cpu_percent, net_io_counters
+ # Functions to take a break:
+ from time import sleep
+ # Package for email services:
+ import smtplib
+ import string
+ MAX_NET_USAGE = 400000
+ MAX_ATTACKS = 4
+ attack = 0
+ counter = 0
+ while attack <= MAX_ATTACKS:
+ sleep(4)
+ counter = counter + 1
+ # Check the cpu usage
+ if cpu_percent(interval = 1) > 70:
+ attack = attack + 1
+ # Check the net usage
+ neti1 = net_io_counters()[1]
+ neto1 = net_io_counters()[0]
+ sleep(1)
+ neti2 = net_io_counters()[1]
+ neto2 = net_io_counters()[0]
+ # Calculate the bytes per second
+ net = ((neti2+neto2) - (neti1+neto1))/2
+ if net > MAX_NET_USAGE:
+ attack = attack + 1
+ if counter > 25:
+ attack = 0
+ counter = 0
+ # Write a very important email if attack is higher then 4
+ TO = "you@your_email.com"
+ FROM = "webmaster@your_domain.com"
+ SUBJECT = "Your domain is out of system resources!"
+ text = "Go and fix your server!"
+ BODY = string.join(("From: %s" %FROM,"To: %s" %TO,"Subject: %s" %SUBJECT, "",text), "\r\n")
+ server = smtplib.SMTP('127.0.0.1')
+ server.sendmail(FROM, [TO], BODY)
+ server.quit()
+
+
+A full terminal application like a widely extended top which is based on psutil and with the ability of a client-server
+monitoring is `glance `_.
+
+
Chef
----
From 32a14b763e70d94c77b15a3d0356ba096d6610b5 Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Tue, 30 Jul 2013 20:27:30 +0200
Subject: [PATCH 0025/1051] Psutil system resources library to scenarios/admin
added
---
docs/scenarios/admin.rst | 2 +-
docs/scenarios/web.rst | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 8260e641a..081eae440 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -123,7 +123,7 @@ State files can be written using YAML, the Jinja2 template system or pure python
Psutil
------
- `Psutil `_ is an interface to different system information (e.g. CPU, memory, disks, network, users and processes).
+`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. In case of some failed test (net, CPU) it send an email.
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 32a0ce231..4ec664796 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -319,7 +319,7 @@ to use.
import tornado.ioloop
import tornado.web
- # Load tamplate file templates/site.html
+ # Load template file templates/site.html
TEMPLATE_FILE = "site.html"
templateLoader = FileSystemLoader( searchpath="templates/" )
templateEnv = Environment( loader=templateLoader )
From 4b22dd72058ae807269b02145660d8c748b0fffd Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 12:35:44 -0700
Subject: [PATCH 0026/1051] Added note on SublimeLinter.
---
docs/dev/env.rst | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 7ec103539..6367a5787 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -113,12 +113,14 @@ scripters and novice users alike."
Sublime Text
------------
-"`Sublime Text `_ is a sophisticated text editor
-for code, html and prose. You'll love the slick user interface and
-extraordinary features."
+ `Sublime Text `_ is a sophisticated text
+ editor for code, markup and prose. You'll love the slick user interface,
+ extraordinary features and amazing performance.
Sublime Text has excellent support for editing Python code and uses Python for
-its plugin API.
+its plugin API. It also has plugins a diverse variety of plugins, `some of which `_
+allow for in-editor PEP8 checking and code "linting".
+
IDEs
::::
From 97c19d8fc40ef799ca09e95c447bb2f79abc4f5f Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 12:42:04 -0700
Subject: [PATCH 0027/1051] Fix link to Contribute page.
---
docs/intro/duction.rst | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/docs/intro/duction.rst b/docs/intro/duction.rst
index 7b0cf7dda..04cbceb94 100644
--- a/docs/intro/duction.rst
+++ b/docs/intro/duction.rst
@@ -82,7 +82,6 @@ whether they're an old hand or a first-time Pythonista, and the authors to
the Guide will gladly help if you have any questions about the
appropriateness, completeness, or accuracy of a contribution.
-To get started working on The Hitchhiker's Guide, see
-the: doc:`/notes/contribute` page.
+To get started working on The Hitchhiker's Guide, see the :doc:`/notes/contribute` page.
From 946c9df5ba1c9178cf98eab9abc17b3921cd4a41 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 12:50:49 -0700
Subject: [PATCH 0028/1051] Update license page with license.
---
docs/notes/license.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/notes/license.rst b/docs/notes/license.rst
index d26b3c78c..3847e1b8e 100644
--- a/docs/notes/license.rst
+++ b/docs/notes/license.rst
@@ -1,4 +1,4 @@
License
-------
-.. todo:: Determine License
\ No newline at end of file
+The Guide is licensed under the `Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license `_.
\ No newline at end of file
From cbcbce56c89a31affc622ca8fb4f585f36bd3026 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 12:52:07 -0700
Subject: [PATCH 0029/1051] Fix header to comply with the styleguide.
---
docs/notes/license.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/notes/license.rst b/docs/notes/license.rst
index 3847e1b8e..5a7f54351 100644
--- a/docs/notes/license.rst
+++ b/docs/notes/license.rst
@@ -1,4 +1,5 @@
+=======
License
--------
+=======
The Guide is licensed under the `Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported license `_.
\ No newline at end of file
From b6f014342d8ebdd989c7476ab9e082103be94d26 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 13:05:56 -0700
Subject: [PATCH 0030/1051] Use the :pep: tag instead of directly linking PEPs
---
docs/dev/env.rst | 4 ++--
docs/intro/community.rst | 8 ++++----
docs/intro/learning.rst | 4 ++--
docs/scenarios/db.rst | 2 +-
docs/scenarios/imaging.rst | 2 +-
docs/scenarios/web.rst | 2 +-
docs/writing/documentation.rst | 8 ++------
docs/writing/structure.rst | 5 ++---
docs/writing/style.rst | 16 ++++++++--------
docs/writing/tests.rst | 4 ++--
10 files changed, 25 insertions(+), 30 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 6367a5787..7d43991ab 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -16,8 +16,8 @@ Vim is a text editor which uses keyboard shortcuts for editing instead of menus
or icons. There exist a couple of plugins and settings for the VIM editor to
aid Python development. If you only develop in Python, a good start is to set
the default settings for indentation and line-wrapping to values compliant with
-`PEP 8 `_. In your home directory,
-open a file called `.vimrc` and add the following lines:::
+:pep:`8`. In your home directory, open a file called `.vimrc` and add the
+following lines:::
set textwidth=79 " lines longer than 79 columns will be broken
set shiftwidth=4 " operation >> indents 4 columns; << unindents 4 columns
diff --git a/docs/intro/community.rst b/docs/intro/community.rst
index 8ae20192d..05cd14820 100644
--- a/docs/intro/community.rst
+++ b/docs/intro/community.rst
@@ -27,7 +27,7 @@ PEPs
PEPs are *Python Enhancement Proposals*. They describe changes to Python itself,
or the standards around it.
-There are three different types of PEPs (as defined by `PEP1 `_):
+There are three different types of PEPs (as defined by :pep:`1`):
**Standards**
Describes a new feature or implementation.
@@ -45,13 +45,13 @@ Notable PEPs
There are a few PEPs that could be considered required reading:
-- `PEP8 `_: The Python Style Guide.
+- :pep:`8`: The Python Style Guide.
Read this. All of it. Follow it.
-- `PEP20 `_: The Zen of Python.
+- :pep:`20`: The Zen of Python.
A list of 19 statements that briefly explain the philosophy behind Python.
-- `PEP257 `_: Docstring Conventions.
+- :pep:`257`: Docstring Conventions.
Gives guidelines for semantics and conventions associated with Python
docstrings.
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index b412311ab..4703f4cb3 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -65,7 +65,7 @@ Python Koans
Python Koans is a port of Edgecase's Ruby Koans. It uses a test-driven
approach, q.v. TEST DRIVEN DESIGN SECTION to provide an interactive tutorial
-teaching basic python concepts. By fixing assertion statements that fail in a
+teaching basic python concepts. By fixing assertion statements that fail in a
test script, this provides sequential steps to learning python.
For those used to languages and figuring out puzzles on their own, this can be
@@ -105,7 +105,7 @@ is focused on the more advanced crowd.
It starts with topics like decorators (with caching, proxy, and context manager
case-studies), method resolution order, using super() and meta-programming, and
-general PEP8 best practices.
+general :pep:`8` best practices.
It has a detailed, multi-chapter case study on writing and releasing a package
and eventually an application, including a chapter on using zc.buildout. Later
diff --git a/docs/scenarios/db.rst b/docs/scenarios/db.rst
index d3c398f82..5d12c2a51 100644
--- a/docs/scenarios/db.rst
+++ b/docs/scenarios/db.rst
@@ -5,7 +5,7 @@ DB-API
------
The Python Database API (DB-API) defines a standard interface for Python
-database access modules. It's documented in `PEP 249 `_.
+database access modules. It's documented in :pep:`249`.
Nearly all Python database modules such as `sqlite3`, `psycopg` and
`mysql-python` conform to this interface.
diff --git a/docs/scenarios/imaging.rst b/docs/scenarios/imaging.rst
index 171043228..fa718824f 100644
--- a/docs/scenarios/imaging.rst
+++ b/docs/scenarios/imaging.rst
@@ -12,7 +12,7 @@ The `Python Imaging Library `_, or PIL
for short, is *the* library for image manipulation in Python. Unfortunately, its
development has stagnated, with its last release in 2009.
-Lucky for you, there's an actively-developed fork of PIL called `Pillow `_ -
+Luckily for you, there's an actively-developed fork of PIL called `Pillow `_ -
it's easier to install, runs on all operating systems, and supports Python 3.
Installation
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 4ec664796..588dbb285 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -18,7 +18,7 @@ interface between web servers and Python web application frameworks. By
standardizing behavior and communication between web servers and Python web
frameworks, WSGI makes it possible to write portable Python web code that
can be deployed in any :ref:`WSGI-compliant web server `.
-WSGI is documented in `PEP-3333 `_.
+WSGI is documented in :pep:`3333`.
Frameworks
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index 7ff54654a..d543f53f5 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -104,9 +104,7 @@ In Python, *docstrings* describe modules, classes, and functions: ::
"""Returns the square root of self times self."""
...
-In general, follow the `comment section of PEP 0008`_ (the "Python Style Guide").
-
-.. _comment section of PEP 0008: http://www.python.org/dev/peps/pep-0008/#comments
+In general, follow the comment section of :pep:`8#comments` (the "Python Style Guide").
Commenting Sections of Code
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -137,9 +135,7 @@ operation of the function or class: ::
"""Returns the square root of self times self."""
...
-.. seealso:: Further reading on docstrings: `PEP 0257`_
-
-.. _PEP 0257: http://www.python.org/dev/peps/pep-0257/
+.. seealso:: Further reading on docstrings: :pep:`257`
Other Tools
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 9e56ac16f..0a157f94d 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -466,9 +466,8 @@ should be your preferred method.
.. note::
You can also use the **%** formatting operator to concatenate the
pre-determined number of strings besides **join()** and **+**. However,
- according to `PEP 3101 `_,
- **%** operator became deprecated in Python 3.1 and will be replaced by the
- **format()** method in the later versions.
+ according to :pep:`3101`, the **%** operator became deprecated in
+ Python 3.1 and will be replaced by the **format()** method in the later versions.
.. code-block:: python
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index f9146493a..6718b48f0 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -117,8 +117,8 @@ follow the syntax that is the closest to the function definition: ``send('Hello'
'World', cc='Cthulhu', bcc='God')``.
As a side note, following `YAGNI `_
-principle, it is often harder to remove an optional argument (and its logic inside the
-function) that was added "just in case" and is seemingly never used, than to add a
+principle, it is often harder to remove an optional argument (and its logic inside the
+function) that was added "just in case" and is seemingly never used, than to add a
new optional argument and its logic when needed.
3. The **arbitrary argument list** is the third way to pass arguments to a
@@ -256,14 +256,14 @@ are a probable indication that such a refactoring is needed.
Idioms
------
-A programming idiom, put simply, is a *way* to write code. The notion of programming idioms
+A programming idiom, put simply, is a *way* to write code. The notion of programming idioms
is discussed amply at `c2 `_ and at `Stack Overflow `_.
-Idiomatic Python code is often referred to as being *Pythonic*.
+Idiomatic Python code is often referred to as being *Pythonic*.
-Although there usually is one-- and preferably only one --obvious way to do it;
+Although there usually is one-- and preferably only one --obvious way to do it;
*the* way to write idiomatic Python code can be non-obvious to Python beginners. So,
-good idioms must be consciously acquired.
+good idioms must be consciously acquired.
Some common Python idioms follow:
@@ -362,7 +362,7 @@ For more information see this `StackOverflow `_
+ :pep:`8`
Conforming your Python code to PEP 8 is generally a good idea and helps make
code more consistent when working on projects with other developers. There
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index fdbd6715e..5c1e6b468 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -16,7 +16,7 @@ Some general rules of testing:
alone, and also within the test suite, regardless of the order they are called.
The implication of this rule is that each test must be loaded with a fresh
dataset and may have to do some cleanup afterwards. This is usually
- handled by setUp() and tearDown() methods.
+ handled by `setUp()` and `tearDown()` methods.
- Try hard to make tests that run fast. If one single test needs more than a
few millisecond to run, development will be slowed down or the tests will not
@@ -287,7 +287,7 @@ always returns the same result (but only for the duration of the test).
# not where the SearchForm class itself is imported from
@mock.patch('myapp.SearchForm.search', mock_search)
def test_new_watchlist_activities(self):
- # get_search_results runs a search and iterates over the result
+ # get_search_results runs a search and iterates over the result
self.assertEqual(len(myapp.get_search_results(q="fish")), 3)
Mock has many other ways you can configure it and control its behavior.
From d95b26b4e7c30b583fe04a8b9eeb65edb3f90f1e Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 13:10:46 -0700
Subject: [PATCH 0031/1051] Use code tags where needed.
---
docs/writing/structure.rst | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 0a157f94d..d788a08df 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -35,9 +35,9 @@ include:
- Multiple and messy circular dependencies: if your classes
Table and Chair in furn.py need to import Carpenter from workers.py
- to answer a question such as table.isdoneby(),
+ to answer a question such as ``table.isdoneby()``,
and if conversely the class Carpenter needs to import Table and Chair,
- to answer the question carpenter.whatdo(), then you
+ to answer the question ``carpenter.whatdo()``, then you
have a circular dependency. In this case you will have to resort to
fragile hacks such as using import statements inside
methods or functions.
@@ -236,7 +236,7 @@ processes are spawned to respond to external requests that can
happen at the same time. In this case, holding some state into instantiated
objects, which means keeping some static information about the world, is prone
to concurrency problems or race-conditions. Sometimes, between the initialization of
-the state of an object (usually done with the __init__() method) and the actual use
+the state of an object (usually done with the ``__init__()`` method) and the actual use
of the object state through one of its methods, the world may have changed, and
the retained state may be outdated. For example, a request may load an item in
memory and mark it as read by a user. If another request requires the deletion
@@ -383,7 +383,7 @@ Python has two kinds of built-in or user-defined types.
Mutable types are those that allow in-place modification
of the content. Typical mutables are lists and dictionaries:
-All lists have mutating methods, like append() or pop(), and
+All lists have mutating methods, like ``append()`` or ``pop()``, and
can be modified in place. The same goes for dictionaries.
Immutable types provide no method for changing their content.
@@ -418,7 +418,7 @@ 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()``.
**Bad**
@@ -464,10 +464,10 @@ should be your preferred method.
foo = ''.join([foo, 'ooo'])
.. note::
- You can also use the **%** formatting operator to concatenate the
- pre-determined number of strings besides **join()** and **+**. However,
- according to :pep:`3101`, the **%** operator became deprecated in
- Python 3.1 and will be replaced by the **format()** method in the later versions.
+ You can also use the ``%`` formatting operator to concatenate the
+ pre-determined number of strings besides ``join()`` and ``+``. However,
+ according to :pep:`3101`, the ``%`` operator became deprecated in
+ Python 3.1 and will be replaced by the ``format()`` method in the later versions.
.. code-block:: python
From 1a77f1bbecdeea4e4f7a91241a7a5139374900a4 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 13:13:05 -0700
Subject: [PATCH 0032/1051] No need to say 'PEP 8' twice.
---
docs/writing/style.rst | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 6718b48f0..49004592f 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -397,9 +397,7 @@ slides from a Python user group
PEP 8
-----
-PEP 8 is the de-facto code style guide for Python.
-
- :pep:`8`
+:pep:`8` is the de-facto code style guide for Python.
Conforming your Python code to PEP 8 is generally a good idea and helps make
code more consistent when working on projects with other developers. There
From 6753406a40892ba1b97e4433dde13a22eb028841 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 13:19:31 -0700
Subject: [PATCH 0033/1051] Declare code block language, fix formatting
---
docs/writing/tests.rst | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 5c1e6b468..a5ac785d0 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -112,7 +112,7 @@ test suite runs.
A simple doctest in a function:
-::
+.. code-block:: python
def square(x):
"""Squares x.
@@ -142,7 +142,7 @@ py.test
py.test is a no-boilerplate alternative to Python's standard unittest module.
-::
+.. code-block:: console
$ pip install pytest
@@ -150,7 +150,7 @@ Despite being a fully-featured and extensible test tool, it boasts a simple
syntax. Creating a test suite is as easy as writing a module with a couple of
functions
-::
+.. code-block:: console
# content of test_sample.py
def func(x):
@@ -161,7 +161,7 @@ functions
and then running the `py.test` command
-::
+.. code-block:: console
$ py.test
=========================== test session starts ============================
@@ -193,7 +193,7 @@ Nose
nose extends unittest to make testing easier.
-::
+.. code-block:: console
$ pip install nose
@@ -210,7 +210,7 @@ tox
tox is a tool for automating test environment management and testing against
multiple interpreter configurations
-::
+.. code-block:: console
$ pip install tox
@@ -227,14 +227,14 @@ API and better assertions over the one available in previous versions of Python.
If you're using Python 2.6 or below, you can install it with pip
-::
+.. code-block:: console
$ pip install unittest2
You may want to import the module under the name unittest to make porting code
to newer versions of the module easier in the future
-::
+.. code-block:: python
import unittest2 as unittest
@@ -253,7 +253,7 @@ mock
mock is a library for testing in Python.
-::
+.. code-block:: console
$ pip install mock
@@ -262,7 +262,7 @@ make assertions about how they have been used.
For example, you can monkey patch a method
-::
+.. code-block:: console
from mock import MagicMock
thing = ProductionClass()
@@ -275,7 +275,7 @@ To mock classes or objects in a module under test, use the ``patch`` decorator.
In the example below, an external search system is replaced with a mock that
always returns the same result (but only for the duration of the test).
-::
+.. code-block:: console
def mock_search(self):
class MockSearchQuerySet(SearchQuerySet):
From 4428d875c1897a575e2b0bb40d5b3df1ee8a8b23 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 13:23:47 -0700
Subject: [PATCH 0034/1051] Highlight examples as ReStructuredText.
---
docs/notes/styleguide.rst | 56 ++++++++++++++++++++++++++++-----------
1 file changed, 40 insertions(+), 16 deletions(-)
diff --git a/docs/notes/styleguide.rst b/docs/notes/styleguide.rst
index 958382c18..46fbfdf7f 100644
--- a/docs/notes/styleguide.rst
+++ b/docs/notes/styleguide.rst
@@ -39,24 +39,32 @@ Headings
Use the following styles for headings.
-Chapter title::
+Chapter title:
+
+.. code-block:: rest
#########
Chapter 1
#########
-Page title::
+Page title:
+
+.. code-block:: rest
===================
Time is an Illusion
===================
-Section headings::
+Section headings:
+
+.. code-block:: rest
Lunchtime Doubly So
-------------------
-Sub section headings::
+Sub section headings:
+
+.. code-block:: rest
Very Deep
~~~~~~~~~
@@ -74,7 +82,9 @@ Code Examples
Wrap all code examples at 70 characters to avoid horizontal scrollbars.
-Command line examples::
+Command line examples:
+
+.. code-block:: rest
.. code-block:: console
@@ -83,7 +93,9 @@ Command line examples::
Be sure to include the ``$`` prefix before each line.
-Python interpreter examples::
+Python interpreter examples:
+
+.. code-block:: rest
Label the example::
@@ -91,7 +103,9 @@ Python interpreter examples::
>>> import this
-Python examples::
+Python examples:
+
+.. code-block:: rest
Descriptive title::
@@ -103,16 +117,20 @@ Python examples::
Externally Linking
------------------
-* Prefer labels for well known subjects (ex: proper nouns) when linking::
+* Prefer labels for well known subjects (ex: proper nouns) when linking:
+
+ .. code-block:: rest
- Sphinx_ is used to document Python.
+ Sphinx_ is used to document Python.
- .. _Sphinx: http://sphinx.pocoo.org
+ .. _Sphinx: http://sphinx.pocoo.org
* Prefer to use descriptive labels with inline links instead of leaving bare
- links::
+ links:
+
+ .. code-block:: rest
- Read the `Sphinx Tutorial `_
+ Read the `Sphinx Tutorial `_
* Avoid using labels such as "click here", "this", etc. preferring
descriptive labels (SEO worthy) instead.
@@ -124,7 +142,9 @@ To cross-reference other parts of this documentation, use the `:ref:
`_
keyword and labels.
-To make reference labels more clear and unique, always add a ``-ref`` suffix::
+To make reference labels more clear and unique, always add a ``-ref`` suffix:
+
+.. code-block:: rest
.. _some-section-ref:
@@ -137,14 +157,18 @@ Notes and Warnings
Make use of the appropriate `admonitions directives
`_ when making notes.
-Notes::
+Notes:
+
+.. code-block:: rest
.. note::
The Hitchhikerâs Guide to the Galaxy has a few things to say
on the subject of towels. A towel, it says, is about the most
massively useful thing an interstellar hitch hiker can have.
-Warnings::
+Warnings:
+
+.. code-block:: rest
.. warning:: DON'T PANIC
@@ -156,7 +180,7 @@ Please mark any incomplete areas of The Guide with a `todo directive
avoid cluttering the :ref:`todo-list-ref`, use a single ``todo`` for stub
documents or large incomplete sections.
-::
+.. code-block:: rest
.. todo::
Learn the Ultimate Answer to the Ultimate Question
From 9072b68de4440cec7d5df095048e34b54a287686 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Tue, 30 Jul 2013 13:39:51 -0700
Subject: [PATCH 0035/1051] more code tags.
---
docs/writing/structure.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index d788a08df..465097bfb 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -448,10 +448,10 @@ with calls to ``append()``.
nums = [str(n) for n in range(20)]
print "".join(nums)
-One final thing to mention about strings is that using join() is not always
+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
number of strings, using the addition operator is actually faster, but in cases
-like above or in cases where you are adding to an existing string, using join()
+like above or in cases where you are adding to an existing string, using ``join()``
should be your preferred method.
.. code-block:: python
From 0fd1b7a9ab9f13ac6f1aa6eb7600af8f42779198 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 3 Aug 2013 19:12:18 -0700
Subject: [PATCH 0036/1051] Use code tags where needed.
---
docs/writing/tests.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index a5ac785d0..43504cdaf 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -16,7 +16,7 @@ Some general rules of testing:
alone, and also within the test suite, regardless of the order they are called.
The implication of this rule is that each test must be loaded with a fresh
dataset and may have to do some cleanup afterwards. This is usually
- handled by `setUp()` and `tearDown()` methods.
+ handled by ``setUp()`` and ``tearDown()`` methods.
- Try hard to make tests that run fast. If one single test needs more than a
few millisecond to run, development will be slowed down or the tests will not
From 88fccb1b4d79e7dc4a167931bdfd9e7e61c1babd Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 3 Aug 2013 19:18:16 -0700
Subject: [PATCH 0037/1051] Use code tags where needed.
---
docs/writing/structure.rst | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 465097bfb..3ec2cf1b7 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -83,7 +83,7 @@ while another would handle low-level manipulation of data. The most natural way
to separate these two layers is to regroup all interfacing functionality
in one file, and all low-level operations in another file. In this case,
the interface file needs to import the low-level file. This is done with the
-`import` and `from ... import` statements.
+``import`` and ``from ... import`` statements.
As soon as you use `import` statements you use modules. These can be either built-in
modules such as `os` and `sys`, third-party modules you have installed in your
@@ -106,7 +106,7 @@ Aside for some naming restrictions, nothing special is required for a Python fil
to be a module, but the import mechanism needs to be understood in order to use
this concept properly and avoid some issues.
-Concretely, the `import modu` statement will look for the proper file, which is
+Concretely, the ``import modu`` statement will look for the proper file, which is
`modu.py` in the same directory as the caller if it exists. If it is not
found, the Python interpreter will search for `modu.py` in the "path"
recursively and raise an ImportError exception if it is not found.
@@ -120,20 +120,20 @@ Then, the module's variables, functions, and classes will be available to the ca
through the module's namespace, a central concept in programming that is
particularly helpful and powerful in Python.
-In many languages, an `include file` directive is used by the preprocessor to
+In many languages, an ``include file`` directive is used by the preprocessor to
take all code found in the file and 'copy' it into the caller's code. It is
different in Python: the included code is isolated in a module namespace, which
means that you generally don't have to worry that the included code could have
unwanted effects, e.g. override an existing function with the same name.
It is possible to simulate the more standard behavior by using a special syntax
-of the import statement: `from modu import *`. This is generally considered bad
-practice. **Using `import *` makes code harder to read and makes dependencies less
+of the import statement: ``from modu import *``. This is generally considered bad
+practice. **Using ``import *`` makes code harder to read and makes dependencies less
compartmentalized**.
-Using `from modu import func` is a way to pinpoint the function you want to
-import and put it in the global namespace. While much less harmful than `import
-*` because it shows explicitly what is imported in the global namespace, its
+Using ``from modu import func`` is a way to pinpoint the function you want to
+import and put it in the global namespace. While much less harmful than ``import
+*`` because it shows explicitly what is imported in the global namespace, its
advantage over a simpler `import modu` is only that it will save some typing.
**Very bad**
@@ -166,7 +166,7 @@ Python. Readability means to avoid useless boilerplate text and clutter,
therefore some efforts are spent trying to achieve a certain level of brevity.
But terseness and obscurity are the limits where brevity should stop. Being
able to tell immediately where a class or function comes from, as in the
-`modu.func` idiom, greatly improves code readability and understandability in
+``modu.func`` idiom, greatly improves code readability and understandability in
all but the simplest single file projects.
From 8e952f0af678322a2cb044e105e21122bd0a7ac9 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 3 Aug 2013 19:26:41 -0700
Subject: [PATCH 0038/1051] Wrap lines to 78 char.
---
docs/scenarios/cli.rst | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 2416125f7..546eae017 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -11,4 +11,6 @@ Clint
docopt
------
-`docopt `_ is a lightweight, highly Pythonic package that allows creating command line interfaces easily and intuitively, by parsing POSIX-style usage instructions.
+`docopt `_ is a lightweight, highly Pythonic package that
+allows creating command line interfaces easily and intuitively, by parsing
+POSIX-style usage instructions.
\ No newline at end of file
From 13d99d95fe31b76d350ca74ae5163aaf73704c19 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 3 Aug 2013 19:28:48 -0700
Subject: [PATCH 0039/1051] Let Sphinx link to Python documentation.
Instead of directly linking to the relevant passages.
---
docs/writing/gotchas.rst | 8 ++++----
docs/writing/structure.rst | 11 ++++++-----
docs/writing/style.rst | 23 ++++++++++-------------
3 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/docs/writing/gotchas.rst b/docs/writing/gotchas.rst
index d96d3d848..98bfd2c47 100644
--- a/docs/writing/gotchas.rst
+++ b/docs/writing/gotchas.rst
@@ -65,7 +65,7 @@ What You Should Do Instead
~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a new object each time the function is called, by using a default arg to
-signal that no argument was provided (``None`` is often a good choice).
+signal that no argument was provided (:py:data:`None` is often a good choice).
.. code-block:: python
@@ -137,9 +137,9 @@ is looked up in the surrounding scope at call time. By then, the loop has
completed and ``i`` is left with its final value of 4.
What's particularly nasty about this gotcha is the seemingly prevalent
-misinformation that this has something to do with ``lambda``\s in Python.
-Functions created with a ``lambda`` expression are in no way special, and in
-fact the same exact behavior is exhibited by just using an ordinary ``def``:
+misinformation that this has something to do with :ref:`lambdas `
+in Python. Functions created with a ``lambda`` expression are in no way special,
+and in fact the same exact behavior is exhibited by just using an ordinary ``def``:
.. code-block:: python
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 3ec2cf1b7..9bb685c6b 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -383,7 +383,7 @@ Python has two kinds of built-in or user-defined types.
Mutable types are those that allow in-place modification
of the content. Typical mutables are lists and dictionaries:
-All lists have mutating methods, like ``append()`` or ``pop()``, and
+All lists have mutating methods, like :py:meth:`list.append` or :py:meth:`list.pop`, and
can be modified in place. The same goes for dictionaries.
Immutable types provide no method for changing their content.
@@ -464,10 +464,11 @@ should be your preferred method.
foo = ''.join([foo, 'ooo'])
.. note::
- You can also use the ``%`` formatting operator to concatenate the
- pre-determined number of strings besides ``join()`` and ``+``. However,
- according to :pep:`3101`, the ``%`` operator became deprecated in
- Python 3.1 and will be replaced by the ``format()`` method in the later versions.
+ You can also use the :ref:`% ` formatting operator
+ to concatenate a pre-determined number of strings besides :py:meth:`str.join`
+ and ``+``. However, according to :pep:`3101`, the ``%`` operator became
+ deprecated in Python 3.1 and will be replaced by the :py:meth:`str.format`
+ method in the later versions.
.. code-block:: python
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 49004592f..57a814eed 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -335,7 +335,7 @@ Instead, use a list comprehension:
four_lists = [[] for __ in xrange(4)]
-A common idiom for creating strings is to use `join `_ on an empty string.::
+A common idiom for creating strings is to use :py:meth:`str.join` on an empty string.::
letters = ['s', 'p', 'a', 'm']
word = ''.join(letters)
@@ -433,7 +433,7 @@ Check if variable equals a constant
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You don't need to explicitly compare a value to True, or None, or 0 - you can
-just add it to the if statement. See `Truth Value Testing
+just add it to the if statement. See :ref:`Truth Value Testing
`_ for a
list of what is considered false.
@@ -466,8 +466,8 @@ list of what is considered false.
Access a Dictionary Element
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Don't use the ``has_key`` function. Instead use ``x in d`` syntax, or pass
-a default argument to ``get``.
+Don't use the :py:meth:`dict.has_key` method. Instead, use ``x in d`` syntax,
+or pass a default argument to :py:meth:`dict.get`.
**Bad**:
@@ -497,10 +497,9 @@ Short Ways to Manipulate Lists
`List comprehensions
`_
-provide a powerful, concise way to work with lists. Also, the `map
-`_ and `filter
-`_ functions can perform
-operations on lists using a different concise syntax.
+provide a powerful, concise way to work with lists. Also, the :py:func:`map`
+:py:func:`filter` functions can perform operations on lists using a different,
+more concise syntax.
**Bad**:
@@ -540,8 +539,7 @@ operations on lists using a different concise syntax.
# Or:
a = map(lambda i: i + 3, a)
-Use `enumerate `_ to
-keep a count of your place in the list.
+Use :py:func:`enumerate` keep a count of your place in the list.
.. code-block:: python
@@ -552,9 +550,8 @@ keep a count of your place in the list.
# 1 4
# 2 5
-The ``enumerate`` function has better readability than handling a counter
-manually. Moreover,
-it is better optimized for iterators.
+The :py:func:`enumerate` function has better readability than handling a
+counter manually. Moreover, it is better optimized for iterators.
Read From a File
~~~~~~~~~~~~~~~~
From 2c2f25dc1c526b50a9da1dfd7ad6551433066dd7 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 3 Aug 2013 19:36:50 -0700
Subject: [PATCH 0040/1051] Don't use direct links if it can be helped.
---
docs/dev/env.rst | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 7d43991ab..81da462b0 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -286,12 +286,11 @@ Other Tools
IDLE
----
-`IDLE `_ is an integrated
-development environment that is part of Python standard library. It is
-completely written in Python and uses the Tkinter GUI toolkit. Though IDLE
-is not suited for full-blown development using Python, it is quite
-helpful to try out small Python snippets and experiment with different
-features in Python.
+:ref:`IDLE ` is an integrated development environment that is
+part of Python standard library. It is completely written in Python and uses
+the Tkinter GUI toolkit. Though IDLE is not suited for full-blown development
+using Python, it is quite helpful to try out small Python snippets and
+experiment with different features in Python.
It provides the following features:
From 6bba87adf15af6e6f6c0c0cb70db9996084cf480 Mon Sep 17 00:00:00 2001
From: Ben Marshall-Corser
Date: Tue, 6 Aug 2013 01:55:07 +0100
Subject: [PATCH 0041/1051] New installs of Python through Homebrew come with
pip :)
---
docs/starting/install/osx.rst | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index 6d2a156f2..0711b1928 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -77,18 +77,11 @@ extends the packaging and installation facilities provided by the distutils
in the standard library. Once you add Distribute 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.
+your own Python software with very little work. Homebrew already installed
+Distribute for you.
-Homebrew already installed Distribute for you. Its ``easy_install`` command 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, simply open a command prompt and run
-
-.. code-block:: console
-
- $ easy_install pip
+Happily, when you ran `brew install python`, Homebrew also installed **pip**.
+Pip allows for uninstallation of packages, and is actively maintained.
Virtualenv
@@ -127,6 +120,9 @@ environment. Put your own code within a subdirectory of the environment,
however you wish. When you no longer need a particular environment, simply
copy your code out of it, and then delete the main directory for the environment.
+An useful set of extensions to virtualenv is available in virtualenvwrapper,
+`RTFD `_ to find out more.
+
--------------------------------
From 51a727d0791de0afc6627da1bda02b6b59498918 Mon Sep 17 00:00:00 2001
From: claudejrogers
Date: Sun, 11 Aug 2013 20:35:30 -0700
Subject: [PATCH 0042/1051] Update "Late Binding Closures" section of
gotchas.rst
The late binding closure example seems like a good use case for the
functools.partial function.
---
docs/writing/gotchas.rst | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/docs/writing/gotchas.rst b/docs/writing/gotchas.rst
index 98bfd2c47..12e18619e 100644
--- a/docs/writing/gotchas.rst
+++ b/docs/writing/gotchas.rst
@@ -166,6 +166,16 @@ its arguments by using a default arg like so:
def create_multipliers():
return [lambda x, i=i : i * x for i in range(5)]
+Alternatively, you can use the functools.partial function:
+
+.. code-block:: python
+
+ from functools import partial
+ from operator import mul
+
+ def create_multipliers():
+ return [partial(mul, i) for i in range(5)]
+
When the Gotcha Isn't a Gotcha
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From c666597a73b05f2656d1737de7b9f8ef4794cc11 Mon Sep 17 00:00:00 2001
From: Duta
Date: Mon, 12 Aug 2013 12:44:37 +0100
Subject: [PATCH 0043/1051] Update style.rst
---
docs/writing/style.rst | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 57a814eed..e48956a2e 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -516,6 +516,7 @@ more concise syntax.
.. code-block:: python
+ a = [3, 4, 5]
b = [i for i in a if i > 4]
b = filter(lambda x: x > 4, a)
@@ -525,10 +526,8 @@ more concise syntax.
# Add three to all list members.
a = [3, 4, 5]
- count = 0
- for i in a:
- a[count] = i + 3
- count = count + 1
+ for i in range(len(a)):
+ a[i] += 3
**Good**:
From 18c3e05e26cdd245a95013cbceb3eb613cb8373f Mon Sep 17 00:00:00 2001
From: Duta
Date: Mon, 12 Aug 2013 13:31:18 +0100
Subject: [PATCH 0044/1051] Minor wording correction and changed some
code-block tags to be python
---
docs/writing/tests.rst | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 43504cdaf..4e8749161 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -44,7 +44,7 @@ Some general rules of testing:
- The first step when you are debugging your code is to write a new test
pinpointing the bug. While it is not always possible to do, those bug
- catching test are among the most valuable piece of code in your project.
+ catching test are among the most valuable pieces of code in your project.
- Use long and descriptive names for testing functions. The style guide here is
slightly different than that of running code, where short names are often
@@ -150,7 +150,7 @@ Despite being a fully-featured and extensible test tool, it boasts a simple
syntax. Creating a test suite is as easy as writing a module with a couple of
functions
-.. code-block:: console
+.. code-block:: python
# content of test_sample.py
def func(x):
@@ -181,8 +181,8 @@ and then running the `py.test` command
test_sample.py:5: AssertionError
========================= 1 failed in 0.02 seconds =========================
-far less work than would be required for the equivalent functionality with the
-unittest module!
+is far less work than would be required for the equivalent functionality with
+the unittest module!
`py.test `_
@@ -262,7 +262,7 @@ make assertions about how they have been used.
For example, you can monkey patch a method
-.. code-block:: console
+.. code-block:: python
from mock import MagicMock
thing = ProductionClass()
@@ -275,7 +275,7 @@ To mock classes or objects in a module under test, use the ``patch`` decorator.
In the example below, an external search system is replaced with a mock that
always returns the same result (but only for the duration of the test).
-.. code-block:: console
+.. code-block:: python
def mock_search(self):
class MockSearchQuerySet(SearchQuerySet):
From 2996f04c7e9ed20bef7c2e14526808c7f42fd1ce Mon Sep 17 00:00:00 2001
From: ugurthemaster
Date: Thu, 15 Aug 2013 13:53:24 +0300
Subject: [PATCH 0045/1051] Update learning.rst
Python books for Engineers and Scientists have been added.
---
docs/intro/learning.rst | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 4703f4cb3..63d6d04fb 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -123,6 +123,26 @@ guide to the language.
`The Python Tutorial `_
+For Engineers and Scientists
+----------------------------
+
+A Primer on Scientific Programming with Python
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A Primer on Scientific Programming with Python, written by Hans Petter Langtangen,
+mainly covers python's usage in scientific field. In the book, examples are
+choosen from mathematics and the natural sciences.
+
+ `A Primer on Scientific Programming with Python `_
+
+Numerical Methods in Engineering with Python
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Numerical Methods in Engineering with Python,written by Jaan Kiusalaas, attempts to
+emphasis on numerical methods and how to implement them in python.
+
+ `Numerical Methods in Engineering with Python `_
+
References
----------
From cace09f5dec298cc59b82b2b56a2e9a491f43e53 Mon Sep 17 00:00:00 2001
From: Nicolas Louveton
Date: Sun, 18 Aug 2013 14:09:30 +0200
Subject: [PATCH 0046/1051] Add some package tools for statistical computing
Add IPython as tool for reproducible science
Add Pandas and Rpy2 as relevant tool for those interested in statistics
with Python
---
docs/scenarios/scientific.rst | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index 7f9a66cb3..1471e52a3 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -17,6 +17,22 @@ of the Python guide. However, a comprehensive introduction to the scientific
Python ecosystem can be found in the `Python Scientific Lecture Notes
`_
+
+Tools
+:::::
+
+IPython
+-------
+
+`IPytthon `_ is an enhanced version of Python interpreter.
+The features it provides are of great interest for the scientists. The `inline mode`
+allow graphics and plots to be displayed in the terminal (Qt based version).
+Moreover the `notebook` mode supports literate programming and reproducible science
+generating a web-based python notebook. This notebook allowing to store chunk of
+Python code along side to the results and additional comments (HTML, LaTeX, Markdown).
+The notebook could be shared and exported in various file formats.
+
+
Libraries
:::::::::
@@ -63,6 +79,23 @@ users to Python. Many examples, along with the source code to re-create them,
can be browsed at the `matplotlib gallery
`_.
+Pandas
+------
+`Pandas `_ is data manipulation library
+based on Numpy and which provides many useful functions for accessing,
+indexing, merging and grouping data easily. The main data structure (DataFrame)
+is close to what could be found in the R statistical package, that is
+an heterogeneous data tables with name indexing, time series operations
+and auto-alignement of data.
+
+Rpy2
+----
+`Rpy2 `_ is a Python binding for the R
+statistical package allowing to execute R functions from Python and passing
+data back and forth the two environments. Rpy2 is the object oriented
+implementation of the binding based on `Rpy `_.
+
+
Resources
:::::::::
From 214323af52dac0db53c6ca8c758814c008fc6080 Mon Sep 17 00:00:00 2001
From: Nicolas Louveton
Date: Sun, 18 Aug 2013 14:15:29 +0200
Subject: [PATCH 0047/1051] Add scientific/neuroscience tools
PsychoPy a library for cognitive science
---
docs/scenarios/scientific.rst | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index 1471e52a3..a95f9867f 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -95,6 +95,14 @@ statistical package allowing to execute R functions from Python and passing
data back and forth the two environments. Rpy2 is the object oriented
implementation of the binding based on `Rpy `_.
+PsychoPy
+--------
+
+`PsychoPy `_ is a library for cognitive scientists
+allowing to create cognitive psychology and neuroscience experiments. The library
+handles both presentation of stimuli, scripting of experimental design and
+data collection.
+
Resources
:::::::::
From a6b3fae71e9b5dac24f9fb7e89ae336843d85549 Mon Sep 17 00:00:00 2001
From: ugurthemaster
Date: Tue, 20 Aug 2013 14:21:34 +0300
Subject: [PATCH 0048/1051] Update news.rst
---
docs/intro/news.rst | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/docs/intro/news.rst b/docs/intro/news.rst
index 74a5b44ab..ec829f49a 100644
--- a/docs/intro/news.rst
+++ b/docs/intro/news.rst
@@ -31,3 +31,11 @@ Python Weekly is a free weekly newsletter featuring curated news, articles,
new releases, jobs, etc. related to Python.
`Python Weekly `_
+
+Python News
+~~~~~~~~~~~~~
+
+News section in the official Python web site (www.python.org). It briefly
+highlights the news from Python community.
+
+ `Python News `_
From d0b5d5effebe88ab95fe096a452fa0d98fdc263e Mon Sep 17 00:00:00 2001
From: ugurthemaster
Date: Wed, 21 Aug 2013 10:10:29 +0300
Subject: [PATCH 0049/1051] Update gui.rst
The information about PyjamasDesktop (pyjs Desktop) has been added.
---
docs/scenarios/gui.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 7194f57bd..7f502b37d 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -76,3 +76,14 @@ Kivy is actively being developed by a community and free to use. It operates
on all major platforms (Linux, OSX, Windows, Android).
The main resource for information is the website: http://kivy.org
+
+PyjamasDesktop (pyjs Desktop)
+-----------------------------
+PyjamasDesktop is a port of PyJamas. PyjamasDesktop is application widget set
+for desktop and a cross-platform framework. (After release v0.6 PyjamasDesktop
+is a part of Pyjamas (Pyjs)). Briefly, it allows the exact same Python web application
+source code to be executed as a standalone desktop application.
+
+`Python Wiki for PyjamasDesktop `_.
+
+The main website; `pyjs Desktop `_.
From 95c7db96970dd0d49f3f0c7d811d6dc2d953858c Mon Sep 17 00:00:00 2001
From: David Boucha
Date: Fri, 23 Aug 2013 12:20:00 -0600
Subject: [PATCH 0050/1051] Correct Salt Docs url. Ensure apache service is
enable and set proper require
---
docs/scenarios/admin.rst | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 081eae440..4bdfe6802 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -115,10 +115,13 @@ and start the Apache server:
- installed
service:
- running
+ - enable: True
+ - require:
+ - pkg: apache
State files can be written using YAML, the Jinja2 template system or pure python.
- `Salt Documentation `_
+ `Salt Documentation `_
Psutil
From 580e32fb6a0fea5c34677899f7cd215a6a54fd95 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:21:46 -0700
Subject: [PATCH 0051/1051] Update Buildbot URL.
---
docs/scenarios/ci.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 3a80c70b3..d9fc431ab 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -26,7 +26,7 @@ engine. Use it.
Buildbot
--------
-`Buildbot `_ is a Python system to
+`Buildbot `_ is a Python system to
automate the compile/test cycle to validate code changes.
@@ -85,4 +85,4 @@ thorough.
In order to activate testing for your project, go to `the travis-ci site `_
and login with your Github account. Then activate your project in your profile settings and that's
-it. From now on, your project's tests will be run on every push to Github.
+it. From now on, your project's tests will be run on every push to Github.
From 5609bc8bbff2189e1659f47039f218ae34cac271 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:22:47 -0700
Subject: [PATCH 0052/1051] Update tox URL.
---
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 d9fc431ab..1bb2af534 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -38,7 +38,7 @@ Mule?
Tox
---
-`tox `_ is an automation tool providing
+`tox `_ is an automation tool providing
packaging, testing and deployment of Python software right from the console or
CI server. It is a generic virtualenv management and test command line tool
which provides the following features:
From 5982ec650a64210a831971771497315db286fab5 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:23:15 -0700
Subject: [PATCH 0053/1051] Update Travis CI URL because always https.
---
docs/scenarios/ci.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 1bb2af534..6e2025d91 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -53,7 +53,7 @@ which provides the following features:
Travis-CI
---------
-`Travis-CI `_ is a distributed CI server which builds tests
+`Travis-CI `_ is a distributed CI server which builds tests
for open source projects for free. It provides multiple workers to run Python tests
on and seamlessly integrates with Github. You can even have it comment on your Pull
Requests whether this particular changeset breaks the build or not. So if you are
@@ -83,6 +83,6 @@ notifications, before and after steps and much more. The
`travis-ci docs `_ explain all of those and are very
thorough.
-In order to activate testing for your project, go to `the travis-ci site `_
+In order to activate testing for your project, go to `the travis-ci site `_
and login with your Github account. Then activate your project in your profile settings and that's
it. From now on, your project's tests will be run on every push to Github.
From 920aa3725c88a82101ad29502e8a8b4242bfbf9f Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:26:15 -0700
Subject: [PATCH 0054/1051] Use Wayback Machine to resolve a dead link.
---
docs/scenarios/db.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/db.rst b/docs/scenarios/db.rst
index 5d12c2a51..6d6d6ce7a 100644
--- a/docs/scenarios/db.rst
+++ b/docs/scenarios/db.rst
@@ -11,7 +11,7 @@ Nearly all Python database modules such as `sqlite3`, `psycopg` and
Tutorials that explain how to work with modules that conform to this interface can be found
`here `__ and
-`here `__.
+`here `__.
SQLAlchemy
----------
From c52c9187ae4dc9b7436a15426f8fda8f1eda5a12 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:27:22 -0700
Subject: [PATCH 0055/1051] Add Qt link.
---
docs/scenarios/gui.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 7f502b37d..94b190345 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -4,7 +4,7 @@ GUI Applications
Qt
--
-Qt is a cross-platform application framework that is widely used for developing
+`Qt `_ is a cross-platform application framework that is widely used for developing
software with a GUI but can also be used for non-GUI applications.
PySide
From 1e38672e668a6c629d8154ce5dfab95fa7a55131 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:42:32 -0700
Subject: [PATCH 0056/1051] Update Gunicorn help link.
---
docs/scenarios/web.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 588dbb285..dd6418bc1 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -152,7 +152,7 @@ lightweight, easy to use, and uses many UNIX idioms. Gunicorn is not designed
to face the internet -- it was designed to run behind Nginx which buffers
slow requests and takes care of other important considerations. A sample
setup for Nginx + Gunicorn can be found in the
-`Gunicorn help `_.
+`Gunicorn help `_.
.. _uwsgi-ref:
From 0b897088fcde12b99d5b1727b0b9f664105d8e92 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:44:32 -0700
Subject: [PATCH 0057/1051] Update link to Gondor documentation.
---
docs/scenarios/web.rst | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index dd6418bc1..99b3dfc6b 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -235,9 +235,7 @@ and Pinax applications. Gondor supports Django versions 1.2 and 1.3 on
Python version 2.7, and can automatically configure your Django site if you
use ``local_settings.py`` for site-specific configuration information.
-Gondor publishes guides to deploying `Django projects
-`_ and `Pinax projects
-`_ on their platform.
+Gondor has a guide on deploying `Django projects `_.
Templating
From c5e37675ce06ed310560a254d7f672c8ae0b6eca Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:49:59 -0700
Subject: [PATCH 0058/1051] Update virtualenvwrapper documentation links.
---
docs/dev/virtualenvs.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst
index ee6ace244..c08f1118e 100644
--- a/docs/dev/virtualenvs.rst
+++ b/docs/dev/virtualenvs.rst
@@ -60,7 +60,7 @@ where they were placed.
virtualenvwrapper
-----------------
-`virtualenvwrapper `_
+`virtualenvwrapper `_
provides a set of commands which makes working with virtual environments much
more pleasant. It also places all your virtual environments in one place.
@@ -72,7 +72,7 @@ To install (make sure **virtualenv** is already installed):
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh
-(`Full virtualenvwrapper install instructions `_.)
+(`Full virtualenvwrapper install instructions `_.)
For Windows, you can use the `virtualenvwrapper-powershell `_ clone.
@@ -136,7 +136,7 @@ Other useful commands
``lssitepackages``
Shows contents of ``site-packages`` directory.
-`Full list of virtualenvwrapper commands `_.
+`Full list of virtualenvwrapper commands `_.
autoenv
-------
From 8bd2c129658fd3bfd48e1b60f5bf6f3d1a4a5a46 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:54:40 -0700
Subject: [PATCH 0059/1051] Update link to 'A Byte of Python'.
---
docs/intro/learning.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 63d6d04fb..27e770def 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -85,7 +85,7 @@ A free introductory book that teaches python at the beginner level, it assumes n
previous programming experience.
`A Byte of Python for Python 2.x `_
- `A Byte of Python for Python 3.x `_
+ `A Byte of Python for Python 3.x `_
Advanced
@@ -130,7 +130,7 @@ A Primer on Scientific Programming with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A Primer on Scientific Programming with Python, written by Hans Petter Langtangen,
-mainly covers python's usage in scientific field. In the book, examples are
+mainly covers python's usage in scientific field. In the book, examples are
choosen from mathematics and the natural sciences.
`A Primer on Scientific Programming with Python `_
@@ -138,7 +138,7 @@ choosen from mathematics and the natural sciences.
Numerical Methods in Engineering with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Numerical Methods in Engineering with Python,written by Jaan Kiusalaas, attempts to
+Numerical Methods in Engineering with Python,written by Jaan Kiusalaas, attempts to
emphasis on numerical methods and how to implement them in python.
`Numerical Methods in Engineering with Python `_
From 4cc1d119f14c207b17e2c2a157bda954a854fba9 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:56:16 -0700
Subject: [PATCH 0060/1051] Add link to 'Python in a Nutshell'.
---
docs/intro/learning.rst | 2 ++
1 file changed, 2 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 27e770def..0cb397b2f 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -153,6 +153,8 @@ Python in a Nutshell, written by Alex Martelli, covers most cross-platform
python's usage, from its syntax to built-in libraries to advanced topics such
as writing C extensions.
+ `Python in a Nutshell `_
+
The Python Language Reference
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From bbbb24d3e50198018e23f9dc549fc98536d68669 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mart=C3=ADn=20Blech?=
Date: Thu, 29 Aug 2013 20:29:42 -0300
Subject: [PATCH 0061/1051] Add xmltodict
---
docs/scenarios/xml.rst | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/docs/scenarios/xml.rst b/docs/scenarios/xml.rst
index df89d580a..1f8db9c4c 100644
--- a/docs/scenarios/xml.rst
+++ b/docs/scenarios/xml.rst
@@ -32,3 +32,42 @@ and then you can get the child elements name like this:
untangle also supports loading XML from a string or an URL.
+xmltodict
+---------
+
+`xmltodict `_ is another simple
+library that aims at making xml feel like working with json.
+
+An xml file like this:
+
+.. code-block:: xml
+
+
+
+ elements
+ more elements
+
+
+ element as well
+
+
+
+can be loaded into a python dict like this:
+
+.. code-block:: python
+
+ import xmltodict
+ obj = xmltodict.parse('path/to/file.xml')
+
+and then you can access elements, attributes and values like this:
+
+.. code-block:: python
+
+ doc['mydocument']['@has'] # == u'an attribute'
+ doc['mydocument']['and']['many'] # == [u'elements', u'more elements']
+ doc['mydocument']['plus']['@a'] # == u'complex'
+ doc['mydocument']['plus']['#text'] # == u'element as well'
+
+xmltodict also lets you roundtrip back to xml with the unparse function,
+has a streaming mode suitable for handling files that don't fit in memory
+and supports namespaces.
From 0d259afbda87f5283bcf10c22b62494f8c32125a Mon Sep 17 00:00:00 2001
From: eluck
Date: Fri, 30 Aug 2013 01:27:54 -0700
Subject: [PATCH 0062/1051] fix broken tornado link in web.rst
---
docs/scenarios/web.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 588dbb285..3e40f16cb 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -92,7 +92,7 @@ Support can be found on its `mailing list `_ is a scalable, non-blocking web server and web application framework with
+`Tornado `_ is a scalable, non-blocking web server and web application framework with
a relative simple usage. Tornado is known for his high performance.
It was initially developed for `friendfeed `_ , a real time chat and blog system.
From ad9a6568a7b6b395120fb02bd530acaa10f782df Mon Sep 17 00:00:00 2001
From: Kenneth Reitz
Date: Sun, 1 Sep 2013 10:31:33 +0530
Subject: [PATCH 0063/1051] python for you and me
@kushaldas
---
docs/intro/learning.rst | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 63d6d04fb..930b20b06 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -14,6 +14,13 @@ allows you to go through the lessons without having to install Python locally.
`Learn Python `_
+
+If you want a more traditional book, *Python For You and Me* is an
+excellent resource for learning all aspects of the language.
+
+ `Python for You and Me `_
+
+
Learn Python the Hard Way
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -130,7 +137,7 @@ A Primer on Scientific Programming with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A Primer on Scientific Programming with Python, written by Hans Petter Langtangen,
-mainly covers python's usage in scientific field. In the book, examples are
+mainly covers python's usage in scientific field. In the book, examples are
choosen from mathematics and the natural sciences.
`A Primer on Scientific Programming with Python `_
@@ -138,7 +145,7 @@ choosen from mathematics and the natural sciences.
Numerical Methods in Engineering with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Numerical Methods in Engineering with Python,written by Jaan Kiusalaas, attempts to
+Numerical Methods in Engineering with Python,written by Jaan Kiusalaas, attempts to
emphasis on numerical methods and how to implement them in python.
`Numerical Methods in Engineering with Python `_
From c6de99f95be42ea29bd43352c36c2d1c2afcad72 Mon Sep 17 00:00:00 2001
From: Jeroen Dierckx
Date: Wed, 4 Sep 2013 13:49:24 +0200
Subject: [PATCH 0064/1051] Added Camelot information to gui.rst
---
docs/scenarios/gui.rst | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 7f502b37d..4dbc650b8 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -87,3 +87,16 @@ source code to be executed as a standalone desktop application.
`Python Wiki for PyjamasDesktop `_.
The main website; `pyjs Desktop `_.
+
+Camelot
+-------
+`Camelot `_ provides components for building
+business applications on top of Python, SQLAlchemy and Qt. It is inspired by
+the Django admin interface.
+
+You can use Camelot to develop both simple and complex business applications
+at warp speed.
+
+The main resource for information is the website:
+http://www.python-camelot.com
+and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
From ddef4fc72db9eea23976285469d58a59e933d263 Mon Sep 17 00:00:00 2001
From: MalcolmEvershed
Date: Sun, 8 Sep 2013 16:13:39 -0700
Subject: [PATCH 0065/1051] New Pip requires Setuptools instead of Distribute
Also remove --distribute option from virtualenv since that is obsolete.
---
docs/starting/install/win.rst | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index 420957275..bdfa3f08a 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -36,21 +36,21 @@ 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 Distribute, as it
+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.
-Distribute + Pip
+Setuptools + Pip
----------------
-The most crucial third-party Python software of all is Distribute, which
+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 Distribute to your Python system you can
+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 Distribute for Windows, run the python script
-available here: `python-distribute `_
+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
@@ -58,11 +58,8 @@ 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, simply open a command prompt and run
-
-.. code-block:: console
-
- > easy_install pip
+To install pip, run the python script available here:
+`get-pip.py `_
Virtualenv
@@ -89,7 +86,7 @@ project's directory
.. code-block:: console
- > virtualenv --distribute venv
+ > virtualenv venv
To use an environment, run the ``activate.bat`` batch file in the ``Scripts``
subdirectory of that environment. Your command prompt will change to show the
From 0852469bcacce3eb911fd8d975b46e5e516fa14d Mon Sep 17 00:00:00 2001
From: Kyle Kelley
Date: Fri, 13 Sep 2013 15:51:25 -0500
Subject: [PATCH 0066/1051] Linked explicitly to 2.x documentation
---
docs/intro/documentation.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/intro/documentation.rst b/docs/intro/documentation.rst
index cdc796dc7..cd22c95fa 100644
--- a/docs/intro/documentation.rst
+++ b/docs/intro/documentation.rst
@@ -6,7 +6,7 @@ Official Documentation
The official Python Language and Library documentation can be found here:
- - `Python 2.x `_
+ - `Python 2.x `_
- `Python 3.x `_
From eafdcd9a61ea96e3b1685ea06f18162308bdc9a3 Mon Sep 17 00:00:00 2001
From: Jeff Paine
Date: Sat, 14 Sep 2013 00:39:31 -0400
Subject: [PATCH 0067/1051] Update brew installation commands
---
docs/starting/install/osx.rst | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index 0711b1928..53323cb8a 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -54,19 +54,7 @@ line at the bottom of your ``~/.bashrc`` file
Now, we can install Python 2.7: ::
- $ brew install python --framework
-
-This will take a minute or two. Once that's complete, you'll have to add the
-new Python scripts directory to your ``PATH``
-
-.. code-block:: console
-
- export PATH=/usr/local/share/python:$PATH
-
-The ``--framework`` option tells Homebrew to compile a Framework-style Python
-build, rather than a UNIX-style build. The outdated version of Python that
-Snow Leopard comes packaged with is built as a Framework, so this helps avoid
-some future module installation bugs.
+ $ brew install python
Distribute & Pip
From 4842bbb1a184f0c27b7e6d2bf4af4568929ea402 Mon Sep 17 00:00:00 2001
From: Jeff Paine
Date: Sun, 15 Sep 2013 09:59:04 -0400
Subject: [PATCH 0068/1051] Add back export PATH=/usr/local/share/python:$PATH
section
---
docs/starting/install/osx.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index 53323cb8a..dc6676733 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -56,6 +56,13 @@ Now, we can install Python 2.7: ::
$ brew install python
+This will take a minute or two. Once that's complete, you'll have to add the
+new Python scripts directory to your ``PATH``
+
+.. code-block:: console
+
+ export PATH=/usr/local/share/python:$PATH
+
Distribute & Pip
----------------
From 40f41a9e26f7f69ce1400345e5ae5c1c488769de Mon Sep 17 00:00:00 2001
From: Andreas Savvides
Date: Mon, 16 Sep 2013 23:46:00 +0100
Subject: [PATCH 0069/1051] Adding link to Python in a Nutshell
---
docs/intro/learning.rst | 3 +++
1 file changed, 3 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 930b20b06..852e786cb 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -160,6 +160,9 @@ Python in a Nutshell, written by Alex Martelli, covers most cross-platform
python's usage, from its syntax to built-in libraries to advanced topics such
as writing C extensions.
+ `Python in a Nutshell `_
+
+
The Python Language Reference
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From 56924481c2006be27168546eded9748844d737aa Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:21:46 -0700
Subject: [PATCH 0070/1051] Update Buildbot URL.
---
docs/scenarios/ci.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 3a80c70b3..d9fc431ab 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -26,7 +26,7 @@ engine. Use it.
Buildbot
--------
-`Buildbot `_ is a Python system to
+`Buildbot `_ is a Python system to
automate the compile/test cycle to validate code changes.
@@ -85,4 +85,4 @@ thorough.
In order to activate testing for your project, go to `the travis-ci site `_
and login with your Github account. Then activate your project in your profile settings and that's
-it. From now on, your project's tests will be run on every push to Github.
+it. From now on, your project's tests will be run on every push to Github.
From e094175bd6ae59f979845e0e85e14f81422ff015 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:22:47 -0700
Subject: [PATCH 0071/1051] Update tox URL.
---
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 d9fc431ab..1bb2af534 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -38,7 +38,7 @@ Mule?
Tox
---
-`tox `_ is an automation tool providing
+`tox `_ is an automation tool providing
packaging, testing and deployment of Python software right from the console or
CI server. It is a generic virtualenv management and test command line tool
which provides the following features:
From 8b9e3bb877411f86e56cb1d31fb0e05ef167053d Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:23:15 -0700
Subject: [PATCH 0072/1051] Update Travis CI URL because always https.
---
docs/scenarios/ci.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 1bb2af534..6e2025d91 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -53,7 +53,7 @@ which provides the following features:
Travis-CI
---------
-`Travis-CI `_ is a distributed CI server which builds tests
+`Travis-CI `_ is a distributed CI server which builds tests
for open source projects for free. It provides multiple workers to run Python tests
on and seamlessly integrates with Github. You can even have it comment on your Pull
Requests whether this particular changeset breaks the build or not. So if you are
@@ -83,6 +83,6 @@ notifications, before and after steps and much more. The
`travis-ci docs `_ explain all of those and are very
thorough.
-In order to activate testing for your project, go to `the travis-ci site `_
+In order to activate testing for your project, go to `the travis-ci site `_
and login with your Github account. Then activate your project in your profile settings and that's
it. From now on, your project's tests will be run on every push to Github.
From edf7f04e491e7b4aa799e655ea0cf92369f501c8 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:26:15 -0700
Subject: [PATCH 0073/1051] Use Wayback Machine to resolve a dead link.
---
docs/scenarios/db.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/db.rst b/docs/scenarios/db.rst
index 5d12c2a51..6d6d6ce7a 100644
--- a/docs/scenarios/db.rst
+++ b/docs/scenarios/db.rst
@@ -11,7 +11,7 @@ Nearly all Python database modules such as `sqlite3`, `psycopg` and
Tutorials that explain how to work with modules that conform to this interface can be found
`here `__ and
-`here `__.
+`here `__.
SQLAlchemy
----------
From 709823707823db459e8c02d9343495eb4ecedd37 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 01:27:22 -0700
Subject: [PATCH 0074/1051] Add Qt link.
---
docs/scenarios/gui.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 4dbc650b8..d85a83663 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -4,7 +4,7 @@ GUI Applications
Qt
--
-Qt is a cross-platform application framework that is widely used for developing
+`Qt `_ is a cross-platform application framework that is widely used for developing
software with a GUI but can also be used for non-GUI applications.
PySide
From 55fc9b08e41516eddb856c83ba441883f0a7781d Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:42:32 -0700
Subject: [PATCH 0075/1051] Update Gunicorn help link.
---
docs/scenarios/web.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 3e40f16cb..d074752bb 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -152,7 +152,7 @@ lightweight, easy to use, and uses many UNIX idioms. Gunicorn is not designed
to face the internet -- it was designed to run behind Nginx which buffers
slow requests and takes care of other important considerations. A sample
setup for Nginx + Gunicorn can be found in the
-`Gunicorn help `_.
+`Gunicorn help `_.
.. _uwsgi-ref:
From 788390e74f1fbd3c4457d8b981134ed9e2a5d501 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:44:32 -0700
Subject: [PATCH 0076/1051] Update link to Gondor documentation.
---
docs/scenarios/web.rst | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index d074752bb..4574096e7 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -235,9 +235,7 @@ and Pinax applications. Gondor supports Django versions 1.2 and 1.3 on
Python version 2.7, and can automatically configure your Django site if you
use ``local_settings.py`` for site-specific configuration information.
-Gondor publishes guides to deploying `Django projects
-`_ and `Pinax projects
-`_ on their platform.
+Gondor has a guide on deploying `Django projects `_.
Templating
From cf93e79274c467d7ea82fa2b31c0561fffe54e4a Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:49:59 -0700
Subject: [PATCH 0077/1051] Update virtualenvwrapper documentation links.
---
docs/dev/virtualenvs.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst
index ee6ace244..c08f1118e 100644
--- a/docs/dev/virtualenvs.rst
+++ b/docs/dev/virtualenvs.rst
@@ -60,7 +60,7 @@ where they were placed.
virtualenvwrapper
-----------------
-`virtualenvwrapper `_
+`virtualenvwrapper `_
provides a set of commands which makes working with virtual environments much
more pleasant. It also places all your virtual environments in one place.
@@ -72,7 +72,7 @@ To install (make sure **virtualenv** is already installed):
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh
-(`Full virtualenvwrapper install instructions `_.)
+(`Full virtualenvwrapper install instructions `_.)
For Windows, you can use the `virtualenvwrapper-powershell `_ clone.
@@ -136,7 +136,7 @@ Other useful commands
``lssitepackages``
Shows contents of ``site-packages`` directory.
-`Full list of virtualenvwrapper commands `_.
+`Full list of virtualenvwrapper commands `_.
autoenv
-------
From f51141c973d2fcd6abd5d45be503917756de96e4 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:54:40 -0700
Subject: [PATCH 0078/1051] Update link to 'A Byte of Python'.
---
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 852e786cb..e5d074259 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -92,7 +92,7 @@ A free introductory book that teaches python at the beginner level, it assumes n
previous programming experience.
`A Byte of Python for Python 2.x `_
- `A Byte of Python for Python 3.x `_
+ `A Byte of Python for Python 3.x `_
Advanced
From 2cd385e61c758661cf43518b5080dcdc7267cf1e Mon Sep 17 00:00:00 2001
From: kuyan
Date: Sat, 24 Aug 2013 11:56:16 -0700
Subject: [PATCH 0079/1051] Add link to 'Python in a Nutshell'.
---
docs/intro/learning.rst | 1 -
1 file changed, 1 deletion(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index e5d074259..b8e31c499 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -162,7 +162,6 @@ as writing C extensions.
`Python in a Nutshell `_
-
The Python Language Reference
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From 239909dc4c2f6fa273f7c0ec27f33b4d6d2391ac Mon Sep 17 00:00:00 2001
From: Alois Mahdal
Date: Tue, 24 Sep 2013 14:01:59 +0200
Subject: [PATCH 0080/1051] Clarify presence of a two-element tuple.
---
docs/writing/style.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index e48956a2e..a631e4a0c 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -273,7 +273,8 @@ Unpacking
~~~~~~~~~
If you know the length of a list or tuple, you can assign names to its
-elements with unpacking:
+elements with unpacking. For example, since you know that ``enumerate()``
+will provide a tuple of two elements for each item in list:
.. code-block:: python
From f32ef5f38f4b4db300b334b1ee4b98950826199d Mon Sep 17 00:00:00 2001
From: Alois Mahdal
Date: Tue, 24 Sep 2013 22:25:57 +0200
Subject: [PATCH 0081/1051] Reworded per rgbkrk's suggestion
---
docs/writing/style.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index a631e4a0c..33339ff9f 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -273,8 +273,8 @@ Unpacking
~~~~~~~~~
If you know the length of a list or tuple, you can assign names to its
-elements with unpacking. For example, since you know that ``enumerate()``
-will provide a tuple of two elements for each item in list:
+elements with unpacking. For example, since ``enumerate()`` will provide
+a tuple of two elements for each item in list:
.. code-block:: python
From 4e1b3771e5a12eeb4c250db28357d016121e9204 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Oct 2013 15:20:29 -0700
Subject: [PATCH 0082/1051] Link to `fpm` (see #328)
---
docs/shipping/packaging.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index e91bb33d6..466665af9 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -78,5 +78,5 @@ For Linux Distributions
Useful Tools
------------
-- epm
+- `fpm `_
- alien
From 525c834d596d3ff014b4c71d2c73a32743ee2956 Mon Sep 17 00:00:00 2001
From: Kenneth Reitz
Date: Thu, 24 Oct 2013 18:16:48 -0400
Subject: [PATCH 0083/1051] Get Updates
---
docs/_templates/sidebarintro.html | 5 +++++
docs/_templates/sidebarlogo.html | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html
index b9901b381..58c71b058 100644
--- a/docs/_templates/sidebarintro.html
+++ b/docs/_templates/sidebarintro.html
@@ -3,6 +3,11 @@
Python Guide.
This opinionated guide exists to provide both novice and expert Python developers a best-practice handbook to the installation, configuration, and usage of Python on a daily basis.
+
Get Updates
+
Receive updates on new releases and upcoming projects.
If you enjoy this guide, consider supporting the author on Gittip:
diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html
index d7f12de20..5a40255d5 100644
--- a/docs/_templates/sidebarlogo.html
+++ b/docs/_templates/sidebarlogo.html
@@ -3,6 +3,11 @@
This opinionated guide exists to provide both novice and expert Python developers a best-practice handbook to the installation, configuration, and usage of Python on a daily basis.
+
Get Updates
+
Receive updates on new releases and upcoming projects.
If you enjoy this guide, consider supporting the author on Gittip:
From eb950d52c96a4a0a468e5db3b143a0644646e70f Mon Sep 17 00:00:00 2001
From: Jens Rantil
Date: Mon, 28 Oct 2013 23:15:38 +0100
Subject: [PATCH 0084/1051] Link to `alien`
This fully fixes #328.
---
docs/shipping/packaging.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index 466665af9..ef7df6782 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -79,4 +79,4 @@ Useful Tools
------------
- `fpm `_
-- alien
+- `alien `_
From 00619354b8f742d2e9c0b86f92640a571a260069 Mon Sep 17 00:00:00 2001
From: Pengkui Luo
Date: Sat, 2 Nov 2013 05:56:54 -0500
Subject: [PATCH 0085/1051] PyPy recently released beta support to Python 3.
---
docs/starting/which-python.rst | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst
index 2fc852541..0413a897f 100644
--- a/docs/starting/which-python.rst
+++ b/docs/starting/which-python.rst
@@ -51,7 +51,7 @@ that rely on C extensions for their functionality (e.g. numpy) then CPython
is your only choice.
Being the reference implementation, all versions of the Python language are
-available as CPython. Python 3 is only available as a CPython implementation.
+available as CPython.
PyPy
----
@@ -67,7 +67,8 @@ If you are looking to squeeze more performance out of your Python code, it's
worth giving PyPy a try. On a suite of benchmarks, it's currently `over 5 times
faster than CPython `_.
-Currently PyPy supports Python 2.7. [#pypy_ver]_
+Currently PyPy supports Python 2.7. PyPy3 which targets Python 3 was recently
+available as a beta release. [#pypy_ver]_
Jython
------
From 12fe8d779bbec515aeb359a4e3e3be329fe433fe Mon Sep 17 00:00:00 2001
From: Pengkui Luo
Date: Sat, 2 Nov 2013 06:19:19 -0500
Subject: [PATCH 0086/1051] python-2.7.5 is available.
---
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 bdfa3f08a..a05893b69 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -3,7 +3,7 @@
Installing Python on Windows
============================
-First, download the `latest version `_
+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 then use the "Windows Installer" link from the home page of the
`Python.org web site `_ .
From 83630edf35b468dbf96815f02fd25db70141204f Mon Sep 17 00:00:00 2001
From: Pengkui Luo
Date: Sat, 2 Nov 2013 06:19:56 -0500
Subject: [PATCH 0087/1051] typos
---
docs/starting/install/win.rst | 2 +-
docs/starting/which-python.rst | 4 ++--
docs/writing/structure.rst | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index a05893b69..f1d9386e5 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -80,7 +80,7 @@ project. This is particularly important for Web development, where each
framework and application will have many dependencies.
-To set up a new Python environment, change the working directory to where ever
+To set up a new Python environment, change the working directory to wherever
you want to store the environment, and run the virtualenv utility in your
project's directory
diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst
index 0413a897f..cc79c362f 100644
--- a/docs/starting/which-python.rst
+++ b/docs/starting/which-python.rst
@@ -47,7 +47,7 @@ level of compatibility with Python packages and C extension modules.
If you are writing open-source Python code and want to reach the widest possible
audience, targeting CPython is your best bet. If you need to use any packages
-that rely on C extensions for their functionality (e.g. numpy) then CPython
+that rely on C extensions for their functionality (e.g., numpy) then CPython
is your only choice.
Being the reference implementation, all versions of the Python language are
@@ -74,7 +74,7 @@ Jython
------
`Jython `_ is a Python implementation that compiles
-Python code to Java byte code that is then executed in a JVM. It has the additional
+Python code to Java bytecode that is then executed in a JVM. It has the additional
advantage of being able to import and use any Java class like a Python
module.
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 9bb685c6b..0529b21ec 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -14,7 +14,7 @@ isolated? By answering questions like these you can begin to plan, in
a broad sense, what your finished product will look like.
In this section we take a closer look at Python's module and import
-systems as they are the central element to enforcing structure in your
+systems as they are the central elements to enforcing structure in your
project. We then discuss various perspectives on how to build code which
can be extended and tested reliably.
From b3c7bd1ae2dd6f2879426e9fbc1a219d5caf34ea Mon Sep 17 00:00:00 2001
From: Paul Hallett
Date: Wed, 6 Nov 2013 12:03:52 +0000
Subject: [PATCH 0088/1051] Added link to the python packaging guide.
---
docs/shipping/packaging.rst | 2 ++
1 file changed, 2 insertions(+)
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index e91bb33d6..7dd275319 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -5,6 +5,8 @@ Packaging your code is important.
You'll need to package your code first before sharing it with other developers.
+The `Python Packaging Guide `_ provides an extensive guide on creating and maintaining Python packages.
+
For Python Developers
:::::::::::::::::::::
From d17acbf5151c923a3588c8dd8697041fc21cf9dd Mon Sep 17 00:00:00 2001
From: Can Ibanoglu
Date: Fri, 8 Nov 2013 21:21:56 +0200
Subject: [PATCH 0089/1051] Added virtual environment enforcing for pip for the
osx installation tutorial
---
docs/starting/install/osx.rst | 43 +++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index dc6676733..b84eeb02f 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -119,6 +119,49 @@ An useful set of extensions to virtualenv is available in virtualenvwrapper,
`RTFD `_ to find out more.
+A note about Pip and Virtualenv
+-------------------------------
+
+By now it should be clear that using virtual environments is a great way to keep
+your development environment clean and keeping different projects' requirements
+separate.
+
+When you start working on many different projects, it can be hard to remember to
+activate the related virtual environment when you come back to a specific project.
+As a result of this, it is very easy to install packages globally while thinking
+that you are actually installing the package for the virtual 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
+``~/.bashrc`` file:
+
+.. code-block:: console
+ export PIP_REQUIRE_VIRTUALENV=true
+
+After saving this change and sourcing the ``~/.bashrc`` file with ``source ~/.bashrc``,
+pip will no longer let you install packages if you are not in a virtual environment.
+If you try to use ``pip install`` outside of a virtual environment pip will
+gently remind you that an activated virtual environment is needed to install
+packages.
+
+.. code-block:: console
+ $ pip install requests
+ Could not find an activated virtualenv (required).
+
+You will of course need to install some packages globally and this can be accomplished
+by adding the following to your ``~/.bashrc`` file:
+
+.. code-block:: console
+ gpip() {
+ PIP_REQUIRE_VIRTUALENV="" pip "$@"
+ }
+
+After saving the changes and sourcing your ``~/.bashrc`` file you can now install
+packages globally by running ``gpip install``. You can change the name of the
+function to anything you like, just keep in mind that you will have to use that
+name when trying install packages globally with pip.
+
--------------------------------
This page is a remixed version of `another guide `_,
From 387170572a07af5847c09165f09f1ca281a663c5 Mon Sep 17 00:00:00 2001
From: Mher Movsisyan
Date: Sat, 9 Nov 2013 18:02:41 +0300
Subject: [PATCH 0090/1051] The latest OSX version is Mavericks
---
docs/starting/install/osx.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index dc6676733..fa41f8c9f 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -3,7 +3,7 @@
Installing Python on Mac OS X
=============================
-The latest version of Mac OS X, Mountain Lion, **comes with Python 2.7 out of the box**.
+The latest version of Mac OS X, Mavericks, **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
From 3f7fb5e75648b059b1fceb5e379aa12c73285eca Mon Sep 17 00:00:00 2001
From: ugurthemaster
Date: Mon, 18 Nov 2013 11:16:29 +0200
Subject: [PATCH 0091/1051] Update learning.rst
"Python Pocket Reference" has been added.
---
docs/intro/learning.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index b8e31c499..c3c0a2278 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -169,3 +169,12 @@ This is Python's reference manual, it covers the syntax and the core semantics o
language.
`The Python Language Reference `_
+
+Python Pocket Reference
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Python Pocket Reference, written by Mark Lutz, is an easy to use reference to the
+core language, with descriptions of commonly used modules and toolkits. It covers
+Python 3 and 2.6 versions.
+
+ `Python Pocket Reference `_
From 203b92ce617411ed65f9ad4a7c475c14690b83e0 Mon Sep 17 00:00:00 2001
From: ugurthemaster
Date: Mon, 25 Nov 2013 11:05:54 +0200
Subject: [PATCH 0092/1051] Update documentation.rst
---
docs/writing/documentation.rst | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index d543f53f5..7793af4bb 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -94,7 +94,9 @@ Reference`_ should help you familiarize yourself with its syntax.
Code Documentation Advice
-------------------------
-Comments clarify code and begin with a hash (``#``).
+Comments clarify the code and they are added with purpose of making the
+code easier to understand. In Python, comments begin with a hash
+(number sign) (``#``).
.. _docstring-ref:
From 83a99468b7ce9c4fd3126984b0df6a2c3db2adbd Mon Sep 17 00:00:00 2001
From: Pengkui Luo
Date: Tue, 26 Nov 2013 01:21:26 -0600
Subject: [PATCH 0093/1051] python-2.7.6
---
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 f1d9386e5..b71b882ea 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -3,7 +3,7 @@
Installing Python on Windows
============================
-First, download the `latest version `_
+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 then use the "Windows Installer" link from the home page of the
`Python.org web site `_ .
From bd7147401280c4d079c6b50162d4d5f7f130edf1 Mon Sep 17 00:00:00 2001
From: ugurthemaster
Date: Tue, 26 Nov 2013 09:30:18 +0200
Subject: [PATCH 0094/1051] Update cli.rst
Information about Clint has been added.
---
docs/scenarios/cli.rst | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 546eae017..933b0f082 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -6,11 +6,14 @@ Command Line Applications
Clint
-----
-.. todo:: Write about Clint
+`clint `_ is a python module which is
+filled with very useful tools for developing commandline applications.
+It supports features such as; CLI Colors and Indents, Simple and Powerful
+Column Printer, Iterator based progress bar and Implicit argument handling.
docopt
------
`docopt `_ is a lightweight, highly Pythonic package that
allows creating command line interfaces easily and intuitively, by parsing
-POSIX-style usage instructions.
\ No newline at end of file
+POSIX-style usage instructions.
From 78016d6cf9b3fdf187719840e2a93392f41be5f4 Mon Sep 17 00:00:00 2001
From: Matt Hughes
Date: Mon, 2 Dec 2013 10:50:53 -0500
Subject: [PATCH 0095/1051] Added instructions for s3-hosted PyPi repo
Adapted from an awesome article by @jsutlovic
---
docs/shipping/packaging.rst | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index e91bb33d6..7ffc5bac9 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -67,6 +67,36 @@ Chishop
written in django which allows you to register/upload with distutils and
install with easy_install/pip.
+S3-Hosted PyPi
+++++++++++++++
+
+One simple option for a personal PyPi server is to use Amazon S3. A prerequisite for this is that you have an Amazon AWS account with an S3 bucket.
+
+1. **Install all your requirements from PyPi or another source**
+2. **Install pip2pi**
+
+* :code:`pip install git+https://github.com/wolever/pip2pi.git`
+
+3. **Follow pip2pi README for pip2tgz and dir2pi commands**
+
+* :code:`pip2tgz packages/ YourPackage` (or :code:`pip2tgz packages/ -r requirements.txt`)
+* :code:`dir2pi packages/`
+
+4. **Upload the new files**
+
+* Use a client like Cyberduck to sync the entire :code:`packages` folder to your s3 bucket
+* Make sure you upload :code:`packages/simple/index.html` as well as all new files and directories
+
+5. **Fix new file permissions**
+
+* By default, when you upload new files to the S3 bucket, they will have the wrong permissions set.
+* Use the Amazon web console to set the READ permission of the files to EVERYONE.
+* If you get HTTP 403 when trying to install a package, make sure you've set the permissions correctly.
+
+6. **All done**
+
+* You can now your package with :code:`pip install --index-url=http://your-s3-bucket/packages/simple/ YourPackage`
+
For Linux Distributions
::::::::::::::::::::::::
From 6dfc9ae9530ccebdecd361d7d66a40ca2f8bb5c3 Mon Sep 17 00:00:00 2001
From: Natan L
Date: Mon, 2 Dec 2013 22:58:17 -0800
Subject: [PATCH 0096/1051] Fix broken link
---
docs/writing/style.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 33339ff9f..262d73471 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -434,7 +434,7 @@ Check if variable equals a constant
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You don't need to explicitly compare a value to True, or None, or 0 - you can
-just add it to the if statement. See :ref:`Truth Value Testing
+just add it to the if statement. See `Truth Value Testing
`_ for a
list of what is considered false.
From f0d1b23750a8260e1fc68cacad516b9275e551eb Mon Sep 17 00:00:00 2001
From: Han Su Kim
Date: Thu, 5 Dec 2013 15:16:11 -0500
Subject: [PATCH 0097/1051] Added Ansible to the list
Ansible is a tool written in Python for IT automation and orchestration.
---
docs/scenarios/admin.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 4bdfe6802..7f20dcd39 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -176,6 +176,15 @@ Here is an example to be aware of some server overload. In case of some failed t
A full terminal application like a widely extended top which is based on psutil and with the ability of a client-server
monitoring is `glance `_.
+Ansible
+Chef
+----
+
+.. todo:: Write about Ansible
+
+ `Ansible Documentation
+ `_
+
Chef
----
From 26f94e45db5354a809397963490efaa9be946cc9 Mon Sep 17 00:00:00 2001
From: justinhorner
Date: Thu, 2 Jan 2014 18:00:43 -0700
Subject: [PATCH 0098/1051] Update env.rst
trailing slash in link caused 404, removed to fix link
---
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 81da462b0..7097ee51c 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -130,7 +130,7 @@ PyCharm / IntelliJ IDEA
`PyCharm `_ is developed by JetBrains, also
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 `_.
+features can be brought to IntelliJ with the free `Python Plug-In `_.
Eclipse
From 919884c45ccf8b9f10f011826a82d1e39a6e8d88 Mon Sep 17 00:00:00 2001
From: Lyndsy Simon
Date: Tue, 14 Jan 2014 14:41:14 -0500
Subject: [PATCH 0099/1051] Adds recommendation to add /usr/local/sbin to
/usr/local/bin:/usr/local/sbin:/usr/local/bin:/Users/lyndsy/.bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/MacGPG2/bin
in OSX
---
docs/starting/install/osx.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index fa41f8c9f..8017bfb3b 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -50,7 +50,7 @@ line at the bottom of your ``~/.bashrc`` file
.. code-block:: console
- export PATH=/usr/local/bin:$PATH
+ export PATH=/usr/local/bin:/usr/local/sbin:$PATH
Now, we can install Python 2.7: ::
From 5156f9011ab775bd9e34ae45fb108f7cbe16329d Mon Sep 17 00:00:00 2001
From: Jonathan Steinmann
Date: Thu, 16 Jan 2014 23:04:10 -0500
Subject: [PATCH 0100/1051] update db.rst
expand on Django ORM basics
---
docs/scenarios/db.rst | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/docs/scenarios/db.rst b/docs/scenarios/db.rst
index 6d6d6ce7a..787f0efe3 100644
--- a/docs/scenarios/db.rst
+++ b/docs/scenarios/db.rst
@@ -33,3 +33,11 @@ to provide database access.
It's based on the idea of `models `_, an abstraction that makes it easier to
manipulate data in Python.
+The basics:
+
+- Each model is a Python class that subclasses django.db.models.Model.
+- Each attribute of the model represents a database field.
+- Django gives you an automatically-generated database-access API; see `Making queries `__.
+to provide database access.
+
+
From db5bcf53749a9617c6c33c105d88c05bf9c540ab Mon Sep 17 00:00:00 2001
From: Jeff Paine
Date: Sat, 18 Jan 2014 08:33:56 -0500
Subject: [PATCH 0101/1051] Remove python 2.5 from example travis config
Travis does not support python <2.6
---
docs/scenarios/ci.rst | 1 -
1 file changed, 1 deletion(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 6e2025d91..3d67f78e9 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -65,7 +65,6 @@ example content::
language: python
python:
- - "2.5"
- "2.6"
- "2.7"
- "3.1"
From ed74bde2337388f5ba8545bd2f59f43f409e2ce4 Mon Sep 17 00:00:00 2001
From: Jeff Paine
Date: Sat, 18 Jan 2014 15:48:35 -0500
Subject: [PATCH 0102/1051] Remove python 3.1, add python 3.3
---
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 3d67f78e9..e5dd565d5 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -67,8 +67,8 @@ example content::
python:
- "2.6"
- "2.7"
- - "3.1"
- "3.2"
+ - "3.3"
# command to install dependencies
script: python tests/test_all_of_the_units.py
branches:
From 494e80504da660eeecb64b8e338f2503e9e3781c Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 21:27:08 -0600
Subject: [PATCH 0103/1051] Updated capitalization in admin.rst
Updated capitalization of fabric and salt to Fabric and Salt
---
docs/scenarios/admin.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 7f20dcd39..84c98da13 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -6,7 +6,7 @@ Fabric
`Fabric `_ is a library for simplifying system
administration tasks. While Chef and Puppet tend to focus on managing servers
-and system libraries, fabric is more focused on application level tasks such
+and system libraries, Fabric is more focused on application level tasks such
as deployment.
Install Fabric:
@@ -77,7 +77,7 @@ It supports remote command execution from a central point (master host) to multi
hosts (minions). It also supports system states which can be used to configure
multiple servers using simple template files.
-Salt supports python versions 2.6 and 2.7 and can be installed via pip:
+Salt supports Python versions 2.6 and 2.7 and can be installed via pip:
.. code-block:: console
@@ -95,7 +95,7 @@ The following command lists all available minion hosts, using the ping module.
The host filtering is accomplished by matching the minion id, or using the grains system.
The `grains `_ system
uses static host information like the operating system version or the CPU architecture to
-provide a host taxonomy for the salt modules.
+provide a host taxonomy for the Salt modules.
The following command lists all available minions running CentOS using the grains system:
@@ -119,7 +119,7 @@ and start the Apache server:
- require:
- pkg: apache
-State files can be written using YAML, the Jinja2 template system or pure python.
+State files can be written using YAML, the Jinja2 template system or pure Python.
`Salt Documentation `_
From afa61148f0215f445a831b6a8ade1dfc84d015dd Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 21:31:10 -0600
Subject: [PATCH 0104/1051] Hyphenation in ci.rst
Replaced frontend with front-end
---
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 6e2025d91..5a36bfb1d 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -47,7 +47,7 @@ which provides the following features:
interpreters
* Running tests in each of the environments, configuring your test tool of
choice
-* Acting as a frontend to Continuous Integration servers, reducing boilerplate
+* Acting as a front-end to Continuous Integration servers, reducing boilerplate
and merging CI and shell-based testing.
From 3918f6b62aec0c75772246baa419056b8961dcfa Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 21:41:34 -0600
Subject: [PATCH 0105/1051] Spelling and capitalization in scientific.rst
Changed python to Python and corrected some spelling
---
docs/scenarios/scientific.rst | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index a95f9867f..0d45807fa 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -9,7 +9,7 @@ Python is frequently used for high-performance scientific applications. Python
is widely used in academia and scientific projects because it is easy to write,
and it performs really well.
-Due to its high performance nature, scientific computing in python often refers
+Due to its high performance nature, scientific computing in Python often refers
to external libraries, typically written in faster languages (like C, or
FORTRAN for matrix operations). The main libraries used are `NumPy`_, `SciPy`_
and `Matplotlib`_. Going into detail about these libraries is beyond the scope
@@ -24,11 +24,11 @@ Tools
IPython
-------
-`IPytthon `_ is an enhanced version of Python interpreter.
+`IPython `_ is an enhanced version of Python interpreter.
The features it provides are of great interest for the scientists. The `inline mode`
allow graphics and plots to be displayed in the terminal (Qt based version).
Moreover the `notebook` mode supports literate programming and reproducible science
-generating a web-based python notebook. This notebook allowing to store chunk of
+generating a web-based Python notebook. This notebook allowing to store chunk of
Python code along side to the results and additional comments (HTML, LaTeX, Markdown).
The notebook could be shared and exported in various file formats.
@@ -64,7 +64,7 @@ SciPy
`SciPy `_ is a library that uses Numpy for more mathematical
functions. SciPy uses NumPy arrays as the basic data structure. SciPy comes
-with modules for various commonly used tasks in scientific programing, for
+with modules for various commonly used tasks in scientific programming, for
example: linear algebra, integration (calculus), ordinary differential equation
solvers and signal processing.
@@ -86,7 +86,7 @@ based on Numpy and which provides many useful functions for accessing,
indexing, merging and grouping data easily. The main data structure (DataFrame)
is close to what could be found in the R statistical package, that is
an heterogeneous data tables with name indexing, time series operations
-and auto-alignement of data.
+and auto-alignment of data.
Rpy2
----
@@ -120,7 +120,7 @@ Many people who do scientific computing are on Windows. And yet many of the
scientific computing packages are notoriously difficult to build and install.
`Christoph Gohlke `_ however, has
compiled a list of Windows binaries for many useful Python packages. The list
-of packages has grown from a mainly scientific python resource to a more
+of packages has grown from a mainly scientific Python resource to a more
general list. It might be a good idea to check it out if you're on Windows.
Enthought Python Distribution (EPD)
From 1f61583f10c421720ce14195b5f433fbcd069f3f Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 21:47:45 -0600
Subject: [PATCH 0106/1051] Capitalization in xml.rst
replaced:
* xml to XML
* python to Python
* json to JSON
---
docs/scenarios/xml.rst | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/scenarios/xml.rst b/docs/scenarios/xml.rst
index 1f8db9c4c..ee97e2d02 100644
--- a/docs/scenarios/xml.rst
+++ b/docs/scenarios/xml.rst
@@ -8,7 +8,7 @@ untangle
an XML document and returns a Python object which mirrors the nodes and
attributes in its structure.
-For example, an xml file like this:
+For example, an XML file like this:
.. code-block:: xml
@@ -36,9 +36,9 @@ xmltodict
---------
`xmltodict `_ is another simple
-library that aims at making xml feel like working with json.
+library that aims at making XML feel like working with JSON.
-An xml file like this:
+An XML file like this:
.. code-block:: xml
@@ -52,7 +52,7 @@ An xml file like this:
-can be loaded into a python dict like this:
+can be loaded into a Python dict like this:
.. code-block:: python
@@ -68,6 +68,6 @@ and then you can access elements, attributes and values like this:
doc['mydocument']['plus']['@a'] # == u'complex'
doc['mydocument']['plus']['#text'] # == u'element as well'
-xmltodict also lets you roundtrip back to xml with the unparse function,
+xmltodict also lets you roundtrip back to XML with the unparse function,
has a streaming mode suitable for handling files that don't fit in memory
and supports namespaces.
From 065f69d219d3b34e3d2e6648dc54f27ee99e6bee Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 21:51:42 -0600
Subject: [PATCH 0107/1051] Capitalization in packaging.rst
Replaced python with Python
---
docs/shipping/packaging.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index 100ae9116..54d72b04a 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -46,7 +46,7 @@ Go to your command prompt and type:
$ python -m SimpleHTTPServer 9000
This runs a simple http server running on port 9000 and will list all packages
-(like **MyPackage**). Now you can install **MyPackage** using any python
+(like **MyPackage**). Now you can install **MyPackage** using any Python
package installer. Using Pip, you would do it like:
.. code-block:: console
From 5444d703d5253688e93f3f54fdfbd72fa7106d0b Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 21:58:43 -0600
Subject: [PATCH 0108/1051] Capitalization in env.rst
Replaced python with Python
---
docs/dev/env.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 7097ee51c..e2e628cb7 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -64,7 +64,7 @@ to do that which also shows status and warning messages in the statusbar would b
Python-mode
^^^^^^^^^^^
-Python-mode_ is a complex solution in VIM for working with python code.
+Python-mode_ is a complex solution in VIM for working with Python code.
It has:
- Asynchronous Python code checking (pylint, pyflakes, pep8, mccabe) in any combination
@@ -94,7 +94,7 @@ Emacs is a powerful text editor. It's fully programmable (lisp), but
it can be some work to wire up correctly. A good start if you're
already an Emacs user is `Python Programming in Emacs`_ at EmacsWiki.
-1. Emacs itself comes with a python mode.
+1. Emacs itself comes with a Python mode.
2. Python ships with an alternate version:
`python-mode.el `_
3. Fabián Ezequiel Gallina's `python.el `_
From f828b185d9cd4079e9297d3ca193f998a8a8918f Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 22:12:07 -0600
Subject: [PATCH 0109/1051] Update learning.rst
Changed choosen to chosen
Replaced python with Python
---
docs/intro/learning.rst | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index c3c0a2278..b7633f9cf 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -7,9 +7,9 @@ Beginner
Learn Python Interactive Tutorial
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Learnpython.org is an easy non-intimidating way to get introduced to python.
+Learnpython.org is an easy non-intimidating way to get introduced to Python.
The website takes the same approach used on the popular `Try Ruby `_
-website, it has an interactive python interpreter built into the site that
+website, it has an interactive Python interpreter built into the site that
allows you to go through the lessons without having to install Python locally.
`Learn Python `_
@@ -52,11 +52,11 @@ Think Python: How to Think Like a Computer Scientist
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Think Python attempts to give an introduction to basic concepts in computer
-science through the use of the python language. The focus was to create a book
+science through the use of the Python language. The focus was to create a book
with plenty of exercises, minimal jargon and a section in each chapter devoted
to the subject of debugging.
-While exploring the various features available in the python language the
+While exploring the various features available in the Python language the
author weaves in various design patterns and best practices.
The book also includes several case studies which have the reader explore the
@@ -72,11 +72,11 @@ Python Koans
Python Koans is a port of Edgecase's Ruby Koans. It uses a test-driven
approach, q.v. TEST DRIVEN DESIGN SECTION to provide an interactive tutorial
-teaching basic python concepts. By fixing assertion statements that fail in a
-test script, this provides sequential steps to learning python.
+teaching basic Python concepts. By fixing assertion statements that fail in a
+test script, this provides sequential steps to learning Python.
For those used to languages and figuring out puzzles on their own, this can be
-a fun, attractive option. For those new to python and programming, having an
+a fun, attractive option. For those new to Python and programming, having an
additional resource or reference will be helpful.
`Python Koans `_
@@ -88,7 +88,7 @@ More information about test driven development can be found at these resources:
A Byte of Python
~~~~~~~~~~~~~~~~
-A free introductory book that teaches python at the beginner level, it assumes no
+A free introductory book that teaches Python at the beginner level, it assumes no
previous programming experience.
`A Byte of Python for Python 2.x `_
@@ -137,8 +137,8 @@ A Primer on Scientific Programming with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A Primer on Scientific Programming with Python, written by Hans Petter Langtangen,
-mainly covers python's usage in scientific field. In the book, examples are
-choosen from mathematics and the natural sciences.
+mainly covers Python's usage in scientific field. In the book, examples are
+chosen from mathematics and the natural sciences.
`A Primer on Scientific Programming with Python `_
@@ -146,7 +146,7 @@ Numerical Methods in Engineering with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Numerical Methods in Engineering with Python,written by Jaan Kiusalaas, attempts to
-emphasis on numerical methods and how to implement them in python.
+emphasis on numerical methods and how to implement them in Python.
`Numerical Methods in Engineering with Python `_
@@ -157,7 +157,7 @@ Python in a Nutshell
~~~~~~~~~~~~~~~~~~~~
Python in a Nutshell, written by Alex Martelli, covers most cross-platform
-python's usage, from its syntax to built-in libraries to advanced topics such
+Python's usage, from its syntax to built-in libraries to advanced topics such
as writing C extensions.
`Python in a Nutshell `_
From 74b6d1d61273748e2c8e49f57b86b0099fd0e97d Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 22:15:30 -0600
Subject: [PATCH 0110/1051] Replaced "python" with "Python"
---
docs/intro/news.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/intro/news.rst b/docs/intro/news.rst
index ec829f49a..433f9078d 100644
--- a/docs/intro/news.rst
+++ b/docs/intro/news.rst
@@ -19,7 +19,7 @@ Python-related news.
Pycoder's Weekly
~~~~~~~~~~~~~~~~
-Pycoder's Weekly is a free weekly python newsletter for Python developers
+Pycoder's Weekly is a free weekly Python newsletter for Python developers
by Python developers (Project, Articles, News, and Jobs).
`Pycoder's Weekly `_
From cdd31908faf4ea8383339ec66cb638c8a370afe2 Mon Sep 17 00:00:00 2001
From: smithandrewl
Date: Sat, 18 Jan 2014 22:27:06 -0600
Subject: [PATCH 0111/1051] Capitalization changes in web.rst
Replaced:
* python with Python
* javascript with JavaScript
---
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 4574096e7..d2178f10e 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -271,10 +271,10 @@ and to the templates themselves.
templates. This convenience can lead to uncontrolled
increase in complexity, and often harder to find bugs.
-- It is often necessary to mix javascript templates with
+- It is often necessary to mix JavaScript templates with
HTML templates. A sane approach to this design is to isolate
the parts where the HTML template passes some variable content
- to the javascript code.
+ to the JavaScript code.
@@ -370,7 +370,7 @@ The `base.html` file can be used as base for all site pages which are for exampl
-The next listing is our site page (`site.html`) loaded in the python app which extends `base.html`. The content block is
+The next listing is our site page (`site.html`) loaded in the Python app which extends `base.html`. The content block is
automatically set into the corresponding block in the base.html page.
.. code-block:: html
From 21d8f91ac6e5228780736c527b6821be3814d7a4 Mon Sep 17 00:00:00 2001
From: imranghory
Date: Sat, 25 Jan 2014 14:37:18 +0000
Subject: [PATCH 0112/1051] Make explicit whats being referred to
---
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 0529b21ec..6ebd5d8f4 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -94,7 +94,7 @@ be sure to avoid using special symbols like the dot (.) or question mark (?).
So a file name like `my.spam.py` is one you should avoid! Naming this way
will interfere with the way python looks for modules.
-In this example python expects to find a "spam.py" file in a folder named "my"
+In the case of `my.spam.py` python expects to find a "spam.py" file in a folder named "my"
which is not the case. There is an
`example `_ of how the
dot notation should be used in the python docs.
From 020339f000433455d7812fd4f734e839ce94237e Mon Sep 17 00:00:00 2001
From: zachcp
Date: Tue, 28 Jan 2014 12:28:31 -0500
Subject: [PATCH 0113/1051] Update Scientific Python Link
---
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 b7633f9cf..2e463edc6 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -140,7 +140,7 @@ A Primer on Scientific Programming with Python, written by Hans Petter Langtange
mainly covers Python's usage in scientific field. In the book, examples are
chosen from mathematics and the natural sciences.
- `A Primer on Scientific Programming with Python `_
+ `A Primer on Scientific Programming with Python `_
Numerical Methods in Engineering with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
From 852c5b1498c9c9dfad6c7ecc373b260fad27f9e6 Mon Sep 17 00:00:00 2001
From: Dhia Abbassi
Date: Wed, 5 Feb 2014 15:30:12 +0100
Subject: [PATCH 0114/1051] Plac module
Added Plac module description
---
docs/scenarios/cli.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 933b0f082..5af149e75 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -17,3 +17,14 @@ docopt
`docopt `_ is a lightweight, highly Pythonic package that
allows creating command line interfaces easily and intuitively, by parsing
POSIX-style usage instructions.
+
+Plac
+------
+
+`Plac `_ is a python module that allows developing command line applications. In fact
+plac is a simple wrapper over the python standard library `argparse `_, it hides most of its
+complexity by using a declarative interface: the argument parser is inferred
+rather than written down by imperatively. It is targetting especially unsophisticated
+users, programmers, sys-admins, scientists and in general people writing throw-away
+scripts for themselves, choosing the command-line interface because it is quick
+and simple.
From ccf93af642d77e7fd1501c189b528146f4736360 Mon Sep 17 00:00:00 2001
From: Jason Harmon
Date: Thu, 6 Feb 2014 10:04:23 -0800
Subject: [PATCH 0115/1051] Updating links for brew
---
docs/starting/install/osx.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index 8017bfb3b..0f95e73bf 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -33,14 +33,14 @@ package.
While Lion comes with a large number of UNIX utilities, those familiar with
Linux systems will notice one key component missing: a decent package manager.
-`Homebrew `_ fills this void.
+`Homebrew `_ fills this void.
-To `install Homebrew `_,
+To `install Homebrew `_,
simply run
.. code-block:: console
- $ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
+ $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
The script will explain what changes it will make and prompt you before the
installation begins.
From 1a5235309787f349728185b23b3eb013852d2e17 Mon Sep 17 00:00:00 2001
From: Michael Schurter
Date: Thu, 6 Feb 2014 15:44:48 -0800
Subject: [PATCH 0116/1051] Switch from Chishop to pypiserver
---
docs/shipping/packaging.rst | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index 54d72b04a..6d4aa5b8f 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -62,12 +62,14 @@ you can still install MyPackage using:
$ pip install http://127.0.0.1:9000/MyPackage.tar.gz
-Chishop
-+++++++
+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 (``-U``) which will update all its packages to their
+latest versions found on PyPI.
-`Chishop `_ is a simple PyPI server
-written in django which allows you to register/upload with distutils and
-install with easy_install/pip.
S3-Hosted PyPi
++++++++++++++
From 2017f0226504c6b5493b05b6e6626252eda3a413 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Thu, 6 Feb 2014 21:10:56 -0500
Subject: [PATCH 0117/1051] update "env.rst"
---
docs/dev/env.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index e2e628cb7..8739a3630 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -17,7 +17,7 @@ or icons. There exist a couple of plugins and settings for the VIM editor to
aid Python development. If you only develop in Python, a good start is to set
the default settings for indentation and line-wrapping to values compliant with
:pep:`8`. In your home directory, open a file called `.vimrc` and add the
-following lines:::
+following lines::
set textwidth=79 " lines longer than 79 columns will be broken
set shiftwidth=4 " operation >> indents 4 columns; << unindents 4 columns
@@ -118,7 +118,7 @@ Sublime Text
extraordinary features and amazing performance.
Sublime Text has excellent support for editing Python code and uses Python for
-its plugin API. It also has plugins a diverse variety of plugins, `some of which `_
+its plugin API. It also has a diverse variety of plugins, `some of which `_
allow for in-editor PEP8 checking and code "linting".
From bdf516bb240f850b780e89cb10de62b0c5df6b66 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Thu, 6 Feb 2014 21:30:51 -0500
Subject: [PATCH 0118/1051] add comma
---
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 c08f1118e..cf2b285b9 100644
--- a/docs/dev/virtualenvs.rst
+++ b/docs/dev/virtualenvs.rst
@@ -140,7 +140,7 @@ Other useful commands
autoenv
-------
-When you ``cd`` into a directory containing a ``.env`` `autoenv `_
+When you ``cd`` into a directory containing a ``.env``, `autoenv `_
automagically activates the environment.
Install it on Mac OS X using ``brew``:
From 41b2c8bf49f2fac7669275cb273fdd169300a32d Mon Sep 17 00:00:00 2001
From: anatoly techtonik
Date: Tue, 11 Feb 2014 22:23:25 +0300
Subject: [PATCH 0119/1051] Give credits to people in the sidebar to the left
---
docs/_templates/sidebarintro.html | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html
index 58c71b058..4f2c8fc1c 100644
--- a/docs/_templates/sidebarintro.html
+++ b/docs/_templates/sidebarintro.html
@@ -18,11 +18,12 @@
Donate
width="48pt" height="20pt">
-
Feedback
+
Contributors
- Feedback is greatly appreciated. If you have any questions, comments,
- random praise, or anonymous threats,
- shoot me an email.
+ This work is a result of collaboration of
+ 135+ people
+ around the world, and your contribution
+ is welcome too.
From 832f69841002a71edad95db78777fa8324eb5243 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Mon, 10 Feb 2014 22:52:16 -0800
Subject: [PATCH 0120/1051] update intro section: add Pro Python link
---
docs/intro/community.rst | 2 +-
docs/intro/learning.rst | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/docs/intro/community.rst b/docs/intro/community.rst
index 05cd14820..f54caffea 100644
--- a/docs/intro/community.rst
+++ b/docs/intro/community.rst
@@ -75,7 +75,7 @@ The major events for the Python community are developer conferences. The two
most notable conferences are PyCon, which is held in the US, and its European
sibling, EuroPython.
-A comprehensive list of conferences is maintained `at pycon.org `_.
+A comprehensive list of conferences is maintained at `pycon.org `_.
Python User Groups
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 2e463edc6..bd2ca6d7d 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -104,6 +104,8 @@ Pro Python
This book is for intermediate to advanced Python programmers who are looking to understand how
and why Python works the way it does and how they can take their code to the next level.
+ `Pro Python `_
+
Expert Python Programming
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -145,7 +147,7 @@ chosen from mathematics and the natural sciences.
Numerical Methods in Engineering with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Numerical Methods in Engineering with Python,written by Jaan Kiusalaas, attempts to
+Numerical Methods in Engineering with Python, written by Jaan Kiusalaas, attempts to
emphasis on numerical methods and how to implement them in Python.
`Numerical Methods in Engineering with Python `_
From dcaa25d0a6193ef16df32c68eba3776b5ff5d449 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Tue, 11 Feb 2014 21:49:35 -0800
Subject: [PATCH 0121/1051] remote duplicate Chef in admin.rst
---
docs/scenarios/admin.rst | 1 -
1 file changed, 1 deletion(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 84c98da13..fd4645485 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -177,7 +177,6 @@ A full terminal application like a widely extended top which is based on psutil
monitoring is `glance `_.
Ansible
-Chef
----
.. todo:: Write about Ansible
From 2b78a936f3ed924961731d607260383b65882f73 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Tue, 11 Feb 2014 22:11:12 -0800
Subject: [PATCH 0122/1051] add link to Numba
---
docs/scenarios/scientific.rst | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index 0d45807fa..e95506517 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -53,10 +53,11 @@ NumPy is compatible with Python versions 2.4 through to 2.7.2 and 3.1+.
Numba
-----
-Numba is an Numpy aware Python compiler (just-in-time (JIT) specializing
-compiler) which compiles annotated Python (and Numpy) code to LLVM (Low Level
-Virtual Machine) (through special decorators).
-Briefly, Numba using system that compiles Python code with LLVM to code which
+
+`Numba `_ is an Numpy aware Python compiler
+(just-in-time (JIT) specializing compiler) which compiles annotated Python (and
+Numpy) code to LLVM (Low Level Virtual Machine) (through special decorators).
+Briefly, Numba using system that compiles Python code with LLVM to code which
can be natively executed at runtime.
SciPy
From a8e7b57758fa296df206675283c5059d04f9a173 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Tue, 11 Feb 2014 22:19:21 -0800
Subject: [PATCH 0123/1051] update untangle link
---
docs/scenarios/xml.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/xml.rst b/docs/scenarios/xml.rst
index ee97e2d02..3e01b2fe6 100644
--- a/docs/scenarios/xml.rst
+++ b/docs/scenarios/xml.rst
@@ -4,8 +4,8 @@ XML parsing
untangle
--------
-`untangle `_ is a simple library which takes
-an XML document and returns a Python object which mirrors the nodes and
+`untangle `_ is a simple library which
+takes an XML document and returns a Python object which mirrors the nodes and
attributes in its structure.
For example, an XML file like this:
From 04718556af6597a2d6163e5f11eac1c3a4fe2d03 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Tue, 11 Feb 2014 22:28:38 -0800
Subject: [PATCH 0124/1051] update Ubuntu Python packaging docs link
---
docs/shipping/packaging.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index 6d4aa5b8f..d2757f049 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -99,12 +99,12 @@ One simple option for a personal PyPi server is to use Amazon S3. A prerequisite
6. **All done**
-* You can now your package with :code:`pip install --index-url=http://your-s3-bucket/packages/simple/ YourPackage`
+* You can now install your package with :code:`pip install --index-url=http://your-s3-bucket/packages/simple/ YourPackage`
For Linux Distributions
::::::::::::::::::::::::
-* `Ubuntu `_
+* `Ubuntu `_
* `Fedora `_
* `Debian `_
* `Arch `_
From 2f5ae1786e68013b4cb84b2b2d685d3c5321310d Mon Sep 17 00:00:00 2001
From: anatoly techtonik
Date: Wed, 12 Feb 2014 12:12:36 +0300
Subject: [PATCH 0125/1051] Update make files with versions from Sphinx 1.2
---
docs/Makefile | 53 +++++++++++++++++++++++++++++--
docs/make.bat | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 137 insertions(+), 3 deletions(-)
diff --git a/docs/Makefile b/docs/Makefile
index d8dd1f433..5c60d189d 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -7,12 +7,19 @@ SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make ' where is one of"
@@ -27,14 +34,20 @@ help:
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " xml to make Docutils-native XML files"
+ @echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
- -rm -rf $(BUILDDIR)/*
+ rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@@ -100,7 +113,13 @@ latex:
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
- make -C $(BUILDDIR)/latex all-pdf
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+latexpdfja:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through platex and dvipdfmx..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
@@ -113,6 +132,24 @@ man:
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@@ -128,3 +165,13 @@ doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
+
+xml:
+ $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+ @echo
+ @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+pseudoxml:
+ $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+ @echo
+ @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/make.bat b/docs/make.bat
index 39f2a6893..d77abb0c0 100644
--- a/docs/make.bat
+++ b/docs/make.bat
@@ -7,8 +7,10 @@ if "%SPHINXBUILD%" == "" (
)
set BUILDDIR=_build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
+set I18NSPHINXOPTS=%SPHINXOPTS% .
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+ set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)
if "%1" == "" goto help
@@ -28,7 +30,11 @@ if "%1" == "help" (
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
echo. text to make text files
echo. man to make manual pages
+ echo. texinfo to make Texinfo files
+ echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
+ echo. xml to make Docutils-native XML files
+ echo. pseudoxml to make pseudoxml-XML files for display purposes
echo. linkcheck to check all external links for integrity
echo. doctest to run all doctests embedded in the documentation if enabled
goto end
@@ -40,8 +46,23 @@ if "%1" == "clean" (
goto end
)
+
+%SPHINXBUILD% 2> nul
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
goto end
@@ -49,6 +70,7 @@ if "%1" == "html" (
if "%1" == "dirhtml" (
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
goto end
@@ -56,6 +78,7 @@ if "%1" == "dirhtml" (
if "%1" == "singlehtml" (
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
goto end
@@ -63,6 +86,7 @@ if "%1" == "singlehtml" (
if "%1" == "pickle" (
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the pickle files.
goto end
@@ -70,6 +94,7 @@ if "%1" == "pickle" (
if "%1" == "json" (
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the JSON files.
goto end
@@ -77,6 +102,7 @@ if "%1" == "json" (
if "%1" == "htmlhelp" (
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run HTML Help Workshop with the ^
.hhp project file in %BUILDDIR%/htmlhelp.
@@ -85,6 +111,7 @@ if "%1" == "htmlhelp" (
if "%1" == "qthelp" (
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
@@ -96,6 +123,7 @@ if "%1" == "qthelp" (
if "%1" == "devhelp" (
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished.
goto end
@@ -103,6 +131,7 @@ if "%1" == "devhelp" (
if "%1" == "epub" (
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished. The epub file is in %BUILDDIR%/epub.
goto end
@@ -110,13 +139,35 @@ if "%1" == "epub" (
if "%1" == "latex" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
goto end
)
+if "%1" == "latexpdf" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+ cd %BUILDDIR%/latex
+ make all-pdf
+ cd %BUILDDIR%/..
+ echo.
+ echo.Build finished; the PDF files are in %BUILDDIR%/latex.
+ goto end
+)
+
+if "%1" == "latexpdfja" (
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+ cd %BUILDDIR%/latex
+ make all-pdf-ja
+ cd %BUILDDIR%/..
+ echo.
+ echo.Build finished; the PDF files are in %BUILDDIR%/latex.
+ goto end
+)
+
if "%1" == "text" (
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished. The text files are in %BUILDDIR%/text.
goto end
@@ -124,13 +175,31 @@ if "%1" == "text" (
if "%1" == "man" (
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
+ if errorlevel 1 exit /b 1
echo.
echo.Build finished. The manual pages are in %BUILDDIR%/man.
goto end
)
+if "%1" == "texinfo" (
+ %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
+ goto end
+)
+
+if "%1" == "gettext" (
+ %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
+ goto end
+)
+
if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+ if errorlevel 1 exit /b 1
echo.
echo.The overview file is in %BUILDDIR%/changes.
goto end
@@ -138,6 +207,7 @@ if "%1" == "changes" (
if "%1" == "linkcheck" (
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+ if errorlevel 1 exit /b 1
echo.
echo.Link check complete; look for any errors in the above output ^
or in %BUILDDIR%/linkcheck/output.txt.
@@ -146,10 +216,27 @@ or in %BUILDDIR%/linkcheck/output.txt.
if "%1" == "doctest" (
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+ if errorlevel 1 exit /b 1
echo.
echo.Testing of doctests in the sources finished, look at the ^
results in %BUILDDIR%/doctest/output.txt.
goto end
)
+if "%1" == "xml" (
+ %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The XML files are in %BUILDDIR%/xml.
+ goto end
+)
+
+if "%1" == "pseudoxml" (
+ %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
+ if errorlevel 1 exit /b 1
+ echo.
+ echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
+ goto end
+)
+
:end
From ee36d451036b43501a3a76671e1dad6709ba2427 Mon Sep 17 00:00:00 2001
From: anatoly techtonik
Date: Wed, 12 Feb 2014 12:18:28 +0300
Subject: [PATCH 0126/1051] Fix project name in generated files (osxpython ->
pythonguide)
---
docs/Makefile | 8 ++++----
docs/index.rst | 2 +-
docs/make.bat | 4 ++--
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/Makefile b/docs/Makefile
index 5c60d189d..40b479e94 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -85,17 +85,17 @@ qthelp:
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/osxpython.qhcp"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pythonguide.qhcp"
@echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/osxpython.qhc"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pythonguide.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/osxpython"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/osxpython"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/pythonguide"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pythonguide"
@echo "# devhelp"
epub:
diff --git a/docs/index.rst b/docs/index.rst
index 19e167222..1779f2f35 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,4 +1,4 @@
-.. osxpython documentation master file, created by
+.. pythonguide documentation master file, created by
sphinx-quickstart on Wed Aug 4 22:51:11 2010.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
diff --git a/docs/make.bat b/docs/make.bat
index d77abb0c0..c2cdfb647 100644
--- a/docs/make.bat
+++ b/docs/make.bat
@@ -115,9 +115,9 @@ if "%1" == "qthelp" (
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
- echo.^> qcollectiongenerator %BUILDDIR%\qthelp\osxpython.qhcp
+ echo.^> qcollectiongenerator %BUILDDIR%\qthelp\pythonguide.qhcp
echo.To view the help file:
- echo.^> assistant -collectionFile %BUILDDIR%\qthelp\osxpython.ghc
+ echo.^> assistant -collectionFile %BUILDDIR%\qthelp\pythonguide.ghc
goto end
)
From c0fc5c18f3819b33a9d05b1059fb062891adf41e Mon Sep 17 00:00:00 2001
From: anatoly techtonik
Date: Wed, 12 Feb 2014 13:17:29 +0300
Subject: [PATCH 0127/1051] make.bat: Try Sphinx installed in Python when
sphinx-build is not in PATH
---
docs/make.bat | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/make.bat b/docs/make.bat
index c2cdfb647..b1533bc50 100644
--- a/docs/make.bat
+++ b/docs/make.bat
@@ -47,6 +47,14 @@ if "%1" == "clean" (
)
+REM Check if sphinx-build is available and fallback to Python version if any
+%SPHINXBUILD% 2> nul
+if errorlevel 9009 goto sphinx_python
+goto spinx_ok
+
+:sphinx_python
+
+set SPHINXBUILD=python -m sphinx.__init__
%SPHINXBUILD% 2> nul
if errorlevel 9009 (
echo.
@@ -60,6 +68,9 @@ if errorlevel 9009 (
exit /b 1
)
+:sphinx_ok
+
+
if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
if errorlevel 1 exit /b 1
From f9dc281c9d17c2139f599fd624d0d2edf7770f15 Mon Sep 17 00:00:00 2001
From: anatoly techtonik
Date: Wed, 12 Feb 2014 13:41:55 +0300
Subject: [PATCH 0128/1051] Fix typo
---
docs/make.bat | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/make.bat b/docs/make.bat
index b1533bc50..115651a00 100644
--- a/docs/make.bat
+++ b/docs/make.bat
@@ -50,7 +50,7 @@ if "%1" == "clean" (
REM Check if sphinx-build is available and fallback to Python version if any
%SPHINXBUILD% 2> nul
if errorlevel 9009 goto sphinx_python
-goto spinx_ok
+goto sphinx_ok
:sphinx_python
From 78f2b9e6ad6d44e461efad22cc9053a87f23e198 Mon Sep 17 00:00:00 2001
From: Chen Liu
Date: Wed, 12 Feb 2014 09:03:21 -0800
Subject: [PATCH 0129/1051] expand "-" belongs to "Ansible"
---
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 fd4645485..5fca65f94 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -177,7 +177,7 @@ A full terminal application like a widely extended top which is based on psutil
monitoring is `glance `_.
Ansible
-----
+-------
.. todo:: Write about Ansible
From 6d2d731a9d6c106c5788c01e6658e5062bc37c31 Mon Sep 17 00:00:00 2001
From: Andy Visser
Date: Wed, 12 Feb 2014 15:45:03 -0500
Subject: [PATCH 0130/1051] "where ever" => "wherever"
---
docs/starting/install/osx.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index 0f95e73bf..cada3bb33 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -96,7 +96,7 @@ habit of using it to create completely clean Python environments for each
project. This is particularly important for Web development, where each
framework and application will have many dependencies.
-To set up a new Python environment, change the working directory to where ever
+To set up a new Python environment, change the working directory to wherever
you want to store the environment, and run the virtualenv utility in your
project's directory
From 29a3643ab485171cf4d3ede567628a4dbc91e9fd Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Sat, 15 Feb 2014 13:08:42 +0100
Subject: [PATCH 0131/1051] Cython example added for strong typing
---
docs/scenarios/speed.rst | 118 +++++++++++++++++++++++++++++++++++++++
1 file changed, 118 insertions(+)
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index 6aaa96bbd..af8f355bc 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -68,6 +68,124 @@ C Extensions
Cython
------
+With `Cython `_ you are able to write C and C++ modules for Python. It implements a superset of the Python language.
+With Cython you are also able to call C-functions and realize strong typing of variables and functions like float
+(floating point numbers) or int (integer) definition of variables. Here is an example of strong typing with Cython:
+
+.. code-block:: python
+
+ def primes(int kmax):
+ cdef int n, k, i
+ cdef int p[1000]
+ result = []
+ if kmax > 1000:
+ kmax = 1000
+ k = 0
+ n = 2
+ while k < kmax:
+ i = 0
+ while i < k and n % p[i] != 0:
+ i = i + 1
+ if i == k:
+ p[k] = n
+ k = k + 1
+ result.append(n)
+ n = n + 1
+ return result
+
+This implementation of an algorithm to find prime numbers has some additional commands instead of the next one, which is implemented in pure Python:
+
+.. code-block:: python
+
+ def primes( kmax):
+ p= range(1000)
+ result = []
+ if kmax > 1000:
+ kmax = 1000
+ k = 0
+ n = 2
+ while k < kmax:
+ i = 0
+ while i < k and n % p[i] != 0:
+ i = i + 1
+ if i == k:
+ p[k] = n
+ k = k + 1
+ result.append(n)
+ n = n + 1
+ return result
+
+
+The only difference between the both algorithm is this part:
+
+Strong typing with Cython:
+
+.. code-block:: python
+
+ #primes function with additional Cython code:
+ def primes(int kmax):
+ cdef int n, k, i
+ cdef int p[1000]
+ result = []
+
+
+Normal variable definition in Python:
+
+.. code-block:: python
+
+ #primes in standard Python syntax:
+ def primes( kmax):
+ p= range(1000)
+ result = []
+
+
+What is the difference? In the upper Cython version you can see the definitions of the variable types like in standard C.
+For example `cdef int n,k,i` in line 3. This additional type definition (e.g. integer) allows the Cython compiler to generate
+more efficient C code from this Cython code. While standard Python code is saved in `*.py` files, the Cython code is saved in `*.pyx` files.
+
+And what is with the speed? So lets try it!
+
+.. code-block:: python
+
+ import time
+ #activate pyx compiler
+ import pyximport; pyximport.install()
+ #primes implemented with Cython
+ import primesCy
+ #primes implemented with Python
+ import primes
+
+ print "Cython:"
+ t1= time.time()
+ print primesCy.primes(500)
+ t2= time.time()
+ print "Cython time: %s" %(t2-t1)
+ print ""
+ print "Python"
+ t1= time.time()
+ print primes.primes(500)
+ t2= time.time()
+ print "Python time: %s" %(t2-t1)
+
+
+Where is the magic? Here it is:
+
+.. code-block:: python
+
+ import pyximport; pyximport.install()
+
+
+With the module `pyximport` you are able to import Cython `*.pyx` files, in this case `primesCy.pyx`, with the Cython
+version of the primes function.
+The `pyximport.install()` command allows the Python interpreter to start the Cython compiler directly to generate C-code,
+which is automatically compiled to a `*.so` C-library. ... and Cython is able to import this library for you in your Python-code.
+Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 (!) prime numbers.
+
+Here is the output of an embedded `ARM beaglebone `_ machine:
+
+Cython time: 0.0196 seconds
+
+Python time: 0.3302 seconds
Pyrex
-----
From a30b491b5624a7be6f49352659ae18bc48c1c106 Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Sat, 15 Feb 2014 17:58:40 +0100
Subject: [PATCH 0132/1051] indentation fixed
---
docs/scenarios/speed.rst | 84 ++++++++++++++++++++--------------------
1 file changed, 42 insertions(+), 42 deletions(-)
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index af8f355bc..505608630 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -74,46 +74,48 @@ With Cython you are also able to call C-functions and realize strong typing of v
.. code-block:: python
- def primes(int kmax):
- cdef int n, k, i
- cdef int p[1000]
- result = []
- if kmax > 1000:
- kmax = 1000
- k = 0
- n = 2
- while k < kmax:
- i = 0
- while i < k and n % p[i] != 0:
- i = i + 1
- if i == k:
- p[k] = n
- k = k + 1
- result.append(n)
- n = n + 1
- return result
+ def primes(int kmax):
+ cdef int n, k, i
+ cdef int p[1000]
+ result = []
+ if kmax > 1000:
+ kmax = 1000
+ k = 0
+ n = 2
+ while k < kmax:
+ i = 0
+ while i < k and n % p[i] != 0:
+ i = i + 1
+ if i == k:
+ p[k] = n
+ k = k + 1
+ result.append(n)
+ n = n + 1
+ return result
+
This implementation of an algorithm to find prime numbers has some additional commands instead of the next one, which is implemented in pure Python:
.. code-block:: python
- def primes( kmax):
- p= range(1000)
- result = []
- if kmax > 1000:
- kmax = 1000
- k = 0
- n = 2
- while k < kmax:
- i = 0
- while i < k and n % p[i] != 0:
- i = i + 1
- if i == k:
- p[k] = n
- k = k + 1
- result.append(n)
- n = n + 1
- return result
+ def primes( kmax):
+ p= range(1000)
+ result = []
+ if kmax > 1000:
+ kmax = 1000
+ k = 0
+ n = 2
+ while k < kmax:
+ i = 0
+ while i < k and n % p[i] != 0:
+ i = i + 1
+ if i == k:
+ p[k] = n
+ k = k + 1
+ result.append(n)
+ n = n + 1
+ return result
+
The only difference between the both algorithm is this part:
@@ -124,10 +126,9 @@ Strong typing with Cython:
#primes function with additional Cython code:
def primes(int kmax):
- cdef int n, k, i
- cdef int p[1000]
- result = []
-
+ cdef int n, k, i
+ cdef int p[1000]
+ result = []
Normal variable definition in Python:
@@ -135,9 +136,8 @@ Normal variable definition in Python:
#primes in standard Python syntax:
def primes( kmax):
- p= range(1000)
- result = []
-
+ p= range(1000)
+ result = []
What is the difference? In the upper Cython version you can see the definitions of the variable types like in standard C.
For example `cdef int n,k,i` in line 3. This additional type definition (e.g. integer) allows the Cython compiler to generate
From 7ef55e755f8c8e714ade2f1ebbf21ebab585e7dd Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Sat, 15 Feb 2014 18:38:43 +0100
Subject: [PATCH 0133/1051] minor changes (indentation fixed)
---
docs/scenarios/speed.rst | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index 505608630..f8a37c907 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -124,8 +124,8 @@ Strong typing with Cython:
.. code-block:: python
- #primes function with additional Cython code:
- def primes(int kmax):
+ #primes function with additional Cython code:
+ def primes(int kmax):
cdef int n, k, i
cdef int p[1000]
result = []
@@ -135,7 +135,7 @@ Normal variable definition in Python:
.. code-block:: python
#primes in standard Python syntax:
- def primes( kmax):
+ def primes( kmax):
p= range(1000)
result = []
@@ -149,7 +149,8 @@ And what is with the speed? So lets try it!
import time
#activate pyx compiler
- import pyximport; pyximport.install()
+ import pyximport
+ pyximport.install()
#primes implemented with Cython
import primesCy
#primes implemented with Python
@@ -172,14 +173,15 @@ Where is the magic? Here it is:
.. code-block:: python
- import pyximport; pyximport.install()
+ import pyximport
+ pyximport.install()
With the module `pyximport` you are able to import Cython `*.pyx` files, in this case `primesCy.pyx`, with the Cython
version of the primes function.
The `pyximport.install()` command allows the Python interpreter to start the Cython compiler directly to generate C-code,
which is automatically compiled to a `*.so` C-library. ... and Cython is able to import this library for you in your Python-code.
-Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 (!) prime numbers.
+Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 prime numbers.
Here is the output of an embedded `ARM beaglebone `_ machine:
From d30830009a5df0c10019ced46f036478dcdc5807 Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Sat, 15 Feb 2014 19:33:00 +0100
Subject: [PATCH 0134/1051] Cython: additional benchmark for standard CPU
---
docs/scenarios/speed.rst | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index f8a37c907..7a2ef88c4 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -183,7 +183,13 @@ The `pyximport.install()` command allows the Python interpreter to start the Cyt
which is automatically compiled to a `*.so` C-library. ... and Cython is able to import this library for you in your Python-code.
Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 prime numbers.
-Here is the output of an embedded `ARM beaglebone `_ machine:
+On a standard notebook (dualcore AMD E-450 1,6 GHz) the measured values are:
+
+Cython time: 0.0054 seconds
+
+Python time: 0.0566 seconds
+
+And here the output of an embedded `ARM beaglebone `_ machine:
Cython time: 0.0196 seconds
From 33b428b8a5c352f9c6d902c352f3d477bb1f7bf2 Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Sun, 16 Feb 2014 17:50:07 +0100
Subject: [PATCH 0135/1051] misspelling in description
---
docs/scenarios/speed.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index 7a2ef88c4..308d27c04 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -181,7 +181,7 @@ With the module `pyximport` you are able to import Cython `*.pyx` files, in this
version of the primes function.
The `pyximport.install()` command allows the Python interpreter to start the Cython compiler directly to generate C-code,
which is automatically compiled to a `*.so` C-library. ... and Cython is able to import this library for you in your Python-code.
-Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 prime numbers.
+Very easy and very efficient. With the `time.time()` function you are able to compare the time between these 2 different calls to find 500 prime numbers.
On a standard notebook (dualcore AMD E-450 1,6 GHz) the measured values are:
From 87ec12d320426076a23fe8886e5cba2205357623 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20Gr=C3=B6ger?=
Date: Mon, 17 Feb 2014 20:52:21 +0100
Subject: [PATCH 0136/1051] Included tldrlegal.com
tl;drLegal is a great place to look up what a particular license is all about. The website can be found here: https://tldrlegal.com/
---
docs/writing/license.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/license.rst b/docs/writing/license.rst
index 6f0df77d2..1fbd09a8b 100644
--- a/docs/writing/license.rst
+++ b/docs/writing/license.rst
@@ -48,5 +48,5 @@ To help you choose one for your project, there's a `license chooser `_.
From c8bda6892f7802763bb36b2e2512505a06c4d158 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20Gr=C3=B6ger?=
Date: Mon, 17 Feb 2014 21:03:36 +0100
Subject: [PATCH 0137/1051] Added oxford comma.
---
docs/writing/license.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/license.rst b/docs/writing/license.rst
index 1fbd09a8b..9dd7c86d2 100644
--- a/docs/writing/license.rst
+++ b/docs/writing/license.rst
@@ -48,5 +48,5 @@ To help you choose one for your project, there's a `license chooser `_.
+A good overview of licenses with explanations of what one can, cannot, and must do using a particular software can be found at `tl;drLegal `_.
From 1be68ba74976dba31230432f672108b26af2d2d5 Mon Sep 17 00:00:00 2001
From: Dhia Abbassi
Date: Wed, 19 Feb 2014 21:15:16 +0100
Subject: [PATCH 0138/1051] Update cli.rst
Added Cliff module description.
---
docs/scenarios/cli.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 5af149e75..217d06fea 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -28,3 +28,10 @@ rather than written down by imperatively. It is targetting especially unsophisti
users, programmers, sys-admins, scientists and in general people writing throw-away
scripts for themselves, choosing the command-line interface because it is quick
and simple.
+
+Cliff
+------
+`Cliff `_ is a framework for building command line programs.
+It uses setuptools entry points to provide subcommands, output formatters, and other extensions. The framework
+is meant to be used to create multi-level commands such as subversion and git, where the main program handles
+some basic argument parsing and then invokes a sub-command to do the work.
From c46965911652c00b7368423c59ecc4ea3a71d53d Mon Sep 17 00:00:00 2001
From: Dhia Abbassi
Date: Thu, 20 Feb 2014 09:25:27 +0100
Subject: [PATCH 0139/1051] Update cli.rst
Blank line added after the title Cliff.
---
docs/scenarios/cli.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 217d06fea..cee4872d0 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -31,6 +31,7 @@ and simple.
Cliff
------
+
`Cliff `_ is a framework for building command line programs.
It uses setuptools entry points to provide subcommands, output formatters, and other extensions. The framework
is meant to be used to create multi-level commands such as subversion and git, where the main program handles
From ca240c247921a47062d764f625c024d86b1c5b6f Mon Sep 17 00:00:00 2001
From: Jeff Hammerbacher
Date: Sat, 22 Feb 2014 18:59:01 -0500
Subject: [PATCH 0140/1051] "faster on tracks" => "back on track faster"
---
docs/writing/tests.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 4e8749161..05faace7b 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -40,7 +40,7 @@ Some general rules of testing:
- If you are in the middle of a development session and have to interrupt your work, it
is a good idea to write a broken unit test about what you want to develop next.
When coming back to work, you will have a pointer to where you were and get
- faster on tracks.
+ back on track faster.
- The first step when you are debugging your code is to write a new test
pinpointing the bug. While it is not always possible to do, those bug
From b8f99234165cd520cdda5f2e440b6066492fa772 Mon Sep 17 00:00:00 2001
From: tommy3001
Date: Sun, 23 Feb 2014 23:32:13 +0100
Subject: [PATCH 0141/1051] Improvements of description. Thanks to sigmavirus24
---
docs/scenarios/speed.rst | 40 +++++++++++++++++++++++-----------------
1 file changed, 23 insertions(+), 17 deletions(-)
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index 308d27c04..05130c841 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -69,12 +69,14 @@ Cython
------
With `Cython `_ you are able to write C and C++ modules for Python. It implements a superset of the Python language.
-With Cython you are also able to call C-functions and realize strong typing of variables and functions like float
-(floating point numbers) or int (integer) definition of variables. Here is an example of strong typing with Cython:
+You are also able to call C-functions and realize declaration of variables and functions like in C. Here is an example:
.. code-block:: python
def primes(int kmax):
+ """Calculation of prime numbers with additional
+ Cython keywords"""
+
cdef int n, k, i
cdef int p[1000]
result = []
@@ -94,11 +96,14 @@ With Cython you are also able to call C-functions and realize strong typing of v
return result
-This implementation of an algorithm to find prime numbers has some additional commands instead of the next one, which is implemented in pure Python:
+This implementation of an algorithm to find prime numbers has some additional keywords instead of the next one, which is implemented in pure Python:
.. code-block:: python
- def primes( kmax):
+
+ def primes(kmax):
+ """Calculation of prime numbers in standard Python syntax"""
+
p= range(1000)
result = []
if kmax > 1000:
@@ -120,28 +125,30 @@ This implementation of an algorithm to find prime numbers has some additional co
The only difference between the both algorithm is this part:
-Strong typing with Cython:
.. code-block:: python
- #primes function with additional Cython code:
def primes(int kmax):
+ """Calculation of prime numbers with additional
+ Cython keywords"""
+
cdef int n, k, i
cdef int p[1000]
result = []
-Normal variable definition in Python:
.. code-block:: python
- #primes in standard Python syntax:
- def primes( kmax):
+ def primes(kmax):
+ """Calculation of prime numbers in standard Python syntax"""
+
p= range(1000)
result = []
-What is the difference? In the upper Cython version you can see the definitions of the variable types like in standard C.
-For example `cdef int n,k,i` in line 3. This additional type definition (e.g. integer) allows the Cython compiler to generate
-more efficient C code from this Cython code. While standard Python code is saved in `*.py` files, the Cython code is saved in `*.pyx` files.
+What is the difference? In the upper Cython version you can see the declaration of the variable types and the integer array
+in a similar way like in standard C. For example `cdef int n,k,i` in line 3. This additional type declaration (e.g. integer)
+allows the Cython compiler to generate more efficient C code from the second code. While standard Python code is saved in `*.py` files,
+Cython code is saved in `*.pyx` files.
And what is with the speed? So lets try it!
@@ -169,7 +176,7 @@ And what is with the speed? So lets try it!
print "Python time: %s" %(t2-t1)
-Where is the magic? Here it is:
+These both lines need a remark:
.. code-block:: python
@@ -177,11 +184,10 @@ Where is the magic? Here it is:
pyximport.install()
-With the module `pyximport` you are able to import Cython `*.pyx` files, in this case `primesCy.pyx`, with the Cython
-version of the primes function.
+The `pyximport` module allows you to import `pyx` files (e.g., `primesCy.pyx`) with the Cython-compiled version of the `primes` function.
The `pyximport.install()` command allows the Python interpreter to start the Cython compiler directly to generate C-code,
-which is automatically compiled to a `*.so` C-library. ... and Cython is able to import this library for you in your Python-code.
-Very easy and very efficient. With the `time.time()` function you are able to compare the time between these 2 different calls to find 500 prime numbers.
+which is automatically compiled to a `*.so` C-library. Cython is able to import this library for you in your Python-code.
+Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 prime numbers.
On a standard notebook (dualcore AMD E-450 1,6 GHz) the measured values are:
From 8330e78359976140bea06ea3fde9425505d5c7c8 Mon Sep 17 00:00:00 2001
From: eet6646
Date: Sun, 23 Feb 2014 22:24:12 -0400
Subject: [PATCH 0142/1051] Issue #361 - Link to PDF
---
docs/_templates/sidebarintro.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html
index 58c71b058..096524c6a 100644
--- a/docs/_templates/sidebarintro.html
+++ b/docs/_templates/sidebarintro.html
@@ -31,4 +31,5 @@
- This work is a result of collaboration of
+ This guide is the result of the collaboration of
135+ people
- around the world, and your contribution
- is welcome too.
+ around the world, and your contributions
+ !
From 6edbe902661be39b961a44ef4d6f60dc499f4c8d Mon Sep 17 00:00:00 2001
From: "Leonardo.Z"
Date: Mon, 3 Mar 2014 14:17:51 +0800
Subject: [PATCH 0146/1051] Add a new documentation tool: MkDocs
MkDocs is a new and popular documentation tool written in Python. It's supported by ReadTheDoc.org.
---
docs/writing/documentation.rst | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index 7793af4bb..fc9cea518 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -162,3 +162,8 @@ Epydoc_
Epydoc is discontinued. Use :ref:`sphinx-ref` instead.
.. _Epydoc: http://epydoc.sourceforge.net
+
+MkDocs_
+ MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation with Markdown.
+
+.. _MkDocs: http://www.mkdocs.org/
From f52704926c6728892d5ea66133d1e77060b55b6a Mon Sep 17 00:00:00 2001
From: Ian Cordasco
Date: Mon, 3 Mar 2014 06:49:26 -0600
Subject: [PATCH 0147/1051] Keep it neutral
---
docs/writing/documentation.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index fc9cea518..3f4d0b937 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -164,6 +164,7 @@ Epydoc_
.. _Epydoc: http://epydoc.sourceforge.net
MkDocs_
- MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation with Markdown.
+ MkDocs is a fast and simple static site generator that's geared towards
+ building project documentation with Markdown.
.. _MkDocs: http://www.mkdocs.org/
From 2d6521e3e46a63e6a602b287a07814d31ee63850 Mon Sep 17 00:00:00 2001
From: Ian Cordasco
Date: Wed, 5 Mar 2014 19:52:13 -0600
Subject: [PATCH 0148/1051] Make this one sentence simpler
---
docs/starting/install/osx.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index cada3bb33..69b74446f 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -96,9 +96,9 @@ habit of using it to create completely clean Python environments for each
project. This is particularly important for Web development, where each
framework and application will have many dependencies.
-To set up a new Python environment, change the working directory to wherever
-you want to store the environment, and run the virtualenv utility in your
-project's directory
+To set up a new Python environment, move into the directory where you would
+like to store the environment, and use the ``virtualenv`` utility to create
+the new environment.
.. code-block:: console
From 456660cd3c96fce1c5104fb7effe861d6562aeef Mon Sep 17 00:00:00 2001
From: Ian Cordasco
Date: Wed, 5 Mar 2014 19:57:12 -0600
Subject: [PATCH 0149/1051] Last bit of unhandled PR review from #370
---
docs/scenarios/speed.rst | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index 05130c841..0219cf3a8 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -68,8 +68,11 @@ C Extensions
Cython
------
-With `Cython `_ you are able to write C and C++ modules for Python. It implements a superset of the Python language.
-You are also able to call C-functions and realize declaration of variables and functions like in C. Here is an example:
+`Cython `_ implements a superset of the Python language
+with which you are able to write C and C++ modules for Python. Cython also
+allows you to call functions from compiled C libraries. Using Cython allows
+you to take advantage of Python's strong typing of variables and operations.
+Here is an example of strong typing with Cython:
.. code-block:: python
@@ -121,9 +124,8 @@ This implementation of an algorithm to find prime numbers has some additional ke
n = n + 1
return result
-
-
-The only difference between the both algorithm is this part:
+Notice that in the Cython version you declare integers and integer arrays for
+to be compiled into C types while also creating a Python list:
.. code-block:: python
From 100a4cb4228af1b7268f45906bdea0fe398e45b5 Mon Sep 17 00:00:00 2001
From: Can Ibanoglu
Date: Thu, 6 Mar 2014 16:56:22 +0200
Subject: [PATCH 0150/1051] Created a new section for virtualenv and pip
---
docs/starting/install/osx.rst | 44 ------------------------------
docs/starting/pip-virtualenv.rst | 46 ++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 44 deletions(-)
create mode 100644 docs/starting/pip-virtualenv.rst
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index b84eeb02f..0489636f9 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -118,50 +118,6 @@ copy your code out of it, and then delete the main directory for the environment
An useful set of extensions to virtualenv is available in virtualenvwrapper,
`RTFD `_ to find out more.
-
-A note about Pip and Virtualenv
--------------------------------
-
-By now it should be clear that using virtual environments is a great way to keep
-your development environment clean and keeping different projects' requirements
-separate.
-
-When you start working on many different projects, it can be hard to remember to
-activate the related virtual environment when you come back to a specific project.
-As a result of this, it is very easy to install packages globally while thinking
-that you are actually installing the package for the virtual 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
-``~/.bashrc`` file:
-
-.. code-block:: console
- export PIP_REQUIRE_VIRTUALENV=true
-
-After saving this change and sourcing the ``~/.bashrc`` file with ``source ~/.bashrc``,
-pip will no longer let you install packages if you are not in a virtual environment.
-If you try to use ``pip install`` outside of a virtual environment pip will
-gently remind you that an activated virtual environment is needed to install
-packages.
-
-.. code-block:: console
- $ pip install requests
- Could not find an activated virtualenv (required).
-
-You will of course need to install some packages globally and this can be accomplished
-by adding the following to your ``~/.bashrc`` file:
-
-.. code-block:: console
- gpip() {
- PIP_REQUIRE_VIRTUALENV="" pip "$@"
- }
-
-After saving the changes and sourcing your ``~/.bashrc`` file you can now install
-packages globally by running ``gpip install``. You can change the name of the
-function to anything you like, just keep in mind that you will have to use that
-name when trying install packages globally with pip.
-
--------------------------------
This page is a remixed version of `another guide `_,
diff --git a/docs/starting/pip-virtualenv.rst b/docs/starting/pip-virtualenv.rst
new file mode 100644
index 000000000..56e33cceb
--- /dev/null
+++ b/docs/starting/pip-virtualenv.rst
@@ -0,0 +1,46 @@
+.. _pip-virtualenv:
+
+Further Configuration of Pip and Virtualenv
+-------------------------------------------
+
+By now it should be clear that using virtual envirtonments is a great way to keep
+your development environment clean and keeping different projects' requirements
+separate.
+
+When you start working on many different projects, it can be hard to remember to
+activate the related virtual environment when you come back to a specific project.
+As a result of this, it is very easy to install packages globally while thinking
+that you are actually installing the package for the virtual 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
+``~/.bashrc`` file:
+
+.. code-block:: console
+ export PIP_REQUIRE_VIRTUALENV=true
+
+After saving this change and sourcing the ``~/.bashrc`` file with ``source ~/.bashrc``,
+pip will no longer let you install packages if you are not in a virtual environment.
+If you try to use ``pip install`` outside of a virtual environment pip will gently
+remind you that an activated virtual environment is needed to install packages.
+
+.. code-block:: console
+ $ pip install requests
+ Could not find an activated virtualenv (required).
+
+You will of course need to install some packages globally (usually ones that you
+use across different projects consistenly) and this can be accomplished by adding
+the following to your ``~/.bashrc`` file:
+
+.. code-block:: console
+ gpip() {
+ PIP_REQUIRE_VIRTUALENV="" pip "$@"
+ }
+
+After saving the changes and sourcing your ``~/.bashrc`` file you can now install
+packages globally by running ``gpip install``. You can change the name of the
+function to anything you like, just keep in mind that you will have to use that
+name when trying to install packages globally with pip.
+
+-----------------------------------------------------------
From f26e5e6c666d8f60c42230c3dfc31618b54a1e90 Mon Sep 17 00:00:00 2001
From: David Beitey
Date: Tue, 11 Mar 2014 10:18:54 +1000
Subject: [PATCH 0151/1051] Add details about uWSGI as WSGI server
---
docs/scenarios/web.rst | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index d2178f10e..d43ff0ee6 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -156,6 +156,25 @@ setup for Nginx + Gunicorn can be found in the
.. _uwsgi-ref:
+uWSGI
+-----
+
+`uWSGI `_ is a full stack for building
+hosting services. In addition to process management, process monitoring,
+and other functionality, uWSGI acts as an application server for various
+programming languages and protocols - including Python and WSGI. uWSGI can
+either be run as a stand-alone web router, or be run behind a full web
+server (such as Nginx or Apache). In the latter case, a web server can
+configure uWSGI and an application's operation over the
+`uwsgi `_
+protocol. uWSGI's web server support allows for dynamically configuring
+Python, passing environment variables and further tuning. For full details,
+see `uWSGI magic
+variables `_.
+
+
+.. _server-best-practices-ref:
+
Server Best Practices
:::::::::::::::::::::
From 0506020a7ff1a8fb320977ab803effc6d30e94fa Mon Sep 17 00:00:00 2001
From: Nelson Chen
Date: Thu, 13 Mar 2014 15:50:29 -0700
Subject: [PATCH 0152/1051] Update tests.rst
s/has names/have names/
---
docs/writing/tests.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 05faace7b..62e4ac7d0 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -50,7 +50,7 @@ Some general rules of testing:
slightly different than that of running code, where short names are often
preferred. The reason is testing functions are never called explicitly.
``square()`` or even ``sqr()`` is ok in running code, but in testing code you
- would has names such as ``test_square_of_number_2()``,
+ would have names such as ``test_square_of_number_2()``,
``test_square_negative_number()``. These function names are displayed when a
test fail, and should be as descriptive as possible.
From 2f9fc823da8868b4c4aa152147eb80fc6abeb628 Mon Sep 17 00:00:00 2001
From: Can Ibanoglu
Date: Sat, 15 Mar 2014 11:48:55 +0200
Subject: [PATCH 0153/1051] Deleted the horizontal line, took back the messed
up commits
---
docs/starting/pip-virtualenv.rst | 44 +++++++++++++++++++++++++++++---
1 file changed, 41 insertions(+), 3 deletions(-)
diff --git a/docs/starting/pip-virtualenv.rst b/docs/starting/pip-virtualenv.rst
index 56e33cceb..c76623510 100644
--- a/docs/starting/pip-virtualenv.rst
+++ b/docs/starting/pip-virtualenv.rst
@@ -1,7 +1,10 @@
.. _pip-virtualenv:
Further Configuration of Pip and Virtualenv
--------------------------------------------
+===========================================
+
+Requiring an active virtual environment for ``pip``
+---------------------------------------------------
By now it should be clear that using virtual envirtonments is a great way to keep
your development environment clean and keeping different projects' requirements
@@ -18,6 +21,7 @@ when you use ``pip install``, consider adding the following two lines to your
``~/.bashrc`` file:
.. code-block:: console
+
export PIP_REQUIRE_VIRTUALENV=true
After saving this change and sourcing the ``~/.bashrc`` file with ``source ~/.bashrc``,
@@ -26,14 +30,50 @@ If you try to use ``pip install`` outside of a virtual environment pip will gent
remind you that an activated virtual environment is needed to install packages.
.. code-block:: console
+
$ pip install requests
Could not find an activated virtualenv (required).
+You can also do this configuration by editing your ``pip.conf`` or ``pip.ini``
+file. ``pip.conf`` is used by Unix and Mac OS X operating systems and it can be
+found at:
+
+.. code-block:: console
+
+ $HOME/.pip/pip.conf
+
+Similarly, the ``pip.ini`` file is used by Windows operating systems and it can
+be found at:
+
+.. code-block:: console
+
+ %HOME%\pip\pip.ini
+
+If you don't have a ``pip.conf`` or ``pip.ini`` file at these locations, you can
+create a new file with the correct name for your operating system.
+
+If you already have a configuration file, just add the following line under the
+``[global]`` settings to require an active virtual environment:
+
+.. code-block:: console
+
+ require-virtualenv = true
+
+If you did not have a configuration file, you will need to create a new one and
+add the following lines to this new file:
+
+.. code-block:: console
+
+ [global]
+ require-virtualenv = true
+
+
You will of course need to install some packages globally (usually ones that you
use across different projects consistenly) and this can be accomplished by adding
the following to your ``~/.bashrc`` file:
.. code-block:: console
+
gpip() {
PIP_REQUIRE_VIRTUALENV="" pip "$@"
}
@@ -42,5 +82,3 @@ After saving the changes and sourcing your ``~/.bashrc`` file you can now instal
packages globally by running ``gpip install``. You can change the name of the
function to anything you like, just keep in mind that you will have to use that
name when trying to install packages globally with pip.
-
------------------------------------------------------------
From f579b1d92262b8be5f50dfb01dea0260bd6d91aa Mon Sep 17 00:00:00 2001
From: Ian Cordasco
Date: Sat, 15 Mar 2014 16:22:18 -0500
Subject: [PATCH 0154/1051] Add note about mock in Python 3.3
Closes #170
---
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 62e4ac7d0..6e742d1c4 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -251,7 +251,8 @@ the need to change any other code.
mock
----
-mock is a library for testing in Python.
+mock is a library for testing in Python. Starting with Python 3.3, it is
+available in the standard library. For older versions of python, simply:
.. code-block:: console
From eec36320ebb961079a21e9e63d1984a7215f9427 Mon Sep 17 00:00:00 2001
From: Ian Cordasco
Date: Sat, 15 Mar 2014 18:12:50 -0500
Subject: [PATCH 0155/1051] Add link to stdlib mock
---
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 6e742d1c4..cb863c0c2 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -252,7 +252,8 @@ mock
----
mock is a library for testing in Python. Starting with Python 3.3, it is
-available in the standard library. For older versions of python, simply:
+available in the `standard library
Date: Wed, 19 Mar 2014 23:02:37 +0100
Subject: [PATCH 0156/1051] Reset list 'a'
The result of the previous block containing the map example left 'a' to be [6, 7, 8], so resetting 'a' back to [3, 4, 5] seems to keep the example in line with the other ones.
---
docs/writing/style.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 262d73471..cba3586be 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -543,6 +543,7 @@ Use :py:func:`enumerate` keep a count of your place in the list.
.. code-block:: python
+ a = [3, 4, 5]
for i, item in enumerate(a):
print i, item
# prints
From 338180f12565338396b78eb6a7ead4058f23a69b Mon Sep 17 00:00:00 2001
From: eno93
Date: Thu, 20 Mar 2014 11:16:11 +1100
Subject: [PATCH 0157/1051] Move TK to top and sort the rest alphabetically
Makes more sense to be alpha sorted; except for Tkinter which is included with python.
I gather the original order was random and not meant to be preferential?
---
docs/scenarios/gui.rst | 103 ++++++++++++++++++++---------------------
1 file changed, 51 insertions(+), 52 deletions(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index d85a83663..a9fc0d32b 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -2,44 +2,37 @@ GUI Applications
================
-Qt
+Tk
--
-`Qt `_ is a cross-platform application framework that is widely used for developing
-software with a GUI but can also be used for non-GUI applications.
+Tkinter is a thin object-oriented layer on top of Tcl/Tk. **It has the advantage
+of being included with the Python standard library, making it the most
+convenient and compatible toolkit to program with.**
-PySide
-~~~~~~
-PySide is a Python binding of the cross-platform GUI toolkit Qt.
+Both Tk and Tkinter are available on most Unix platforms, as well as on Windows
+and Macintosh systems. Starting with the 8.0 release, Tk offers native look and
+feel on all platforms.
-http://developer.qt.nokia.com/wiki/PySideDownloads/
+There's a good multi-language Tk tutorial with Python examples at
+`TkDocs `_. There's more information
+available on the `Python Wiki `_.
-PyQt
-~~~~
-.. note:: If your software does not fully comply with the GPL you will need a commercial license!
+Camelot
+-------
+`Camelot `_ provides components for building
+business applications on top of Python, SQLAlchemy and Qt. It is inspired by
+the Django admin interface.
-http://www.riverbankcomputing.co.uk/software/pyqt/download
+You can use Camelot to develop both simple and complex business applications
+at warp speed.
+
+The main resource for information is the website:
+http://www.python-camelot.com
+and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
Cocoa
-----
.. note:: The Cocoa framework is only available on Mac OSX. Don't pick this if you're writing a cross-platform application!
-PyObjC
-~~~~~~
-.. note:: Only available on Mac OSX. Don't pick this if you're writing a cross-platform application.
-
-wxPython
---------
-wxPython is a GUI toolkit for the Python programming language. It allows
-Python programmers to create programs with a robust, highly functional
-graphical user interface, simply and easily. It is implemented as a Python
-extension module (native code) that wraps the popular wxWidgets cross platform
-GUI library, which is written in C++.
-
-Install (Stable)
-~~~~~~~~~~~~~~~~
-*Go to http://www.wxpython.org/download.php#stable and download the appropriate
-package for your OS.*
-
GTk
---
PyGTK provides Python bindings for the GTK+ toolkit. Like the GTK+ library
@@ -48,20 +41,6 @@ PyGTK only currently supports the Gtk-2.X API (NOT Gtk-3.0). It is currently
recommended that PyGTK not be used for new projects and existing applications
be ported from PyGTK to PyGObject.
-Tk
---
-Tkinter is a thin object-oriented layer on top of Tcl/Tk. It has the advantage
-of being included with the Python standard library, making it the most
-convenient and compatible toolkit to program with.
-
-Both Tk and Tkinter are available on most Unix platforms, as well as on Windows
-and Macintosh systems. Starting with the 8.0 release, Tk offers native look and
-feel on all platforms.
-
-There's a good multi-language Tk tutorial with Python examples at
-`TkDocs `_. There's more information
-available on the `Python Wiki `_.
-
Kivy
----
`Kivy `_ is a Python library for development of multi-touch
@@ -77,6 +56,22 @@ on all major platforms (Linux, OSX, Windows, Android).
The main resource for information is the website: http://kivy.org
+PyObjC
+~~~~~~
+.. note:: Only available on Mac OSX. Don't pick this if you're writing a cross-platform application.
+
+PySide
+~~~~~~
+PySide is a Python binding of the cross-platform GUI toolkit Qt.
+
+http://developer.qt.nokia.com/wiki/PySideDownloads/
+
+PyQt
+~~~~
+.. note:: If your software does not fully comply with the GPL you will need a commercial license!
+
+http://www.riverbankcomputing.co.uk/software/pyqt/download
+
PyjamasDesktop (pyjs Desktop)
-----------------------------
PyjamasDesktop is a port of PyJamas. PyjamasDesktop is application widget set
@@ -88,15 +83,19 @@ source code to be executed as a standalone desktop application.
The main website; `pyjs Desktop `_.
-Camelot
--------
-`Camelot `_ provides components for building
-business applications on top of Python, SQLAlchemy and Qt. It is inspired by
-the Django admin interface.
+Qt
+--
+`Qt `_ is a cross-platform application framework that is widely used for developing
+software with a GUI but can also be used for non-GUI applications.
-You can use Camelot to develop both simple and complex business applications
-at warp speed.
+wxPython
+--------
+wxPython is a GUI toolkit for the Python programming language. It allows
+Python programmers to create programs with a robust, highly functional
+graphical user interface, simply and easily. It is implemented as a Python
+extension module (native code) that wraps the popular wxWidgets cross platform
+GUI library, which is written in C++.
-The main resource for information is the website:
-http://www.python-camelot.com
-and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
+**Install (Stable) wxPython**
+*go to http://www.wxpython.org/download.php#stable and download the appropriate
+package for your OS.*
From c59f329e362ebd40c8953d35b85e01179c1ff70d Mon Sep 17 00:00:00 2001
From: eno93
Date: Thu, 20 Mar 2014 11:29:23 +1100
Subject: [PATCH 0158/1051] Update year to 2014
Update year
---
docs/conf.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/conf.py b/docs/conf.py
index f5effd924..92534d93d 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -46,7 +46,7 @@
# General information about the project.
project = u'pythonguide'
-copyright = u'2013. A Kenneth Reitz Project. Creative Commons Share-Alike 3.0'
+copyright = u'2014. A Kenneth Reitz Project. Creative Commons Share-Alike 3.0'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
From 77d1199451ee19c028e2e8c73d4571bd2b009f72 Mon Sep 17 00:00:00 2001
From: eno93
Date: Fri, 21 Mar 2014 08:05:03 +1100
Subject: [PATCH 0159/1051] as suggested
so long as it is consistant.
---
docs/scenarios/gui.rst | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index a9fc0d32b..2bde51920 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -1,20 +1,7 @@
GUI Applications
================
-
-Tk
---
-Tkinter is a thin object-oriented layer on top of Tcl/Tk. **It has the advantage
-of being included with the Python standard library, making it the most
-convenient and compatible toolkit to program with.**
-
-Both Tk and Tkinter are available on most Unix platforms, as well as on Windows
-and Macintosh systems. Starting with the 8.0 release, Tk offers native look and
-feel on all platforms.
-
-There's a good multi-language Tk tutorial with Python examples at
-`TkDocs `_. There's more information
-available on the `Python Wiki `_.
+Alphabetical list of GUI Applications.
Camelot
-------
@@ -88,6 +75,20 @@ Qt
`Qt `_ is a cross-platform application framework that is widely used for developing
software with a GUI but can also be used for non-GUI applications.
+Tk
+--
+Tkinter is a thin object-oriented layer on top of Tcl/Tk. **It has the advantage
+of being included with the Python standard library, making it the most
+convenient and compatible toolkit to program with.**
+
+Both Tk and Tkinter are available on most Unix platforms, as well as on Windows
+and Macintosh systems. Starting with the 8.0 release, Tk offers native look and
+feel on all platforms.
+
+There's a good multi-language Tk tutorial with Python examples at
+`TkDocs `_. There's more information
+available on the `Python Wiki `_.
+
wxPython
--------
wxPython is a GUI toolkit for the Python programming language. It allows
From 97701f1a9c3cd2f812ea98aac390baa85ba9d0cf Mon Sep 17 00:00:00 2001
From: Can Ibanoglu
Date: Fri, 21 Mar 2014 00:59:27 +0200
Subject: [PATCH 0160/1051] Added instructions to set up pip for caching
packages
---
docs/starting/pip-virtualenv.rst | 44 ++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/docs/starting/pip-virtualenv.rst b/docs/starting/pip-virtualenv.rst
index c76623510..5c9515fa2 100644
--- a/docs/starting/pip-virtualenv.rst
+++ b/docs/starting/pip-virtualenv.rst
@@ -82,3 +82,47 @@ After saving the changes and sourcing your ``~/.bashrc`` file you can now instal
packages globally by running ``gpip install``. You can change the name of the
function to anything you like, just keep in mind that you will have to use that
name when trying to install packages globally with pip.
+
+Caching packages for future use
+-------------------------------
+
+Every developer has preferred libraries and when you are working on a lot of
+different projects, you are bound to have some overlap between the libraries that
+you use. For example, you may be using the ``requests`` library in a lot of different
+projects.
+
+It is surely unnecessary to re-download the same packages/libraries each time you
+start working on a new project (and in a new virtual environmen as a result).
+Fortunately, you can configure pip in such a way that it tries to reuse already
+installed packages.
+
+On UNIX systems, you can add the following line to your ``.bashrc`` or ``.bash_profile``
+file.
+
+.. code-block:: console
+
+ export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
+
+Naturally, you can set the path to anywhere you like (as long as you have write
+access). After adding this line, ``source`` your ``.bashrc`` (or ``.bash_profile``)
+file and you will be all set.
+
+Another way of doing the same configuration is via the ``pip.conf`` or ``pip.ini``
+files, depending on your system. If you are on Windows, you can add the following
+line to your ``pip.ini`` file under ``[global]`` settings:
+
+.. code-block:: console
+
+ download-cache = %HOME%\pip\cache
+
+Similarly, on UNIX systems you should simply add the following line to your
+``pip.conf`` file under ``[global]`` settings:
+
+.. code-block:: console
+
+ download-cache = $HOME/.pip/cache
+
+Even though you can use any path you like to store your cache, it is recommended
+that you create a new folder *in* the folder where your ``pip.conf`` or ``pip.ini``
+file lives. If you don't trust yourself with all of this path voodoo, just use
+the values provided here and you will be fine.
From 78d5318b01f2933d447dcf503d3ae2708155af09 Mon Sep 17 00:00:00 2001
From: Can Ibanoglu
Date: Fri, 21 Mar 2014 16:06:25 +0200
Subject: [PATCH 0161/1051] Removed the word 'naturally'
---
docs/starting/pip-virtualenv.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/starting/pip-virtualenv.rst b/docs/starting/pip-virtualenv.rst
index 5c9515fa2..a910ae75f 100644
--- a/docs/starting/pip-virtualenv.rst
+++ b/docs/starting/pip-virtualenv.rst
@@ -103,7 +103,7 @@ file.
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
-Naturally, you can set the path to anywhere you like (as long as you have write
+You can set the path to anywhere you like (as long as you have write
access). After adding this line, ``source`` your ``.bashrc`` (or ``.bash_profile``)
file and you will be all set.
From 7cb0d7b7db26b05cd5c3e0218903c95e9b54d57b Mon Sep 17 00:00:00 2001
From: Carol Willing
Date: Sun, 23 Mar 2014 13:13:44 -0700
Subject: [PATCH 0162/1051] Clarified Python version suitable for development.
Removed reference to Lion to be more generic OS X.
---
docs/starting/install/osx.rst | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index 0f95e73bf..2ed026165 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -11,9 +11,10 @@ described in the next section before you start building Python applications
for real-world use. In particular, you should always install Distribute, as it
makes it much easier for you to use 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. It's slightly out of date, and Apple has made significant
-changes that can cause hidden bugs.
+The version of Python that ships with OS X is great for learning. Yet, 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
--------------
@@ -31,7 +32,7 @@ package.
In combination, the software can cause issues that are difficult to
diagnose.
-While Lion comes with a large number of UNIX utilities, those familiar with
+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.
`Homebrew `_ fills this void.
From 36ff47d9f9ff8d2abd8059c6eac7c666e8065f44 Mon Sep 17 00:00:00 2001
From: Carol Willing
Date: Sun, 23 Mar 2014 13:58:03 -0700
Subject: [PATCH 0163/1051] Created top level how to contribute doc as
suggested in Issue: 263
---
CONTRIBUTING.md | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 CONTRIBUTING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..98580a3b8
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,15 @@
+How to contribute
+-----------------
+
+This guide is under heavy development. If you would like to contribute, please
+see:
+
+http://docs.python-guide.org/en/latest/notes/contribute/
+
+
+Style Guide
+-----------
+
+For all contributions, please follow the `Guide Stye Guide`:
+
+http://docs.python-guide.org/en/latest/notes/styleguide/
\ No newline at end of file
From 2d69455a2a03942b204f063f641abe7f762b17ac Mon Sep 17 00:00:00 2001
From: Artem Pyanykh
Date: Tue, 25 Mar 2014 12:54:21 +0400
Subject: [PATCH 0164/1051] Replace all references to Distribute with
Setuptools.
Distribute was merged back into setuptools and discontinued.
---
docs/shipping/freezing.rst | 4 ++--
docs/starting/install/linux.rst | 16 ++++++++--------
docs/starting/install/osx.rst | 17 +++++++++--------
docs/starting/install/win.rst | 2 +-
docs/starting/installation.rst | 4 ++--
5 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/docs/shipping/freezing.rst b/docs/shipping/freezing.rst
index 2722c1250..f7b31042d 100644
--- a/docs/shipping/freezing.rst
+++ b/docs/shipping/freezing.rst
@@ -46,7 +46,7 @@ Windows
bbFreeze
~~~~~~~~
-Prerequisite is to install :ref:`Python, Distribute and pywin32 dependency on Windows `.
+Prerequisite is to install :ref:`Python, Setuptools and pywin32 dependency on Windows `.
.. todo:: Write steps for most basic .exe
@@ -79,7 +79,7 @@ Prerequisite is to install :ref:`Python on Windows `.
PyInstaller
~~~~~~~~~~~
-Prerequisite is to have installed :ref:`Python, Distribute and pywin32 dependency on Windows `.
+Prerequisite is to have installed :ref:`Python, Setuptools and pywin32 dependency on Windows `.
- `Most basic tutorial `_
- `Manual `_
diff --git a/docs/starting/install/linux.rst b/docs/starting/install/linux.rst
index 1fd04cba4..b2216aeea 100644
--- a/docs/starting/install/linux.rst
+++ b/docs/starting/install/linux.rst
@@ -18,21 +18,21 @@ side-by-side with the system's Python 2.4 installation.
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 Distribute, as
+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.
-Distribute & Pip
+Setuptools & Pip
----------------
-The most crucial third-party Python software of all is Distribute, which
+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 Distribute to your Python system you can
+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 Distribute for Linux, run the python script
-available here: `python-distribute `_
+To obtain the latest version of Setuptools for Linux, refer to the documentation
+available here: `unix-setuptools `_
The new``easy_install`` command you have available is considered by many to be
deprecated, so we will install its replacement: **pip**. Pip allows for
@@ -48,7 +48,7 @@ To install pip, simply open a command prompt and run
Virtualenv
----------
-After Distribute & Pip, the next development tool that you should install is
+After Setuptools & Pip, the next development tool that you should install is
`virtualenv `_. Use pip
.. code-block:: console
@@ -68,7 +68,7 @@ project's directory
.. code-block:: console
- $ virtualenv --distribute venv
+ $ virtualenv venv
To use an environment, run ``source venv/bin/activate``. Your command prompt
will change to show the active environment. Once you have finished working in
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index e33cfd07e..082f7fbf3 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -8,7 +8,7 @@ The latest version of Mac OS X, Mavericks, **comes with Python 2.7 out of the bo
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 Distribute, as it
+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.
The version of Python that ships with OS X is great for learning, but it's not
@@ -64,25 +64,26 @@ new Python scripts directory to your ``PATH``
export PATH=/usr/local/share/python:$PATH
-Distribute & Pip
+Setuptools & Pip
----------------
-The most crucial third-party Python software of all is Distribute, which
+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 Distribute to your Python system you can
+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. Homebrew already installed
-Distribute for you.
+Setuptools for you.
Happily, when you ran `brew install python`, Homebrew also installed **pip**.
-Pip allows for uninstallation of packages, and is actively maintained.
+Pip allows for installation and uninstallation of packages, and is actively
+maintained.
Virtualenv
----------
-After Distribute & Pip, the next development tool that you should install is
+After Setuptools & Pip, the next development tool that you should install is
`virtualenv `_. Use pip
.. code-block:: console
@@ -102,7 +103,7 @@ the new environment.
.. code-block:: console
- $ virtualenv --distribute venv
+ $ virtualenv venv
To use an environment, run ``source venv/bin/activate``. Your command prompt
will change to show the active environment. Once you have finished working in
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index b71b882ea..871e77b42 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -65,7 +65,7 @@ To install pip, run the python script available here:
Virtualenv
----------
-After Distribute & Pip, the next development tool that you should install is
+After Setuptools & Pip, the next development tool that you should install is
`virtualenv `_. Use pip
.. code-block:: console
diff --git a/docs/starting/installation.rst b/docs/starting/installation.rst
index 669817270..91de5a963 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
-Distribute, 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 2.7 `
- for development purposes, as well as distribute, pip, and virtualenv setup.
+ for development purposes, as well as setuptools, pip, and virtualenv setup.
- :ref:`Mac OS X `.
- :ref:`Microsoft Windows`.
From 2abd312b1435c4b2adb563f903084b9353f36e8f Mon Sep 17 00:00:00 2001
From: Al Sweigart
Date: Tue, 25 Mar 2014 15:05:41 -0700
Subject: [PATCH 0165/1051] Add two free beginner's books to the list
---
docs/intro/learning.rst | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index bd2ca6d7d..a8ae73e23 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -21,6 +21,26 @@ excellent resource for learning all aspects of the language.
`Python for You and Me `_
+Invent Your Own Computer Games with Python
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This beginner's book is for those with no programming experience at all. Each
+chapter has the source code to a small game, using these example programs
+to demonstrate programming concepts to give the reader an idea of what
+programs "look like".
+
+ `Invent Your Own Computer Games with Python `_
+
+
+Hacking Secret Ciphers with Python
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This book teaches Python programming and basic cryptography for absolute
+beginners. The chapters provide the source code for various ciphres, as well
+as programs that can break them.
+
+ `Hacking Secret Ciphers with Python `_
+
Learn Python the Hard Way
~~~~~~~~~~~~~~~~~~~~~~~~~
From c06fca111e6b23fdb4a24a8344e671c0630cf9a3 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Thu, 27 Mar 2014 14:25:43 -0400
Subject: [PATCH 0166/1051] Readme.rst: Minor edits
---
Readme.rst | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/Readme.rst b/Readme.rst
index a789e7fee..db1c02f79 100644
--- a/Readme.rst
+++ b/Readme.rst
@@ -16,17 +16,17 @@ basis.
Topics include:
-- Platform/version specific installations
+- Platform- and version-specific installations
- Py2app, Py2exe, bbfreeze, pyInstaller
-- Pip / virtualenv
-- Documentation. Writing it.
-- server configurations / tools for various web frameworks
+- pip & virtualenv
- fabric
-- exhaustive module recommendations, grouped by topic/purpose
-- Testing. Jenkins + tox guides.
-- How to interface w/ hg from git easily
-- what libraries to use for what
-
-If you are not fond of reading reStructuredText, there is an
+- Exhaustive module recommendations, grouped by topic/purpose
+- Which libraries to use for what
+- Server configurations & tools for various web frameworks
+- Documentation: writing it
+- Testing: Jenkins & tox guides
+- How to easily interface ``hg`` from ``git`` easily
+
+If you aren't fond of reading reStructuredText, there is an
almost up-to-date `HTML version at docs.python-guide.org
`_.
From 1b4fc887ea6c0c6836e6770559f0d433bff50bf6 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Thu, 27 Mar 2014 14:45:29 -0400
Subject: [PATCH 0167/1051] dev/env.rst: Markup
---
docs/dev/env.rst | 54 ++++++++++++++++++++++++++++--------------------
1 file changed, 32 insertions(+), 22 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 8739a3630..1e7d3fe5e 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -16,7 +16,7 @@ Vim is a text editor which uses keyboard shortcuts for editing instead of menus
or icons. There exist a couple of plugins and settings for the VIM editor to
aid Python development. If you only develop in Python, a good start is to set
the default settings for indentation and line-wrapping to values compliant with
-:pep:`8`. In your home directory, open a file called `.vimrc` and add the
+:pep:`8`. In your home directory, open a file called ``.vimrc`` and add the
following lines::
set textwidth=79 " lines longer than 79 columns will be broken
@@ -42,11 +42,11 @@ 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, install the vim-pep8_ plugin, and for pyflakes you can
-install vim-pyflakes_. Now you can map the functions `Pep8()` or `Pyflakes()`
+install vim-pyflakes_. Now you can map the functions ``Pep8()`` or ``Pyflakes()``
to any hotkey or action you want in Vim. Both plugins will display errors at
the bottom of the screen, and provide an easy way to jump to the corresponding
line. It's very handy to call these functions whenever you save a file. In
-order to do this, add the following lines to your `vimrc`::
+order to do this, add the following lines to your ``.vimrc``::
autocmd BufWritePost *.py call Pyflakes()
autocmd BufWritePost *.py call Pep8()
@@ -67,12 +67,12 @@ Python-mode
Python-mode_ is a complex solution in VIM for working with Python code.
It has:
-- Asynchronous Python code checking (pylint, pyflakes, pep8, mccabe) in any combination
+- Asynchronous Python code checking (``pylint``, ``pyflakes``, ``pep8``, ``mccabe``) in any combination
- Code refactoring and autocompletion with Rope
- Fast Python folding
- Virtualenv support
- Search by Python documentation and run Python code
-- Auto PEP8 error fixes
+- Auto PEP8_ error fixes
And more.
@@ -105,10 +105,10 @@ already an Emacs user is `Python Programming in Emacs`_ at EmacsWiki.
TextMate
--------
-"`TextMate `_ brings Apple's approach to operating
-systems into the world of text editors. By bridging UNIX underpinnings and GUI,
-TextMate cherry-picks the best of both worlds to the benefit of expert
-scripters and novice users alike."
+ `TextMate `_ brings Apple's approach to operating
+ systems into the world of text editors. By bridging UNIX underpinnings and GUI,
+ TextMate cherry-picks the best of both worlds to the benefit of expert
+ scripters and novice users alike.
Sublime Text
------------
@@ -189,18 +189,22 @@ virtualenv
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.
+dilemma, and keeps your global ``site-packages`` directory clean and manageable.
`virtualenv `_ creates
a folder which contains all the necessary executables to contain the
packages that a Python project would need. An example workflow is given.
-Install virtualenv::
+Install virtualenv:
+
+.. code-block:: console
$ pip install virtualenv
-Create a virtual environment for a project::
+Create a virtual environment for a project:
+
+.. code-block:: console
$ cd my_project
$ virtualenv venv
@@ -211,7 +215,9 @@ 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 in the current directory instead.
-To start using the virtual environment, run::
+To start using the virtual environment, run:
+
+.. code-block:: console
$ source venv/bin/activate
@@ -219,8 +225,12 @@ To start using the virtual environment, run::
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::
+using ``pip`` will be placed in the ``venv`` folder, isolated from the global
+Python installation.
+
+Install packages as usual:
+
+.. code-block:: console
$ pip install requests
@@ -239,7 +249,7 @@ for keeping the package list clean in case it needs to be accessed later.
In order to keep your environment consistent, it's a good idea to "freeze"
the current state of the environment packages. To do this, run
-::
+.. code-block:: console
$ pip freeze > requirements.txt
@@ -249,7 +259,7 @@ versions. Later, when a different developer (or you, if you need to re-
create the environment) can install the same packages, with the same
versions by running
-::
+.. code-block:: console
$ pip install -r requirements.txt
@@ -265,14 +275,14 @@ virtualenvwrapper
`Virtualenvwrapper `_ makes
virtualenv a pleasure to use by wrapping the command line API with a nicer CLI.
-::
+.. code-block:: console
$ pip install virtualenvwrapper
-Put this into your `~/.bash_profile` (Linux/Mac) file:
+Put this into your ``~/.bash_profile`` (Linux/Mac) file:
-::
+.. code-block:: console
$ export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
@@ -312,7 +322,7 @@ most out of using Python interactively. Its main components are:
* Flexible, embeddable interpreters to load into your own projects.
* Tools for high level and interactive parallel computing.
-::
+.. code-block:: console
$ pip install ipython
@@ -333,7 +343,7 @@ Python interpreter for Unix-like operating systems. It has the following feature
* Auto-indentation.
* Python 3 support.
-::
+.. code-block:: console
$ pip install bpython
From 3050584ff394925670668b84641bb3145b9dd41d Mon Sep 17 00:00:00 2001
From: Zearin
Date: Thu, 27 Mar 2014 14:46:08 -0400
Subject: [PATCH 0168/1051] dev/env.rst: Minor edits
---
docs/dev/env.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 1e7d3fe5e..4ca87b982 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -51,7 +51,7 @@ order to do this, add the following lines to your ``.vimrc``::
autocmd BufWritePost *.py call Pyflakes()
autocmd BufWritePost *.py call Pep8()
-If you are already using syntastic_ you can enable it to run Pyflakes on write
+If you are already using syntastic_ you can enable it to run Pyflakes on write,
and show errors and warnings in the quickfix window. An example configuration
to do that which also shows status and warning messages in the statusbar would be::
@@ -143,7 +143,7 @@ The most popular Eclipse plugin for Python development is Aptana's
Komodo IDE
----------
`Komodo IDE `_ is developed by
-ActiveState and is a commercial IDE for Windows, Mac and Linux.
+ActiveState and is a commercial IDE for Windows, Mac, and Linux.
Spyder
@@ -234,9 +234,9 @@ Install packages as usual:
$ pip install requests
-To stop using an environment simply type ``deactivate``. To remove the
+To stop using an environment, simply type ``deactivate``. To remove the
environment, just remove the directory it was installed into. (In this
-case, it would be ``rm -rf venv``).
+case, it would be ``rm -rf venv``.)
Other Notes
^^^^^^^^^^^
From faa874d1840ff89020bf266ebb4450f89dea6983 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Thu, 27 Mar 2014 14:50:03 -0400
Subject: [PATCH 0169/1051] index.rst: Minor source tweak
Reads easier when viewing the source
---
docs/index.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/index.rst b/docs/index.rst
index 1779f2f35..3e34d33f0 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -8,7 +8,8 @@ The Hitchhiker's Guide to Python!
Welcome to The Hitchhiker's Guide to Python.
-**This guide is currently under heavy active development.** If you'd like to help, `fork us on GitHub `_!
+**This guide is currently under heavy active development.** If you'd like to help,
+`fork us on GitHub `_!
This *opinionated* guide exists to provide both novice and expert Python
developers a best-practice handbook to the installation, configuration, and
From 9d059acc5b557c93021120537f860d36b692280c Mon Sep 17 00:00:00 2001
From: Zearin
Date: Thu, 27 Mar 2014 14:53:38 -0400
Subject: [PATCH 0170/1051] intro/duction.rst: Minor edits (formatting)
---
docs/intro/duction.rst | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/docs/intro/duction.rst b/docs/intro/duction.rst
index 04cbceb94..23d9240f1 100644
--- a/docs/intro/duction.rst
+++ b/docs/intro/duction.rst
@@ -7,14 +7,14 @@ Python is a general-purpose, high-level programming language similar
to Tcl, Perl, Ruby, Scheme, or Java. Some of its main key features
include:
-* very clear, readable syntax
+* **very clear, readable syntax**
Python's philosophy focuses on readability, from code blocks
delineated with significant whitespace to intuitive keywords in
place of inscrutable punctuation
-* extensive standard libraries and third party modules for virtually
- any task
+* **extensive standard libraries and third party modules for virtually
+ any task**
Python is sometimes described with the words "batteries included"
for its extensive
@@ -30,7 +30,7 @@ include:
the `Django `_ web framework and the
`NumPy `_ set of math routines.
-* integration with other systems
+* **integration with other systems**
Python can integrate with `Java libraries `_,
enabling it to be used with the rich Java environment that corporate
@@ -38,13 +38,13 @@ include:
`extended by C or C++ modules `_
when speed is of the essence.
-* ubiquity on computers
+* **ubiquity on computers**
Python is available on Windows, \*nix, and Mac. It runs wherever the
Java virtual machine runs, and the reference implementation CPython
can help bring Python to wherever there is a working C compiler.
-* friendly community
+* **friendly community**
Python has a vibrant and large :ref:`community `
which maintains wikis, conferences, countless repositories,
@@ -77,10 +77,12 @@ For the Community
All contributions to the Guide are welcome, from Pythonistas of all levels.
If you think there's a gap in what the Guide covers, fork the Guide on
-GitHub and submit a pull request. Contributions are welcome from everyone,
-whether they're an old hand or a first-time Pythonista, and the authors to
-the Guide will gladly help if you have any questions about the
-appropriateness, completeness, or accuracy of a contribution.
+GitHub and submit a pull request.
+
+Contributions are welcome from everyone, whether they're an old hand or a
+first-time Pythonista, and the authors to the Guide will gladly help if you
+have any questions about the appropriateness, completeness, or accuracy of
+a contribution.
To get started working on The Hitchhiker's Guide, see the :doc:`/notes/contribute` page.
From 471f86b3a8e3e8d90447461c67f3aa9f06c52527 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 28 Mar 2014 13:06:49 -0400
Subject: [PATCH 0171/1051] =?UTF-8?q?styleguide.rst:=20Github=20=E2=96=B6?=
=?UTF-8?q?=EF=B8=8E=20GitHub?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/notes/styleguide.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/notes/styleguide.rst b/docs/notes/styleguide.rst
index 46fbfdf7f..887a7bbf8 100644
--- a/docs/notes/styleguide.rst
+++ b/docs/notes/styleguide.rst
@@ -30,8 +30,8 @@ Strive to keep any contributions relevant to the :ref:`purpose of The Guide
* `Cite `_
references where needed.
* If a subject isn't directly relevant to Python, but useful in conjunction
- with Python (ex: Git, Github, Databases), reference by linking to useful
- resources and describe why it's useful to Python.
+ with Python (e.g. Git, GitHub, Databases), reference by linking to useful
+ resources, and describe why it's useful to Python.
* When in doubt, ask.
Headings
From 1e4b4a5460b0409f16e892e94f8d62414cfd9e9a Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 28 Mar 2014 13:26:24 -0400
Subject: [PATCH 0172/1051] =?UTF-8?q?docs/**:=20Specify=20language=20for?=
=?UTF-8?q?=20code-blocks=20(syntax=20highlighting!=20=20mmm=E2=80=A6)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/scenarios/admin.rst | 2 +-
docs/scenarios/db.rst | 4 ++--
docs/scenarios/imaging.rst | 2 +-
docs/scenarios/scrape.rst | 2 +-
docs/scenarios/speed.rst | 29 +++++++++++++++++------------
docs/shipping/freezing.rst | 6 +++++-
docs/starting/install/osx.rst | 4 +++-
docs/starting/install/win.rst | 6 +++++-
docs/writing/documentation.rst | 8 ++++++--
docs/writing/style.rst | 15 ++++++++++-----
docs/writing/tests.rst | 13 +++++++------
11 files changed, 58 insertions(+), 33 deletions(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 5fca65f94..26dc5e6a4 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -21,7 +21,7 @@ latter will ssh into each server, cd to our project directory, activate the
virtual environment, pull the newest codebase, and restart the application
server.
-::
+.. code-block:: python
from fabric.api import cd, env, prefix, run, task
diff --git a/docs/scenarios/db.rst b/docs/scenarios/db.rst
index 787f0efe3..252d9d7b1 100644
--- a/docs/scenarios/db.rst
+++ b/docs/scenarios/db.rst
@@ -20,9 +20,9 @@ SQLAlchemy
Unlike many database libraries it not only provides an ORM layer but also a
generalized API for writing database-agnostic code without SQL.
-::
+.. code-block:: console
- pip install sqlalchemy
+ $ pip install sqlalchemy
Django ORM
----------
diff --git a/docs/scenarios/imaging.rst b/docs/scenarios/imaging.rst
index fa718824f..4103c36e3 100644
--- a/docs/scenarios/imaging.rst
+++ b/docs/scenarios/imaging.rst
@@ -23,6 +23,6 @@ the instructions for your platform `here Carson Busses
$29.95
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index 0219cf3a8..bee6769df 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -8,9 +8,9 @@ Using a slightly modified version of `David Beazleys`_ CPU bound test code
(added loop for multiple tests), you can see the difference between CPython
and PyPy's processing.
-::
+.. code-block:: console
- PyPy
+ # PyPy
$ ./pypy -V
Python 2.7.1 (7773f8fc4223, Nov 18 2011, 18:47:10)
[PyPy 1.7.0 with GCC 4.4.3]
@@ -21,9 +21,9 @@ and PyPy's processing.
0.0440690517426
0.0695300102234
-::
+.. code-block:: console
- CPython
+ # CPython
$ ./python -V
Python 2.7.1
$ ./python measure2.py
@@ -72,9 +72,10 @@ Cython
with which you are able to write C and C++ modules for Python. Cython also
allows you to call functions from compiled C libraries. Using Cython allows
you to take advantage of Python's strong typing of variables and operations.
-Here is an example of strong typing with Cython:
-.. code-block:: python
+Here's an example of strong typing with Cython:
+
+.. code-block:: cython
def primes(int kmax):
"""Calculation of prime numbers with additional
@@ -128,7 +129,7 @@ Notice that in the Cython version you declare integers and integer arrays for
to be compiled into C types while also creating a Python list:
-.. code-block:: python
+.. code-block:: cython
def primes(int kmax):
"""Calculation of prime numbers with additional
@@ -190,18 +191,22 @@ The `pyximport` module allows you to import `pyx` files (e.g., `primesCy.pyx`) w
The `pyximport.install()` command allows the Python interpreter to start the Cython compiler directly to generate C-code,
which is automatically compiled to a `*.so` C-library. Cython is able to import this library for you in your Python-code.
Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 prime numbers.
+On a standard notebook (dual core AMD E-450 1.6 GHz), the measured values are:
+
+.. code-block:: console
+
+ Cython time: 0.0054 seconds
-On a standard notebook (dualcore AMD E-450 1,6 GHz) the measured values are:
+ Python time: 0.0566 seconds
-Cython time: 0.0054 seconds
-Python time: 0.0566 seconds
And here the output of an embedded `ARM beaglebone `_ machine:
+.. code-block:: console
-Cython time: 0.0196 seconds
+ Cython time: 0.0196 seconds
-Python time: 0.3302 seconds
+ Python time: 0.3302 seconds
Pyrex
-----
diff --git a/docs/shipping/freezing.rst b/docs/shipping/freezing.rst
index 2722c1250..888127e99 100644
--- a/docs/shipping/freezing.rst
+++ b/docs/shipping/freezing.rst
@@ -59,6 +59,8 @@ Prerequisite is to install :ref:`Python on Windows `.
2. Write setup.py (`List of configuration options `_)::
+.. code-block:: python
+
from distutils.core import setup
import py2exe
@@ -70,7 +72,9 @@ Prerequisite is to install :ref:`Python on Windows `.
4. (Optionally) `one-file mode `_
-5. Generate `.exe` into `dist` directory::
+5. Generate ``.exe`` into ``dist`` directory:
+
+.. code-block:: console
$ python setup.py py2exe
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index ac05a0de9..163333795 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -53,7 +53,9 @@ line at the bottom of your ``~/.bashrc`` file
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
-Now, we can install Python 2.7: ::
+Now, we can install Python 2.7:
+
+.. code-block:: console
$ brew install python
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index b71b882ea..f21e2d573 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -25,9 +25,13 @@ tedious, so add the directories for your default Python version to the PATH.
Assuming that your Python installation is in ``C:\Python27\``, add this to your
PATH::
+.. code-block:: console
+
C:\Python27\;C:\Python27\Scripts\
-You can do this easily by running the following in ``powershell``::
+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")
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index 3f4d0b937..29de3e40c 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -100,7 +100,9 @@ code easier to understand. In Python, comments begin with a hash
.. _docstring-ref:
-In Python, *docstrings* describe modules, classes, and functions: ::
+In Python, *docstrings* describe modules, classes, and functions:
+
+.. code-block:: python
def square_and_rooter(x):
"""Returns the square root of self times self."""
@@ -130,7 +132,9 @@ Docstrings versus Block comments
These aren't interchangeable. For a function or class, the leading
comment block is a programmer's note. The docstring describes the
-operation of the function or class: ::
+*operation* of the function or class:
+
+.. code-block:: python
# This function slows down program execution for some reason.
def square_and_rooter(x):
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index cba3586be..165117f2c 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -336,7 +336,9 @@ Instead, use a list comprehension:
four_lists = [[] for __ in xrange(4)]
-A common idiom for creating strings is to use :py:meth:`str.join` on an empty string.::
+A common idiom for creating strings is to use :py:meth:`str.join` on an empty string.
+
+.. code-block:: python
letters = ['s', 'p', 'a', 'm']
word = ''.join(letters)
@@ -345,7 +347,9 @@ This will set the value of the variable *word* to 'spam'. This idiom can be appl
Sometimes we need to search through a collection of things. Let's look at two options: lists and dictionaries.
-Take the following code for example::
+Take the following code for example:
+
+.. code-block:: python
d = {'s': [], 'p': [], 'a': [], 'm': []}
l = ['s', 'p', 'a', 'm']
@@ -365,7 +369,7 @@ Zen of Python
Also known as :pep:`20`, the guiding principles for Python's design.
-::
+.. code-block:: pycon
>>> import this
The Zen of Python, by Tim Peters
@@ -406,14 +410,15 @@ exists a command-line program, `pep8 `_,
that can check your code for conformance. Install it by running the following
command in your Terminal:
-::
+
+.. code-block:: console
$ pip install pep8
Then run it on a file or series of files to get a report of any violations.
-::
+.. code-block:: console
$ pep8 optparse.py
optparse.py:69:11: E401 multiple imports on one line
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index cb863c0c2..b854bf02a 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -81,7 +81,7 @@ series of tools.
Creating testcases is accomplished by subclassing a TestCase base class
-::
+.. code-block:: python
import unittest
@@ -148,7 +148,7 @@ py.test is a no-boilerplate alternative to Python's standard unittest module.
Despite being a fully-featured and extensible test tool, it boasts a simple
syntax. Creating a test suite is as easy as writing a module with a couple of
-functions
+functions:
.. code-block:: python
@@ -251,9 +251,10 @@ the need to change any other code.
mock
----
-mock is a library for testing in Python. Starting with Python 3.3, it is
-available in the `standard library
Date: Sat, 29 Mar 2014 09:08:00 +0300
Subject: [PATCH 0173/1051] gui/camelot: Replace ads with warnings
---
docs/scenarios/gui.rst | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 2bde51920..966ee7a15 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -5,16 +5,11 @@ Alphabetical list of GUI Applications.
Camelot
-------
-`Camelot `_ provides components for building
-business applications on top of Python, SQLAlchemy and Qt. It is inspired by
-the Django admin interface.
-
-You can use Camelot to develop both simple and complex business applications
-at warp speed.
+.. note:: If your software does not fully comply with the GPL you will need a commercial license!
-The main resource for information is the website:
-http://www.python-camelot.com
-and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
+`Camelot `_ provides components for building
+applications on top of Python, SQLAlchemy and Qt. It is inspired by the
+Django admin interface.
Cocoa
-----
From ad0bba374ae6589484aaa65372c6351699034e08 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Mon, 31 Mar 2014 10:31:48 -0400
Subject: [PATCH 0174/1051] Readme.rst: put `pip` and `virtualenv` on separate
bullets
---
Readme.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Readme.rst b/Readme.rst
index db1c02f79..148216b08 100644
--- a/Readme.rst
+++ b/Readme.rst
@@ -18,7 +18,8 @@ Topics include:
- Platform- and version-specific installations
- Py2app, Py2exe, bbfreeze, pyInstaller
-- pip & virtualenv
+- pip
+- virtualenv
- fabric
- Exhaustive module recommendations, grouped by topic/purpose
- Which libraries to use for what
From caa7ac3f260e319aa426c7af4c1cf377f26eb63b Mon Sep 17 00:00:00 2001
From: Zearin
Date: Mon, 31 Mar 2014 10:33:46 -0400
Subject: [PATCH 0175/1051] dev/env.rst: Remove (body text) comma
---
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 4ca87b982..06570c632 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -51,7 +51,7 @@ order to do this, add the following lines to your ``.vimrc``::
autocmd BufWritePost *.py call Pyflakes()
autocmd BufWritePost *.py call Pep8()
-If you are already using syntastic_ you can enable it to run Pyflakes on write,
+If you are already using syntastic_ you can enable it to run Pyflakes on write
and show errors and warnings in the quickfix window. An example configuration
to do that which also shows status and warning messages in the statusbar would be::
From 91ba68d9727c5010a5763639c9085ca051e46242 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Mon, 31 Mar 2014 10:35:36 -0400
Subject: [PATCH 0176/1051] =?UTF-8?q?dev/env.rst:=20Un-markup=20=E2=80=9Cs?=
=?UTF-8?q?ite-packages=E2=80=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
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 06570c632..3610307aa 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -189,7 +189,7 @@ virtualenv
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.
+dilemma, and keeps your global site-packages directory clean and manageable.
`virtualenv `_ creates
a folder which contains all the necessary executables to contain the
From e9dbbb05db6e69dc3481464b223e7d7786e5cd1d Mon Sep 17 00:00:00 2001
From: anatoly techtonik
Date: Mon, 31 Mar 2014 17:36:29 +0300
Subject: [PATCH 0177/1051] Remove ads only
---
docs/scenarios/gui.rst | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 966ee7a15..f69dcb69b 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -5,12 +5,14 @@ Alphabetical list of GUI Applications.
Camelot
-------
-.. note:: If your software does not fully comply with the GPL you will need a commercial license!
-
-`Camelot `_ provides components for building
-applications on top of Python, SQLAlchemy and Qt. It is inspired by the
-Django admin interface.
-
+`Camelot `_ provides components for building
+applications on top of Python, SQLAlchemy and Qt. It is inspired by
+the Django admin interface.
+
+The main resource for information is the website:
+http://www.python-camelot.com
+and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
+
Cocoa
-----
.. note:: The Cocoa framework is only available on Mac OSX. Don't pick this if you're writing a cross-platform application!
From 03a6d1e9e77f8be21f65d461cd95ac130d1d607d Mon Sep 17 00:00:00 2001
From: anatoly techtonik
Date: Mon, 31 Mar 2014 17:38:05 +0300
Subject: [PATCH 0178/1051] Missing whitespace
---
docs/scenarios/gui.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index f69dcb69b..db578b93e 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -12,7 +12,7 @@ the Django admin interface.
The main resource for information is the website:
http://www.python-camelot.com
and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
-
+
Cocoa
-----
.. note:: The Cocoa framework is only available on Mac OSX. Don't pick this if you're writing a cross-platform application!
From 7bfaf32312c1dbb81cb4095fb92c1d2118a0ea5c Mon Sep 17 00:00:00 2001
From: Zearin
Date: Mon, 31 Mar 2014 10:46:28 -0400
Subject: [PATCH 0179/1051] =?UTF-8?q?notes/styleguide.rst:=20Add=20comma?=
=?UTF-8?q?=20after=20=E2=80=9Ce.g.=E2=80=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
To any style-obsessed writers or editors reading this commit:
The comma (or lack of one) after âe.g.â or âi.e.â has always bugged me. I finally looked it up! Hereâs what I found:
http://english.stackexchange.com/questions/16172/should-i-always-use-a-comma-after-e-g-or-i-e
---
docs/notes/styleguide.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/notes/styleguide.rst b/docs/notes/styleguide.rst
index 887a7bbf8..366c1ae6c 100644
--- a/docs/notes/styleguide.rst
+++ b/docs/notes/styleguide.rst
@@ -30,7 +30,7 @@ Strive to keep any contributions relevant to the :ref:`purpose of The Guide
* `Cite `_
references where needed.
* If a subject isn't directly relevant to Python, but useful in conjunction
- with Python (e.g. Git, GitHub, Databases), reference by linking to useful
+ with Python (e.g., Git, GitHub, Databases), reference by linking to useful
resources, and describe why it's useful to Python.
* When in doubt, ask.
From fe8e11c8e9f1daca2ebc6929c7901900fa6bdd30 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Mon, 31 Mar 2014 10:48:12 -0400
Subject: [PATCH 0180/1051] =?UTF-8?q?writing/tests.rst:=20Unbold=20?=
=?UTF-8?q?=E2=80=9C``mock``=E2=80=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/writing/tests.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index b854bf02a..e77160cff 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -251,7 +251,7 @@ the need to change any other code.
mock
----
-**``mock``** is a library for testing in Python. As of Python 3.3, it is
+``mock`` is a library for testing in Python. As of Python 3.3, it is
available in the `standard library
Date: Mon, 31 Mar 2014 10:51:30 -0400
Subject: [PATCH 0181/1051] =?UTF-8?q?Readme.rst:=20Capitalize=20=E2=80=9CP?=
=?UTF-8?q?ip=E2=80=9D=20and=20=E2=80=9CVirtualenv=E2=80=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Readme.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Readme.rst b/Readme.rst
index 148216b08..07106e2f0 100644
--- a/Readme.rst
+++ b/Readme.rst
@@ -18,8 +18,8 @@ Topics include:
- Platform- and version-specific installations
- Py2app, Py2exe, bbfreeze, pyInstaller
-- pip
-- virtualenv
+- Pip
+- Virtualenv
- fabric
- Exhaustive module recommendations, grouped by topic/purpose
- Which libraries to use for what
From f1ab69243a8e6145318a8d96b67c36bd51c34a81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20Kolding-S=C3=B8rensen?=
Date: Wed, 2 Apr 2014 18:20:42 +0200
Subject: [PATCH 0182/1051] Fix code-block formatting
---
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 4facc9832..d84084f77 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -23,7 +23,7 @@ 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 PATH.
Assuming that your Python installation is in ``C:\Python27\``, add this to your
-PATH::
+PATH:
.. code-block:: console
From a3d07893f167f1a0c5613b7eec07ca14fdb1c10d Mon Sep 17 00:00:00 2001
From: vishal sodani
Date: Thu, 3 Apr 2014 09:23:01 +0530
Subject: [PATCH 0183/1051] Fix spelling and grammatical mistake
---
docs/intro/learning.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index a8ae73e23..6d671f1f2 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -36,7 +36,7 @@ Hacking Secret Ciphers with Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This book teaches Python programming and basic cryptography for absolute
-beginners. The chapters provide the source code for various ciphres, as well
+beginners. The chapters provide the source code for various ciphers, as well
as programs that can break them.
`Hacking Secret Ciphers with Python `_
@@ -64,7 +64,7 @@ Dive Into Python 3
Dive Into Python 3 is a good book for those ready to jump in to Python 3. It's
a good read if you are moving from Python 2 to 3 or if you already have some
-experience programming in another language.
+experience in programming in another language.
`Dive Into Python 3 `_
From 572a36867cbe2bcb742d1742a0cd1f1a7f2fd906 Mon Sep 17 00:00:00 2001
From: vishal sodani
Date: Thu, 3 Apr 2014 09:37:58 +0530
Subject: [PATCH 0184/1051] Fix typo - replace his with its
---
docs/scenarios/web.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index d43ff0ee6..2d2ab5171 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -93,7 +93,7 @@ Support can be found on its `mailing list `_ is a scalable, non-blocking web server and web application framework with
-a relative simple usage. Tornado is known for his high performance.
+a relative simple usage. Tornado is known for its high performance.
It was initially developed for `friendfeed `_ , a real time chat and blog system.
In the Jinja2 template engine example it is used to serve the rendered pages.
From fb90056e9c30cfb32f0473f7aac06e7b5ba1e73f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20Kolding-S=C3=B8rensen?=
Date: Thu, 3 Apr 2014 12:10:21 +0200
Subject: [PATCH 0185/1051] Add book on algorithms and data structures
---
docs/intro/learning.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index a8ae73e23..d480ac340 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -143,6 +143,15 @@ development, version control, and optimization/profiling.
`Expert Python Programming `_
+Problem Solving with Algorithms and Data Structures
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Problem Solving with Algorithms and Data Structures covers a range of data structures and
+algorithms. All concepts are illustrated with Python code along with interactive samples
+that can be run directly in the browser.
+
+ `Problem Solving with Algorithms and Data Structures
+ `_
+
The Python Tutorial
~~~~~~~~~~~~~~~~~~~~
From 0d4ea147c22ce103b69c698d6863f47e06f61ef8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20Kolding-S=C3=B8rensen?=
Date: Thu, 3 Apr 2014 12:14:07 +0200
Subject: [PATCH 0186/1051] Move official tutorial to beginner section
---
docs/intro/learning.rst | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index d480ac340..ea9ab7a25 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -4,6 +4,16 @@ Learning Python
Beginner
--------
+The Python Tutorial
+~~~~~~~~~~~~~~~~~~~~
+
+This is the official tutorial, it covers all the basics, and offers a tour of the
+language and the standard library, recommended for those who need a quickstart
+guide to the language.
+
+ `The Python Tutorial `_
+
+
Learn Python Interactive Tutorial
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -152,14 +162,6 @@ that can be run directly in the browser.
`Problem Solving with Algorithms and Data Structures
`_
-The Python Tutorial
-~~~~~~~~~~~~~~~~~~~~
-
-This is the official tutorial, it covers all the basics, and offers a tour of the
-language and the standard library, recommended for those who need a quickstart
-guide to the language.
-
- `The Python Tutorial `_
For Engineers and Scientists
----------------------------
From 272d300cebd31bb7d4f0015f882cfa3556018c71 Mon Sep 17 00:00:00 2001
From: vishal sodani
Date: Thu, 3 Apr 2014 22:18:54 +0530
Subject: [PATCH 0187/1051] Reverse change to a line
---
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 6d671f1f2..1cfc9f419 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -64,7 +64,7 @@ Dive Into Python 3
Dive Into Python 3 is a good book for those ready to jump in to Python 3. It's
a good read if you are moving from Python 2 to 3 or if you already have some
-experience in programming in another language.
+experience programming in another language.
`Dive Into Python 3 `_
From c19f279b93d2a3aeb1f818483f23e32944030736 Mon Sep 17 00:00:00 2001
From: vishal sodani
Date: Fri, 4 Apr 2014 11:43:39 +0530
Subject: [PATCH 0188/1051] Use plural
---
docs/intro/news.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/intro/news.rst b/docs/intro/news.rst
index 433f9078d..5ccf6dc57 100644
--- a/docs/intro/news.rst
+++ b/docs/intro/news.rst
@@ -20,7 +20,7 @@ Pycoder's Weekly
~~~~~~~~~~~~~~~~
Pycoder's Weekly is a free weekly Python newsletter for Python developers
-by Python developers (Project, Articles, News, and Jobs).
+by Python developers (Projects, Articles, News, and Jobs).
`Pycoder's Weekly `_
From 17ef7f9661878e950618845f48b3316fac24b312 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20Kolding-S=C3=B8rensen?=
Date: Fri, 4 Apr 2014 08:31:05 +0200
Subject: [PATCH 0189/1051] Remove book on algorithms and data structures
---
docs/intro/learning.rst | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index ea9ab7a25..03ab77de0 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -153,15 +153,6 @@ development, version control, and optimization/profiling.
`Expert Python Programming `_
-Problem Solving with Algorithms and Data Structures
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Problem Solving with Algorithms and Data Structures covers a range of data structures and
-algorithms. All concepts are illustrated with Python code along with interactive samples
-that can be run directly in the browser.
-
- `Problem Solving with Algorithms and Data Structures
- `_
-
For Engineers and Scientists
----------------------------
From 1e7cb38e64aa5695b02982323e1d587deb8bc2fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20Kolding-S=C3=B8rensen?=
Date: Sat, 5 Apr 2014 21:40:29 +0200
Subject: [PATCH 0190/1051] Add misc section and two books
---
docs/intro/learning.rst | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 4b2dd8b5b..9a1a3b411 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -174,6 +174,26 @@ emphasis on numerical methods and how to implement them in Python.
`Numerical Methods in Engineering with Python `_
+Miscellaneous topics
+--------------------
+
+Problem Solving with Algorithms and Data Structures
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Problem Solving with Algorithms and Data Structures covers a range of data structures and
+algorithms. All concepts are illustrated with Python code along with interactive samples
+that can be run directly in the browser.
+
+ `Problem Solving with Algorithms and Data Structures
+ `_
+
+Programming Collective Intelligence
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Programming Collective Intelligence introduces a wide array of basic machine learning and
+data mining methods. The exposition is not very mathematically formal, but rather focuses
+on explaining the underlying intuition and shows how to implement the algorithms in Python.
+
+ `Programming Collective Intelligence `_
+
References
----------
From cc7b19356ed7e2c3cd9ec60705d43fc7c43a88d3 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 11 Apr 2014 11:26:37 -0400
Subject: [PATCH 0191/1051] Mark up files & directories
---
docs/dev/env.rst | 6 +++---
docs/dev/virtualenvs.rst | 13 ++++++------
docs/scenarios/admin.rst | 2 +-
docs/scenarios/ci.rst | 2 +-
docs/scenarios/speed.rst | 8 ++++----
docs/scenarios/web.rst | 8 ++++----
docs/shipping/freezing.rst | 4 ++--
docs/shipping/packaging.rst | 6 +++---
docs/starting/install/osx.rst | 2 +-
docs/starting/install/win.rst | 12 +++++------
docs/starting/pip-virtualenv.rst | 28 +++++++++++++-------------
docs/writing/documentation.rst | 12 +++++------
docs/writing/structure.rst | 34 ++++++++++++++++----------------
13 files changed, 69 insertions(+), 68 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 3610307aa..aa63fee4e 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -16,7 +16,7 @@ Vim is a text editor which uses keyboard shortcuts for editing instead of menus
or icons. There exist a couple of plugins and settings for the VIM editor to
aid Python development. If you only develop in Python, a good start is to set
the default settings for indentation and line-wrapping to values compliant with
-:pep:`8`. In your home directory, open a file called ``.vimrc`` and add the
+:pep:`8`. In your home directory, open a file called :file:`.vimrc` and add the
following lines::
set textwidth=79 " lines longer than 79 columns will be broken
@@ -46,7 +46,7 @@ install vim-pyflakes_. Now you can map the functions ``Pep8()`` or ``Pyflakes()`
to any hotkey or action you want in Vim. Both plugins will display errors at
the bottom of the screen, and provide an easy way to jump to the corresponding
line. It's very handy to call these functions whenever you save a file. In
-order to do this, add the following lines to your ``.vimrc``::
+order to do this, add the following lines to your :file:`.vimrc`::
autocmd BufWritePost *.py call Pyflakes()
autocmd BufWritePost *.py call Pep8()
@@ -253,7 +253,7 @@ the current state of the environment packages. To do this, run
$ pip freeze > requirements.txt
-This will create a ``requirements.txt`` file, which contains a simple
+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. Later, when a different developer (or you, if you need to re-
create the environment) can install the same packages, with the same
diff --git a/docs/dev/virtualenvs.rst b/docs/dev/virtualenvs.rst
index cf2b285b9..3f07cfec8 100644
--- a/docs/dev/virtualenvs.rst
+++ b/docs/dev/virtualenvs.rst
@@ -30,7 +30,7 @@ Basic Usage
$ virtualenv venv
This creates a copy of Python in whichever directory you ran the command in,
-placing it in a folder named ``venv``.
+placing it in a folder named :file:`venv`.
2. To begin using the virtual environment, it needs to be activated:
@@ -94,7 +94,7 @@ Basic Usage
$ mkvirtualenv venv
-This creates the ``venv`` folder inside ``~/Envs``.
+This creates the :file:`venv` folder inside :file:`~/Envs`.
2. Work on a virtual environment:
@@ -105,6 +105,7 @@ This creates the ``venv`` folder inside ``~/Envs``.
**virtualenvwrapper** provides tab-completion on environment names. It really
helps when you have a lot of environments and have trouble remembering their
names.
+
``workon`` also deactivates whatever environment you are currently in, so you
can quickly switch between environments.
@@ -128,19 +129,19 @@ Other useful commands
``cdvirtualenv``
Navigate into the directory of the currently activated virtual environment,
- so you can browse its ``site-packages``, for example.
+ so you can browse its :file:`site-packages`, for example.
``cdsitepackages``
- Like the above, but directly into ``site-packages`` directory.
+ Like the above, but directly into :file:`site-packages` directory.
``lssitepackages``
- Shows contents of ``site-packages`` directory.
+ Shows contents of :file:`site-packages` directory.
`Full list of virtualenvwrapper commands `_.
autoenv
-------
-When you ``cd`` into a directory containing a ``.env``, `autoenv `_
+When you ``cd`` into a directory containing a :file:`.env`, `autoenv `_
automagically activates the environment.
Install it on Mac OS X using ``brew``:
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 26dc5e6a4..85fd5b8f5 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -38,7 +38,7 @@ server.
run('git pull')
run('touch app.wsgi')
-With the previous code saved in a file named fabfile.py, we can check memory
+With the previous code saved in a file named :file:`fabfile.py`, we can check memory
usage with:
.. code-block:: console
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 962c6c866..7138893ec 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -60,7 +60,7 @@ Requests whether this particular changeset breaks the build or not. So if you ar
hosting your code on Github, travis-ci is a great and easy way to get started with
Continuous Integration.
-In order to get started, add a ``.travis.yml`` file to your repository with this
+In order to get started, add a :file:`.travis.yml` file to your repository with this
example content::
language: python
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index bee6769df..96065c200 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -150,8 +150,8 @@ to be compiled into C types while also creating a Python list:
What is the difference? In the upper Cython version you can see the declaration of the variable types and the integer array
in a similar way like in standard C. For example `cdef int n,k,i` in line 3. This additional type declaration (e.g. integer)
-allows the Cython compiler to generate more efficient C code from the second code. While standard Python code is saved in `*.py` files,
-Cython code is saved in `*.pyx` files.
+allows the Cython compiler to generate more efficient C code from the second code. While standard Python code is saved in :file:`*.py` files,
+Cython code is saved in :file:`*.pyx` files.
And what is with the speed? So lets try it!
@@ -187,9 +187,9 @@ These both lines need a remark:
pyximport.install()
-The `pyximport` module allows you to import `pyx` files (e.g., `primesCy.pyx`) with the Cython-compiled version of the `primes` function.
+The `pyximport` module allows you to import :file:`*.pyx` files (e.g., :file:`primesCy.pyx`) with the Cython-compiled version of the `primes` function.
The `pyximport.install()` command allows the Python interpreter to start the Cython compiler directly to generate C-code,
-which is automatically compiled to a `*.so` C-library. Cython is able to import this library for you in your Python-code.
+which is automatically compiled to a :file:`*.so` C-library. Cython is able to import this library for you in your Python-code.
Very easy and very efficient. With the `time.time()` function you are able to compare the time between this 2 different calls to find 500 prime numbers.
On a standard notebook (dual core AMD E-450 1.6 GHz), the measured values are:
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 2d2ab5171..8a15ae9f1 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -252,7 +252,7 @@ Gondor
`Gondor `_ is a PaaS specialized for deploying Django
and Pinax applications. Gondor supports Django versions 1.2 and 1.3 on
Python version 2.7, and can automatically configure your Django site if you
-use ``local_settings.py`` for site-specific configuration information.
+use :file:`local_settings.py` for site-specific configuration information.
Gondor has a guide on deploying `Django projects `_.
@@ -365,7 +365,7 @@ to use.
application.listen(PORT)
tornado.ioloop.IOLoop.instance().start()
-The `base.html` file can be used as base for all site pages which are for example implemented in the content block.
+The :file:`base.html` file can be used as base for all site pages which are for example implemented in the content block.
.. code-block:: html
@@ -389,8 +389,8 @@ The `base.html` file can be used as base for all site pages which are for exampl
-The next listing is our site page (`site.html`) loaded in the Python app which extends `base.html`. The content block is
-automatically set into the corresponding block in the base.html page.
+The next listing is our site page (:file:`site.html`) loaded in the Python app which extends :file:`base.html`. The content block is
+automatically set into the corresponding block in the :file:`base.html` page.
.. code-block:: html
diff --git a/docs/shipping/freezing.rst b/docs/shipping/freezing.rst
index d114d741d..a54ea95b1 100644
--- a/docs/shipping/freezing.rst
+++ b/docs/shipping/freezing.rst
@@ -38,7 +38,7 @@ cx_Freeze yes yes yes yes PSF no yes yes
.. note::
All solutions need MS Visual C++ dll to be installed on target machine.
Only Pyinstaller makes self-executable exe that bundles the dll when
- passing ``--onefile`` to `Configure.py`.
+ passing ``--onefile`` to :file:`Configure.py`.
Windows
-------
@@ -72,7 +72,7 @@ Prerequisite is to install :ref:`Python on Windows `.
4. (Optionally) `one-file mode `_
-5. Generate ``.exe`` into ``dist`` directory:
+5. Generate :file:`.exe` into :file:`dist` directory:
.. code-block:: console
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index d2757f049..84ba67c3e 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -30,7 +30,7 @@ running from the directory which holds those packages which need to be installed
**Showing an example is always beneficial**
-Say if you are after installing a package called MyPackage.tar.gz, and
+Say if you are after installing a package called :file:`MyPackage.tar.gz`, and
assuming this is your directory structure:
@@ -55,7 +55,7 @@ package installer. Using Pip, you would do it like:
Having a folder with the same name as the package name is **crucial** here.
I got fooled by that, one time. But if you feel that creating a folder called
-**MyPackage** and keeping **MyPackage.tar.gz** inside that, is *redundant*,
+:file:`MyPackage` and keeping :file:`MyPackage.tar.gz` inside that, is *redundant*,
you can still install MyPackage using:
.. code-block:: console
@@ -88,7 +88,7 @@ One simple option for a personal PyPi server is to use Amazon S3. A prerequisite
4. **Upload the new files**
-* Use a client like Cyberduck to sync the entire :code:`packages` folder to your s3 bucket
+* Use a client like Cyberduck to sync the entire :file:`packages` folder to your s3 bucket
* Make sure you upload :code:`packages/simple/index.html` as well as all new files and directories
5. **Fix new file permissions**
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index cdd8b3259..ea991e6af 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -47,7 +47,7 @@ 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 ``PATH`` environment variable. You can do this by adding the following
-line at the bottom of your ``~/.bashrc`` file
+line at the bottom of your :file:`~/.bashrc` file
.. code-block:: console
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index d84084f77..7f98b0bd9 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -13,7 +13,7 @@ double-click the file. The MSI package format allows Windows administrators to
automate installation with their standard tools.
By design, Python installs to a directory with the version number embedded,
-e.g. Python version 2.7 will install at ``C:\Python27\``, so that you can
+e.g. Python version 2.7 will install at :file:`C:\Python27\`, 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
@@ -22,7 +22,7 @@ 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 PATH.
-Assuming that your Python installation is in ``C:\Python27\``, add this to your
+Assuming that your Python installation is in :file:`C:\Python27\`, add this to your
PATH:
.. code-block:: console
@@ -35,7 +35,7 @@ You can do this easily by running the following in ``powershell``:
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\Python27\;C:\Python27\Scripts\", "User")
-The second (``Scripts``) directory receives command files when certain
+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
@@ -92,14 +92,14 @@ project's directory
> virtualenv venv
-To use an environment, run the ``activate.bat`` batch file in the ``Scripts``
+To use an environment, run the :file:`activate.bat` batch file in the :file:`Scripts`
subdirectory of that environment. Your command prompt will change to show the
active environment. Once you have finished working in the current virtual
-environment, run the ``deactivate.bat`` batch file to restore your settings to
+environment, run the :file:`deactivate.bat` batch file to restore your settings to
normal.
Each new environment automatically includes a copy of ``pip`` in the
-``Scripts`` subdirectory, so that you can setup the third-party libraries and
+:file:`Scripts` subdirectory, so that you can setup the third-party libraries and
tools that you want to use in that environment. Put your own code within a
subdirectory of the environment, however you wish. When you no longer need a
particular environment, simply copy your code out of it, and then delete the
diff --git a/docs/starting/pip-virtualenv.rst b/docs/starting/pip-virtualenv.rst
index a910ae75f..b632c2b5b 100644
--- a/docs/starting/pip-virtualenv.rst
+++ b/docs/starting/pip-virtualenv.rst
@@ -18,13 +18,13 @@ 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
-``~/.bashrc`` file:
+:file:`~/.bashrc` file:
.. code-block:: console
export PIP_REQUIRE_VIRTUALENV=true
-After saving this change and sourcing the ``~/.bashrc`` file with ``source ~/.bashrc``,
+After saving this change and sourcing the :file:`~/.bashrc` file with ``source ~/.bashrc``,
pip will no longer let you install packages if you are not in a virtual environment.
If you try to use ``pip install`` outside of a virtual environment pip will gently
remind you that an activated virtual environment is needed to install packages.
@@ -34,22 +34,22 @@ remind you that an activated virtual environment is needed to install packages.
$ pip install requests
Could not find an activated virtualenv (required).
-You can also do this configuration by editing your ``pip.conf`` or ``pip.ini``
-file. ``pip.conf`` is used by Unix and Mac OS X operating systems and it can be
+You can also do this configuration by editing your :file:`pip.conf` or :file:`pip.ini`
+file. :file:`pip.conf` is used by Unix and Mac OS X operating systems and it can be
found at:
.. code-block:: console
$HOME/.pip/pip.conf
-Similarly, the ``pip.ini`` file is used by Windows operating systems and it can
+Similarly, the :file:`pip.ini` file is used by Windows operating systems and it can
be found at:
.. code-block:: console
%HOME%\pip\pip.ini
-If you don't have a ``pip.conf`` or ``pip.ini`` file at these locations, you can
+If you don't have a :file:`pip.conf` or :file:`pip.ini` file at these locations, you can
create a new file with the correct name for your operating system.
If you already have a configuration file, just add the following line under the
@@ -70,7 +70,7 @@ add the following lines to this new file:
You will of course need to install some packages globally (usually ones that you
use across different projects consistenly) and this can be accomplished by adding
-the following to your ``~/.bashrc`` file:
+the following to your :file:`~/.bashrc` file:
.. code-block:: console
@@ -78,7 +78,7 @@ the following to your ``~/.bashrc`` file:
PIP_REQUIRE_VIRTUALENV="" pip "$@"
}
-After saving the changes and sourcing your ``~/.bashrc`` file you can now install
+After saving the changes and sourcing your :file:`~/.bashrc` file you can now install
packages globally by running ``gpip install``. You can change the name of the
function to anything you like, just keep in mind that you will have to use that
name when trying to install packages globally with pip.
@@ -96,7 +96,7 @@ start working on a new project (and in a new virtual environmen as a result).
Fortunately, you can configure pip in such a way that it tries to reuse already
installed packages.
-On UNIX systems, you can add the following line to your ``.bashrc`` or ``.bash_profile``
+On UNIX systems, you can add the following line to your :file:`.bashrc` or :file:`.bash_profile`
file.
.. code-block:: console
@@ -104,25 +104,25 @@ file.
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
You can set the path to anywhere you like (as long as you have write
-access). After adding this line, ``source`` your ``.bashrc`` (or ``.bash_profile``)
+access). After adding this line, ``source`` your :file:`.bashrc` (or :file:`.bash_profile`)
file and you will be all set.
-Another way of doing the same configuration is via the ``pip.conf`` or ``pip.ini``
+Another way of doing the same configuration is via the :file:`pip.conf` or :file:`pip.ini`
files, depending on your system. If you are on Windows, you can add the following
-line to your ``pip.ini`` file under ``[global]`` settings:
+line to your :file:`pip.ini` file under ``[global]`` settings:
.. code-block:: console
download-cache = %HOME%\pip\cache
Similarly, on UNIX systems you should simply add the following line to your
-``pip.conf`` file under ``[global]`` settings:
+:file:`pip.conf` file under ``[global]`` settings:
.. code-block:: console
download-cache = $HOME/.pip/cache
Even though you can use any path you like to store your cache, it is recommended
-that you create a new folder *in* the folder where your ``pip.conf`` or ``pip.ini``
+that you create a new folder *in* the folder where your :file:`pip.conf` or :file:`pip.ini`
file lives. If you don't trust yourself with all of this path voodoo, just use
the values provided here and you will be fine.
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index 29de3e40c..b52fca7c4 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -8,7 +8,7 @@ both you and others a lot of time.
Project Documentation
---------------------
-A ``README`` file at the root directory should give general
+A :file:`README` file at the root directory should give general
information to the users and the maintainers. It should be raw text or
written in some very easy to read markup, such as
:ref:`reStructuredText-ref` and Markdown. It should contain a few
@@ -17,18 +17,18 @@ assuming the user knows anything about the project), the url of the
main source for the software, and some basic credit information. This
file is the main entry point for readers of the code.
-An ``INSTALL`` file is less necessary with python. The installation
+An :file:`INSTALL` file is less necessary with python. The installation
instructions are often reduced to one command, such as ``pip install
-module`` or ``python setup.py install`` and added to the ``README``
+module`` or ``python setup.py install`` and added to the :file:`README`
file.
-A ``LICENSE`` file should *always* be present and specify the license under which the
+A :file:`LICENSE` file should *always* be present and specify the license under which the
software is made available to the public.
-A ``TODO`` file or a ``TODO`` section in ``README`` should list the
+A :file:`TODO` file or a ``TODO`` section in :file:`README` should list the
planned development for the code.
-A ``CHANGELOG`` file or section in ``README`` should compile a short
+A :file:`CHANGELOG` file or section in :file:`README` should compile a short
overview of the changes in the code base for the latest versions.
Project Publication
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 6ebd5d8f4..358972093 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -34,7 +34,7 @@ to do it poorly. Some signs of a poorly structured project
include:
- Multiple and messy circular dependencies: if your classes
- Table and Chair in furn.py need to import Carpenter from workers.py
+ Table and Chair in :file:`furn.py` need to import Carpenter from :file:`workers.py`
to answer a question such as ``table.isdoneby()``,
and if conversely the class Carpenter needs to import Table and Chair,
to answer the question ``carpenter.whatdo()``, then you
@@ -91,15 +91,15 @@ environment, or your project's internal modules.
To keep in line with the style guide, keep module names short, lowercase, and
be sure to avoid using special symbols like the dot (.) or question mark (?).
-So a file name like `my.spam.py` is one you should avoid! Naming this way
+So a file name like :file:`my.spam.py` is one you should avoid! Naming this way
will interfere with the way python looks for modules.
-In the case of `my.spam.py` python expects to find a "spam.py" file in a folder named "my"
+In the case of `my.spam.py` python expects to find a :file:`spam.py` file in a folder named :file:`my`
which is not the case. There is an
`example `_ of how the
dot notation should be used in the python docs.
-If you'd like you could name it as `my_spam.py` but even our friend the
+If you'd like you could name it as :file:`my_spam.py` but even our friend the
underscore should not be seen often in module names.
Aside for some naming restrictions, nothing special is required for a Python file
@@ -107,12 +107,12 @@ to be a module, but the import mechanism needs to be understood in order to use
this concept properly and avoid some issues.
Concretely, the ``import modu`` statement will look for the proper file, which is
-`modu.py` in the same directory as the caller if it exists. If it is not
-found, the Python interpreter will search for `modu.py` in the "path"
+:file:`modu.py` in the same directory as the caller if it exists. If it is not
+found, the Python interpreter will search for :file:`modu.py` in the "path"
recursively and raise an ImportError exception if it is not found.
-Once `modu.py` is found, the Python interpreter will execute the module in an
-isolated scope. Any top-level statement in `modu.py` will be executed,
+Once :file:`modu.py` is found, the Python interpreter will execute the module in an
+isolated scope. Any top-level statement in :file:`modu.py` will be executed,
including other imports if any. Function and class definitions are stored in
the module's dictionary.
@@ -176,24 +176,24 @@ Packages
Python provides a very straightforward packaging system, which is simply an
extension of the module mechanism to a directory.
-Any directory with an __init__.py file is considered a Python package. The
+Any directory with an :file:`__init__.py` file is considered a Python package. The
different modules in the package are imported in a similar manner as plain
-modules, but with a special behavior for the __init__.py file, which is used to
+modules, but with a special behavior for the :file:`__init__.py` file, which is used to
gather all package-wide definitions.
-A file modu.py in the directory pack/ is imported with the statement `import
-pack.modu`. This statement will look for an __init__.py file in `pack`, execute
-all of its top-level statements. Then it will look for a file `pack/modu.py` and
+A file :file:`modu.py` in the directory :file:`pack/` is imported with the statement `import
+pack.modu`. This statement will look for an :file:`__init__.py` file in :file:`pack`, execute
+all of its top-level statements. Then it will look for a file :file:`pack/modu.py` and
execute all of its top-level statements. After these operations, any variable,
-function, or class defined in modu.py is available in the pack.modu namespace.
+function, or class defined in :file:`modu.py` is available in the pack.modu namespace.
-A commonly seen issue is to add too much code to __init__.py
+A commonly seen issue is to add too much code to :file:`__init__.py`
files. When the project complexity grows, there may be sub-packages and
sub-sub-packages in a deep directory structure, and then, importing a single item
-from a sub-sub-package will require executing all __init__.py files met while
+from a sub-sub-package will require executing all :file:`__init__.py` files met while
traversing the tree.
-Leaving an __init__.py file empty is considered normal and even a good practice,
+Leaving an :file:`__init__.py` file empty is considered normal and even a good practice,
if the package's modules and sub-packages do not need to share any code.
Lastly, a convenient syntax is available for importing deeply nested packages:
From b7f0d20511dd83dcb476edd622c6761ed91f8f45 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 11 Apr 2014 14:32:40 -0400
Subject: [PATCH 0192/1051] =?UTF-8?q?scenarios/ci:=20Github=20=E2=96=B6?=
=?UTF-8?q?=EF=B8=8E=20GitHub?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/scenarios/ci.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 7138893ec..19039deb7 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -55,9 +55,9 @@ Travis-CI
---------
`Travis-CI `_ is a distributed CI server which builds tests
for open source projects for free. It provides multiple workers to run Python tests
-on and seamlessly integrates with Github. You can even have it comment on your Pull
+on and seamlessly integrates with GitHub. You can even have it comment on your Pull
Requests whether this particular changeset breaks the build or not. So if you are
-hosting your code on Github, travis-ci is a great and easy way to get started with
+hosting your code on GitHub, travis-ci is a great and easy way to get started with
Continuous Integration.
In order to get started, add a :file:`.travis.yml` file to your repository with this
@@ -83,5 +83,5 @@ notifications, before and after steps and much more. The
thorough.
In order to activate testing for your project, go to `the travis-ci site `_
-and login with your Github account. Then activate your project in your profile settings and that's
-it. From now on, your project's tests will be run on every push to Github.
+and login with your GitHub account. Then activate your project in your profile settings and that's
+it. From now on, your project's tests will be run on every push to GitHub.
From 3a2850bc346e161f89a257c6383ebd7a85306ca0 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 11 Apr 2014 14:35:30 -0400
Subject: [PATCH 0193/1051] =?UTF-8?q?Lets=20=E2=96=B6=EF=B8=8E=20Let's=20(?=
=?UTF-8?q?where=20appropriate)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/scenarios/scrape.rst | 4 ++--
docs/scenarios/speed.rst | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/scenarios/scrape.rst b/docs/scenarios/scrape.rst
index cb2764b0b..69c6e349f 100644
--- a/docs/scenarios/scrape.rst
+++ b/docs/scenarios/scrape.rst
@@ -24,7 +24,7 @@ module instead of the already built-in urlib2 due to improvements in speed and
readability. You can easily install both using ``pip install lxml`` and
``pip install requests``.
-Lets start with the imports:
+Let's start with the imports:
.. code-block:: python
@@ -71,7 +71,7 @@ Knowing this we can create the correct XPath query and use the lxml
#This will create a list of prices
prices = tree.xpath('//span[@class="item-price"]/text()')
-Lets see what we got exactly:
+Let's see what we got exactly:
.. code-block:: python
diff --git a/docs/scenarios/speed.rst b/docs/scenarios/speed.rst
index 96065c200..61cf80b6c 100644
--- a/docs/scenarios/speed.rst
+++ b/docs/scenarios/speed.rst
@@ -153,7 +153,7 @@ in a similar way like in standard C. For example `cdef int n,k,i` in line 3. Th
allows the Cython compiler to generate more efficient C code from the second code. While standard Python code is saved in :file:`*.py` files,
Cython code is saved in :file:`*.pyx` files.
-And what is with the speed? So lets try it!
+And what is with the speed? So let's try it!
.. code-block:: python
From 64d756feb986c68a044c6b21ce93dacb50ca5e02 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 11 Apr 2014 14:55:19 -0400
Subject: [PATCH 0194/1051] =?UTF-8?q?OSX=20=E2=96=B6=EF=B8=8E=20OS=C2=A0X?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Also removed âMacâ, as the official name was officially shortened to âOSÂ Xâ a few releases ago.
---
docs/scenarios/gui.rst | 4 ++--
docs/shipping/freezing.rst | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 2bde51920..989f67139 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -18,7 +18,7 @@ and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
Cocoa
-----
-.. note:: The Cocoa framework is only available on Mac OSX. Don't pick this if you're writing a cross-platform application!
+.. note:: The Cocoa framework is only available on OSÂ X. Don't pick this if you're writing a cross-platform application!
GTk
---
@@ -45,7 +45,7 @@ The main resource for information is the website: http://kivy.org
PyObjC
~~~~~~
-.. note:: Only available on Mac OSX. Don't pick this if you're writing a cross-platform application.
+.. note:: Only available on OSÂ X. Don't pick this if you're writing a cross-platform application.
PySide
~~~~~~
diff --git a/docs/shipping/freezing.rst b/docs/shipping/freezing.rst
index a54ea95b1..6859b739d 100644
--- a/docs/shipping/freezing.rst
+++ b/docs/shipping/freezing.rst
@@ -89,7 +89,7 @@ Prerequisite is to have installed :ref:`Python, Setuptools and pywin32 dependenc
- `Manual `_
-OSX
+OSÂ X
---
From 01ec9563894351806f468920b3eb481e546fd135 Mon Sep 17 00:00:00 2001
From: Ben McGinnes
Date: Mon, 14 Apr 2014 08:40:20 +1000
Subject: [PATCH 0195/1051] Update conf.py
Updated the copyright year for the ePub output/metadata (epub_copyright).
---
docs/conf.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/conf.py b/docs/conf.py
index 92534d93d..eba809892 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -231,7 +231,7 @@
epub_title = u'pythonguide'
epub_author = u'Kenneth Reitz'
epub_publisher = u'Kenneth Reitz'
-epub_copyright = u'2010, Kenneth Reitz'
+epub_copyright = u'2014, Kenneth Reitz'
# The language of the text. It defaults to the language option
# or en if the language is not set.
From cb94c3af229b9283fac221720ad76f408efa6924 Mon Sep 17 00:00:00 2001
From: Ben McGinnes
Date: Mon, 14 Apr 2014 11:24:05 +1000
Subject: [PATCH 0196/1051] Added search.html to epub_exclude_files
Added search.html to epub_exclude_files to avoid these errors:
Epubcheck Version 3.0
Validating against EPUB version 2.0
ERROR: pythonguide.epub/search.html(17,57): attribute "id" not allowed here; expected attribute "charset", "defer", "src" or "xml:space"
ERROR: pythonguide.epub/search.html(51,32): element "form" not allowed anywhere; expected the element end-tag, text or element "a", "abbr", "acronym", "address", "applet", "b", "bdo", "big", "blockquote", "br", "cite", "code", "del", "dfn", "div", "dl", "em", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "iframe", "img", "ins", "kbd", "map", "noscript", "ns:svg", "object", "ol", "p", "pre", "q", "samp", "script", "small", "span", "strong", "sub", "sup", "table", "tt", "ul" or "var" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR: pythonguide.epub/search.html(54,66): element "form" not allowed anywhere; expected the element end-tag, text or element "a", "abbr", "acronym", "address", "applet", "b", "bdo", "big", "blockquote", "br", "cite", "code", "del", "dfn", "div", "dl", "em", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "iframe", "img", "ins", "kbd", "map", "noscript", "ns:svg", "object", "ol", "p", "pre", "q", "samp", "script", "small", "span", "strong", "sub", "sup", "table", "tt", "ul" or "var" (with xmlns:ns="http://www.w3.org/2000/svg")
It should be noted that ePub does not use javascript for anything (or any scripting), so all those other pages with the quick search function do bad things to ePub files. I'll send through the rest of the errors in a separate issue.
---
docs/conf.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/docs/conf.py b/docs/conf.py
index 92534d93d..b4d183314 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -231,7 +231,7 @@
epub_title = u'pythonguide'
epub_author = u'Kenneth Reitz'
epub_publisher = u'Kenneth Reitz'
-epub_copyright = u'2010, Kenneth Reitz'
+epub_copyright = u'2014, Kenneth Reitz'
# The language of the text. It defaults to the language option
# or en if the language is not set.
@@ -256,7 +256,9 @@
#epub_post_files = []
# A list of files that should not be packed into the epub file.
-#epub_exclude_files = []
+epub_exclude_files = [
+ ('search.html', 'Search'),
+]
# The depth of the table of contents in toc.ncx.
#epub_tocdepth = 3
From 6c6e5f4c848257a493548fd5c68daf7690e046c1 Mon Sep 17 00:00:00 2001
From: Vishal Sodani
Date: Mon, 14 Apr 2014 11:03:58 +0530
Subject: [PATCH 0197/1051] Add book - Writing Idiomatic Python
---
docs/intro/learning.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 9a1a3b411..790cbf787 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -222,3 +222,10 @@ core language, with descriptions of commonly used modules and toolkits. It cover
Python 3 and 2.6 versions.
`Python Pocket Reference `_
+
+Writing Idiomatic Python 2.7.3
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+"Writing Idiomatic Python", written by Jeff Knupp, contains the most common and important Python idioms in a format that maximizes identification and understanding. Each idiom is presented as a recommendation to write some commonly used piece of code. It is followed by an explanation of why the idiom is important. It also contains two code samples: the "Harmful" way to write it and the "Idiomatic" way
+
+
From d8bc8512d1452dc6137e98ef4b7300710df246a7 Mon Sep 17 00:00:00 2001
From: Vishal Sodani
Date: Mon, 14 Apr 2014 11:08:06 +0530
Subject: [PATCH 0198/1051] Add book link
---
docs/intro/learning.rst | 2 ++
1 file changed, 2 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 790cbf787..7195c8e02 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -228,4 +228,6 @@ Writing Idiomatic Python 2.7.3
"Writing Idiomatic Python", written by Jeff Knupp, contains the most common and important Python idioms in a format that maximizes identification and understanding. Each idiom is presented as a recommendation to write some commonly used piece of code. It is followed by an explanation of why the idiom is important. It also contains two code samples: the "Harmful" way to write it and the "Idiomatic" way
+ `Writing Idiomatic Python 2.7.3 `_
+
From de1abb0727dfd40c654b7e41e6280e680af95f67 Mon Sep 17 00:00:00 2001
From: Natan L
Date: Sun, 13 Apr 2014 23:35:24 -0700
Subject: [PATCH 0199/1051] Fix typo: "Stye" --> "Style"
---
CONTRIBUTING.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 98580a3b8..481f3f63c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -10,6 +10,6 @@ http://docs.python-guide.org/en/latest/notes/contribute/
Style Guide
-----------
-For all contributions, please follow the `Guide Stye Guide`:
+For all contributions, please follow the `Guide Style Guide`:
-http://docs.python-guide.org/en/latest/notes/styleguide/
\ No newline at end of file
+http://docs.python-guide.org/en/latest/notes/styleguide/
From 4a3375e4db4c6a1a205e1ceadbbcf4e57048eb5e Mon Sep 17 00:00:00 2001
From: Vishal Sodani
Date: Mon, 14 Apr 2014 14:22:23 +0530
Subject: [PATCH 0200/1051] Wrap text
---
docs/intro/learning.rst | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 7195c8e02..6d66bdf1f 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -226,7 +226,11 @@ Python 3 and 2.6 versions.
Writing Idiomatic Python 2.7.3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Writing Idiomatic Python", written by Jeff Knupp, contains the most common and important Python idioms in a format that maximizes identification and understanding. Each idiom is presented as a recommendation to write some commonly used piece of code. It is followed by an explanation of why the idiom is important. It also contains two code samples: the "Harmful" way to write it and the "Idiomatic" way
+"Writing Idiomatic Python", written by Jeff Knupp, contains the most common and
+important Python idioms in a format that maximizes identification and understanding.
+Each idiom is presented as a recommendation to write some commonly used piece of code.
+It is followed by an explanation of why the idiom is important. It also contains two
+code samples: the "Harmful" way to write it and the "Idiomatic" way
`Writing Idiomatic Python 2.7.3 `_
From 841fa9cf87b00250a4b75514819f749572be0d71 Mon Sep 17 00:00:00 2001
From: Tony
Date: Mon, 14 Apr 2014 08:02:32 -0400
Subject: [PATCH 0201/1051] =?UTF-8?q?freezing.rst:=20Fix=20heading?=
=?UTF-8?q?=E2=80=99s=20hyphen=20length?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
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 6859b739d..7b118fe1f 100644
--- a/docs/shipping/freezing.rst
+++ b/docs/shipping/freezing.rst
@@ -90,7 +90,7 @@ Prerequisite is to have installed :ref:`Python, Setuptools and pywin32 dependenc
OSÂ X
----
+----
py2app
From ba34421d661ac5673b43daadf37ac7414048e39b Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 11 Apr 2014 11:32:33 -0400
Subject: [PATCH 0202/1051] Mark up command line options
---
docs/dev/env.rst | 4 ++--
docs/shipping/freezing.rst | 2 +-
docs/shipping/packaging.rst | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index aa63fee4e..e7ed001af 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -38,7 +38,7 @@ 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 `+python` you can also utilize some very handy
+If your VIM is compiled with :option:`+python` you can also utilize some very handy
plugins to do these checks from within the editor.
For PEP8 checking, install the vim-pep8_ plugin, and for pyflakes you can
@@ -241,7 +241,7 @@ case, it would be ``rm -rf venv``.)
Other Notes
^^^^^^^^^^^
-Running ``virtualenv`` with the option ``--no-site-packages`` will not
+Running ``virtualenv`` with the option :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 a54ea95b1..d23f7471c 100644
--- a/docs/shipping/freezing.rst
+++ b/docs/shipping/freezing.rst
@@ -38,7 +38,7 @@ cx_Freeze yes yes yes yes PSF no yes yes
.. note::
All solutions need MS Visual C++ dll to be installed on target machine.
Only Pyinstaller makes self-executable exe that bundles the dll when
- passing ``--onefile`` to :file:`Configure.py`.
+ passing :option:`--onefile` to :file:`Configure.py`.
Windows
-------
diff --git a/docs/shipping/packaging.rst b/docs/shipping/packaging.rst
index 84ba67c3e..d9c91b319 100644
--- a/docs/shipping/packaging.rst
+++ b/docs/shipping/packaging.rst
@@ -67,7 +67,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 (``-U``) which will update all its packages to their
+features like an administrative command (:option:`-U`) which will update all its packages to their
latest versions found on PyPI.
From f2fc5d9c1cb5a2e32086ab23910a0f5e35468502 Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 11 Apr 2014 15:10:03 -0400
Subject: [PATCH 0203/1051] =?UTF-8?q?Mark=20up=20files=20(=E2=80=A6that=20?=
=?UTF-8?q?I=20missed=20earlier=E2=80=A6)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/_themes/README.rst | 2 +-
docs/dev/env.rst | 2 +-
docs/shipping/freezing.rst | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/_themes/README.rst b/docs/_themes/README.rst
index 2e875d46e..ac398041a 100644
--- a/docs/_themes/README.rst
+++ b/docs/_themes/README.rst
@@ -9,7 +9,7 @@ this guide:
1. put this folder as _themes into your docs folder. Alternatively
you can also use git submodules to check out the contents there.
-2. add this to your conf.py: ::
+2. add this to your :file:`conf.py`: ::
sys.path.append(os.path.abspath('_themes'))
html_theme_path = ['_themes']
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index aa63fee4e..eee0bfc04 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -280,7 +280,7 @@ virtualenv a pleasure to use by wrapping the command line API with a nicer CLI.
$ pip install virtualenvwrapper
-Put this into your ``~/.bash_profile`` (Linux/Mac) file:
+Put this into your :file:`~/.bash_profile` (Linux/Mac) file:
.. code-block:: console
diff --git a/docs/shipping/freezing.rst b/docs/shipping/freezing.rst
index a54ea95b1..46e57f169 100644
--- a/docs/shipping/freezing.rst
+++ b/docs/shipping/freezing.rst
@@ -57,7 +57,7 @@ Prerequisite is to install :ref:`Python on Windows `.
1. Download and install http://sourceforge.net/projects/py2exe/files/py2exe/
-2. Write setup.py (`List of configuration options `_)::
+2. Write :file:`setup.py` (`List of configuration options `_)::
.. code-block:: python
From b15f773f03d26cb7cba762f7a50dd3f9e2aaa81d Mon Sep 17 00:00:00 2001
From: Zearin
Date: Fri, 11 Apr 2014 11:30:35 -0400
Subject: [PATCH 0204/1051] Mark up environment variables
---
docs/starting/install/osx.rst | 4 ++--
docs/starting/install/win.rst | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index ea991e6af..b3722b136 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -46,7 +46,7 @@ simply run
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 ``PATH`` environment variable. You can do this by adding the following
+of your :envvar:`PATH` environment variable. You can do this by adding the following
line at the bottom of your :file:`~/.bashrc` file
.. code-block:: console
@@ -60,7 +60,7 @@ Now, we can install Python 2.7:
$ brew install python
This will take a minute or two. Once that's complete, you'll have to add the
-new Python scripts directory to your ``PATH``
+new Python scripts directory to your :envvar:`PATH`
.. code-block:: console
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index 7f98b0bd9..e8fe0a2a9 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -17,13 +17,13 @@ e.g. Python version 2.7 will install at :file:`C:\Python27\`, 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 ``PATH`` environment variable, so that you always have control over
+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 PATH.
+tedious, so add the directories for your default Python version to the :envvar:`PATH`.
Assuming that your Python installation is in :file:`C:\Python27\`, add this to your
-PATH:
+:envvar:`PATH`:
.. code-block:: console
From 7593abaaee908cdfecb681c51a13bb43506b4b68 Mon Sep 17 00:00:00 2001
From: Vishal Sodani
Date: Mon, 14 Apr 2014 22:08:33 +0530
Subject: [PATCH 0205/1051] Rename title, add links for 2.7.3 and 3.3
---
docs/intro/learning.rst | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 6d66bdf1f..b7eca0d4f 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -223,7 +223,7 @@ Python 3 and 2.6 versions.
`Python Pocket Reference `_
-Writing Idiomatic Python 2.7.3
+Writing Idiomatic Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Writing Idiomatic Python", written by Jeff Knupp, contains the most common and
@@ -232,6 +232,8 @@ Each idiom is presented as a recommendation to write some commonly used piece of
It is followed by an explanation of why the idiom is important. It also contains two
code samples: the "Harmful" way to write it and the "Idiomatic" way
- `Writing Idiomatic Python 2.7.3 `_
+ `For Python 2.7.3+ `_
+
+ `For Python 3.3+ `_
From c2e59785e0f54ff26fefa65d5205817b01cd078e Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 12:56:28 -0700
Subject: [PATCH 0206/1051] Update links to Python documentation.
---
docs/intro/documentation.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/intro/documentation.rst b/docs/intro/documentation.rst
index cd22c95fa..8f3e17001 100644
--- a/docs/intro/documentation.rst
+++ b/docs/intro/documentation.rst
@@ -6,8 +6,8 @@ Official Documentation
The official Python Language and Library documentation can be found here:
- - `Python 2.x `_
- - `Python 3.x `_
+ - `Python 2.x `_
+ - `Python 3.x `_
Read the Docs
From f99e5c55514ec2c982cabbdd6f54de59f88d9fc3 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 13:21:54 -0700
Subject: [PATCH 0207/1051] Expanded on Read the Docs section
---
docs/intro/documentation.rst | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/docs/intro/documentation.rst b/docs/intro/documentation.rst
index 8f3e17001..ddd2e4582 100644
--- a/docs/intro/documentation.rst
+++ b/docs/intro/documentation.rst
@@ -13,9 +13,10 @@ The official Python Language and Library documentation can be found here:
Read the Docs
-------------
-Read the Docs is a popular community project, providing a single location for
-all documentation of popular and even more exotic Python modules.
+Read the Docs is a popular community project that hosts documentation
+for open source software. It holds documentation for many Python modules,
+both popular and exotic.
- `Read the Docs `_
+ `Read the Docs `_
From 1bb07d41a5df2fd3cc5bb772c5f8b8961123f049 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 13:23:29 -0700
Subject: [PATCH 0208/1051] Added pydoc section
---
docs/intro/documentation.rst | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/docs/intro/documentation.rst b/docs/intro/documentation.rst
index ddd2e4582..bab0a9f75 100644
--- a/docs/intro/documentation.rst
+++ b/docs/intro/documentation.rst
@@ -20,3 +20,21 @@ both popular and exotic.
`Read the Docs `_
+pydoc
+-----
+
+:program:`pydoc` is a utlity that is installed when you install Python.
+It allows you to quickly retrieve and search for documentation from your
+shell. For example, if you needed a quick refresher on the
+:mod:`time` module, pulling up documentation would be as simple as
+
+ .. code-block:: bash
+
+ $ pydoc time
+
+The above command is essentially equivalent to opening the Python REPL
+and running
+
+ .. code-block:: python
+
+ >>> help(time)
From e7f23a931665f67d407a50b2aeed54a72852fec3 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 13:28:59 -0700
Subject: [PATCH 0209/1051] Revised code-block types
---
docs/intro/documentation.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/intro/documentation.rst b/docs/intro/documentation.rst
index bab0a9f75..dd5053ff7 100644
--- a/docs/intro/documentation.rst
+++ b/docs/intro/documentation.rst
@@ -28,13 +28,13 @@ It allows you to quickly retrieve and search for documentation from your
shell. For example, if you needed a quick refresher on the
:mod:`time` module, pulling up documentation would be as simple as
- .. code-block:: bash
+ .. code-block:: console
$ pydoc time
The above command is essentially equivalent to opening the Python REPL
and running
- .. code-block:: python
+ .. code-block:: pycon
>>> help(time)
From ef998acd2b2deb20e32c7ca2466ad540935c017c Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 13:42:03 -0700
Subject: [PATCH 0210/1051] Revised semantics in section 'mock'
---
docs/writing/tests.rst | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index e77160cff..9484cdc05 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -251,8 +251,9 @@ the need to change any other code.
mock
----
-``mock`` is a library for testing in Python. As of Python 3.3, it is
-available in the `standard library `_.
For older versions of Python:
From 00ebb59a19470f5a2e9f8631254394b9c2859928 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 17:01:29 -0700
Subject: [PATCH 0211/1051] Use :mod: tag for modules
---
docs/writing/tests.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 9484cdc05..f42d6394d 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -16,7 +16,7 @@ Some general rules of testing:
alone, and also within the test suite, regardless of the order they are called.
The implication of this rule is that each test must be loaded with a fresh
dataset and may have to do some cleanup afterwards. This is usually
- handled by ``setUp()`` and ``tearDown()`` methods.
+ handled by :meth:`setUp()` and :meth:`tearDown()` methods.
- Try hard to make tests that run fast. If one single test needs more than a
few millisecond to run, development will be slowed down or the tests will not
@@ -75,11 +75,11 @@ The Basics
Unittest
--------
-Unittest is the batteries-included test module in the Python standard library.
+:mod:`unittest` is the batteries-included test module in the Python standard library.
Its API will be familiar to anyone who has used any of the JUnit/nUnit/CppUnit
series of tools.
-Creating testcases is accomplished by subclassing a TestCase base class
+Creating testcases is accomplished by subclassing a :class:`TestCase` base class
.. code-block:: python
@@ -100,7 +100,7 @@ As of Python 2.7 unittest also includes its own test discovery mechanisms.
Doctest
-------
-The doctest module searches for pieces of text that look like interactive
+The :mod:`doctest` module searches for pieces of text that look like interactive
Python sessions in docstrings, and then executes those sessions to verify that
they work exactly as shown.
From 1800feb118408ea406e96712b4f9db20023d5813 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 17:08:22 -0700
Subject: [PATCH 0212/1051] Wrap lines at 78 char as much as possible.
---
docs/writing/tests.rst | 59 +++++++++++++++++++++---------------------
1 file changed, 30 insertions(+), 29 deletions(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index f42d6394d..d88877cd9 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -13,52 +13,53 @@ Some general rules of testing:
correct.
- Each test unit must be fully independent. Each of them must be able to run
- alone, and also within the test suite, regardless of the order they are called.
- The implication of this rule is that each test must be loaded with a fresh
- dataset and may have to do some cleanup afterwards. This is usually
- handled by :meth:`setUp()` and :meth:`tearDown()` methods.
+ alone, and also within the test suite, regardless of the order they are
+ called. The implication of this rule is that each test must be loaded with
+ a fresh dataset and may have to do some cleanup afterwards. This is
+ usually handled by :meth:`setUp()` and :meth:`tearDown()` methods.
- Try hard to make tests that run fast. If one single test needs more than a
- few millisecond to run, development will be slowed down or the tests will not
- be run as often as desirable. In some cases, tests can't be fast because they
- need a complex data structure to work on, and this data structure must be
- loaded every time the test runs. Keep these heavier tests in a separate test
- suite that is run by some scheduled task, and run all other tests as often
- as needed.
+ few millisecond to run, development will be slowed down or the tests will
+ not be run as often as desirable. In some cases, tests can't be fast because
+ they need a complex data structure to work on, and this data structure must
+ be loaded every time the test runs. Keep these heavier tests in a separate
+ test suite that is run by some scheduled task, and run all other tests as
+ often as needed.
- Learn your tools and learn how to run a single test or a test case. Then,
when developing a function inside a module, run this function's tests very
often, ideally automatically when you save the code.
- Always run the full test suite before a coding session, and run it again
- after. This will give you more confidence that you did not break anything in
- the rest of the code.
+ after. This will give you more confidence that you did not break anything
+ in the rest of the code.
-- It is a good idea to implement a hook that runs all tests before pushing code
- to a shared repository.
+- It is a good idea to implement a hook that runs all tests before pushing
+ code to a shared repository.
-- If you are in the middle of a development session and have to interrupt your work, it
- is a good idea to write a broken unit test about what you want to develop next.
- When coming back to work, you will have a pointer to where you were and get
- back on track faster.
+- If you are in the middle of a development session and have to interrupt
+ your work, it is a good idea to write a broken unit test about what you
+ want to develop next. When coming back to work, you will have a pointer
+ to where you were and get back on track faster.
- The first step when you are debugging your code is to write a new test
pinpointing the bug. While it is not always possible to do, those bug
catching test are among the most valuable pieces of code in your project.
-- Use long and descriptive names for testing functions. The style guide here is
- slightly different than that of running code, where short names are often
- preferred. The reason is testing functions are never called explicitly.
+- Use long and descriptive names for testing functions. The style guide here
+ is slightly different than that of running code, where short names are
+ often preferred. The reason is testing functions are never called explicitly.
``square()`` or even ``sqr()`` is ok in running code, but in testing code you
would have names such as ``test_square_of_number_2()``,
- ``test_square_negative_number()``. These function names are displayed when a
- test fail, and should be as descriptive as possible.
-
-- When something goes wrong or has to be changed, and if your code has a good
- set of tests, you or other maintainers will rely largely on the testing suite
- to fix the problem or modify a given behavior. Therefore the testing code will
- be read as much as or even more than the running code. A unit test whose
- purpose is unclear is not very helpful is this case.
+ ``test_square_negative_number()``. These function names are displayed when
+ a test fails, and should be as descriptive as possible.
+
+- When something goes wrong or has to be changed, and if your code has a
+ good set of tests, you or other maintainers will rely largely on the
+ testing suite to fix the problem or modify a given behavior. Therefore
+ the testing code will be read as much as or even more than the running
+ code. A unit test whose purpose is unclear is not very helpful is this
+ case.
- Another use of the testing code is as an introduction to new developers. When
someone will have to work on the code base, running and reading the related
From 2cff35ef3020a865cc92dcc0a1c9d741d2320dc0 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Mon, 14 Apr 2014 17:32:11 -0700
Subject: [PATCH 0213/1051] Revise Unittest section description
---
docs/writing/tests.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index d88877cd9..ae99fd155 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -76,11 +76,11 @@ The Basics
Unittest
--------
-:mod:`unittest` is the batteries-included test module in the Python standard library.
-Its API will be familiar to anyone who has used any of the JUnit/nUnit/CppUnit
-series of tools.
+:mod:`unittest` is the batteries-included test module in the Python standard
+library. Its API will be familiar to anyone who has used any of the
+JUnit/nUnit/CppUnit series of tools.
-Creating testcases is accomplished by subclassing a :class:`TestCase` base class
+Creating test cases is accomplished by subclassing :class:`unittest.TestCase`.
.. code-block:: python
From 9a09be9cfa75714c3f0c1dfd932104eedb274631 Mon Sep 17 00:00:00 2001
From: Vishal Sodani
Date: Tue, 15 Apr 2014 08:29:50 +0530
Subject: [PATCH 0214/1051] Fix format
---
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 b7eca0d4f..959859f94 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -224,7 +224,7 @@ Python 3 and 2.6 versions.
`Python Pocket Reference `_
Writing Idiomatic Python
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~
"Writing Idiomatic Python", written by Jeff Knupp, contains the most common and
important Python idioms in a format that maximizes identification and understanding.
From d7e3519fc4ad828f3534864d8d38e9ccbc9aa2bd Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 16 Apr 2014 11:21:39 -0700
Subject: [PATCH 0215/1051] Update Heroku Python guide link
---
docs/scenarios/web.rst | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 8a15ae9f1..db6a685e6 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -160,14 +160,14 @@ uWSGI
-----
`uWSGI `_ is a full stack for building
-hosting services. In addition to process management, process monitoring,
-and other functionality, uWSGI acts as an application server for various
+hosting services. In addition to process management, process monitoring,
+and other functionality, uWSGI acts as an application server for various
programming languages and protocols - including Python and WSGI. uWSGI can
-either be run as a stand-alone web router, or be run behind a full web
+either be run as a stand-alone web router, or be run behind a full web
server (such as Nginx or Apache). In the latter case, a web server can
configure uWSGI and an application's operation over the
`uwsgi `_
-protocol. uWSGI's web server support allows for dynamically configuring
+protocol. uWSGI's web server support allows for dynamically configuring
Python, passing environment variables and further tuning. For full details,
see `uWSGI magic
variables `_.
@@ -221,9 +221,9 @@ start to charge you once you "scale" your application to run on more than one
Dyno (abstracted servers) at a time.
Heroku publishes `step-by-step instructions
-`_ on how to set up your first
-application for use in Heroku, and maintains a list of `example applications
-`_.
+`_ on
+how to set up your first application for use in Heroku, and maintains a
+list of `example applications `_.
DotCloud
From 5a8324f60d0d219fca73717bd3f2c6d1a51a2f83 Mon Sep 17 00:00:00 2001
From: kuyan
Date: Wed, 16 Apr 2014 11:28:13 -0700
Subject: [PATCH 0216/1051] Link rot - python.herokuapp.com no longer exists.
python.herokuapp.com 404s but python.heroku.com redirects to
Python documentation for Heroku.
---
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 db6a685e6..7962279d4 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -220,10 +220,10 @@ free of charge. Heroku is best described as a horizontal scaling platform. They
start to charge you once you "scale" your application to run on more than one
Dyno (abstracted servers) at a time.
-Heroku publishes `step-by-step instructions
+Heroku maintains `articles `_
+on using Python with Heroku as well as `step-by-step instructions
`_ on
-how to set up your first application for use in Heroku, and maintains a
-list of `example applications `_.
+how to set up your first application.
DotCloud
From 3ca7ebce5d115bd8a8e104cff79948bff73d9f92 Mon Sep 17 00:00:00 2001
From: Razzi
Date: Fri, 18 Apr 2014 23:26:25 -0400
Subject: [PATCH 0217/1051] update Gondor description
---
docs/scenarios/web.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 7962279d4..4fcedf070 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -250,8 +250,8 @@ Gondor
~~~~~~
`Gondor `_ is a PaaS specialized for deploying Django
-and Pinax applications. Gondor supports Django versions 1.2 and 1.3 on
-Python version 2.7, and can automatically configure your Django site if you
+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 `_.
From dcc45981b1a895c20f834ce72cae5f17eeeda9f0 Mon Sep 17 00:00:00 2001
From: Grant Regimbal
Date: Thu, 24 Apr 2014 13:09:55 -0700
Subject: [PATCH 0218/1051] Added click a new cli to the cli page
---
docs/scenarios/cli.rst | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index cee4872d0..14663e069 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -11,6 +11,14 @@ filled with very useful tools for developing commandline applications.
It supports features such as; CLI Colors and Indents, Simple and Powerful
Column Printer, Iterator based progress bar and Implicit argument handling.
+Click
+-----
+
+`click `_ is a Python package for creating beautiful
+command line interfaces in a composable way with as little amount of code as
+necessary. Itâs the âCommand Line Interface Creation Kitâ. Itâs highly
+configurable but comes with good defaults out of the box.
+
docopt
------
From 480852fdc5454c27329c495cdbaab81438806b2f Mon Sep 17 00:00:00 2001
From: Grant Regimbal
Date: Sat, 26 Apr 2014 08:36:12 -0700
Subject: [PATCH 0219/1051] removing beautiful could be seen as biased
---
docs/scenarios/cli.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 14663e069..79519c03c 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -14,8 +14,8 @@ Column Printer, Iterator based progress bar and Implicit argument handling.
Click
-----
-`click `_ is a Python package for creating beautiful
-command line interfaces in a composable way with as little amount of code as
+`click `_ is a Python package for creating command
+line interfaces in a composable way with as little amount of code as
necessary. Itâs the âCommand Line Interface Creation Kitâ. Itâs highly
configurable but comes with good defaults out of the box.
From b20eb4c10cc0fa2ac2a50b91f3f258a8e9ac101e Mon Sep 17 00:00:00 2001
From: Kenneth Reitz
Date: Wed, 30 Apr 2014 18:08:37 -0400
Subject: [PATCH 0220/1051] Update cli.rst
---
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 79519c03c..215358002 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -14,7 +14,7 @@ Column Printer, Iterator based progress bar and Implicit argument handling.
Click
-----
-`click `_ is a Python package for creating command
+`click `_ is an upcoming Python package for creating command
line interfaces in a composable way with as little amount of code as
necessary. Itâs the âCommand Line Interface Creation Kitâ. Itâs highly
configurable but comes with good defaults out of the box.
From 68f2baa1fba1d278a5f5b3317f7a148717852f6e Mon Sep 17 00:00:00 2001
From: Grant Regimbal
Date: Thu, 1 May 2014 11:38:57 -0700
Subject: [PATCH 0221/1051] added ansible description and example
---
docs/scenarios/admin.rst | 41 +++++++++++++++++++++++++++++++++++++---
1 file changed, 38 insertions(+), 3 deletions(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 85fd5b8f5..0dafa0be7 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -178,11 +178,46 @@ monitoring is `glance `_.
Ansible
-------
+`Ansible `_ is a open source system automation tool. The biggest advantage over Puppet or Chef is it does not require an agent on the client machine. Playbooks are Ansibleâs configuration, deployment, and orchestration language and are written in in yaml with jinja2 for templating.
-.. todo:: Write about Ansible
+Ansible supports Python versions 2.6 and 2.7 and can be installed via pip:
- `Ansible Documentation
- `_
+.. code-block:: console
+
+ $ pip install ansible
+
+Ansible requires a inventory file that describes the hosts it has access to. Here is an example of a host and
+playbook that will ping all the hosts in the inventory file:
+
+Here is an example inventory file:
+hosts.yml
+
+.. code-block:: yaml
+
+ [server_name]
+ 127.0.0.1
+
+Here is an example playbook:
+ping.yml
+
+.. code-block:: yaml
+
+ ---
+ - hosts: all
+
+ tasks:
+ - name: ping
+ action: ping
+
+To run the playbook:
+
+.. code-block:: console
+
+ $ ansible-playbook ping.yml -i hosts.yml --ask-pass
+
+That Ansible playbook will ping all of the servers in the hosts.yml file. You can also select groups of servers using Ansible. For more information about Ansible read the docs.
+
+`Ansible Docs `_
Chef
From 8914b06556d2d9be10461de0c2e728838f5095b9 Mon Sep 17 00:00:00 2001
From: Moayad Mardini
Date: Mon, 5 May 2014 18:13:43 -0400
Subject: [PATCH 0222/1051] Added a note about `SuperTab` in VIM section
---
docs/dev/env.rst | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/docs/dev/env.rst b/docs/dev/env.rst
index 2b0c204bb..1d3068dd6 100644
--- a/docs/dev/env.rst
+++ b/docs/dev/env.rst
@@ -76,6 +76,11 @@ It has:
And more.
+SuperTab
+^^^^^^^^
+SuperTab_ is a small VIM plugin that makes code completion more convenient by
+using ```` key or any other customized keys.
+
.. _indent: http://www.vim.org/scripts/script.php?script_id=974
.. _syntax: http://www.vim.org/scripts/script.php?script_id=790
.. _Pyflakes: http://pypi.python.org/pypi/pyflakes/
@@ -84,8 +89,7 @@ And more.
.. _vim-pep8: https://github.com/nvie/vim-pep8
.. _syntastic: https://github.com/scrooloose/syntastic
.. _Python-mode: https://github.com/klen/python-mode
-
-.. todo:: add supertab notes
+.. _SuperTab: http://www.vim.org/scripts/script.php?script_id=1643
Emacs
-----
From f6735bcad750fd17f3ee3e73261bb7ef563f360c Mon Sep 17 00:00:00 2001
From: Shayne Hodge
Date: Thu, 8 May 2014 12:09:09 -0700
Subject: [PATCH 0223/1051] Add backticks to inline code
Single backticks were used in places, which doesn't seem to render as code (at least on Firefox). Line 137 has a code statement within ** ** that isn't rendering correctly, but I'm not sure how to fix it.
---
docs/writing/structure.rst | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 358972093..d9d286278 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -134,7 +134,7 @@ compartmentalized**.
Using ``from modu import func`` is a way to pinpoint the function you want to
import and put it in the global namespace. While much less harmful than ``import
*`` because it shows explicitly what is imported in the global namespace, its
-advantage over a simpler `import modu` is only that it will save some typing.
+advantage over a simpler ``import modu`` is only that it will save some typing.
**Very bad**
@@ -181,8 +181,8 @@ different modules in the package are imported in a similar manner as plain
modules, but with a special behavior for the :file:`__init__.py` file, which is used to
gather all package-wide definitions.
-A file :file:`modu.py` in the directory :file:`pack/` is imported with the statement `import
-pack.modu`. This statement will look for an :file:`__init__.py` file in :file:`pack`, execute
+A file :file:`modu.py` in the directory :file:`pack/` is imported with the statement ``import
+pack.modu``. This statement will look for an :file:`__init__.py` file in :file:`pack`, execute
all of its top-level statements. Then it will look for a file :file:`pack/modu.py` and
execute all of its top-level statements. After these operations, any variable,
function, or class defined in :file:`modu.py` is available in the pack.modu namespace.
@@ -197,8 +197,8 @@ Leaving an :file:`__init__.py` file empty is considered normal and even a good p
if the package's modules and sub-packages do not need to share any code.
Lastly, a convenient syntax is available for importing deeply nested packages:
-`import very.deep.module as mod`. This allows you to use `mod` in place of the verbose
-repetition of `very.deep.module`.
+``import very.deep.module as mod``. This allows you to use `mod` in place of the verbose
+repetition of ``very.deep.module``.
Object-oriented programming
---------------------------
From caeb467f5b365033b1cd4b1b72dff969cd7aeefe Mon Sep 17 00:00:00 2001
From: Stephen DiCato
Date: Fri, 9 May 2014 16:35:27 -0400
Subject: [PATCH 0224/1051] Strip trailing whitespace.
---
docs/scenarios/cli.rst | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 215358002..9f2928abc 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -6,7 +6,7 @@ Command Line Applications
Clint
-----
-`clint `_ is a python module which is
+`clint `_ is a python module which is
filled with very useful tools for developing commandline applications.
It supports features such as; CLI Colors and Indents, Simple and Powerful
Column Printer, Iterator based progress bar and Implicit argument handling.
@@ -15,8 +15,8 @@ Click
-----
`click `_ is an upcoming Python package for creating command
-line interfaces in a composable way with as little amount of code as
-necessary. Itâs the âCommand Line Interface Creation Kitâ. Itâs highly
+line interfaces in a composable way with as little amount of code as
+necessary. Itâs the âCommand Line Interface Creation Kitâ. Itâs highly
configurable but comes with good defaults out of the box.
docopt
@@ -29,9 +29,9 @@ POSIX-style usage instructions.
Plac
------
-`Plac `_ is a python module that allows developing command line applications. In fact
-plac is a simple wrapper over the python standard library `argparse `_, it hides most of its
-complexity by using a declarative interface: the argument parser is inferred
+`Plac `_ is a python module that allows developing command line applications. In fact
+plac is a simple wrapper over the python standard library `argparse `_, it hides most of its
+complexity by using a declarative interface: the argument parser is inferred
rather than written down by imperatively. It is targetting especially unsophisticated
users, programmers, sys-admins, scientists and in general people writing throw-away
scripts for themselves, choosing the command-line interface because it is quick
@@ -40,7 +40,7 @@ and simple.
Cliff
------
-`Cliff `_ is a framework for building command line programs.
+`Cliff `_ is a framework for building command line programs.
It uses setuptools entry points to provide subcommands, output formatters, and other extensions. The framework
-is meant to be used to create multi-level commands such as subversion and git, where the main program handles
+is meant to be used to create multi-level commands such as subversion and git, where the main program handles
some basic argument parsing and then invokes a sub-command to do the work.
From 20e5aaba6923c2406ac4f8a16d125408b7d5089a Mon Sep 17 00:00:00 2001
From: Stephen DiCato
Date: Fri, 9 May 2014 16:36:24 -0400
Subject: [PATCH 0225/1051] Fix a few minor typos.
Standardize on "command line", not "command-line".
---
docs/scenarios/cli.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 9f2928abc..6a11a85af 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -7,7 +7,7 @@ Clint
-----
`clint `_ is a python module which is
-filled with very useful tools for developing commandline applications.
+filled with very useful tools for developing command line applications.
It supports features such as; CLI Colors and Indents, Simple and Powerful
Column Printer, Iterator based progress bar and Implicit argument handling.
@@ -34,7 +34,7 @@ plac is a simple wrapper over the python standard library `argparse
Date: Fri, 9 May 2014 17:47:38 -0400
Subject: [PATCH 0226/1051] backslashes escaping windows directories
---
docs/starting/install/win.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index e8fe0a2a9..469a729f0 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -13,7 +13,7 @@ double-click the file. The MSI package format allows Windows administrators to
automate installation with their standard tools.
By design, Python installs to a directory with the version number embedded,
-e.g. Python version 2.7 will install at :file:`C:\Python27\`, so that you can
+e.g. Python version 2.7 will install at :file:`C:\\Python27\\`, 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
@@ -22,7 +22,7 @@ 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:\Python27\`, add this to your
+Assuming that your Python installation is in :file:`C:\\Python27\\`, add this to your
:envvar:`PATH`:
.. code-block:: console
From f82061f7fc62128bac93cc643ead79179ffc96ed Mon Sep 17 00:00:00 2001
From: Shayne Hodge
Date: Fri, 9 May 2014 15:41:52 -0700
Subject: [PATCH 0227/1051] fix nested markup, literal doesn't work
Inline markup can't be nested, see http://docutils.sourceforge.net/docs/user/rst/quickref.html#inline-markup, last sentence.
---
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 358972093..299fe19f9 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -128,7 +128,7 @@ unwanted effects, e.g. override an existing function with the same name.
It is possible to simulate the more standard behavior by using a special syntax
of the import statement: ``from modu import *``. This is generally considered bad
-practice. **Using ``import *`` makes code harder to read and makes dependencies less
+practice. **Using** ``import *`` **makes code harder to read and makes dependencies less
compartmentalized**.
Using ``from modu import func`` is a way to pinpoint the function you want to
From 68f9051e45fdaeb72daa23c1c39c61469ee754c4 Mon Sep 17 00:00:00 2001
From: Tal Einat
Date: Sat, 10 May 2014 18:26:58 +0300
Subject: [PATCH 0228/1051] minor grammar fix: "An useful" -> "A useful"
---
docs/starting/install/osx.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/starting/install/osx.rst b/docs/starting/install/osx.rst
index b3722b136..4d893d080 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -119,7 +119,7 @@ environment. Put your own code within a subdirectory of the environment,
however you wish. When you no longer need a particular environment, simply
copy your code out of it, and then delete the main directory for the environment.
-An useful set of extensions to virtualenv is available in virtualenvwrapper,
+A useful set of extensions to virtualenv is available in virtualenvwrapper,
`RTFD `_ to find out more.
--------------------------------
From 540e444925809108f33ac884592f88ced76be6be Mon Sep 17 00:00:00 2001
From: Stephen DiCato
Date: Mon, 12 May 2014 10:40:25 -0400
Subject: [PATCH 0229/1051] Rename "command line" to "command-line".
---
docs/scenarios/cli.rst | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 6a11a85af..7c87eb2a8 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -1,46 +1,46 @@
-Command Line Applications
+Command-line Applications
=========================
-.. todo:: Explain "Command Line Applications"
+.. todo:: Explain "Command-line Applications"
Clint
-----
`clint `_ is a python module which is
-filled with very useful tools for developing command line applications.
+filled with very useful tools for developing command-line applications.
It supports features such as; CLI Colors and Indents, Simple and Powerful
Column Printer, Iterator based progress bar and Implicit argument handling.
Click
-----
-`click `_ is an upcoming Python package for creating command
-line interfaces in a composable way with as little amount of code as
-necessary. Itâs the âCommand Line Interface Creation Kitâ. Itâs highly
+`click `_ is an upcoming Python package for creating
+command-line interfaces in a composable way with as little amount of code as
+necessary. Itâs the âCommand-line Interface Creation Kitâ. Itâs highly
configurable but comes with good defaults out of the box.
docopt
------
`docopt `_ is a lightweight, highly Pythonic package that
-allows creating command line interfaces easily and intuitively, by parsing
+allows creating command-line interfaces easily and intuitively, by parsing
POSIX-style usage instructions.
Plac
------
-`Plac `_ is a python module that allows developing command line applications. In fact
+`Plac `_ is a python module that allows developing command-line applications. In fact
plac is a simple wrapper over the python standard library `argparse `_, it hides most of its
complexity by using a declarative interface: the argument parser is inferred
rather than written down by imperatively. It is targetting especially unsophisticated
users, programmers, sys-admins, scientists and in general people writing throw-away
-scripts for themselves, choosing the command line interface because it is quick
+scripts for themselves, choosing the command-line interface because it is quick
and simple.
Cliff
------
-`Cliff `_ is a framework for building command line programs.
+`Cliff `_ is a framework for building command-line programs.
It uses setuptools entry points to provide subcommands, output formatters, and other extensions. The framework
is meant to be used to create multi-level commands such as subversion and git, where the main program handles
some basic argument parsing and then invokes a sub-command to do the work.
From 064562cb0a10aa81edaf2a0331d8c33fcb67bf79 Mon Sep 17 00:00:00 2001
From: Thomas Kluyver
Date: Tue, 13 May 2014 12:16:43 -0700
Subject: [PATCH 0230/1051] Update description of scientific Python
distributions
- The business model of Anaconda has changed slightly: now it's a free product with 'add-ons' that cost money.
- Enthought has largely replaced EPD with Canopy.
- I've moved Anaconda before Canopy: this is obviously subjective, but Anaconda includes a lot more for free (Canopy Express excludes many open source packages). Workshops like Software Carpentry now tend to point new users to Anaconda for installation.
---
docs/scenarios/scientific.rst | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index e95506517..7ad1b1fcd 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -124,24 +124,20 @@ compiled a list of Windows binaries for many useful Python packages. The list
of packages has grown from a mainly scientific Python resource to a more
general list. It might be a good idea to check it out if you're on Windows.
-Enthought Python Distribution (EPD)
------------------------------------
-
-Installing NumPy and SciPy can be a daunting task. Which is why the
-`Enthought Python distribution `_ was created. With
-Enthought, scientific python has never been easier (one click to install about
-100 scientific python packages). The Enthought Python Distribution comes in two
-variants: a free version `EPD Free `_
-and a paid version with various `pricing options.
-`_
-
Anaconda
--------
`Continuum Analytics `_ offers the `Anaconda
Python Distribution `_ which
includes all the common scientific python packages and additionally many
-packages related to data analytics and big data. Anaconda comes in two
-flavors, a paid for version and a completely free and open source community
-edition, Anaconda CE, which contains a slightly reduced feature set. Free
-licenses for the paid-for version are available for academics and researchers.
+packages related to data analytics and big data. Anaconda itself is free, and
+Continuum sells a number of proprietary add-ons. Free
+licenses for the add-ons are available for academics and researchers.
+
+Canopy
+------
+
+`Canopy is another scientific Python
+distribution, produced by `Enthought `. A limited
+'Canopy Express' variant is available for free, and Enthought charge for the
+full distribution. Free licenses are available for academics.
From 31be2b258563abf2aaace82f09cc90559d2765b9 Mon Sep 17 00:00:00 2001
From: Hasnain Lakhani
Date: Tue, 13 May 2014 22:18:32 -0700
Subject: [PATCH 0231/1051] Fix typo in scrape.rst
---
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 69c6e349f..8533919d8 100644
--- a/docs/scenarios/scrape.rst
+++ b/docs/scenarios/scrape.rst
@@ -20,7 +20,7 @@ lxml and Requests
`lxml `_ is a pretty extensive library written for parsing
XML and HTML documents really fast. It even handles messed up tags. We will
also be using the `Requests `_
-module instead of the already built-in urlib2 due to improvements in speed and
+module instead of the already built-in urllib2 module due to improvements in speed and
readability. You can easily install both using ``pip install lxml`` and
``pip install requests``.
From aa76da294dd97bc03a4d68ddd2a21dce679ff234 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Brian=20Dre=CC=81au?=
Date: Sat, 17 May 2014 15:36:50 +0200
Subject: [PATCH 0232/1051] Fixed minor typos in writing/style
---
docs/writing/style.rst | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 165117f2c..85b601d0a 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -217,12 +217,12 @@ while privatising a public property might be a much harder operation.
Returning values
~~~~~~~~~~~~~~~~
-When a function grows in complexity is not uncommon to use multiple return statements
+When a function grows in complexity it is not uncommon to use multiple return statements
inside the function's body. However, in order to keep a clear intent and a sustainable
readability level, it is preferable to avoid returning meaningful values from many
output points in the body.
-There are two main cases for returning values in a function: The result of the function
+There are two main cases for returning values in a function: the result of the function
return when it has been processed normally, and the error cases that indicate a wrong
input parameter or any other reason for the function to not be able to complete its
computation or task.
@@ -261,7 +261,7 @@ is discussed amply at `c2 `_ and at `St
Idiomatic Python code is often referred to as being *Pythonic*.
-Although there usually is one-- and preferably only one --obvious way to do it;
+Although there usually is one --- and preferably only one --- obvious way to do it;
*the* way to write idiomatic Python code can be non-obvious to Python beginners. So,
good idioms must be consciously acquired.
@@ -503,7 +503,7 @@ Short Ways to Manipulate Lists
`List comprehensions
`_
-provide a powerful, concise way to work with lists. Also, the :py:func:`map`
+provide a powerful, concise way to work with lists. Also, the :py:func:`map` and
:py:func:`filter` functions can perform operations on lists using a different,
more concise syntax.
@@ -524,6 +524,7 @@ more concise syntax.
a = [3, 4, 5]
b = [i for i in a if i > 4]
+ # Or:
b = filter(lambda x: x > 4, a)
**Bad**:
From 5ec720a1329706fa8bdc4b37357b049d58a6f3c6 Mon Sep 17 00:00:00 2001
From: Ben McGinnes
Date: Sun, 18 May 2014 07:22:37 +1000
Subject: [PATCH 0233/1051] Grammar fixed as indicated in issue #429.
---
docs/writing/reading.rst | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/docs/writing/reading.rst b/docs/writing/reading.rst
index e53b30c87..738d851d0 100644
--- a/docs/writing/reading.rst
+++ b/docs/writing/reading.rst
@@ -8,11 +8,12 @@ one thing that Python programmers do is read code.
One of the secrets of becoming a great Python programmer is to read,
understand, and comprehend excellent code.
-Excellent code typically follows the guidelines outlined in :ref:`code_style`,
-and does its best to express a clear and concise intent to the reader.
+Excellent code typically follows the guidelines outlined in
+:ref:`code_style`, and does its best to express a clear and concise
+intent to the reader.
-Included below is a list of recommended Python projects for reading. Each of
-these projects are paragons of excellent Python code.
+Included below is a list of recommended Python projects for
+reading. Each one of these projects is a paragon of Python coding.
- `Howdoi `_
Howdoi is a code search tool, written in Python.
From e2b2a11ad0530a02794d7d4930df996a28263aa6 Mon Sep 17 00:00:00 2001
From: Cameron Goodale
Date: Thu, 22 May 2014 08:02:17 -0700
Subject: [PATCH 0234/1051] Remove un-needed export command
Dropped the 'export PATH=/usr/local/share/python:$PATH' command and explanation.
---
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 4d893d080..85edc6088 100644
--- a/docs/starting/install/osx.rst
+++ b/docs/starting/install/osx.rst
@@ -59,12 +59,7 @@ Now, we can install Python 2.7:
$ brew install python
-This will take a minute or two. Once that's complete, you'll have to add the
-new Python scripts directory to your :envvar:`PATH`
-
-.. code-block:: console
-
- export PATH=/usr/local/share/python:$PATH
+This will take a minute or two.
Setuptools & Pip
From 7d8610410a338f8a789dbca9a68509a2b395ed2d Mon Sep 17 00:00:00 2001
From: niuzhist
Date: Sun, 25 May 2014 00:21:28 -0700
Subject: [PATCH 0235/1051] add RabbitMQ description
---
docs/scenarios/client.rst | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/docs/scenarios/client.rst b/docs/scenarios/client.rst
index 8a4fdde4b..06e986430 100644
--- a/docs/scenarios/client.rst
+++ b/docs/scenarios/client.rst
@@ -45,5 +45,10 @@ library is designed to have a familiar socket-style API.
RabbitMQ
--------
-.. todo:: Write about RabbitMQ
+RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
+The RabbitMQ server is written in the Erlang programming language and is built on the Open Telecom Platform
+framework for clustering and failover. Client libraries to interface with the broker are available
+for all major programming languages.
+- `Website `_
+- `GitHub `_
From 7bf154f5e402f2508708c7d033e9c4db3731d0b8 Mon Sep 17 00:00:00 2001
From: niuzhist
Date: Sun, 25 May 2014 00:26:17 -0700
Subject: [PATCH 0236/1051] change some content
---
docs/scenarios/client.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/scenarios/client.rst b/docs/scenarios/client.rst
index 06e986430..b7494b080 100644
--- a/docs/scenarios/client.rst
+++ b/docs/scenarios/client.rst
@@ -45,10 +45,10 @@ library is designed to have a familiar socket-style API.
RabbitMQ
--------
-RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
+RabbitMQ is an open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
The RabbitMQ server is written in the Erlang programming language and is built on the Open Telecom Platform
framework for clustering and failover. Client libraries to interface with the broker are available
for all major programming languages.
-- `Website `_
-- `GitHub `_
+- `Homepage `_
+- `GitHub Organization `_
From 71187f4274b9047eec57b766efae30cd99856982 Mon Sep 17 00:00:00 2001
From: Simeon Visser
Date: Sun, 25 May 2014 20:58:19 +0200
Subject: [PATCH 0237/1051] Changed python into Python where needed
---
docs/scenarios/scientific.rst | 2 +-
docs/starting/install/win.rst | 4 ++--
docs/writing/documentation.rst | 4 ++--
docs/writing/license.rst | 2 +-
docs/writing/structure.rst | 6 +++---
docs/writing/style.rst | 2 +-
docs/writing/tests.rst | 2 +-
7 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index 7ad1b1fcd..05e751145 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -129,7 +129,7 @@ Anaconda
`Continuum Analytics `_ offers the `Anaconda
Python Distribution `_ which
-includes all the common scientific python packages and additionally many
+includes all the common scientific Python packages and additionally many
packages related to data analytics and big data. Anaconda itself is free, and
Continuum sells a number of proprietary add-ons. Free
licenses for the add-ons are available for academics and researchers.
diff --git a/docs/starting/install/win.rst b/docs/starting/install/win.rst
index 469a729f0..033a213b4 100644
--- a/docs/starting/install/win.rst
+++ b/docs/starting/install/win.rst
@@ -53,7 +53,7 @@ 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
+To obtain the latest version of Setuptools for Windows, run the Python script
available here: `ez_setup.py `_
@@ -62,7 +62,7 @@ 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:
+To install pip, run the Python script available here:
`get-pip.py `_
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index b52fca7c4..125b7e79c 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -17,7 +17,7 @@ assuming the user knows anything about the project), the url of the
main source for the software, and some basic credit information. This
file is the main entry point for readers of the code.
-An :file:`INSTALL` file is less necessary with python. The installation
+An :file:`INSTALL` file is less necessary with Python. The installation
instructions are often reduced to one command, such as ``pip install
module`` or ``python setup.py install`` and added to the :file:`README`
file.
@@ -56,7 +56,7 @@ of the following components:
Sphinx
~~~~~~
-Sphinx_ is far and away the most popular python documentation
+Sphinx_ is far and away the most popular Python documentation
tool. **Use it.** It converts :ref:`restructuredtext-ref` markup language
into a range of output formats including HTML, LaTeX (for printable
PDF versions), manual pages, and plain text.
diff --git a/docs/writing/license.rst b/docs/writing/license.rst
index 9dd7c86d2..006c045ce 100644
--- a/docs/writing/license.rst
+++ b/docs/writing/license.rst
@@ -31,7 +31,7 @@ To help you choose one for your project, there's a `license chooser `_ of how the
-dot notation should be used in the python docs.
+dot notation should be used in the Python docs.
If you'd like you could name it as :file:`my_spam.py` but even our friend the
underscore should not be seen often in module names.
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 85b601d0a..9ca14896d 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -360,7 +360,7 @@ Take the following code for example:
def lookup_list(l):
return 's' in l
-Even though both functions look identical, because *lookup_dict* is utilizing the fact that dictionaries in python are hashtables, the lookup performance between the two is very different.
+Even though both functions look identical, because *lookup_dict* is utilizing the fact that dictionaries in Python are hashtables, the lookup performance between the two is very different.
Python will have to go through each item in the list to find a matching case, which is time consuming. By analysing the hash of the dictionary, finding keys in the dict can be done very quickly.
For more information see this `StackOverflow `_ page.
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index ae99fd155..34add0d8e 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -242,7 +242,7 @@ to newer versions of the module easier in the future
class MyTest(unittest.TestCase):
...
-This way if you ever switch to a newer python version and no longer need the
+This way if you ever switch to a newer Python version and no longer need the
unittest2 module, you can simply change the import in your test module without
the need to change any other code.
From 7ac101e2e7ecdbcb6075382c9e063ef3c26e581b Mon Sep 17 00:00:00 2001
From: Cameron Goodale
Date: Mon, 26 May 2014 20:47:58 -0700
Subject: [PATCH 0238/1051] Add link to Python Magic Methods Guide * Resolves
#103
---
docs/intro/learning.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 959859f94..828efd2f6 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -154,6 +154,15 @@ development, version control, and optimization/profiling.
`Expert Python Programming `_
+A Guide to Python's Magic Methods
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+This is a collection of blog posts by Rafe Kettler which explain 'magic methods'
+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 `_
+
+
For Engineers and Scientists
----------------------------
From 1b867b9c5b368d4a8f1facfbb18dd013f961fdd8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Omer=20Murat=20Y=C4=B1ld=C4=B1r=C4=B1m?=
Date: Tue, 27 May 2014 10:35:59 +0300
Subject: [PATCH 0239/1051] Update xml.rst
---
docs/scenarios/xml.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/scenarios/xml.rst b/docs/scenarios/xml.rst
index 3e01b2fe6..e1f7b7084 100644
--- a/docs/scenarios/xml.rst
+++ b/docs/scenarios/xml.rst
@@ -57,7 +57,7 @@ can be loaded into a Python dict like this:
.. code-block:: python
import xmltodict
- obj = xmltodict.parse('path/to/file.xml')
+ obj = xmltodict.parse(open('path/to/file.xml'))
and then you can access elements, attributes and values like this:
From 49c4f2f1e8f2a332508b07bc158d7b398d0d5e98 Mon Sep 17 00:00:00 2001
From: Ian Cordasco
Date: Tue, 27 May 2014 08:28:20 -0500
Subject: [PATCH 0240/1051] Actually fix xmltodict usage
---
docs/scenarios/xml.rst | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/docs/scenarios/xml.rst b/docs/scenarios/xml.rst
index e1f7b7084..7484413a9 100644
--- a/docs/scenarios/xml.rst
+++ b/docs/scenarios/xml.rst
@@ -57,7 +57,9 @@ can be loaded into a Python dict like this:
.. code-block:: python
import xmltodict
- obj = xmltodict.parse(open('path/to/file.xml'))
+
+ with open('path/to/file.xml') as fd:
+ obj = xmltodict.parse(fd.read())
and then you can access elements, attributes and values like this:
From 6c03f219d64fdc0dc290a3cb7886e52477ed9ffe Mon Sep 17 00:00:00 2001
From: Cameron Goodale
Date: Tue, 27 May 2014 07:04:59 -0700
Subject: [PATCH 0241/1051] Add new line as requested.
---
docs/intro/learning.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/intro/learning.rst b/docs/intro/learning.rst
index 828efd2f6..31641f7b2 100644
--- a/docs/intro/learning.rst
+++ b/docs/intro/learning.rst
@@ -156,6 +156,7 @@ development, version control, and optimization/profiling.
A Guide to Python's Magic Methods
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
This is a collection of blog posts by Rafe Kettler which explain 'magic methods'
in Python. Magic methods are surrounded by double underscores (i.e. __init__) and
can make classes and objects behave in different and magical ways.
From 54aa0542dec9d11b81de87aecb867ccbdb3c6d73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Paulie=20Pe=C3=B1a?=
Date: Wed, 28 May 2014 18:55:18 -0400
Subject: [PATCH 0242/1051] python is strongly-typed but not statically-typed
---
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 98818cc05..7d3978e61 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -317,7 +317,7 @@ Dynamic typing
Python is said to be dynamically typed, which means that variables
do not have a fixed type. In fact, in Python, variables are very
different from what they are in many other languages, specifically
-strongly-typed languages. Variables are not a segment of the computer's
+statically-typed languages. Variables are not a segment of the computer's
memory where some value is written, they are 'tags' or 'names' pointing
to objects. It is therefore possible for the variable 'a' to be set to
the value 1, then to the value 'a string', then to a function.
From 8b3bd266aabef1e4d311a829357b9b3fc48a2b89 Mon Sep 17 00:00:00 2001
From: SUNNY
Date: Fri, 30 May 2014 13:20:40 +0530
Subject: [PATCH 0243/1051] Canopy description changed | added missing syntax.
---
docs/scenarios/scientific.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/scientific.rst b/docs/scenarios/scientific.rst
index 05e751145..a8dc59e70 100644
--- a/docs/scenarios/scientific.rst
+++ b/docs/scenarios/scientific.rst
@@ -137,7 +137,7 @@ licenses for the add-ons are available for academics and researchers.
Canopy
------
-`Canopy is another scientific Python
-distribution, produced by `Enthought `. A limited
+`Canopy '_ is another scientific Python
+distribution, produced by `Enthought `_. A limited
'Canopy Express' variant is available for free, and Enthought charge for the
full distribution. Free licenses are available for academics.
From 9a978b7f58c1f9aaafe97466904fd1dd8994ebc8 Mon Sep 17 00:00:00 2001
From: niuzhist
Date: Fri, 30 May 2014 08:53:02 -0700
Subject: [PATCH 0244/1051] change last few python to Python
---
docs/scenarios/cli.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 7c87eb2a8..461dda593 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -6,7 +6,7 @@ Command-line Applications
Clint
-----
-`clint `_ is a python module which is
+`clint `_ is a Python module which is
filled with very useful tools for developing command-line applications.
It supports features such as; CLI Colors and Indents, Simple and Powerful
Column Printer, Iterator based progress bar and Implicit argument handling.
@@ -29,8 +29,8 @@ POSIX-style usage instructions.
Plac
------
-`Plac `_ is a python module that allows developing command-line applications. In fact
-plac is a simple wrapper over the python standard library `argparse `_, it hides most of its
+`Plac `_ is a Python module that allows developing command-line applications. In fact
+plac is a simple wrapper over the Python standard library `argparse `_, it hides most of its
complexity by using a declarative interface: the argument parser is inferred
rather than written down by imperatively. It is targetting especially unsophisticated
users, programmers, sys-admins, scientists and in general people writing throw-away
From 3ad3421b5037cc8a98a33c44bf2e621538017614 Mon Sep 17 00:00:00 2001
From: niuzhist
Date: Fri, 30 May 2014 11:42:25 -0700
Subject: [PATCH 0245/1051] add Mule description
---
docs/scenarios/ci.rst | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 19039deb7..4e4a80ece 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -30,10 +30,13 @@ Buildbot
automate the compile/test cycle to validate code changes.
-Mule?
+Mule
-----
-.. todo:: Write about Mule
+`Mule `_ is a lightweight integration platform that enables you to connect anything, anywhere.
+You can use Mule to intelligently manage message routing, data mapping, orchestration, reliability, security, and scalability between nodes.
+Plug other systems and applications into Mule and let it handle all the communication between systems, enabling you to track and monitor everything that happens.
+
Tox
---
From 0ce7c2d03533cb48efe304a279c7dbf546405a00 Mon Sep 17 00:00:00 2001
From: Cea Stapleton
Date: Fri, 6 Jun 2014 11:44:01 -0500
Subject: [PATCH 0246/1051] Improve Which Python section grammar
---
docs/starting/which-python.rst | 42 ++++++++++++++++------------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/docs/starting/which-python.rst b/docs/starting/which-python.rst
index cc79c362f..6d0eda5a7 100644
--- a/docs/starting/which-python.rst
+++ b/docs/starting/which-python.rst
@@ -20,38 +20,37 @@ The Future (Python 3)
`Further Reading `_
-Python 3, on the other hand, differs much more greatly from Python 2, so
-writing code that works both on Python 2 and Python 3 is a very complicated
+The difference between Python 3 and Python 2 is much greater, therefore
+writing code that works in both Python 2 and Python 3 is a very complicated
process.
-It is still possible to `write code that works on Python 2.6, 2.7 and 3.3
-`_. Depending on
-the kind of software you are writing, this might be either tricky or extremely
-hard, and if you're a beginner there are much more important things to worry
-about.
+It is possible to `write code that works on Python 2.6, 2.7 and 3.3
+`_. This
+ranges from tricky to extremely hard depending upon the kind of software
+you are writing; if you're a beginner there are far more important things to
+worry about.
Implementations
~~~~~~~~~~~~~~~
-There are several popular implementations of the Python programming language on
-different back-ends.
+When people speak of *Python* they often mean not just the language but also
+the CPython implementation. *Python* is actually a specification for a language
+that can be implemented in many different ways.
CPython
-------
`CPython `_ is the reference implementation of Python,
written in C. It compiles Python code to intermediate bytecode which is then
-interpreted by a virtual machine. When people speak of *Python* they often mean
-not just the language but also this implementation. It provides the highest
+interpreted by a virtual machine. CPython provides the highest
level of compatibility with Python packages and C extension modules.
If you are writing open-source Python code and want to reach the widest possible
-audience, targeting CPython is your best bet. If you need to use any packages
-that rely on C extensions for their functionality (e.g., numpy) then CPython
-is your only choice.
+audience, targeting CPython is best. To use packages which rely on C extensions
+to function, CPython is your only implementation option.
-Being the reference implementation, all versions of the Python language are
-available as CPython.
+All versions of the Python language are implemented in C because CPython is the
+reference implementation.
PyPy
----
@@ -63,19 +62,18 @@ features a just-in-time compiler and supports multiple back-ends (C, CLI, JVM).
PyPy aims for maximum compatibility with the reference CPython implementation
while improving performance.
-If you are looking to squeeze more performance out of your Python code, it's
+If you are looking to increase performance of your Python code, it's
worth giving PyPy a try. On a suite of benchmarks, it's currently `over 5 times
faster than CPython `_.
-Currently PyPy supports Python 2.7. PyPy3 which targets Python 3 was recently
-available as a beta release. [#pypy_ver]_
+PyPy supports Python 2.7. PyPy3 [#pypy_ver]_, released in beta, targets Python 3.
Jython
------
`Jython `_ is a Python implementation that compiles
-Python code to Java bytecode that is then executed in a JVM. It has the additional
-advantage of being able to import and use any Java class like a Python
+Python code to Java bytecode which is then executed by the JVM (Java Virtual Machine).
+Additionally, it is able to import and use any Java class like a Python
module.
If you need to interface with an existing Java codebase or have other reasons to
@@ -88,7 +86,7 @@ IronPython
`IronPython `_ is an implementation of Python for the .NET
framework. It can use both Python and .NET framework libraries, and can also
-expose Python code to other .NET languages.
+expose Python code to other languages in the .NET framework.
`Python Tools for Visual Studio `_ integrates
IronPython directly into the Visual Studio development environment, making it
From fb41621a56bc5964d5375926be777023e984028f Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 10:31:59 -0600
Subject: [PATCH 0247/1051] Two easily.
---
Readme.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Readme.rst b/Readme.rst
index 07106e2f0..bf7f1838b 100644
--- a/Readme.rst
+++ b/Readme.rst
@@ -26,7 +26,7 @@ Topics include:
- Server configurations & tools for various web frameworks
- Documentation: writing it
- Testing: Jenkins & tox guides
-- How to easily interface ``hg`` from ``git`` easily
+- How to easily interface ``hg`` from ``git``
If you aren't fond of reading reStructuredText, there is an
almost up-to-date `HTML version at docs.python-guide.org
From 951f210d022819403ce5884aeb1abb714cc34ac8 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 11:06:59 -0600
Subject: [PATCH 0248/1051] Some grammar fixes for writing/structure.
---
docs/writing/structure.rst | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 7d3978e61..72a4798dd 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -99,12 +99,12 @@ which is not the case. There is an
`example `_ of how the
dot notation should be used in the Python docs.
-If you'd like you could name it as :file:`my_spam.py` but even our friend the
-underscore should not be seen often in module names.
+If you'd like you could name your module :file:`my_spam.py`, but even our
+friend the underscore should not be seen often in module names.
-Aside for some naming restrictions, nothing special is required for a Python file
-to be a module, but the import mechanism needs to be understood in order to use
-this concept properly and avoid some issues.
+Aside from some naming restrictions, nothing special is required for a Python
+file to be a module, but you need to understand the import mechanism in order
+to use this concept properly and avoid some issues.
Concretely, the ``import modu`` statement will look for the proper file, which is
:file:`modu.py` in the same directory as the caller if it exists. If it is not
@@ -134,7 +134,7 @@ compartmentalized**.
Using ``from modu import func`` is a way to pinpoint the function you want to
import and put it in the global namespace. While much less harmful than ``import
*`` because it shows explicitly what is imported in the global namespace, its
-advantage over a simpler ``import modu`` is only that it will save some typing.
+only advantage over a simpler ``import modu`` is that it will save a little typing.
**Very bad**
From 404c2581ee125b81fe17258fb126f79fecbfcaf5 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 11:07:49 -0600
Subject: [PATCH 0249/1051] More grammar and cross reference for #132.
---
docs/writing/structure.rst | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 72a4798dd..8f14b8d3d 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -161,11 +161,11 @@ only advantage over a simpler ``import modu`` is that it will save a little typi
[...]
x = modu.sqrt(4) # sqrt is visibly part of modu's namespace
-As said in the section about style, readability is one of the main features of
-Python. Readability means to avoid useless boilerplate text and clutter,
-therefore some efforts are spent trying to achieve a certain level of brevity.
-But terseness and obscurity are the limits where brevity should stop. Being
-able to tell immediately where a class or function comes from, as in the
+As mentioned in the :ref:`code_style` section, readability is one of the main
+features of Python. Readability means to avoid useless boilerplate text and
+clutter, therefore some efforts are spent trying to achieve a certain level of
+brevity. But terseness and obscurity are the limits where brevity should stop.
+Being able to tell immediately where a class or function comes from, as in the
``modu.func`` idiom, greatly improves code readability and understandability in
all but the simplest single file projects.
From 707628d2af5fc8098502ba6c723353e6ffb4db88 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 11:50:47 -0600
Subject: [PATCH 0250/1051] More writing/structure changes.
---
docs/writing/structure.rst | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/writing/structure.rst b/docs/writing/structure.rst
index 8f14b8d3d..37764c99b 100644
--- a/docs/writing/structure.rst
+++ b/docs/writing/structure.rst
@@ -183,13 +183,13 @@ gather all package-wide definitions.
A file :file:`modu.py` in the directory :file:`pack/` is imported with the statement ``import
pack.modu``. This statement will look for an :file:`__init__.py` file in :file:`pack`, execute
-all of its top-level statements. Then it will look for a file :file:`pack/modu.py` and
+all of its top-level statements. Then it will look for a file named :file:`pack/modu.py` and
execute all of its top-level statements. After these operations, any variable,
function, or class defined in :file:`modu.py` is available in the pack.modu namespace.
A commonly seen issue is to add too much code to :file:`__init__.py`
files. When the project complexity grows, there may be sub-packages and
-sub-sub-packages in a deep directory structure, and then, importing a single item
+sub-sub-packages in a deep directory structure. In this case, importing a single item
from a sub-sub-package will require executing all :file:`__init__.py` files met while
traversing the tree.
@@ -207,7 +207,7 @@ Python is sometimes described as an object-oriented programming language. This
can be somewhat misleading and needs to be clarified.
In Python, everything is an object, and can be handled as such. This is what is
-meant when we say that, for example, functions are first-class objects.
+meant when we say, for example, that functions are first-class objects.
Functions, classes, strings, and even types are objects in Python: like any
objects, they have a type, they can be passed as function arguments, they may
have methods and properties. In this understanding, Python is an
@@ -284,7 +284,7 @@ The Python language provides a simple yet powerful syntax called 'decorators'.
A decorator is a function or a class that wraps (or decorates) a function
or a method. The 'decorated' function or method will replace the original
'undecorated' function or method. Because functions are first-class objects
-in Python, it can be done 'manually', but using the @decorator syntax is
+in Python, this can be done 'manually', but using the @decorator syntax is
clearer and thus preferred.
.. code-block:: python
From 2e9ae2152f10862ce479cf14cc477e8b88c2d2b2 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 12:18:51 -0600
Subject: [PATCH 0251/1051] Grammar and a couple line wraps for writing/style.
---
docs/writing/style.rst | 46 +++++++++++++++++++++++-------------------
1 file changed, 25 insertions(+), 21 deletions(-)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 9ca14896d..d1e5ebf28 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -101,7 +101,7 @@ calls to ``send('Hello', 'World')`` and ``point(1, 2)``.
2. **Keyword arguments** are not mandatory and have default values. They are often
used for optional parameters sent to the function. When a function has more than
-two or three positional parameters, its signature will be more difficult to remember
+two or three positional parameters, its signature is more difficult to remember
and using keyword argument with default values is helpful. For instance, a more
complete ``send`` function could be defined as ``send(message, to, cc=None, bcc=None)``.
Here ``cc`` and ``bcc`` are optional, and evaluate to ``None`` when they are not
@@ -176,15 +176,15 @@ possible to do each of the following:
However, all these options have many drawbacks and it is always better to use
the most straightforward way to achieve your goal. The main drawback is that
-readability suffers deeply from them. Many code analysis tools, such as pylint
-or pyflakes, will be unable to parse this "magic" code.
+readability suffers greatly when using these constructs. Many code analysis
+tools, such as pylint or pyflakes, will be unable to parse this "magic" code.
We consider that a Python developer should know about these nearly infinite
-possibilities, because it grows the confidence that no hard-wall will be on the
-way. However, knowing how to use them and particularly when **not** to use
-them is the most important.
+possibilities, because it instills confidence that no impassable problem will
+be on the way. However, knowing how and particularly when **not** to use
+them is very important.
-Like a Kungfu master, a Pythonista knows how to kill with a single finger, and
+Like a kung fu master, a Pythonista knows how to kill with a single finger, and
never to actually do it.
We are all consenting adults
@@ -195,10 +195,10 @@ dangerous. A good example is that any client code can override an object's
properties and methods: there is no "private" keyword in Python. This
philosophy, very different from highly defensive languages like Java, which
give a lot of mechanisms to prevent any misuse, is expressed by the saying: "We
-are consenting adults".
+are all consenting adults".
This doesn't mean that, for example, no properties are considered private, and
-that no proper encapsulation is possible in Python. But, instead of relying on
+that no proper encapsulation is possible in Python. Rather, instead of relying on
concrete walls erected by the developers between their code and other's, the
Python community prefers to rely on a set of conventions indicating that these
elements should not be accessed directly.
@@ -210,8 +210,8 @@ the code is modified is the responsibility of the client code.
Using this convention generously is encouraged: any method or property that is
not intended to be used by client code should be prefixed with an underscore.
-This will guarantee a better separation of duties and easier modifications of
-existing code, and it will always be possible to publicize a private property,
+This will guarantee a better separation of duties and easier modification of
+existing code; it will always be possible to publicize a private property,
while privatising a public property might be a much harder operation.
Returning values
@@ -235,7 +235,7 @@ statement can assume the condition is met to further compute the function's main
Having multiple such return statements is often necessary.
However, when a function has multiple main exit points for its normal course, it becomes
-difficult to debug the returned result, and it may be preferable to keep a single exit
+difficult to debug the returned result, so it may be preferable to keep a single exit
point. This will also help factoring out some code paths, and the multiple exit points
are a probable indication that such a refactoring is needed.
@@ -281,7 +281,7 @@ a tuple of two elements for each item in list:
for index, item in enumerate(some_list):
# do something with index and item
-You can use this to swap variables, as well:
+You can use this to swap variables as well:
.. code-block:: python
@@ -360,9 +360,13 @@ Take the following code for example:
def lookup_list(l):
return 's' in l
-Even though both functions look identical, because *lookup_dict* is utilizing the fact that dictionaries in Python are hashtables, the lookup performance between the two is very different.
-Python will have to go through each item in the list to find a matching case, which is time consuming. By analysing the hash of the dictionary, finding keys in the dict can be done very quickly.
-For more information see this `StackOverflow `_ page.
+Even though both functions look identical, because *lookup_dict* is utilizing
+the fact that dictionaries in Python are hashtables, the lookup performance
+between the two is very different. Python will have to go through each item
+in the list to find a matching case, which is time consuming. By analysing
+the hash of the dictionary, finding keys in the dict can be done very quickly.
+For more information see this `StackOverflow `_
+page.
Zen of Python
-------------
@@ -406,7 +410,7 @@ PEP 8
Conforming your Python code to PEP 8 is generally a good idea and helps make
code more consistent when working on projects with other developers. There
-exists a command-line program, `pep8 `_,
+is a command-line program, `pep8 `_,
that can check your code for conformance. Install it by running the following
command in your Terminal:
@@ -584,19 +588,19 @@ files for you.
print line
The ``with`` statement is better because it will ensure you always close the
-file, even if an exception is raised.
+file, even if an exception is raised inside the ``with`` block.
Line Continuations
~~~~~~~~~~~~~~~~~~
When a logical line of code is longer than the accepted limit, you need to
-split it over multiple physical lines. Python interpreter will join consecutive
+split it over multiple physical lines. The Python interpreter will join consecutive
lines if the last character of the line is a backslash. This is helpful
-sometimes but is preferably avoided, because of its fragility: a white space
+in some cases, but should usually be avoided because of its fragility: a white space
added to the end of the line, after the backslash, will break the code and may
have unexpected results.
-A preferred solution is to use parentheses around your elements. Left with an
+A better solution is to use parentheses around your elements. Left with an
unclosed parenthesis on an end-of-line the Python interpreter will join the
next line until the parentheses are closed. The same behavior holds for curly
and square braces.
From 59eaef2f78e87d4667117bfae0deee600b3d3a65 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 12:27:44 -0600
Subject: [PATCH 0252/1051] Added pep-3132 style extended unpacking.
---
docs/writing/style.rst | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/docs/writing/style.rst b/docs/writing/style.rst
index 9ca14896d..2814318f7 100644
--- a/docs/writing/style.rst
+++ b/docs/writing/style.rst
@@ -293,6 +293,16 @@ Nested unpacking works too:
a, (b, c) = 1, (2, 3)
+In Python 3, a new method of extended unpacking was introduced by
+:pep:`3132`:
+
+.. code-block:: python
+
+ a, *rest = [1, 2, 3]
+ # a = 1, rest = [2, 3]
+ a, *middle, c = [1, 2, 3, 4]
+ # a = 1, middle = [2, 3], c = 4
+
Create an ignored variable
~~~~~~~~~~~~~~~~~~~~~~~~~~
From c3b3e766f977cfc036a4ff410e6af1db16ed6f6d Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 12:41:00 -0600
Subject: [PATCH 0253/1051] Mostly line wraps, and a small grammar fix to
writing/documentation.
---
docs/writing/documentation.rst | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/docs/writing/documentation.rst b/docs/writing/documentation.rst
index 125b7e79c..e5600c7df 100644
--- a/docs/writing/documentation.rst
+++ b/docs/writing/documentation.rst
@@ -8,22 +8,21 @@ both you and others a lot of time.
Project Documentation
---------------------
-A :file:`README` file at the root directory should give general
-information to the users and the maintainers. It should be raw text or
-written in some very easy to read markup, such as
-:ref:`reStructuredText-ref` and Markdown. It should contain a few
-lines explaining the purpose of the project or the library (without
-assuming the user knows anything about the project), the url of the
-main source for the software, and some basic credit information. This
-file is the main entry point for readers of the code.
+A :file:`README` file at the root directory should give general information
+to both users and maintainers of a project. It should be raw text or
+written in some very easy to read markup, such as :ref:`reStructuredText-ref`
+or Markdown. It should contain a few lines explaining the purpose of the
+project or library (without assuming the user knows anything about the
+project), the url of the main source for the software, and some basic credit
+information. This file is the main entry point for readers of the code.
An :file:`INSTALL` file is less necessary with Python. The installation
instructions are often reduced to one command, such as ``pip install
module`` or ``python setup.py install`` and added to the :file:`README`
file.
-A :file:`LICENSE` file should *always* be present and specify the license under which the
-software is made available to the public.
+A :file:`LICENSE` file should *always* be present and specify the license
+under which the software is made available to the public.
A :file:`TODO` file or a ``TODO`` section in :file:`README` should list the
planned development for the code.
@@ -158,7 +157,8 @@ Pycco_
.. _Docco: http://jashkenas.github.com/docco
Ronn_
- Ronn builds unix manuals. It converts human readable textfiles to roff for terminal display, and also to HTML for the web.
+ Ronn builds unix manuals. It converts human readable textfiles to roff
+ for terminal display, and also to HTML for the web.
.. _Ronn: https://github.com/rtomayko/ronn
From e7f0d1fa8f3600dae5666287b1607e6a005b4cf5 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 12:48:53 -0600
Subject: [PATCH 0254/1051] Minor fixes for writing/tests.
---
docs/writing/tests.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/writing/tests.rst b/docs/writing/tests.rst
index 34add0d8e..f4ca54bc7 100644
--- a/docs/writing/tests.rst
+++ b/docs/writing/tests.rst
@@ -44,7 +44,7 @@ Some general rules of testing:
- The first step when you are debugging your code is to write a new test
pinpointing the bug. While it is not always possible to do, those bug
- catching test are among the most valuable pieces of code in your project.
+ catching tests are among the most valuable pieces of code in your project.
- Use long and descriptive names for testing functions. The style guide here
is slightly different than that of running code, where short names are
@@ -66,8 +66,8 @@ Some general rules of testing:
testing code is often the best they can do. They will or should discover the
hot spots, where most difficulties arise, and the corner cases. If they have
to add some functionality, the first step should be to add a test and, by this
- mean, ensure the new functionality is not already a working path that has not
- been plugged in the interface.
+ means, ensure the new functionality is not already a working path that has not
+ been plugged into the interface.
The Basics
::::::::::
From 93c4d9b49c480b17ca32aa38d9eda68354391d18 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 12:56:32 -0600
Subject: [PATCH 0255/1051] Two minor changes to writing/gotchas.
---
docs/writing/gotchas.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/writing/gotchas.rst b/docs/writing/gotchas.rst
index 12e18619e..5ed5669c1 100644
--- a/docs/writing/gotchas.rst
+++ b/docs/writing/gotchas.rst
@@ -79,7 +79,7 @@ signal that no argument was provided (:py:data:`None` is often a good choice).
When the Gotcha Isn't a Gotcha
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Sometimes you specifically can "exploit" (read: use as intended) this behavior
+Sometimes you can specifically "exploit" (read: use as intended) this behavior
to maintain state between calls of a function. This is often done when writing
a caching function.
@@ -126,7 +126,7 @@ What Does Happen
8
8
-Five functions are created, but all of them just multiply ``x`` by 4.
+Five functions are created; instead all of them just multiply ``x`` by 4.
Python's closures are *late binding*.
This means that the values of variables used in closures are looked
From 9079873a51d834468af61b353389ef623fa0025b Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 12:59:22 -0600
Subject: [PATCH 0256/1051] A single wording change in writing/license.
---
docs/writing/license.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/writing/license.rst b/docs/writing/license.rst
index 006c045ce..4d82b39e4 100644
--- a/docs/writing/license.rst
+++ b/docs/writing/license.rst
@@ -4,8 +4,8 @@ Choosing a License
Your source publication *needs* a license. In the US, if no license is
specified, users have no legal right to download, modify, or
distribute. Furthermore, people can't contribute to your code unless
-you tell them what rules to play by. It's complicated, so here are
-some pointers:
+you tell them what rules to play by. Choosing a license is complicated, so
+here are some pointers:
Open source. There are plenty of `open source licenses
`_ available to choose
From e17fdcdd27dbbb7a254d02602a519fc0974f700a Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 13:11:11 -0600
Subject: [PATCH 0257/1051] Some grammar and wrapping changes to scenarios/web.
Also fixed a small typo.
---
docs/scenarios/web.rst | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/docs/scenarios/web.rst b/docs/scenarios/web.rst
index 4fcedf070..4d7551edc 100644
--- a/docs/scenarios/web.rst
+++ b/docs/scenarios/web.rst
@@ -24,7 +24,7 @@ WSGI is documented in :pep:`3333`.
Frameworks
::::::::::
-Broadly speaking, a web framework consist of a set of libraries and a main
+Broadly speaking, a web framework consists of a set of libraries and a main
handler within which you can build custom code to implement a web application
(i.e. an interactive web site). Most web frameworks include patterns and
utilities to accomplish at least the following:
@@ -280,7 +280,7 @@ and to the templates themselves.
- Template files should be passed only the dynamic
content that is needed for rendering the template. Avoid
- to be tempted to pass additional content "just in case":
+ the temptation to pass additional content "just in case":
it is easier to add some missing variable when needed than to remove
a likely unused variable later.
@@ -288,7 +288,7 @@ and to the templates themselves.
or assignments in the template itself, and many
allow some Python code to be evaluated in the
templates. This convenience can lead to uncontrolled
- increase in complexity, and often harder to find bugs.
+ increase in complexity, and often make it harder to find bugs.
- It is often necessary to mix JavaScript templates with
HTML templates. A sane approach to this design is to isolate
@@ -299,9 +299,12 @@ and to the templates themselves.
Jinja2
------
-`Jinja2 `_ is a template engine which is similar to the Django template system with some extra features. It is a text-based template
-language and thus can be used to generate any markup. It allows customization of filters, tags, tests and globals.
-Unlike the template system implemented in the Django Framework it allows to call functions. The Code is staying under the BSD license.
+`Jinja2 `_ is a template engine which is similar to
+the Django template system with some extra features. It is a text-based
+template language and thus can be used to generate any markup. It allows
+customization of filters, tags, tests and globals, and unlike the template
+system implemented in the Django Framework, also allows calling functions.
+Jinja2 is released under the BSD license.
Here some important html tags in Jinja2:
@@ -324,8 +327,8 @@ Here some important html tags in Jinja2:
-The next listings is an example of a web site in combination with the tornado web server. Tornado is not very complicate
-to use.
+The next listings is an example of a web site in combination with the tornado
+web server. Tornado is not very complicate to use.
.. code-block:: python
@@ -365,7 +368,8 @@ to use.
application.listen(PORT)
tornado.ioloop.IOLoop.instance().start()
-The :file:`base.html` file can be used as base for all site pages which are for example implemented in the content block.
+The :file:`base.html` file can be used as base for all site pages which are
+for example implemented in the content block.
.. code-block:: html
@@ -389,8 +393,9 @@ The :file:`base.html` file can be used as base for all site pages which are for
-The next listing is our site page (:file:`site.html`) loaded in the Python app which extends :file:`base.html`. The content block is
-automatically set into the corresponding block in the :file:`base.html` page.
+The next listing is our site page (:file:`site.html`) loaded in the Python
+app which extends :file:`base.html`. The content block is automatically set
+into the corresponding block in the :file:`base.html` page.
.. code-block:: html
From f4456812a06c0ca4eac91a32a55360c4239e0069 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 13:22:55 -0600
Subject: [PATCH 0258/1051] Some wording changes to scenarios/scrape.
---
docs/scenarios/scrape.rst | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/scenarios/scrape.rst b/docs/scenarios/scrape.rst
index 8533919d8..8e1a6fc03 100644
--- a/docs/scenarios/scrape.rst
+++ b/docs/scenarios/scrape.rst
@@ -18,8 +18,8 @@ lxml and Requests
-----------------
`lxml `_ is a pretty extensive library written for parsing
-XML and HTML documents really fast. It even handles messed up tags. We will
-also be using the `Requests `_
+XML and HTML documents very quickly, even handling messed up tags in the
+process. We will also be using the `Requests `_
module instead of the already built-in urllib2 module due to improvements in speed and
readability. You can easily install both using ``pip install lxml`` and
``pip install requests``.
@@ -31,8 +31,8 @@ Let's start with the imports:
from lxml import html
import requests
-Next we will use ``requests.get`` to retrieve the web page with our data
-and parse it using the ``html`` module and save the results in ``tree``:
+Next we will use ``requests.get`` to retrieve the web page with our data,
+parse it using the ``html`` module and save the results in ``tree``:
.. code-block:: python
@@ -40,7 +40,7 @@ and parse it using the ``html`` module and save the results in ``tree``:
tree = html.fromstring(page.text)
``tree`` now contains the whole HTML file in a nice tree structure which
-we can go over two different ways: XPath and CSSSelect. In this example, I
+we can go over two different ways: XPath and CSSSelect. In this example, we
will focus on the former.
XPath is a way of locating information in structured documents such as
@@ -96,6 +96,6 @@ a web page using lxml and Requests. We have it stored in memory as two
lists. Now we can do all sorts of cool stuff with it: we can analyze it
using Python or we can save it to a file and share it with the world.
-A cool idea to think about is modifying this script to iterate through
-the rest of the pages of this example dataset or rewriting this
+Some more cool ideas to think about are modifying this script to iterate
+through the rest of the pages of this example dataset, or rewriting this
application to use threads for improved speed.
From dd91bf9e1d9113f60f2812b0ea0b9750ab0ea4c9 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 13:34:02 -0600
Subject: [PATCH 0259/1051] Wording and line wraps for scenarios/cli.
---
docs/scenarios/cli.rst | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/docs/scenarios/cli.rst b/docs/scenarios/cli.rst
index 461dda593..7268b0518 100644
--- a/docs/scenarios/cli.rst
+++ b/docs/scenarios/cli.rst
@@ -8,15 +8,15 @@ Clint
`clint `_ is a Python module which is
filled with very useful tools for developing command-line applications.
-It supports features such as; CLI Colors and Indents, Simple and Powerful
-Column Printer, Iterator based progress bar and Implicit argument handling.
+It supports features such as; CLI colors and indents, simple and powerful
+column printer, iterator based progress bars and implicit argument handling.
Click
-----
`click `_ is an upcoming Python package for creating
-command-line interfaces in a composable way with as little amount of code as
-necessary. Itâs the âCommand-line Interface Creation Kitâ. Itâs highly
+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.
docopt
@@ -29,18 +29,20 @@ POSIX-style usage instructions.
Plac
------
-`Plac `_ is a Python module that allows developing command-line applications. In fact
-plac is a simple wrapper over the Python standard library `argparse `_, it hides most of its
-complexity by using a declarative interface: the argument parser is inferred
-rather than written down by imperatively. It is targetting especially unsophisticated
-users, programmers, sys-admins, scientists and in general people writing throw-away
-scripts for themselves, choosing the command-line interface because it is quick
-and simple.
+`Plac `_ is a simple wrapper
+over the Python standard library `argparse `_,
+which hides most of its complexity by using a declarative interface: the
+argument parser is inferred rather than written down by imperatively. This
+module targets especially unsophisticated users, programmers, sys-admins,
+scientists and in general people writing throw-away scripts for themselves,
+who choose to create a command-line interface because it is quick and simple.
Cliff
------
-`Cliff `_ is a framework for building command-line programs.
-It uses setuptools entry points to provide subcommands, output formatters, and other extensions. The framework
-is meant to be used to create multi-level commands such as subversion and git, where the main program handles
-some basic argument parsing and then invokes a sub-command to do the work.
+`Cliff `_ is a framework for
+building command-line programs. It uses setuptools entry points to provide
+subcommands, output formatters, and other extensions. The framework is meant
+to be used to create multi-level commands such as subversion and git, where
+the main program handles some basic argument parsing and then invokes a
+sub-command to do the work.
From 01af1bb72e7e8c0cafe8127d54fa1ddecf65c142 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 13:41:53 -0600
Subject: [PATCH 0260/1051] Caps, wording, and line wrapping for scenarios/gui.
Also added a brief description for PyQt.
---
docs/scenarios/gui.rst | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/docs/scenarios/gui.rst b/docs/scenarios/gui.rst
index 2a5d3619a..fae55bb46 100644
--- a/docs/scenarios/gui.rst
+++ b/docs/scenarios/gui.rst
@@ -9,9 +9,9 @@ Camelot
applications on top of Python, SQLAlchemy and Qt. It is inspired by
the Django admin interface.
-The main resource for information is the website:
+The main resource for information is the website:
http://www.python-camelot.com
-and the mailinglist https://groups.google.com/forum/#!forum/project-camelot
+and the mailing list https://groups.google.com/forum/#!forum/project-camelot
Cocoa
-----
@@ -22,7 +22,7 @@ GTk
PyGTK provides Python bindings for the GTK+ toolkit. Like the GTK+ library
itself, it is currently licensed under the GNU LGPL. It is worth noting that
PyGTK only currently supports the Gtk-2.X API (NOT Gtk-3.0). It is currently
-recommended that PyGTK not be used for new projects and existing applications
+recommended that PyGTK not be used for new projects and that existing applications
be ported from PyGTK to PyGObject.
Kivy
@@ -54,11 +54,13 @@ PyQt
~~~~
.. note:: If your software does not fully comply with the GPL you will need a commercial license!
+PyQt provides Python bindings for the Qt Framework (see below).
+
http://www.riverbankcomputing.co.uk/software/pyqt/download
PyjamasDesktop (pyjs Desktop)
-----------------------------
-PyjamasDesktop is a port of PyJamas. PyjamasDesktop is application widget set
+PyjamasDesktop is a port of Pyjamas. PyjamasDesktop is application widget set
for desktop and a cross-platform framework. (After release v0.6 PyjamasDesktop
is a part of Pyjamas (Pyjs)). Briefly, it allows the exact same Python web application
source code to be executed as a standalone desktop application.
@@ -69,8 +71,9 @@ The main website; `pyjs Desktop `_.
Qt
--
-`Qt `_ is a cross-platform application framework that is widely used for developing
-software with a GUI but can also be used for non-GUI applications.
+`Qt `_ is a cross-platform application framework that
+is widely used for developing software with a GUI but can also be used for
+non-GUI applications.
Tk
--
From 44b164c314aaf7e0e949e24757372e4bcad69f41 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 13:45:30 -0600
Subject: [PATCH 0261/1051] Wrapped and removed extra text from scenarios/db.
---
docs/scenarios/db.rst | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/docs/scenarios/db.rst b/docs/scenarios/db.rst
index 252d9d7b1..0d30c3ee2 100644
--- a/docs/scenarios/db.rst
+++ b/docs/scenarios/db.rst
@@ -30,14 +30,11 @@ Django ORM
The Django ORM is the interface used by `Django `_
to provide database access.
-It's based on the idea of `models `_, an abstraction that makes it easier to
-manipulate data in Python.
+It's based on the idea of `models `_,
+an abstraction that makes it easier to manipulate data in Python.
The basics:
- Each model is a Python class that subclasses django.db.models.Model.
- Each attribute of the model represents a database field.
- Django gives you an automatically-generated database-access API; see `Making queries `__.
-to provide database access.
-
-
From 44890a8972e07aaac51385a958b7faccd2106078 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 13:49:05 -0600
Subject: [PATCH 0262/1051] Wrapping, newlines, and minor wording changes to
scenarios/network.
---
docs/scenarios/network.rst | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/docs/scenarios/network.rst b/docs/scenarios/network.rst
index 56031aa9d..9834be819 100644
--- a/docs/scenarios/network.rst
+++ b/docs/scenarios/network.rst
@@ -12,21 +12,23 @@ IMAP or SSH protocols, instant messaging and `much more `_ is the Python binding for `ZeroMQ `_,
-which is a high-performance asynchronous messaging library. One great advantage is that ZeroMQ
-can be used for message queuing without a message broker. The basic patterns for this are:
-
-- request-reply: connects a set of clients to a set of services. This is a remote procedure call
- and task distribution pattern.
-- publish-subscribe: connects a set of publishers to a set of subscribers. This is a data
- distribution pattern.
-- push-pull (or pipeline): connects nodes in a fan-out / fan-in pattern that can have multiple
- steps, and loops. This is a parallel task distribution and collection pattern.
+`PyZMQ `_ is the Python binding for
+`ZeroMQ `_, which is a high-performance asynchronous
+messaging library. One great advantage of ZeroMQ is that it can be used for
+message queuing without a message broker. The basic patterns for this are:
+
+- request-reply: connects a set of clients to a set of services. This is a
+ remote procedure call and task distribution pattern.
+- publish-subscribe: connects a set of publishers to a set of subscribers.
+ This is a data distribution pattern.
+- push-pull (or pipeline): connects nodes in a fan-out / fan-in pattern that
+ can have multiple steps, and loops. This is a parallel task distribution
+ and collection pattern.
For a quick start, read the `ZeroMQ guide `_.
gevent
------
-`gevent `_ is a coroutine-based Python networking library
-that uses greenlets and libevent event loop.
+`gevent `_ is a coroutine-based Python networking library
+that uses greenlets and libevent event loops.
From 843fa4e56d1ceb10f88b920354f24b5504663c12 Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 14:00:42 -0600
Subject: [PATCH 0263/1051] Wording, wrapping, and formatting changes for
scenarios/admin.
---
docs/scenarios/admin.rst | 37 +++++++++++++++++++++++--------------
1 file changed, 23 insertions(+), 14 deletions(-)
diff --git a/docs/scenarios/admin.rst b/docs/scenarios/admin.rst
index 0dafa0be7..2a82b03df 100644
--- a/docs/scenarios/admin.rst
+++ b/docs/scenarios/admin.rst
@@ -126,9 +126,12 @@ State files can be written using YAML, the Jinja2 template system or pure Python
Psutil
------
-`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. In case of some failed test (net, CPU) it send an email.
+`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
+tests (net, CPU) fail, it will send an email.
.. code-block:: python
@@ -162,7 +165,7 @@ Here is an example to be aware of some server overload. In case of some failed t
if counter > 25:
attack = 0
counter = 0
- # Write a very important email if attack is higher then 4
+ # Write a very important email if attack is higher than 4
TO = "you@your_email.com"
FROM = "webmaster@your_domain.com"
SUBJECT = "Your domain is out of system resources!"
@@ -173,12 +176,17 @@ Here is an example to be aware of some server overload. In case of some failed t
server.quit()
-A full terminal application like a widely extended top which is based on psutil and with the ability of a client-server
-monitoring is `glance `_.
+A full terminal application like a widely extended top which is based on
+psutil and with the ability of a client-server monitoring is
+`glance `_.
Ansible
-------
-`Ansible `_ is a open source system automation tool. The biggest advantage over Puppet or Chef is it does not require an agent on the client machine. Playbooks are Ansibleâs configuration, deployment, and orchestration language and are written in in yaml with jinja2 for templating.
+
+`Ansible `_ is an open source system automation tool.
+The biggest advantage over Puppet or Chef is it does not require an agent on
+the client machine. Playbooks are Ansibleâs configuration, deployment, and
+orchestration language and are written in in YAML with Jinja2 for templating.
Ansible supports Python versions 2.6 and 2.7 and can be installed via pip:
@@ -186,11 +194,12 @@ Ansible supports Python versions 2.6 and 2.7 and can be installed via pip:
$ pip install ansible
-Ansible requires a inventory file that describes the hosts it has access to. Here is an example of a host and
-playbook that will ping all the hosts in the inventory file:
+Ansible requires an inventory file that describes the hosts to which it has
+access. Below is an example of a host and playbook that will ping all the
+hosts in the inventory file.
Here is an example inventory file:
-hosts.yml
+:file:`hosts.yml`
.. code-block:: yaml
@@ -198,7 +207,7 @@ hosts.yml
127.0.0.1
Here is an example playbook:
-ping.yml
+:file:`ping.yml`
.. code-block:: yaml
@@ -207,7 +216,7 @@ ping.yml
tasks:
- name: ping
- action: ping
+ action: ping
To run the playbook:
@@ -215,9 +224,9 @@ To run the playbook:
$ ansible-playbook ping.yml -i hosts.yml --ask-pass
-That Ansible playbook will ping all of the servers in the hosts.yml file. You can also select groups of servers using Ansible. For more information about Ansible read the docs.
-
-`Ansible Docs `_
+The Ansible playbook will ping all of the servers in the :file:`hosts.yml` file.
+You can also select groups of servers using Ansible. For more information
+about Ansible, read the `Ansible Docs `_.
Chef
From 7a65571383a9bdf668c24d42a15df6a998df7d3e Mon Sep 17 00:00:00 2001
From: george
Date: Tue, 17 Jun 2014 14:08:47 -0600
Subject: [PATCH 0264/1051] Wrapping and wording for scenarios/ci.
---
docs/scenarios/ci.rst | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/docs/scenarios/ci.rst b/docs/scenarios/ci.rst
index 4e4a80ece..d45cd89bc 100644
--- a/docs/scenarios/ci.rst
+++ b/docs/scenarios/ci.rst
@@ -26,6 +26,7 @@ engine. Use it.
Buildbot
--------
+
`Buildbot