On behalf of the Bokeh team, I am excited to announce the release of
version 0.9.3 of Bokeh, an interactive web plotting library for Python...
and other languages!
This release was focused into provide several usability enhancements,
better docs, new examples, a lot of bug fixes and an improved testing
machinery (using pytest and selenium-based test).
Some of the highlights are:
* Support horizontal or vertical spans
* Provide raw_components version of bokeh.embed.components
* Prevent Bokeh from eating scroll events if wheel tool is not active
* bokeh.models.actions are now called bokeh.models.callbacks and Callback
is now CustomJS
* Additional validation warnings
* Cleaned up gulp source mapping
* Fixes in our build machinery
* Cleaned up models section of the reference guide
* Use pytest instead of nose
* Beginning to add selenium tests
See the CHANGELOG <https://github.com/bokeh/bokeh/blob/master/CHANGELOG> for
If you are using Anaconda/miniconda, you can install it with conda:
*conda install bokeh*
or directly from our Binstar main channel with:
*conda install -c bokeh bokeh*
Alternatively, you can also install it with pip:
*pip install bokeh*
available by CDN at:
Additionally, BokehJS is also installable with the Node Package Manager at
Issues, enhancement requests, and pull requests can be made on the Bokeh
Github page: https://github.com/bokeh/bokeh
Questions can be directed to the Bokeh mailing list: bokeh(a)continuum.io
I am pleased to release PySPH version 1.0a3.
PySPH is an open source (BSD licensed) framework for Smoothed Particle
Hydrodynamics (SPH) simulations. It is implemented in Python and the
performance critical parts are implemented in Cython. A wide variety of
SPH formulations are available and new ones can be easily added.
PySPH allows users to write their high-level code in pure Python. This
Python code is automatically converted to high-performance Cython which
is compiled and executed. PySPH can also be configured to work
seamlessly with OpenMP and MPI.
- Improve the Application class to make it very easy to do a variety of
things including user-defined command line arguments, adding new tools
and pre/post-step callbacks.
- Add a convenient pysph script to run examples, run tests and view the
- Bundle all examples with the installation so ``pip install PySPH`` is all
you need to run the examples and use the library.
- Use a platform and Python specific directory to store auto-generated
- Silence distracting compiler warnings and only show them when an error
For more details see the detailed changelog here:
Please see the documentation above for detailed instructions. You
should be able to:
$ pip install pysph
If you need to run the tests you can run ``pip install pysph[test]`` to
automatically fetch the additional dependencies (nose and mock). To use the
viewer you will need mayavi installed. ``pip install pysph[all]`` should fetch
all the dependencies.
- Flexibility to define arbitrary SPH equations in pure Python
- Define your own multi-step integrators in pure Python
- High-performance: our performance is comparable to hand-written
solvers implemented in low-level languages
- Seamless multi-core support with OpenMP
- Seamless MPI support using: http://www.cs.sandia.gov/zoltan/
PySPH supports a variety of SPH formulations including:
- Weakly compressible SPH
- Transport Velocity Formulation
- SPH for elastic dynamics
- Compressible flows
Department of Aerospace Engineering,
fIDDLE is a new Python code editor I have been working on. It started as a rough proof-of-concept for the IDLE Reimagined project based on PyQt, but has diverged somewhat into its own thing.
- Interactive interpreter (Python shell)
- Tabbed file editor with code completion
- Easy access to built-in Python documentation (via pydoc)
- Quick search for errors
- Improved traceback information
- One touch code cleaner and code checker
- Easily switch between interpreters (including virtual environments)
There is a Windows executable available in Releases and I have been able to get it working on both Ubunutu and OS X.
Feedback welcome. Thank you for looking.
Linux Peripheral I/O (GPIO, SPI, I2C, MMIO, Serial) with Python 2 / Python 3
python-periphery is a pure Python library for GPIO, SPI, I2C, MMIO, and
Serial peripheral I/O interface access in userspace Linux. It is useful in
embedded Linux environments (including BeagleBone, Raspberry Pi, etc.
platforms) for interfacing with external peripherals. python-periphery is
compatible with Python 2 and Python 3, is written in pure Python, and is
from periphery import GPIO
# Open GPIO 10 with input direction
gpio_in = GPIO(10, "in")
# Open GPIO 12 with output direction
gpio_out = GPIO(12, "out")
value = gpio_in.read()
from periphery import SPI
# Open spidev1.0 with mode 0 and max speed 1MHz
spi = SPI("/dev/spidev1.0", 0, 1000000)
data_out = [0xaa, 0xbb, 0xcc, 0xdd]
data_in = spi.transfer(data_out)
print("shifted out [0x%02x, 0x%02x, 0x%02x, 0x%02x]" % tuple(data_out))
print("shifted in [0x%02x, 0x%02x, 0x%02x, 0x%02x]" % tuple(data_in))
from periphery import I2C
# Open i2c-0 controller
i2c = I2C("/dev/i2c-0")
# Read byte at address 0x100 of EEPROM at 0x50
msgs = [I2C.Message([0x01, 0x00]), I2C.Message([0x00], read=True)]
print("0x100: 0x%02x" % msgs.data)
from periphery import MMIO
# Open am335x real-time clock subsystem page
rtc_mmio = MMIO(0x44E3E000, 0x1000)
# Read current time
rtc_secs = rtc_mmio.read32(0x00)
rtc_mins = rtc_mmio.read32(0x04)
rtc_hrs = rtc_mmio.read32(0x08)
print("hours: %02x minutes: %02x seconds: %02x" % (rtc_hrs, rtc_mins,
# Open am335x control module page
ctrl_mmio = MMIO(0x44E10000, 0x1000)
# Read MAC address
mac_id0_lo = ctrl_mmio.read32(0x630)
mac_id0_hi = ctrl_mmio.read32(0x634)
print("MAC address: %04x%08x" % (mac_id0_lo, mac_id0_hi))
from periphery import Serial
# Open /dev/ttyUSB0 with baudrate 115200, and defaults of 8N1, no flow
serial = Serial("/dev/ttyUSB0", 115200)
# Read up to 128 bytes with 500ms timeout
buf = serial.read(128, 0.5)
print("read %d bytes: _%s_" % (len(buf), buf))
$ pip install python-periphery
$ easy_install python-periphery
$ git clone https://github.com/vsergeev/python-periphery.git
$ cd python-periphery
$ python setup.py install
eGenix.com mx Base Distribution
mxDateTime, mxTextTools, mxProxy, mxURL, mxUID,
mxBeeBase, mxStack, mxQueue, mxTools
Open Source Python extensions providing
important and useful services
for Python programmers.
This announcement is also available on our web-site for online reading:
The eGenix.com mx Base Distribution for Python is a collection of
professional quality software tools which enhance Python's usability
in many important areas such as fast text searching, date/time
processing and high speed data types.
The tools have a proven track record of being portable across many
Unix and Windows platforms. You can write applications which use the
tools on Windows and then run them on Unix platforms without change
due to the consistent platform independent interfaces.
Contents of the distribution:
* mxDateTime - Easy to use Date/Time Library for Python
* mxTextTools - Fast Text Parsing and Processing Tools for Python
* mxProxy - Object Access Control for Python
* mxBeeBase - On-disk B+Tree Based Database Kit for Python
* mxURL - Flexible URL Data-Type for Python
* mxUID - Fast Universal Identifiers for Python
* mxStack - Fast and Memory-Efficient Stack Type for Python
* mxQueue - Fast and Memory-Efficient Queue Type for Python
* mxTools - Fast Everyday Helpers for Python
The package also includes the mxSetup module, which implements our
distutils based package tool chain (including the tooling for our
Python web installer technology), as well as a number of helpful
smaller modules in the mx.Misc subpackage, such as mx.Misc.ConfigFile
for config file parsing or mx.Misc.CommandLine to quickly write
command line applications in Python.
All available packages have proven their stability and usefulness in
many mission critical applications and various commercial settings all
around the world.
For more information, please see the distribution page:
The 3.2.9 release of the eGenix mx Base Distribution is the latest
release of our open-source Python extensions. It includes these fixes
Fixes for all Python Builds
* Fixed the DateTime value range to only cover dates which can be
represented as broken down values. On 32-bit systems, the valid
range now is from -5879608-01-01 to 5879609-12-31, on 64-bit
systems from -25252734927766552-01-01 to
25252734927766553-12-31.Should be enough for most needs :-)
* Fixed the DateTimeDelta value range to only cover deltas which can
be represented as broken down values. On 32-bit systems, the valid
range now is from -2147483647:00:00:00.00 to
2147483647:00:00:00.00, on 64-bit systems from
-104249991374:07:36:32.00 to 104249991374:07:36:32.00.
* Fixed a segfault on Windows when using .strftime() on a DateTime
object with leap seconds. mxDateTime will now raise a ValueError
instead, since the Windows C runtime strftime() doesn't handle leap
seconds and segfaults.
* Fixed a segfault on Windows when using .strftime() with an
unsupported formatting code (e.g. %f). mxDateTime will now raise a
ValueError instead, since the Windows C runtime strftime() doesn't
like unsupported formatting codes or lone % at the end of the
format string and causes a segfault. Thanks to Barry B for
Fixes for Python Debug Builds
* In this patch level release, we have significantly improved the
compatibility of eGenix mx Base with Python debug builds, which we
previously did not support. Regular Python builds are usually not
* Fixed crashes of several mx Base packages when using Python debug
builds, which were due to the use of free lists. Free lists are
disabled for Python debug builds now.
* Several mx Base packages crashed during interpreter shutdown when
using Python debug builds.
* mxBeeBase: Fixed a memory allocation error when using Python debug
* mxDateTime crashed when using Python debug builds due to the use of
free lists and a non-standard way of dealing with errors inside
object constructors, bypassing the logic used by debug builds to
trace object allocation. Thanks to Edson Tadeu M. Manoel for
bringing this to our attention.
* mxTools: Fix a segfault in napply() when using Python debug builds.
Installation Enhancements and Fixes (via included mxSetup)
Most of these enhancements and fixes are part of the Python web
installer support we added to mxSetup a while ago. If you want to
learn more about this web installer technology, please see this talk
on the topic:
* Fixed traceback when building pure Python packages with mxSetup's
* mxSetup's web installer now searches for "purepython" and "anyos"
tags as fallback when looking for OS dependent packages. It also
adds the "anyos" tag to all pure Python packages.
* Refactored the web installer in mxSetup into a class for easier
* Added --unicode-aware parameter support to bdist_egg when used with
* mxSetup now always produces PEP 440 compatible version numbers
* Prebuilt archives created on Linux2 will now load fine on Linux3
machines. Same for FreeBSD and other systems which retain backwards
* Prebuilt archives will now also be usable on compatible platforms,
e.g. ones compiled on linux2 with linux3 systems and ones for
freebsd8 with freebsd9 or freebsd10.
* Fixed a bug in mxSetup which caused .pyc/.pyo not to get removed
when using 'pip uninstall'.
* Resolved an intermittent error related to hash seeds which
sometimes caused prebuilt archives to not install correctly. Thanks
to Albert-Jan Roskam for reporting this.
* Added Raspberry Pi Ver. 2 support to mxSetup.
* Added support for bdist_wheels to allow building wheels from source
or from prebuilt packages using mxSetup.
* Removed a spurious AttributeError warning showing up when
installing egenix-mx-base prebuilt packages on Windows systems
without C compiler.
eGenix mx Base Distribution 3.2.0 was release on 2012-08-28. Please
see the announcement for new features in the 3.2 major release
compared to earlier releases:
For a full list of changes, please refer to the eGenix mx Base
Distribution change log and the change logs of the various included
We encourage all users to upgrade to this latest eGenix mx Base
If you are upgrading from eGenix mx Base 3.1.x, please see the eGenix
mx Base Distribution 3.2.0 release notes for details on what has
changed since the 3.1 major release.
The eGenix mx Base package is distributed under the eGenix.com Public
License 1.1.0 which is an Open Source license similar to the Python
license. You can use the packages in both commercial and non-commercial
settings without fee or charge.
This open source distribution package comes with full source code.
The download archives and instructions for installing the packages can
be found on the eGenix mx Base Distribution page:
If you want to try the package, please jump straight to the download
instructions or simply run "pip install egenix-mx-base".
As always, we are providing pre-built binaries for all common
platforms: Windows 32/64-bit, Linux 32/64-bit, FreeBSD 32/64-bit, Mac
OS X 32/64-bit. Source code archives are available for installation on
all other Python platforms, such as Solaris, AIX, HP-UX, etc.
To simplify installation in Zope/Plone and other egg-based systems, we
have also precompiled egg distributions for all platforms. These are
available on our own PyPI-style index server for easy and automatic
download. Please see the download instructions for details:
Whether you are using a prebuilt package or the source distribution,
installation is a simple "python setup.py install" command in all
cases. The only difference is that the prebuilt packages do not
require a compiler or the Python development packages to be installed.
Commercial support contracts for this product are available from
eGenix.com. Please see
for details about our support offerings.
For more information on the eGenix mx Base Distribution, documentation
and installation notes, please visit our web-site:
About eGenix (http://www.egenix.com/):
eGenix is a database focused software project, consulting and
product company delivering expert services and professional
quality products for companies, Python users and developers.
About Python (http://www.python.org/):
Python is an object-oriented Open Source programming language
which runs on all modern platforms. By integrating ease-of-use,
clarity in coding, enterprise application connectivity and rapid
application design, Python establishes an ideal programming
platform for today's IT challenges.
Professional Python Services directly from the Source (#1, Aug 27 2015)
>>> Python Projects, Coaching and Consulting ... http://www.egenix.com/
>>> mxODBC Plone/Zope Database Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
2015-08-19: Released mxODBC 3.3.5 ... http://egenix.com/go82
::::: Try our mxODBC.Connect Python Database Interface for free ! ::::::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
Registered at Amtsgericht Duesseldorf: HRB 46611
After once again multiple (this time only three) years, I am happy to
announce version 0.4.9 of ruamel.orderddict.
Main enhancement since the original release in 2007 is the addition of
the viewkeys/viewitems/viewvalues methods as added to the dictionaries
in Python 2.7
The package can be installed from PyPI, and wheels are available for
Sources are hosted on bitbucket.
>From the blurb on ruamel.ordereddict home-page:
This is an implementation of an ordered dictionary with Key Insertion
Order (KIO: updates of values do not affect the position of the key),
Key Value Insertion Order (KVIO, an existing key's position is removed
and put at the back).
Sorted dictionaries are also provided. Currently only with Key Sorted
Order (KSO, no sorting function can be specified, but a transform
function to be applied on the key before comparison can be supplied).
It implementation is directly derived from dictobject.c and its speed is
5-10% slower than dict() and 5-9 times faster than Larosa/Foord
excellent pure Python implemention. With a little helper wrapper
(because of incompatibilities in the more recently implemented
OrderedDict in the standard library), ruamel.ordereddict will also pass
all unittests for OrderedDict.
On behalf of the Python development community and the Python 3.5 release
team, I'm relieved to announce the availability of Python 3.5.0rc2, also
known as Python 3.5.0 Release Candidate 2.
Python 3.5 has now entered "feature freeze". By default new features
may no longer be added to Python 3.5.
This is a preview release, and its use is not recommended for production
You can find Python 3.5.0rc2 here:
Windows and Mac users: please read the important platform-specific
"Notes on this release" section near the end of that page.
ScratchABit is pure-Python, interactive disassembler
(direct-manipulation, textmode UI), suitable for reverse engineering
work of malware analysis, security research, developing open-source
drivers, etc. ScratchABit is architecture-independent and supports
particular CPU using plugins. Plugin API used is compatible with
IDAPython, which is pretty much an industry standard and allow easy
reuse of the wealth of plugins developed by community. A sample plugin
for Intel x86 (32 or 64 bit) is included, based on pure-Python PyMsasid
ScratchABit is distributed as a git repository with submodules pulling
in any required components (plugins), allowing quick start even for
people who aren't familiar with Python (Python3 is the only
Project is at version 0.9 currently.
On behalf of the Nikola team, I am pleased to announce the immediate
availability of Nikola v7.6.4. It fixes some bugs and adds new features.
What is Nikola?
Nikola is a static site and blog generator, written in Python.
It can use Mako and Jinja2 templates, and input in many popular markup
formats, such as reStructuredText and Markdown — and can even turn Jupyter
(IPython) Notebooks into blog posts! It also supports image galleries, and
is multilingual. Nikola is flexible, and page builds are extremely fast,
courtesy of doit (which is rebuilding only what has been changed).
Find out more at the website: https://getnikola.com/
Install using `pip install Nikola` or download tarballs on [GitHub] and
* Checking remote links also checks redirects (nikola check -lr)
* Update suggested license to its latest version (Issue #1950)
* Add Punjabi language, by Jasdeep Singh (Issue #1940)
* New option to use custom, and several ``TEASER_END`` values
* Rewrite srcset links (Issue #1939)
* Add dependencies for include tag in Mako (Issue #1956)
* Don’t duplicate BLOG_TITLE in the front page title (Issue #1952)
* Escape instead of strip HTML in titles (Issue #1952)
* Make LINK_CHECK_WHITELIST apply to remote link checks
* Make STORY_INDEX work together with PRETTY_URLS (Issue #1949)
* Refactor new_post to match lazy plugin loading (Issue #1943)
* Make Nikola startup faster by not loading useless plugins (Issue #1825)
* Ignore sliced multibyte characters when reading metadata for sitemaps
* Fix NameError caused by failed import in auto plugin.
* Fixed parser for Python 3.x to support async and await as regular names
* The new search dialog now has a 'whole word' option which automatically
adds `*` to the search
* Search backend updated to Lucene 5.2.1 (instant searches on huge
* When bringing up the search dialog the search text is initially selected.
What is PyDev?
PyDev is an open-source Python IDE on top of Eclipse for Python, Jython and
It comes with goodies such as code completion, syntax highlighting, syntax
analysis, code analysis, refactor, debug, interactive console, etc.
Details on PyDev: http://pydev.org
Details on its development: http://pydev.blogspot.com
What is LiClipse?
LiClipse is a PyDev standalone with goodies such as support for Multiple
cursors, theming, TextMate bundles and a number of other languages such as
It's also a commercial counterpart which helps supporting the development
Details on LiClipse: http://www.liclipse.com/
PyDev - Python Development Environment for Eclipse
PyVmMonitor - Python Profiler