PyDev 3.2.0 has been released
Details on PyDev: http://pydev.org
Details on its development: http://pydev.blogspot.com
LiClipse (PyDev standalone with goodies such as support for Django
* **Important**: PyDev requires Eclipse 3.8 or 4.3 onwards and Java 7! For
older versions, keep using PyDev 2.x.
* Added option to sort imports on save.
* Showing dialog suggesting user to customize settings in Eclipse which
are more suitable for PyDev.
* Memory improvements on situations where an OutOfMemoryError could
* Search references (Ctrl+Shift+G) when initial is on external module
works (for matches in workspace).
* **Rename refactoring**:
* Added option to rename module without updating references.
* Code completion: Builtins gotten from a shell are now cached for
* Doing a full build (reindex) is faster.
* Improvements on stackless integration.
* Providing a view which shows the current caught exception.
* Providing way to ignore current caught exception.
* Providing option to show progress on taskbar when breakpoint is hit
to get the users attention (windows 7).
* Fixed issue in while getting referrers when getting __dict__ and
having an exception.
What is PyDev?
PyDev is a plugin that enables users to use Eclipse for Python, Jython and
IronPython development -- making Eclipse a first class Python IDE -- It
comes with many goodies such as code completion, syntax highlighting,
syntax analysis, refactor, debug and many others.
PyDev - Python Development Environment for Eclipse
kryptomime 0.1.3 has been released.
A package for encrypted MIME messages. It currently supports PGP/MIME
via GnuPG. S/MIME support is planned for future releases.
Proper kryptography requires security audits of the complete system.
Even though the author is not aware of any bugs in this software, it
comes with ABSOLUTELY NO WARRANTY. USE THIS SOFTWARE AT YOUR OWN RISK.
[sudo] pip install kryptomime
To install this package from this git repository, do:
git clone https://github.com/ttanner/kryptomime.git
python setup.py install
python setup.py test
Optionally to build the documentation after installation, do:
This is a simple example of how to use kryptomime::
>>> from kryptomime import create_mail, GPGMIME
>>> import gnupg
>>> gpg = gnupg.GPG(home='gpghome')
>>> krypto = GPGMIME(gpg,default_key=('foo(a)bar.com','passphrase'))
>>> msg =
>>> sgnmsg,results = krypto.sign(msg)
>>> verified, results = krypto.verify(sgnmsg)
>>> rawmsg,signed = krypto.strip_signature(sgnmsg)
>>> encmsg,results = krypto.encrypt(msg,sign=True)
>>> verified, results = krypto.verify(encmsg)
>>> decmsg, verified, results = krypto.decrypt(encmsg)
Bug Reports & Feature Requests
Please use the bugtracker https://github.com/ttanner/kryptomime/issues
wxPython 188.8.131.52 (classic) has been released and is now available for
download at http://wxpython.org/download.php. No new features but
lots of bug fixes in wxWidgets and of course the bump (finally!) up to
Various binaries are available for 32-bit and 64-bit Windows, and also
for OSX using the Carbon and Cocoa APIs, for Python 2.6 and 2.7.
Source code is also available at http://wxpython.org/download.php of
course, for building your own.
What is 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 set of Python extension modules that wrap the GUI
components of the popular wxWidgets cross platform library, which is
written in C++.
wxPython is a cross-platform toolkit. This means that the same program
will usually run on multiple platforms without modifications.
Currently supported platforms are 32-bit and 64-bit Microsoft Windows,
most Linux or other Unix-like systems using GTK2, and Mac OS X 10.4+.
In most cases the native widgets are used on each platform to provide
a 100% native look and feel for the application.
I am pleased to announce that four new versions of WinPython have been
released yesterday with Python 2.7.6 and 3.3.3, 32 and 64 bits. Many
packages have been added or upgraded (Spyder 2.2.5 for Python 2, Spyder
2.3.0beta2 for Python 3, SciPy 0.13.2, NumPy MKL 1.8.0, IPython 1.0, etc.
-- see the complete changelog:
Special thanks to Christoph Gohlke for building most of the binary packages
bundled in WinPython.
WinPython is a free open-source portable distribution of Python
for Windows, designed for scientists: http://winpython.sourceforge.net/.
It is a full-featured Python-based scientific environment:
* Designed for scientists (thanks to the integrated libraries
NumPy, SciPy, Matplotlib, guiqwt, etc.:
* Regular *scientific users*: interactive data processing
and visualization using Python with Spyder
* *Advanced scientific users and software developers*:
Python applications development with Spyder, version control with
Mercurial and other development tools (like gettext)
* *Portable*: preconfigured, it should run out of the box on any machine
under Windows (without any installation requirements) and the folder
containing WinPython can be moved to any location (local, network or
* *Flexible*: one can install (or should I write "use" as it's portable)
as many WinPython versions as necessary (like isolated and self-consistent
environments), even if those versions are running different versions of
Python (2.7, 3.x in the near future) or different architectures (32bit or
64bit) on the same machine
* *Customizable*: using the integrated package manager (wppm,
as WinPython Package Manager), it's possible to install, uninstall
or upgrade Python packages (see
https://sourceforge.net/p/winpython/wiki/WPPM/ for more details
on supported package formats).
*WinPython is not an attempt to replace Python(x,y)*, this is
just something different: more flexible, easier to maintain, movable and
less invasive for the OS, but certainly less user-friendly, with less
packages/contents and without any integration to Windows explorer [*].
[*] Actually there is an optional integration into Windows
explorer, providing the same features as the official Python installer
regarding file associations and context menu entry (this option may be
activated through the WinPython Control Panel), and adding shortcuts to
Windows Start menu.
Gruvi is a new I/O library for Python. It uses pyuv and coroutines based on python-fibers to provide a synchronous programming model for evented IO.
Gruvi is similar in objective to gevent and asyncio but it has its own unique design.
Some cool features:
* Uses a transport/protocol API (no monkey patching).
* Comes with an SSL transport that should scale on all platforms including Windows.
* Comes with high-performance HTTP client and server implementations (based on the Node.js http-parser), a D-BUS client, and a JSON-RPC client and server.
* Use regular Python function call syntax to call potentially blocking functions. When a function blocks, the current fiber is suspended until the operation completes.
* Has a concurrent.futures like fiber and thread pool.
* Comes with thread-safe synchronization primitives.
Project page (redirects to PyPI page):
Feedback is appreciated on geertj(a)gmail.com.
I'm pleased to announce version 0.1.1 of python-rrdtool (former
rrdtool-py3k). python-rrdtool is a rrdtool Python binding for Python 2 and
3. Its based on the original Python (2.x) bindings module by Hye-Shik Chang
and available as a native C extension. Furthermore, it provides an
object-oriented interface to RRD files.
Changes in version 0.1.1:
* Added support for Python 2.7. The binding can now handle Python 2.x and
* Added dump command (backport of the commit of Steve Dougherty into the
official rrdtool python binding).
* Minor fixes regarding the use of the graphv command when using on Python
Installation is pretty simple (using pip):
# pip install https://github.com/commx/python-rrdtool/tarball/master
The project is hosted on Github (including sources):
Further documentation and usage examples can be found on the Github project
page. I'd like to encourage users to test the binding and submit bugs (as
its still at a early stage of development) to the issue tracker there.
We are happy to announce Pint 0.4. Pint is a Python package to define,
operate and manipulate physical quantities: the product of a numerical
value and a unit of measurement. This release brings a lot of new
exciting features including Context. A Context enables to convert
between unrelated dimensions based on pre-established rules.
Check out the blog post for more details:
You can get pint using pip:
$ pip install pint
or get the source code:
and check the docs:
What is Pint?
Pint is Python package to define, operate and manipulate physical
quantities: the product of a numerical value and a unit of
measurement. It allows arithmetic operations between them and
conversions from and to different units.
It is distributed with a comprehensive list of physical units,
prefixes and constants. Due to it’s modular design, you can extend (or
even rewrite!) the complete list without changing the source code.
It has a complete test coverage. It runs in Python 2.7 and 3.X with no
other dependency. It licensed under BSD.
* Unit parsing: prefixed and pluralized forms of units are recognized
without explicitly defining them. In other words: as the prefix kilo
and the unit meter are defined, Pint understands kilometers. This
results in a much shorter and maintainable unit definition list as
compared to other packages.
* Standalone unit definitions: units definitions are loaded from a
text file which is simple and easy to edit. Adding and changing units
and their definitions does not involve changing the code.
* Advanced string formatting: a quantity can be formatted into string
using PEP 3101 syntax. Extended conversion flags are given to provide
symbolic, latex and pretty formatting.
* Free to choose the numerical type: You can use any numerical type
(fraction, float, decimal, numpy.ndarray, etc). NumPy is not required
* NumPy integration: When you choose to use a NumPy ndarray, its
methods and ufuncs are supported including automatic conversion of
units. For example numpy.arccos(q) will require a dimensionless q and
the units of the output quantity will be radian.
* Handle temperature: conversion between units with different
reference points, like positions on a map or absolute temperature
* Small codebase: easy to maintain codebase with a flat hierarchy.
* Dependency free: it depends only on Python and it’s standard library.
* Python 2 and 3: a single codebase that runs unchanged in Python 2.7+
and Python 3.0+.
Thanks to the people that contributed bug reports, suggestions and
patches since 0.3. In particular to: John David Reaver, Giel van
Schijndel and Nate Bogdanowicz.
I have the pleasure to announce the release of Lea 1.2.
Lea is a Python package aiming at working with discrete
probability distributions in an intuitive way.
It allows modeling a broad range of random discrete phenomenon's. Then,
it allows calculating probabilities of events, whether atomic, aggregated
or combined through given operations. A typical example is the probabilities
of the sum of N dice having known, possibly unfair, probability
Here are the main features of Lea:
- models finite discrete probability distributions
- standard distribution indicators (mean, standard deviation,.)
- arithmetic and logical operators on probability distribution
- cartesian products, conditional probabilities, joint distributions
- generation of random samples
- open-source project, LGPL license
- pure Python module, lightweight - no package dependency
- probabilities stored as integers (no floating-point biases)
(with wiki documentation including tutorials, examples and API)
Hoping this could be helpful in this uncertain universe...
Version 0.1.2 of Sarge, a cross-platform library which wraps the subprocess
module in the standard library, has been released.
- Fixed issue #12: Prevented a hang which occurred when a redirection failed.
- Fixed issue #11: Added "+" to the characters allowed in parameters.
- Fixed issue #10: Removed a spurious debugger breakpoint.
- Fixed issue #9: Relative pathnames in redirections are now relative to the
current working directory for the redirected process.
- Added the ability to pass objects with "fileno()" methods as values
to the "input" argument of "run()", and a "Feeder" class which
facilitates passing data to child processes dynamically over time (rather
than just an initial string, byte-string or file).
- Added functionality under Windows to use PATH, PATHEXT and the
registry to find appropriate commands. This can e.g. convert a
command 'foo bar', if 'foo.py' is a Python script in the
c:\Tools directory which is on the path, to the equivalent
'c:\Python26\Python.exe c:\Tools\foo.py bar'. This is done internally
when a command is parsed, before it is passed to subprocess.
- Fixed issue #7: Corrected handling of whitespace and redirections.
- Fixed issue #8: Added a missing import.
- Added Travis integration.
- Added encoding parameter to the "Capture" initializer.
- Fixed issue #6: addressed bugs in Capture logic so that iterating over
captures is closer to subprocess behaviour.
- Tests added to cover added functionality and reported issues.
- Numerous documentation updates.
What does Sarge do?
Sarge tries to make interfacing with external programs from your
Python applications easier than just using subprocess alone.
Sarge offers the following features:
* A simple way to run command lines which allows a rich subset of Bash-
style shell command syntax, but parsed and run by sarge so that you
can run on Windows without cygwin (subject to having those commands
>>> from sarge import capture_stdout
>>> p = capture_stdout('echo foo | cat; echo bar')
>>> for line in p.stdout: print(repr(line))
* The ability to format shell commands with placeholders, such that
variables are quoted to prevent shell injection attacks.
* The ability to capture output streams without requiring you to
program your own threads. You just use a Capture object and then you
can read from it as and when you want.
* The ability to look for patterns in captured output and to interact
accordingly with the child process.
Advantages over subprocess
Sarge offers the following benefits compared to using subprocess:
* The API is very simple.
* It's easier to use command pipelines - using subprocess out of the
box often leads to deadlocks because pipe buffers get filled up.
* It would be nice to use Bash-style pipe syntax on Windows, but
Windows shells don't support some of the syntax which is useful, like
&&, ||, |& and so on. Sarge gives you that functionality on Windows,
* Sometimes, subprocess.Popen.communicate() is not flexible enough for
one's needs - for example, when one needs to process output a line at
a time without buffering the entire output in memory.
* It's desirable to avoid shell injection problems by having the
ability to quote command arguments safely.
* subprocess allows you to let stderr be the same as stdout, but not
the other way around - and sometimes, you need to do that.
Python version and platform compatibility
Sarge is intended to be used on any Python version >= 2.6 and is
tested on Python versions 2.6, 2.7, 3.1, 3.2 and 3.3 on Linux,
Windows, and Mac OS X (not all versions are tested on all platforms,
but sarge is expected to work correctly on all these versions on all
Finding out more
You can read the documentation at
There's a lot more information, with examples, than I can put into
You can install Sarge using "pip install sarge" to try it out. The
project is hosted on BitBucket at
And you can leave feedback on the issue tracker there.
I hope you find Sarge useful!
pytest-2.5.1: fixes and new home page styling
pytest is a mature Python testing tool with more than a 1000 tests
against itself, passing on many different interpreters and platforms.
The 2.5.1 release maintains the "zero-reported-bugs" promise by fixing
the three bugs reported since the last release a few days ago. It also
features a new home page styling implemented by Tobias Bieniek, based on
the flask theme from Armin Ronacher:
If you have anything more to improve styling and docs,
we'd be very happy to merge further pull requests.
On the coding side, the release also contains a little enhancement to
fixture decorators allowing to directly influence generation of test
ids, thanks to Floris Bruynooghe. Other thanks for helping with
this release go to Anatoly Bubenkoff and Ronny Pfannschmidt.
As usual, you can upgrade from pypi via::
pip install -U pytest
have fun and a nice remaining "bug-free" time of the year :)
- merge new documentation styling PR from Tobias Bieniek.
- fix issue403: allow parametrize of multiple same-name functions within
a collection node. Thanks Andreas Kloeckner and Alex Gaynor for reporting
- Allow parameterized fixtures to specify the ID of the parameters by
adding an ids argument to pytest.fixture() and pytest.yield_fixture().
Thanks Floris Bruynooghe.
- fix issue404 by always using the binary xml escape in the junitxml
plugin. Thanks Ronny Pfannschmidt.
- fix issue407: fix addoption docstring to point to argparse instead of
optparse. Thanks Daniel D. Wright.