I am happy to announce the release of xlwings v0.2.0, adding native support for Excel on Mac.
xlwings is a BSD-licensed Python library that makes it easy to call Python from Excel and vice versa: http://xlwings.org
bcolz: columnar and compressed data containers
bcolz provides columnar, chunked data containers that can be
compressed either in-memory and on-disk. Column storage allows for
efficiently querying tables, as well as for cheap column addition and
removal. It is based on `NumPy <http://www.numpy.org>`_, and uses it
as the standard data container to communicate with bcolz objects, but
it also comes with support for import/export facilities to/from
`HDF5/PyTables tables <http://www.pytables.org>`_ and `pandas
bcolz objects are compressed by default not only for reducing
memory/disk storage, but also to improve I/O speed. The compression
process is carried out internally by `Blosc <http://blosc.org>`_, a
high-performance, multithreaded meta-compressor that is optimized for
binary data (although it works with text data just fine too).
bcolz can also use `numexpr <https://github.com/pydata/numexpr>`_
internally (it does that by default if it detects numexpr installed)
so as to accelerate many vector and query operations (although it can
use pure NumPy for doing so too). numexpr can optimize the memory
usage and use multithreading for doing the computations, so it is
blazing fast. This, in combination with carray/ctable disk-based,
compressed containers, can be used for performing out-of-core
computations efficiently, but most importantly *transparently*.
Just to wet your appetite, here it is an example with real data, where
bcolz is already fullfilling the promise of accelerating memory I/O by
By using compression, you can deal with more data using the same
amount of memory, which is very good on itself. But in case you are
wondering about the price to pay in terms of performance, you should
know that nowadays memory access is the most common bottleneck in many
computational scenarios, and that CPUs spend most of its time waiting
for data. Hence, having data compressed in memory can reduce the
stress of the memory subsystem as well.
Furthermore, columnar means that the tabular datasets are stored
column-wise order, and this turns out to offer better opportunities to
improve compression ratio. This is because data tends to expose more
similarity in elements that sit in the same column rather than those
in the same row, so compressors generally do a much better job when
data is aligned in such column-wise order.
So, the ultimate goal for bcolz is not only reducing the memory needs
of large arrays/tables, but also making bcolz operations to go faster
than using a traditional ndarray object from NumPy. That is already
the case in some real-life scenarios (see the notebook above) but that
will become pretty more noticeable in combination with forthcoming,
faster CPUs integrating more cores and wider vector units.
- Python >= 2.6
- NumPy >= 1.7
- Cython >= 0.20 (just for compiling the beast)
- Blosc >= 1.3.0 (optional, as the internal Blosc will be used by default)
- unittest2 (optional, only in the case you are running Python 2.6)
Assuming that you have the requisites and a C compiler installed, do::
$ pip install -U bcolz
or, if you have unpacked the tarball locally::
$ python setup.py build_ext --inplace
In case you have Blosc installed as an external library you can link
with it (disregarding the included Blosc sources) in a couple of ways:
Using an environment variable::
$ BLOSC_DIR=/usr/local (or "set BLOSC_DIR=\blosc" on Win)
$ export BLOSC_DIR (not needed on Win)
$ python setup.py build_ext --inplace
Using a flag::
$ python setup.py build_ext --inplace --blosc=/usr/local
After compiling, you can quickly check that the package is sane by
$ PYTHONPATH=. (or "set PYTHONPATH=." on Windows)
$ export PYTHONPATH (not needed on Windows)
$ python -c"import bcolz; bcolz.test()" # add `heavy=True` if desired
Install it as a typical Python package::
$ python setup.py install
You can find the online manual at:
but of course, you can always access docstrings from the console
Also, you may want to look at the bench/ directory for some examples
Visit the main bcolz site repository at:
Home of Blosc compressor:
User's mail list:
An `introductory talk (20 min)
<https://www.youtube.com/watch?v=-lKV4zC1gss>`_ about bcolz at
EuroPython 2014. `Slides here
Please see BCOLZ.txt in LICENSES/ directory.
Share your experience
Let us know of any bugs, suggestions, gripes, kudos, etc. you may
I'm happy to announce that Pylint 1.3 and Astroid 1.2 were released at
the end of the last week.
There has been a lot of enhancements and bug fixes since the latest
release, so you're strongly encouraged to upgrade. More information
about the changes in this release can be found here:
PyTexas 2014 <http://pytexas.org/> is well on its way. This year it will be
be located at the Texas A&M University Memorial Student Center
<https://www.pytexas.org/2014/about/venue/> and will take place Friday
October 3rd through Sunday October 5th. Friday will be a tutorial day.
Saturday and Sunday will be talks. Registration for the conference is
This event is a great opportunity to meet with other Python folks, learn
about what’s happening in the Python community, and spread the word about
exciting projects using Python.
We are currently looking for speakers and tutorials in all disciplines.
Know about GIS, Scientific Computing, Math, Web, Standard Library, or have
an itch to present your personal projects? We want you! We have more
details on the PyTexas Site so stop on by and submit a talk today
Does your company use Python? Do they love Python as much we do? Sponsor!
Sponsorship is a great way for your company to reach out to the Python
community and let the world know how they use Python. Recruiting? No
worries! We have sponsorships where you can set up a booth and speak with
developers at the conference. Check out our sponsorship prospectus for more
During the conference we will provide breakfast, snacks, and lunch all
three days. We have plenty of power so bring your laptop, hack away, and
enjoy the conference. We look forward to seeing the community in a few
months and stay tuned for any announcements on the PyTexas Site
<http://pytexas.org/> or PyTexas Twitter <https://twitter.com/pytexas>.
Thanks for your time!
PyTexas 2014 Organizers
On behalf of the Bokeh team, I am very happy to announce the release of
Bokeh version 0.5.1! (http://continuum.io/blog/bokeh-0.
Bokeh is a Python library for visualizing large and realtime datasets on
This release includes many bug fixes and improvements over our last recent
* Hover activated by default
* Boxplot in bokeh.charts
* Better messages when you forget to start the bokeh-server
* Fixed some packaging bugs
* Fixed NBviewer rendering
* Fixed some Unicodeencodeerror
See the CHANGELOG for full details.
In upcoming releases, you should expect to see dynamic, data-driven layouts
(including ggplot-style auto-faceting), as well as R language bindings,
more statistical plot types in bokeh.charts, and cloud hosting for Bokeh
Don't forget to check out the full documentation, interactive gallery, and
as well as the new Bokeh IPython notebook nbviewer index (including all the
If you are using Anaconda, you can install with conda:
conda install bokeh
Alternatively, you can install with pip:
pip install bokeh
Issues, enhancement requests, and pull requests can be made on the Bokeh Github
Questions can be directed to the Bokeh mailing list: bokeh(a)continuum.io
If you have interest in helping to develop Bokeh, please get involved!
Wingware has released version 5.0.8 of Wing IDE, our cross-platform
development environment for the Python programming language.
Wing IDE includes a professional quality code editor with vi, emacs,
and other key bindings, auto-completion, call tips, goto-definition,
find uses, refactoring,
context-aware auto-editing, a powerful graphical debugger, version
control, unit testing,
search, and many other features. For details see http://wingware.com/
Changes in this minor release include:
Debug stack is accessible from the toolbar's Show Position icon
Added Step Over Statement and Step Over Block to step through code
Added experimental selection-add-next-occurence command for
creating multiple selections
Added step-over-line command to step over current physical line
Fix debugging with Stackless 2.7.8
Fix debugging 32-bit Python on OS X
About 34 other bug fixes; see the change log for details
For details see http://wingware.com/pub/wingide/5.0.8/CHANGELOG.txt
A summary of new features in Wing 5:
Native GUI on OS X and better overall OS-native look and feel
Draggable tools and editors
Configurable toolbar and editor & project context menus
Lockable editor splits and mode to open different files in each split
Sharable color palettes and syntax highlighting configurations
Auto-editing is on by default (except some operations that have a
Optional Python Turbo completion (context-appropriate completion on
all non-symbol keys)
Improved Source Assistant with PEP 287 docstring rendering and
Move debug program counter
Named file sets
New Project dialog
Sharable launch configurations and named entry points
Asynchronous I/O in Debug Probe and Python Shell
More control over unit testing environment
Initial preferences dialog for new users
Support for Python 3.4 and Stackless Python 2.7 and 3.3
Support for Django 1.6
Support for matplotlib on Anaconda and with MacOSX backend
Support for Maya 2015, MotionBuilder 2015, Nuke 8, and Source Filmmaker
Improved integrated and PDF documentation
Expanded and rewritten tutorial
Debug stepping by physical line, statement, and block
For more information on what's new in Wing 5, see
Free trial: http://wingware.com/wingide/trial
Feature list: http://wingware.com/wingide/features
Questions? Don't hesitate to email us at support(a)wingware.com.
Wingware | Python IDE
The Intelligent Development Environment for Python Programmers
pytest-2.6.0: shorter tracebacks, new warning system, test runner compat
pytest is a mature Python testing tool with more than a 1000 tests
against itself, passing on many different interpreters and platforms.
The 2.6.0 release should be drop-in backward compatible to 2.5.2 and
fixes a number of bugs and brings some new features, mainly:
- shorter tracebacks by default: only the first (test function) entry
and the last (failure location) entry are shown, the ones between
only in "short" format. Use ``--tb=long`` to get back the old
behaviour of showing "long" entries everywhere.
- a new warning system which reports oddities during collection
and execution. For example, ignoring collecting Test* classes with an
``__init__`` now produces a warning.
- various improvements to nose/mock/unittest integration
Note also that 2.6.0 departs with the "zero reported bugs" policy
because it has been too hard to keep up with it, unfortunately.
Instead we are for now rather bound to work on "upvoted" issues in
See docs at:
As usual, you can upgrade from pypi via::
pip install -U pytest
Thanks to all who contributed, among them:
- fix issue537: Avoid importing old assertion reinterpretation code by default.
Thanks Benjamin Peterson.
- fix issue364: shorten and enhance tracebacks representation by default.
The new "--tb=auto" option (default) will only display long tracebacks
for the first and last entry. You can get the old behaviour of printing
all entries as long entries with "--tb=long". Also short entries by
default are now printed very similarly to "--tb=native" ones.
- fix issue514: teach assertion reinterpretation about private class attributes
Thanks Benjamin Peterson.
- change -v output to include full node IDs of tests. Users can copy
a node ID from a test run, including line number, and use it as a
positional argument in order to run only a single test.
- fix issue 475: fail early and comprehensible if calling
pytest.raises with wrong exception type.
- fix issue516: tell in getting-started about current dependencies.
- cleanup setup.py a bit and specify supported versions. Thanks Jurko
Gospodnetic for the PR.
- change XPASS colour to yellow rather then red when tests are run
- fix issue473: work around mock putting an unbound method into a class
dict when double-patching.
- fix issue498: if a fixture finalizer fails, make sure that
the fixture is still invalidated.
- fix issue453: the result of the pytest_assertrepr_compare hook now gets
it's newlines escaped so that format_exception does not blow up.
- internal new warning system: pytest will now produce warnings when
it detects oddities in your test collection or execution.
Warnings are ultimately sent to a new pytest_logwarning hook which is
currently only implemented by the terminal plugin which displays
warnings in the summary line and shows more details when -rw (report on
warnings) is specified.
- change skips into warnings for test classes with an __init__ and
callables in test modules which look like a test but are not functions.
- fix issue436: improved finding of initial conftest files from command
line arguments by using the result of parse_known_args rather than
the previous flaky heuristics. Thanks Marc Abramowitz for tests
and initial fixing approaches in this area.
- fix issue #479: properly handle nose/unittest(2) SkipTest exceptions
during collection/loading of test modules. Thanks to Marc Schlaich
for the complete PR.
- fix issue490: include pytest_load_initial_conftests in documentation
and improve docstring.
- fix issue472: clarify that ``pytest.config.getvalue()`` cannot work
if it's triggered ahead of command line parsing.
- merge PR123: improved integration with mock.patch decorator on tests.
- fix issue412: messing with stdout/stderr FD-level streams is now
captured without crashes.
- fix issue483: trial/py33 works now properly. Thanks Daniel Grana for PR.
- improve example for pytest integration with "python setup.py test"
which now has a generic "-a" or "--pytest-args" option where you
can pass additional options as a quoted string. Thanks Trevor Bekolay.
- simplified internal capturing mechanism and made it more robust
against tests or setups changing FD1/FD2, also better integrated
now with pytest.pdb() in single tests.
- improvements to pytest's own test-suite leakage detection, courtesy of PRs
from Marc Abramowitz
- fix issue492: avoid leak in test_writeorg. Thanks Marc Abramowitz.
- fix issue493: don't run tests in doc directory with ``python setup.py test``
(use tox -e doctesting for that)
- fix issue486: better reporting and handling of early conftest loading failures
- some cleanup and simplification of internal conftest handling.
- work a bit harder to break reference cycles when catching exceptions.
Thanks Jurko Gospodnetic.
- fix issue443: fix skip examples to use proper comparison. Thanks Alex
- support nose-style ``__test__`` attribute on modules, classes and
functions, including unittest-style Classes. If set to False, the
test will not be collected.
- fix issue512: show "<notset>" for arguments which might not be set
in monkeypatch plugin. Improves output in documentation.
- avoid importing "py.test" (an old alias module for "pytest")
We are very happy to announce the third major public release (v0.4) of
the astropy package, a core Python package for Astronomy:
Astropy is a community-driven package intended to contain much of the
core functionality and common tools needed for performing astronomy
and astrophysics with Python.
New and improved major functionality in this release includes:
* A new astropy.vo.samp sub-package adapted from the previously
standalone SAMPy package
* A re-designed astropy.coordinates sub-package for celestial coordinates
* A new ‘fitsheader’ command-line tool that can be used to quickly
inspect FITS headers
* A new HTML table reader/writer
* Improved performance for Quantity objects
* A re-designed configuration framework
In addition, hundreds of smaller improvements and fixes have been
made. An overview of the changes is provided at:
Instructions for installing Astropy are provided at the
http://www.astropy.org website, and extensive documentation can be
In particular, if you use Anaconda, you can update to v0.4 with:
conda update astropy
Please report any issues, or request new features via our GitHub repository:
Over 80 developers have contributed code to Astropy so far, and you
can find out more about the team behind Astropy here:
If you use Astropy directly - or as a dependency to another package -
for your work, please remember to include the following acknowledgment
at the end of papers:
"This research made use of Astropy, a community-developed core Python
package for Astronomy (Astropy Collaboration, 2013)."
where “(Astropy Collaboration, 2013)” is the Astropy paper which was
published last year:
Please feel free to forward this announcement to anyone you think
might be interested in this release.
We hope that you enjoy using Astropy as much as we enjoyed developing it!
Thomas Robitaille, Erik Tollerud, and Perry Greenfield
on behalf of The Astropy Collaboration
It is my pleasure to announce the release of PyFITS version 3.3.0. PyFITS is a
Python package for reading FITS format images and tables and manipulating their
associated data and headers. The new version can be download from PyPI at:
The latest documentation can be found at:
This is a relatively minor release in terms of new features, and was released
today mostly to keep the PyFITS release in sync with today's release of Astropy
However, there are some important notices that accompany this release:
* The v3.3.x release series for PyFITS will be the *last* to support
Python 2.5, 3.1, and 3.2. PyFITS v3.4 will only support Python 2.6,
Python 2.7, and Python >= 3.3, in keeping with the Astropy project and
much of the rest of the Python community.
* PyFITS v3.3.x releases will be the last to support several APIs that have been
deprecated since v3.1. Some of the most common include Header.ascard and
Card.key. Also, deletion of non-existent header keywords (e.g.
del header['NONEXIST']) will raise a KeyError (just like a Python dict would)
rather than pass silently. Changes such as these are in order to reduce the
burden of maintaining old code, while giving users enough time to adjust their
use of that code as necessary. For a full list of API changes see the
* As is the case in Astropy, warnings for use of deprecated APIs are enabled by
default. This is mostly for the sake of developers using PyFITS. For
user-facing software that uses PyFITS internally it may be desirable to
disable these warnings. To that end a shortcut that can be called after
importing pyfits is provided:
* Finally, the v3.3.x release series will be the last to include binary .exe
installers for Windows distributions. PyFITS v3.4 and above will only provide
wheel  distributions for Python--these are considered the new community
standard for binary distributions of Python projects.
You can contact me at <embray(a)stsci.edu> with any questions or comments. Thank
you to everyone who submitted bug reports and fixes.