Crochet is an MIT-licensed library that makes it easier to use Twisted
from regular blocking code. Some use cases include:
* Easily use Twisted from a blocking framework like Django or Flask.
* Write a library that provides a blocking API, but uses Twisted for
its implementation.
* Port blocking code to Twisted more easily, by keeping a backwards
compatibility layer.
* Allow normal Twisted programs that use threads to interact with
Twisted more cleanly from their threaded parts. For example this can
be useful when using Twisted as a WSGI container.
This is a bugfix release, recommended for all users of Crochet.
Crochet can be downloaded from https://pypi.python.org/pypi/crochet or
by running:
$ pip install crochet
Documentation can be found at http://crochet.readthedocs.org
<https://crochet.readthedocs.org/>
Bugs and feature requests should be filed at the project
https://github.com/itamarst/crochet
Here’s an example of a program using Crochet. Notice that you get a
completely blocking interface to Twisted and do not need to run the
Twisted reactor, the event loop, yourself.
#!/usr/bin/python
"""
Do a DNS lookup using Twisted's APIs.
"""
from __future__ import print_function
# The Twisted code we'll be using:
from twisted.names import client
from crochet import setup, wait_for
setup()
# Crochet layer, wrapping Twisted's DNS library in a blocking call.
@wait_for(timeout=5.0)
def gethostbyname(name):
"""Lookup the IP of a given hostname.
Unlike socket.gethostbyname() which can take an arbitrary amount of time
to finish, this function will raise crochet.TimeoutError if more than 5
seconds elapse without an answer being received.
"""
d = client.lookupAddress(name)
d.addCallback(lambda result: result[0][0].payload.dottedQuad())
return d
if __name__ == '__main__':
# Application code using the public API - notice it works in a normal
# blocking manner, with no event loop visible:
import sys
name = sys.argv[1]
ip = gethostbyname(name)
print(name, "->", ip)
Run on the command line:
> $ python blockingdns.py twistedmatrix.com
> twistedmatrix.com -> 66.35.39.66
Hello,
We are proud to announce v0.14.0 of pandas, a major release from 0.13.1.
This release includes a small number of API changes, several new features,
enhancements, and performance improvements along with a large number of bug
fixes.
This was 4 months of work with 1014 commits by 121 authors encompassing 757
issues.
We recommend that all users upgrade to this version.
*Highlights:*
- Officially support Python 3.4
- SQL interfaces updated to use sqlalchemy
- Display interface changes
- MultiIndexing Using Slicers
- Ability to join a singly-indexed DataFrame with a multi-indexed
DataFrame
- More consistency in groupby results and more flexible groupby
specifications
- Holiday calendars are now supported in CustomBusinessDay
- Several improvements in plotting functions, including: hexbin, area
and pie plots
- Performance doc section on I/O operations
See a full description of Whatsnew for v0.14.0 here:
http://pandas.pydata.org/pandas-docs/stable/whatsnew.html
*What is it:*
*pandas* is a Python package providing fast, flexible, and expressive data
structures designed to make working with “relational” or “labeled” data both
easy and intuitive. It aims to be the fundamental high-level building block
for
doing practical, real world data analysis in Python. Additionally, it has
the
broader goal of becoming the most powerful and flexible open source data
analysis / manipulation tool available in any language.
Documentation:
http://pandas.pydata.org/pandas-docs/stable/
Source tarballs, windows binaries are available on PyPI:
https://pypi.python.org/pypi/pandas
windows binaries are courtesy of Christoph Gohlke and are built on Numpy
1.8
macosx wheels will be available soon, courtesy of Matthew Brett
Please report any issues here:
https://github.com/pydata/pandas/issues
Thanks
The Pandas Development Team
Contributors to the 0.14.0 release
- Acanthostega
- Adam Marcus
- agijsberts
- akittredge
- Alex Gaudio
- Alex Rothberg
- AllenDowney
- Andrew Rosenfeld
- Andy Hayden
- ankostis
- anomrake
- Antoine Mazières
- anton-d
- bashtage
- Benedikt Sauer
- benjamin
- Brad Buran
- bwignall
- cgohlke
- chebee7i
- Christopher Whelan
- Clark Fitzgerald
- clham
- Dale Jung
- Dan Allan
- Dan Birken
- danielballan
- Daniel Waeber
- David Jung
- David Stephens
- Douglas McNeil
- DSM
- Garrett Drapala
- Gouthaman Balaraman
- Guillaume Poulin
- hshimizu77
- hugo
- immerrr
- ischwabacher
- Jacob Howard
- Jacob Schaer
- jaimefrio
- Jason Sexauer
- Jeff Reback
- Jeffrey Starr
- Jeff Tratner
- John David Reaver
- John McNamara
- John W. O'Brien
- Jonathan Chambers
- Joris Van den Bossche
- jreback
- jsexauer
- Julia Evans
- Júlio
- Katie Atkinson
- kdiether
- Kelsey Jordahl
- Kevin Sheppard
- K.-Michael Aye
- Matthias Kuhn
- Matt Wittmann
- Max Grender-Jones
- Michael E. Gruen
- michaelws
- mikebailey
- Mike Kelly
- Nipun Batra
- Noah Spies
- ojdo
- onesandzeroes
- Patrick O'Keeffe
- phaebz
- Phillip Cloud
- Pietro Battiston
- PKEuS
- Randy Carnevale
- ribonoous
- Robert Gibboni
- rockg
- sinhrks
- Skipper Seabold
- SplashDance
- Stephan Hoyer
- Tim Cera
- Tobias Brandt
- Todd Jennings
- TomAugspurger
- Tom Augspurger
- unutbu
- westurner
- Yaroslav Halchenko
- y-p
- zach powers
PyQt5 v5.3 has been released and is available from
http://www.riverbankcomputing.com/software/pyqt/download5.
PyQt5 is a comprehensive set of bindings for v5 of Digia's Qt
cross-platform application framework. It supports Python v3, v2.7 and
v2.6.
The highlights of this release include support for Qt v5.3 including the
new QtQuickWidgets and QtWebSockets modules.
PyQt5 supports cross-compiling to iOS and Android.
Windows installers are provided which contain everything needed for
PyQt5
development (including Qt, Qt Designer, QScintilla, and MySQL,
PostgreSQL,
SQLite and ODBC drivers) except Python itself. Installers are provided
for the 32 and 64 bit versions of Python v3.4.
PyQt5 is implemented as a set of 29 extension modules including support
for:
- non-GUI infrastructure including event loops, threads, i18n, user and
application settings, mapped files and shared memory
- GUI infrastructure including window system integration, event
handling,
2D graphics, basic imaging, fonts, OpenGL
- a comprehensive set of desktop widgets
- WebKit
- full integration with Quick2 and QML allowing new Quick items to be
implemented in Python and created in QML
- event driven network programming
- multimedia including cameras, audio and radios
- Bluetooth
- global positioning using satellite, Wi-Fi or text file sources
- sensors including accelerometers, altimeters, compasses, gyroscopes,
magnetometers, and light, pressure, proximity, rotation and
temperature
sensors
- serial ports
- SQL
- printing
- DBus
- XPath, XQuery, XSLT and XML Schema validation
- a help system for creating and viewing searchable documentation
- unit testing of GUI applications.
________________________________________________________________________
ANNOUNCING
eGenix.com mxODBC Connect
Python ODBC Database Interface
Version 2.1.0
mxODBC Connect is our commercially supported client-server product for
connecting Python applications to relational databases
in a truly platform independent way.
This announcement is also available on our web-site for online reading:
http://www.egenix.com/company/news/eGenix-mxODBC-Connect-2.1.0-GA.html
________________________________________________________________________
INTRODUCTION
The mxODBC Connect Database Interface for Python allows users to
easily connect Python applications to all major databases on the
market today in a highly portable, convenient and secure way.
Python Database Connectivity the Easy Way
-----------------------------------------
Unlike our mxODBC Python extension, mxODBC Connect is designed as
client-server application, so you no longer need to find production
quality ODBC drivers for all the platforms you target with your Python
application.
Instead you use an easy to install royalty-free Python client library
which connects directly to the mxODBC Connect database server over the
network.
This makes mxODBC Connect a great basis for writing cross-platform
multi-tier database applications and utilities in Python, especially
if you run applications that need to communicate with databases such
as MS SQL Server and MS Access, Oracle Database, IBM DB2 and Informix,
Sybase ASE and Sybase Anywhere, MySQL, PostgreSQL, SAP MaxDB and many
more, that run on Windows or Linux machines.
Ideal for Database Driven Client Applications
---------------------------------------------
By removing the need to install and configure ODBC drivers on the
client side and dealing with complicated network setups for each set
of drivers, mxODBC Connect greatly simplifies deployment of database
driven client applications, while at the same time making the network
communication between client and database server more efficient and
more secure.
For more information, please have a look at the mxODBC Connect product
page, in particular, the full list of available features.
For more information, please see the product page:
http://www.egenix.com/products/python/mxODBCConnect/
________________________________________________________________________
NEWS
mxODBC Connect 2.1.0 is a new minor release of our successful mxODBC
Connect product. These are the changes compared to mxODBC Connect
2.0.5.
Update to the mxODBC 3.3 API
----------------------------
mxODBC Connect 2.1 upgrades the mxODBC Connect Client to the new
mxODBC 3.3. APIs and enhancements.
Stored Procedures
* mxODBC Connect now has full support for input, output and
input/output parameters in stored procedures and stored functions,
allowing easy integration with existing databases systems.
User Customizable Row Objects
* Added support for user customizable row objects by adding
cursor/connection .rowfactory and .row constructor attributes. When
set, these are used to wrap the normal row tuples returned by the
.fetch*() methods into dynamically created row objects.
* Added new RowFactory classes to support cursor.rowfactory and
cursor.row. These allow dynamically creating row classes that
provide sequence as well as mapping and attribute access to row
fields - similar to what namedtuples implements, but more efficient
and specific to result sets.
Fast Cursor Types
* Switched to forward-only cursor types for all database backends,
since this provides a much better performance for MS SQL Server and
IBM DB2 drivers.
* Added a new .cursortype attribute to allow adjusting and inspecting
the ODBC cursor type to be used for an mxODBC Connect cursor
object. Default is to use forward-only cursors, but mxODBC also
support several other useful cursor types such as static cursors
with full support for result set scrolling.
More new Features
* Enhanced cursor.prepare() to allow querying cursor.description
right after the prepare step and not only after calling a
cursor.execute*() method.
* Added iterator/generator support to .executemany(). The parameters
list can now be an iterator/generator, if needed.
* Added new connection.dbapi property to easily access module level
symbols from the connection object.
* Timestamp seconds fraction resolution is now determined from the
scale of a datetime/timestamp SQL column, using the
connection.timestampresolution as lower bound, when using SQL type
binding. In Python type binding mode, the
connection.timestampresolution determines the scale with which a
variable is bound. This allows for greater flexibility when dealing
with database backends that don't provide full nano-second second
resolution, such as e.g. MS SQL Server.
* mxODBC Connect accepts Unicode string values for
date/time/datetime/timestamp column types in SQL type binding
mode. Previous versions already did in Python type binding mode.
* mxODBC Connect uses unicode(obj, encoding) semantics when binding
Python objects to SQLWCHAR Unicode database parameters to provide
better compatibility with Python objects. Additionally, it ignores
the encoding in case obj is a number, to avoid conversion errors.
* Added new cursor.encoding attribute. This gets its default values
from the connection the cursor was created on and allows for
per-cursor encoding settings.
* Added cursor.bindmethod which inherits from connection.bindmethod
when creating the cursor. This allows adjusting the variable bind
method on a per-cursor basis, rather than only on a per connection
basis as in previous mxODBC Connect versions.
mxODBC Connect API Enhancements
-------------------------------
* The SQL lookup object is cached on the client side to avoid
frequent roundtrips when using symbols which are needed for stored
procedures with input/output parameters.
* The SQL lookup object received support for new ODBC 3.8 symbols and
values, including driver specific symbols used by the MS SQL Server
Native Client and IBM DB2 ODBC drivers.
* Improved the server side object management to simplify client side
garbage collection considerations. Even though we still encourage
using explicit garbage collection of cursors, connections and
server sessions on the client side, mxODBC Connect Server will now
handle most situations even without these explicit calls.
Asynchronous Processing
-----------------------
* Tested with the latest gevent and greenlet packages. mxODBC Connect
Client will happily work together with the asynchronous libraries
gevent. All it takes is a single configuration entry in the client
side config file.
Security Enhancements
---------------------
* Changed the way passwords are stored in the server's
authorized-users.txt file in order to make password storage more
secure.
* User authentication now uses salted SHA-256 password hashes when
transferring the login data from the client to the server. This
provides better protection when using plain text client server
setups and additional security over SSL network connections.
ODBC Driver/Manager Compatibility Enhancements
----------------------------------------------
unixODBC
* mxODBC Connect Server is now built against unixODBC 2.3.2 on Linux.
DataDirect
* Updated the DataDirect binding to version 7.1.2 of the DataDirect
ODBC manager on Linux.
Oracle
* Added work-around for Oracle Instant Client to be able to use
integer output parameters.
* Added a work-around for Oracle Instant Client to have it return
output parameters based on the input placeholder Python parameter
types. It would otherwise return all parameters as strings.
Disabled a test for Oracle Instant Client which tries to set a
pre-connect connection option for timeouts, since the ODBC driver
segfaults with this option.
MS SQL Server
* mxODBC Connect Server 2.1 defaults to 100ns
connection.timestampresolution for MS SQL Server 2008 and later,
and 1ms resolution for MS SQL server 2005 and earlier. This
simplifies interfacing to SQL Server timestamp columns by
preventing occasional precision errors.
* Tested mxODBC Connect Server successfully with new MS SQL Server
Native Client 11 for Linux. Unicode connection strings still don't
work, but everything else does.
* Added documentation on how to use Kerberos with mxODBC and SQL
Server for authentication on both Windows and Linux to the mxODBC
User Manual.
* Added note about problems of the FreeTDS ODBC driver dealing with
TIME and DATE columns.
Sybase ASE
* Added work-around for the Sybase ASE ODBC driver, which doesn't
always pass back NULL correctly to mxODBC Connect Server on 64-bit
Unix systems.
* Changed the variable type binding mode default for the Sybase ASE
ODBC driver from Python type binding to SQL type binding, which
resolves issues with e.g. the Unicode support for that driver.
* Added note about a segfault problem with the Sybase ASE 15.7 ODBC
driver which is caused by the driver corrupting the heap.
IBM DB2
* Added work-around for the IBM DB2 ODBC driver, which doesn't always
pass back NULL correctly to mxODBC Connect Server on 64-bit Unix
systems.
PostgreSQL
* Added work-around to force Python type binding for the PostgreSQL
ODBC drivers. More recent versions of the driver report supporting
SQL type binding, but they don't implement it.
* Added work-around to have PostgreSQL ODBC drivers properly work
with binary data for BYTEA columns.
MySQL
* mxODBC Connect Server now supports native Unicode with the recent
MySQL ODBC drivers - provided you use the Unicode variants of the
drivers.
* Changed the default binding mode for MySQL ODBC drivers to Python
type binding. This works around a problem with date/time values
when talking to MySQL 5.6 servers.
For the full set of changes, including those of the 2.0 series of
mxODBC Connect, please check the mxODBC Connect change log.
http://www.egenix.com/products/python/mxODBCConnect/changelog.html
________________________________________________________________________
UPGRADING
You are encouraged to upgrade to this latest mxODBC Connect release.
When upgrading, please always upgrade both the server and the client
installations to the same version - even for patch level releases.
We will give out 20% discount coupons for upgrade purchases going from
mxODBC Connect Server 1.x to 2.1 and 50% coupons for upgrades from
mxODBC 2.x to 2.1. Please contact the eGenix.com Sales Team
(sales(a)egenix.com) with your existing license serials for details.
Users of our stand-alone mxODBC product will have to purchase new
licenses from our online shop in order to use mxODBC Connect.
You can request free 30-day evaluation licenses by visiting our
web-site or writing to sales(a)egenix.com, stating your name (or the
name of the company) and the number of eval licenses that you need.
http://www.egenix.com/products/python/mxODBCConnect/#Evaluation
________________________________________________________________________
DOWNLOADS
The download archives as well as instructions for installation and
configuration of the product can be found on the product page:
http://www.egenix.com/products/python/mxODBCConnect/
If you want to try the package, jump straight to the download
instructions:
https://cms.egenix.com/products/python/mxODBCConnect/#Download
Fully functional evaluation licenses for the mxODBC Connect Server are
available free of charge:
http://www.egenix.com/products/python/mxODBCConnect/#Evaluation
mxODBC Connect Client is always free of charge.
_______________________________________________________________________
SUPPORT
Commercial support for this product is available from eGenix.com.
Please see
http://www.egenix.com/services/support/
for details about our support offerings.
_______________________________________________________________________
INFORMATION
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.
About eGenix (http://www.egenix.com/):
eGenix is a software project, consulting and product company
focusing on expert project services and professional quality
products for companies, Python users and developers.
Enjoy,
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source (#1, May 28 2014)
>>> Python Projects, Consulting and Support ... http://www.egenix.com/
>>> mxODBC.Zope/Plone.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
________________________________________________________________________
::::: 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
http://www.egenix.com/company/contact/
I am proud to announce a new source code release of Salstat, the
friendly open source statistics program.
It is written in Python with Numpy, SciPy, wxPython and many other
Python libraries (see the readme.md
Code is available from GitHub: https://github.com/salmoni/Salstat
## What is Salstat?
Salstat is a program for statistical analysis: Much like SPSS but
friendlier and easier to use. It began in 2000 as a project to provide
software that removed legacy interfaces and let people learn about
statistics rather than having to master an interface. After a
career-imposed hiatus since 2003, a few released have crept out over
the last year bringing improvements and a more powerful program to
people who aren't comfortable with statistics.
## What's new?
This latest release features simple histograms.
## What features does it have?
*Data import*: SAS, CSV, Excel, LibreOffice Calc
*Descriptives*: Too many to mention. There are 9 types of quantile to
give you some idea. Can analyse univariate or multivariate data sets.
*Inferential tests*: A range of 1 and 2 sample tests, parametric and
non-parametric. 2+ sample tests are currently not working because the
relevant interface needs a redesign to accommodate them but they will
be arriving soon.
*Charts, graphs, plots*: Column, bar, scatter, line, spline, area, pie,
box plot, histogram.
## Does Salstat need help?
Please pass this news around your social media network to spread the
word. Find us on Twitter (@Salstat) and full news articles at
http://salstat.blogspot.co.uk/. We're okay with the developer talent
(although we're always pleased to hear especially if you can commit
long-term) but most of all we need users – which means telling people
Salstat exists.
All the best & have fun,
Alan J. Salmoni
Salstat – Friendly open source statistics
GitHub: https://github.com/salmoni/Salstat
Blog: http://salstat.blogspot.co.uk/
Facebook: https://www.facebook.com/salstat1
Twitter: @Salstat
Hi folks,
I'm pleased to announce the 2.0.1 release of pysendfile:
https://github.com/giampaolo/pysendfile
=== About ===
This is a python interface to sendfile(2) system call available on most
UNIX systems.
sendfile(2) provides a "zero-copy" way of copying data from one file
descriptor to another (a socket). The phrase "zero-copy" refers to the fact
that all of the copying of data between the two descriptors is done
entirely by the kernel, with no copying of data into userspace buffers,
resuting in file transfers being from 2x to 3x faster.
Basically, any application sending files over the network can take
advantage of it. HTTP and FTP servers are a typical example.
=== Changes ===
- #20: host tarball on PYPI
- #21: project migrated from google code to github
- #21: project migrated from SVN to GIT
- #22: pysendfile won't compile on python 3.4
- #23: add a Makefile
- #24: use of travis continuous integration
- #25: use tox for multiple python versions testing
=== Supported platforms ===
* Linux
* Mac OSX
* FreeBSD
* Dragon Fly BSD
* Sun OS
* AIX (not properly tested)
=== Supported python versions ===
>From 2.5 to 3.4.
--
Giampaolo - http://grodola.blogspot.com
I am pleased to announce version 3.13.2 of the Python bindings for
GObject. This is the third alpha release of the 3.13.x series which will result
in a stable GNOME 3.14 release.
This release fixes a many long standing issues and hits a milestone in our
testing of having over 1,000 unit tests.
Download
========
The new release is available from ftp.gnome.org:
https://download.gnome.org/sources/pygobject/3.13/pygobject-3.13.2.tar.xz (693K)
sha256sum: 69eb8b642463ca26644a64019ed539c5185ed2abd06600dfc83e793cd028a8de
What's new in PyGObject 3.13.2
=================================
- Unification of GLib.GError and GLib.Error. GLib.Error should be used for any
exception handling while GLib.GError is a compatibility alias.
(Simon Feltman) (#712519)
- New API gi.require_foreign() for ensuring cairo marshalling is supported.
(Simon Feltman) (#707735)
- Automatic marshalling of cairo objects from non-introspected signal arguments.
(Simon Feltman) (#694604)
- GTypeClass methods are now directly available on Python GObject classes.
This allows calling previously un-available methods like:
Gtk.Widget.list_child_properties (Johan Dahlin) (#685218)
- Gtk.Container.child_get_property and Gtk.Widget.style_get_property now return
Python native values and the pass-by-reference "value" argument is optional.
- Add Gtk.Container.child_get and child_set for working with multiple child
properties (Simon Feltman) (#685076)
- Python 3.4 make check fixes
- PEP8 fixes
About PyGObject
===============
GObject is a object system used by GTK+, GStreamer and other libraries.
PyGObject provides a convenient wrapper for use in Python programs when
accessing GObject libraries.
Like the GObject library itself PyGObject is licensed under the GNU
LGPL, so is suitable for use in both free software and proprietary
applications. It is already in use in many applications ranging from
small single purpose scripts up to large full featured applications.
PyGObject now dynamically accesses any GObject libraries that uses
GObject Introspection. It replaces the need for separate modules such as
PyGTK, GIO and python-gnome to build a full GNOME 3.0 application. Once
new functionality is added to gobject library it is instantly available
as a Python API without the need for intermediate Python glue.
I am pleased to announce version 3.12.2 of the Python bindings for
GObject. This is the third release in the stable 3.12.x series for GNOME 3.12.
Download
========
The new release is available from ftp.gnome.org:
https://download.gnome.org/sources/pygobject/3.12/pygobject-3.12.2.tar.xz (686K)
sha256sum: 7e7a3d349acf5bb4b68f8539a42e67958840a67cd4f0341ee9aa49189af2a522
What's new in PyGObject 3.12.2
=================================
- PEP8 fixes
- Python 3.4 make check fixes
About PyGObject
===============
GObject is a object system used by GTK+, GStreamer and other libraries.
PyGObject provides a convenient wrapper for use in Python programs when
accessing GObject libraries.
Like the GObject library itself PyGObject is licensed under the GNU
LGPL, so is suitable for use in both free software and proprietary
applications. It is already in use in many applications ranging from
small single purpose scripts up to large full featured applications.
PyGObject now dynamically accesses any GObject libraries that uses
GObject Introspection. It replaces the need for separate modules such as
PyGTK, GIO and python-gnome to build a full GNOME 3.0 application. Once
new functionality is added to gobject library it is instantly available
as a Python API without the need for intermediate Python glue.
I am pleased to announce release 2014.2 of SfePy.
Description
-----------
SfePy (simple finite elements in Python) is a software for solving
systems of coupled partial differential equations by the finite element
method. The code is based on NumPy and SciPy packages. It is distributed
under the new BSD license.
This release brings a preliminary support for isogeometric analysis - a
recently developed computational approach that allows using the NURBS-based
domain description from CAD design tools also for approximation purposes
similar to the finite element method.
Home page: http://sfepy.org
Mailing list: http://groups.google.com/group/sfepy-devel
Git (source) repository, issue tracker, wiki: http://github.com/sfepy
Highlights of this release
--------------------------
- preliminary support for isogeometric analysis
- improved post-processing and visualization script for time-dependent problems
with adaptive time steps
- three new terms
For full release notes see http://docs.sfepy.org/doc/release_notes.html#id1
(rather long and technical).
Best regards,
Robert Cimrman and Contributors (*)
(*) Contributors to this release (alphabetical order):
Vladimír Lukeš