Announcing PyTables 3.4.4
We are happy to announce PyTables 3.4.4
This new release of PyTables adds an environment variable to control the
use of embedded libraries and fixed test failures with Python 2.7 and
NumPy 1.14.3. The release includes many small bugfixes.
In case you want to know more in detail what has changed in this
version, please refer to: http://www.pytables.org/release_notes.html
You can install it via pip or download a source package with generated
PDF and HTML docs from:
For an online version of the manual, visit:
What it is?
PyTables is a library for managing hierarchical datasets and
designed to efficiently cope with extremely large amounts of data with
support for full 64-bit file addressing. PyTables runs on top of
the HDF5 library and NumPy package for achieving maximum throughput and
convenient use. PyTables includes OPSI, a new indexing technology,
allowing to perform data lookups in tables exceeding 10 gigarows
(10**10 rows) in less than a tenth of a second.
About PyTables: http://www.pytables.org
About the HDF5 library: http://hdfgroup.org/HDF5/
About NumPy: http://numpy.scipy.org/
Thanks to many users who provided feature improvements, patches, bug
reports, support and suggestions. See the ``THANKS`` file in the
distribution package for a (incomplete) list of contributors. Most
specially, a lot of kudos go to the HDF5 and NumPy makers.
Without them, PyTables simply would not exist.
Share your experience
Let us know of any bugs, suggestions, gripes, kudos, etc. you may have.
-- The PyTables Developers
I'm happy to announce pandas that pandas 0.23.1 has been released.
This is a minor bug-fix release in the 0.23.x series and includes some
regression fixes, bug fixes, and performance improvements.
We recommend that all users upgrade to this version.
See the full whatsnew
for a list of all the changes.
The release can be installed with conda from the default channel and
conda install pandas
Or via PyPI:
python -m pip install --upgrade pandas
A total of 30 people contributed patches to this release. People with a “+”
by their names contributed a patch for the first time.
- Adam J. Stewart
- Adam Kim +
- Aly Sivji
- Chalmer Lowe +
- Damini Satya +
- Dr. Irv
- Gabe Fernando +
- Giftlin Rajaiah
- Jeff Reback
- Jeremy Schendel +
- Joris Van den Bossche
- Kalyan Gokhale +
- Kevin Sheppard
- Matthew Roeschke
- Max Kanter +
- Ming Li
- Pyry Kovanen +
- Stefano Cianciulli
- Tom Augspurger
- Uddeshya Singh +
- William Ayd
- nprad +
- ssikdar1 +
- zertrin +
Python 3.7.0rc1 and 3.6.6rc1 are now available. 3.7.0rc1 is the final
planned release preview of Python 3.7, the next feature release of
Python. 3.6.6rc1 is the the release preview of the next maintenance
release of Python 3.6, the current release of Python. Assuming no
critical problems are found prior to *2018-06-27*, the scheduled
release dates for 3.7.0 and 3.6.6, no code changes are planned
between these release candidates and the final releases. These
release candidates are intended to give you the opportunity to test
the new features and bug fixes in 3.7.0 and 3.6.6 and to prepare your
projects to support them. We strongly encourage you to test your
projects and report issues found to bugs.python.org as soon as
possible. Please keep in mind that these are preview releases and,
thus, their use is not recommended for production environments.
Attention macOS users: there is now a new installer variant for macOS
10.9+ that includes a built-in version of Tcl/Tk 8.6. This variant
will become the default version when 3.7.0 releases. Check it out!
You can find these releases and more information here:
nad(a)python.org -- 
I'm glad to announce the release of psutil 5.4.6:
psutil (process and system utilities) is a cross-platform library for
retrieving information on running processes and system utilization (CPU,
memory, disks, network) in Python. It is useful mainly for system
monitoring, profiling and limiting process resources and management of
running processes. It implements many functionalities offered by command
line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill, free,
nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap. It
currently supports Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD,
NetBSD and AIX, both 32-bit and 64-bit architectures, with Python versions
from 2.6 to 3.6. PyPy is also known to work.
- #1258: [Windows] Process.username() may cause a segfault (Python
crash). (patch by Jean-Luc Migot)
- #1273: net_if_addr() namedtuple's name has been renamed from "snic" to
- #1274: [Linux] there was a small chance Process.children() may swallow
- Home page: https://github.com/giampaolo/psutil
- Download: https://pypi.org/project/psutil/#files
- Documentation: http://psutil.readthedocs.io
- What's new: https://github.com/giampaolo/psutil/blob/master/HISTORY.rst
Giampaolo - http://grodola.blogspot.com
Pythran just released its 0.8.6 version. A quick reminder: Pythran is a
compiler for scientific Python, it can be used to turn Python kernels
#pythran export _brief_loop(float64[:,:], uint8[:,:], intp[:,:], int[:,:], int[:,:])
def _brief_loop(image, descriptors, keypoints, pos0, pos1):
for k in range(len(keypoints)):
kr, kc = keypoints[k]
for p in range(len(pos0)):
pr0, pc0 = pos0[p]
pr1, pc1 = pos1[p]
descriptors[k,p] = image[kr + pr0, kc + pc0] < image[kr + pr1, kc + pc1]
In a native library that runs much faster.
It's available on pypi: https://pypi.org/project/pythran/
on conda-forge (linux and osx): https://anaconda.org/conda-forge/pythran
and on github: https://github.com/serge-sans-paille/pythran
As a fun fact, Pythran is now used as a mean to turn Python code into
pure native library used in C++ code base, without Python involved. Some
people even use SWIG to turn this code into native libraries called
from... Java through JNI :-)
As we have already announced, access to trainings is not included in
our regular conference tickets this year. We have done this to keep
the conference ticket prices reasonable, acknowledge the value in the
trainings are and to add more flexibility.
Two full days of trainings included
Training passes allow you to access all trainings on the two training
days, Monday and Tuesday. Each training will run for 3 hours and they
will be scheduled in 3 parallel tracks.
Please note: Training access is on a first-come-first-served basis. We
don’t provide registration for specific training sessions.
A light lunch is served on the training days, which is included in the
training pass price.
* Business training pass: EUR 295.00 excl. VAT, EUR 354.00 incl. 20%
UK VAT (for people using Python to make a living)
* Personal training pass: EUR 175.00 incl. 20% UK VAT (for people
enjoying Python from home)
* Student training pass: EUR 125.00 incl. 20% UK VAT (only available
for pupils, students and postdoctoral researchers; please bring your
student card or declaration from University, stating your
affiliation, starting and end dates of your contract)
The trainings pass does not grant you permission to attend the main
EuroPython conference days or the sprints. Please get a separate
conference ticket for this.
Available training sessions
We have already selected an initial set of trainings, you can view on
our session list:
We will also have a few sponsored trainings, which are free (you don’t
need a training pass to attend these). These will be announced in a
separate blog post.
Only a limited number of training passes available
Since we don’t want to overbook the trainings sessions, we have
limited the number of training passes to 200.
Training pass sales will start on Friday, June 6, at around 12:00
CEST (that’s 10:00 UTC, 11:00 BST, 13:00 EEST, etc.).
Given the experience with the early bird tickets, which sold out in
less than 45 minutes, we recommend to get your ticket as soon as you
Regular conference tickets are selling out much faster than last year
as well, so the same recommendation applies to those as well:
Help spread the word
Please help us spread this message by sharing it on your social
networks as widely as possible. Thank you !
Link to the blog post:
EuroPython 2018 Team
On behalf of the NumPy team, I am pleased to announce the release of NumPy
This is a bugfix release for bugs reported following the 1.14.3 release. The
most significant fixes are:
* fixes for compiler instruction reordering that resulted in NaN's not being
properly propagated in `np.max` and `np.min`,
* fixes for bus faults on SPARC and older ARM due to incorrect alignment
There are also improvements to printing of long doubles on PPC platforms.
is not yet perfect on that platform, the whitespace padding is still
and is to be fixed in numpy 1.15, consequently NumPy still fails some
printing-related (and other) unit tests on ppc systems. However, the printed
values are now correct.
Note that NumPy will error on import if it detects incorrect float32 `dot`
results. This problem has been seen on the Mac when working in the Anaconda
enviroment and is due to a subtle interaction between MKL and PyQt5. It is
strictly a NumPy problem, but it is best that users be aware of it. See the
gh-8577 NumPy issue for more information.
The Python versions supported in this release are 2.7 and 3.4 - 3.6. Wheels
for all supported versions are available from PIP
<https://pypi.org/project/numpy/> and source releases are available
on github <https://github.com/numpy/numpy/releases/tag/v1.14.4>. The source
releases were cythonized with Cython 0.28.2 and should
be compatible with the upcoming Python 3.7.
A total of 7 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
* Allan Haldane
* Charles Harris
* Marten van Kerkwijk
* Matti Picus
* Pauli Virtanen
* Ryan Soklaski +
* Sebastian Berg
Pull requests merged
A total of 11 pull requests were merged for this release.
* #11104: BUG: str of DOUBLE_DOUBLE format wrong on ppc64
* #11170: TST: linalg: add regression test for gh-8577
* #11174: MAINT: add sanity-checks to be run at import time
* #11181: BUG: void dtype setup checked offset not actual pointer for
* #11194: BUG: Python2 doubles don't print correctly in interactive shell.
* #11198: BUG: optimizing compilers can reorder call to npy_get_floatstatus
* #11199: BUG: reduce using SSE only warns if inside SSE loop
* #11203: BUG: Bytes delimiter/comments in genfromtxt should be decoded
I'm pleased to announce version 3.7.0, the first stable release of branch
3.7 of SQLObject.
What's new in SQLObject
Contributors for this release are Scott Stahl and Christophe Popov.
* Add signals on commit and rollback; pull request by Scott Stahl.
* Fix SSL-related parameters for MySQL-connector (connector uses
a different param style). Bug reported by Christophe Popov.
* Remove psycopg1. Driver ``psycopg`` is now just an alias for ``psycopg2``.
* Install psycopg2 from `psycopg2-binary`_ package.
.. _`psycopg2-binary`: https://pypi.org/project/psycopg2-binary/
For a more complete list, please see the news:
What is SQLObject
SQLObject is an object-relational mapper. Your database tables are described
as classes, and rows are instances of those classes. SQLObject is meant to be
easy to use and quick to get started with.
SQLObject supports a number of backends: MySQL, PostgreSQL, SQLite,
Firebird, Sybase, MSSQL and MaxDB (also known as SAPDB).
Python 2.7 or 3.4+ is required.
Where is SQLObject
News and changes:
Create a simple class that wraps a table::
>>> from sqlobject import *
>>> sqlhub.processConnection = connectionForURI('sqlite:/:memory:')
>>> class Person(SQLObject):
... fname = StringCol()
... mi = StringCol(length=1, default=None)
... lname = StringCol()
Use the object::
>>> p = Person(fname="John", lname="Doe")
<Person 1 fname='John' mi=None lname='Doe'>
>>> p.mi = 'Q'
>>> p2 = Person.get(1)
<Person 1 fname='John' mi='Q' lname='Doe'>
>>> p is p2
>>> p3 = Person.selectBy(lname="Doe")
<Person 1 fname='John' mi='Q' lname='Doe'>
>>> pc = Person.select(Person.q.lname=="Doe").count()
Oleg Broytman https://phdru.name/ phd(a)phdru.name
Programmers don't die, they just GOSUB without RETURN.
pytest 3.6.1 has just been released to PyPI.
This is a bug-fix release, being a drop-in replacement. To upgrade::
pip install --upgrade pytest
The full changelog is available at
Thanks to all who contributed to this release, among them:
* Anthony Sottile
* Bruno Oliveira
* Jeffrey Rackauckas
* Miro Hrončok
* Niklas Meinzer
* Oliver Bestwalter
* Ronny Pfannschmidt
The pytest Development Team
Vulture - Find dead code
Vulture finds unused code in Python programs. This is useful for
cleaning up and finding errors in large code bases. If you run Vulture
on both your library and test suite you can find untested code.
Due to Python's dynamic nature, static code analyzers like Vulture are
likely to miss some dead code. Also, code that is only called
implicitly may be reported as unused. Nonetheless, Vulture can be a
very helpful tool for higher code quality.
* fast: static code analysis
* tested: tests itself and has complete test coverage
* complements pyflakes and has the same output syntax
* sorts unused classes and functions by size with ``--sort-by-size``
* supports Python 2.7 and Python >= 3.4
* Report ``while (True): ... else: ...`` as unreachable (thanks @RJ722).
* Whitelist Mock.return_value and Mock.side_effect in unittest.mock.
* Drop support for Python 2.6 and 3.3.
* Improve documentation and test coverage (thanks @RJ722).