This is a reminder to all teams who want to submit a proposal for
running the next EuroPython in 2014 and 2015.
Proposals must be sent in before Friday, June 14th, i.e. in less than
one week.
If you have questions, please feel free to contact the EuroPython Society
board at board(a)europython.eu. We're looking forward to hearing
from you :-)
Here's a copy of the original announcement email with the link to
the CFP document:
"""
The EuroPython Society (EPS) is happy to announce the Call for Proposals for
the EuroPython Conference in 2014 and 2015. This Call for Proposals is meant
to collect proposals from teams that volunteer for organizing the EuroPython
conference in 2014-2015.
The Call for Proposals document containing all the details and information
about the proposals and selection process can be found here:
https://docs.google.com/file/d/0B8YBdLoQM_6fbVpuM2ZWUGp3Slk/edit?usp=sharing
If you are part of a great team organizing amazing Python events you could be
the team organizing the next EuroPython! Please also forward this Call for
Proposals to anyone that you feel may be interested.
The Call for Proposals will run until Friday, June 14th. Proposals must be
submitted to europython-contact(a)python.org before that day, and must adhere
the requirements specified in the CFP document.
"""
Regards,
--
Marc-Andre Lemburg
Director
EuroPython Society
http://www.europython.eu/
Here are some upcoming Python community training events organized by the Triangle Python Users Group:
PyOhio PyCamp 2013 offered July 22-26, 2013 at Ohio State University in conjunction with the PyOhio 2013 regional Python conference: http://trizpug.org/boot-camp/pyohio13/
Python Network and Web Programming Workshop offered August 5-9, 2013 at the University of North Carolina: http://trizpug.org/boot-camp/pywebpw13/
Toronto PyCamp 2013 offered August 12-16, 2013 at the University of Toronto in conjunction with the PyCon Canada 2013 national Python conference: http://trizpug.org/boot-camp/torpy13/
Seattle PyCamp 2013 offered September 9-13, 2013 at the University of Washington's Paul G. Allen Center for Computer Science and Engineering: http://trizpug.org/boot-camp/seapy13/
--
Sincerely,
Chris Calloway
UNC-CH Department of Marine Sciences
3313 Venable Hall CB 3300
Chapel Hill, NC 27599-3300
(919) 599-3530
A new version of the Python module which wraps GnuPG has been released.
What Changed?
=============
This is a minor enhancement and bug-fix release. See the project website ( http://code.google.com/p/python-gnupg/ ) for more information. Summary:
An encoding bug which caused an exception when getting the GPG version has been fixed.
Recipients can be passed in a set or frozenset as well as in a list or tuple.
The keyring argument now accepts a list of public keyring filenames as well as a single filename.
A secret_keyring argument has been added which accepts either a single filename or a list of filenames for secret keyrings.
The current version passes all tests on Windows (CPython 2.4, 2.5, 2.6, 2.7, 3.1 and Jython 2.5.1), Mac OS X (Python 2.5) and Ubuntu (CPython 2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2). On Windows, GnuPG 1.4.11 has been used for the tests.
What Does It Do?
================
The gnupg module allows Python programs to make use of the functionality provided by the Gnu Privacy Guard (abbreviated GPG or GnuPG). Using this module, Python programs can encrypt and decrypt data, digitally sign documents and verify digital signatures, manage (generate, list and delete) encryption keys, using proven Public Key Infrastructure (PKI) encryption technology based on OpenPGP.
This module is expected to be used with Python versions >= 2.4, as it makes use of the subprocess module which appeared in that version of Python. This module is a newer version derived from earlier work by Andrew Kuchling, Richard Jones and Steve Traugott.
A test suite using unittest is included with the source distribution.
Simple usage:
>>> import gnupg
>>> gpg = gnupg.GPG(gnupghome='/path/to/keyring/directory')
>>> gpg.list_keys()
[{
...
'fingerprint': 'F819EE7705497D73E3CCEE65197D5DAC68F1AAB2',
'keyid': '197D5DAC68F1AAB2',
'length': '1024',
'type': 'pub',
'uids': ['', 'Gary Gross (A test user) <gary.gross(a)gamma.com>']},
{
...
'fingerprint': '37F24DD4B918CC264D4F31D60C5FEFA7A921FC4A',
'keyid': '0C5FEFA7A921FC4A',
'length': '1024',
...
'uids': ['', 'Danny Davis (A test user) <danny.davis(a)delta.com>']}]
>>> encrypted = gpg.encrypt("Hello, world!", ['0C5FEFA7A921FC4A'])
>>> str(encrypted)
'-----BEGIN PGP MESSAGE-----\nVersion: GnuPG v1.4.9 (GNU/Linux)\n\nhQIOA/6NHMDTXUwcEAf
...
-----END PGP MESSAGE-----\n'
>>> decrypted = gpg.decrypt(str(encrypted), passphrase='secret')
>>> str(decrypted)
'Hello, world!'
>>> signed = gpg.sign("Goodbye, world!", passphrase='secret')
>>> verified = gpg.verify(str(signed))
>>> print "Verified" if verified else "Not verified"
'Verified'
For more information, visit http://code.google.com/p/python-gnupg/ - as always, your feedback is most welcome (especially bug reports, patches and suggestions for improvement). Enjoy!
Cheers
Vinay Sajip
Red Dove Consultants Ltd.
Hello.
I'm trying to reach out for as many Eventlet users as possible. This message contains specific actions to be taken by project owners to ensure compatibility with future versions of eventlet.
1. We're going to have a minor backward incompatible change. It will *only* affect you if you use Eventlet specific `check_interval` positional argument, e.g. subprocess.Popen(...).wait(0.1). Which is very unlikely, but I have to make sure. Checking will take less than minute best case.
2. Please run the following search against your code base:
grep -lr -E 'import.+subprocess' . |xargs grep -nE '\.wait\([^)]' |fgrep -v 'check_interval='
3. If you have any results on step 3, please check that either you imported subprocess from eventlet.green or used monkey_patch and matched lines correspond to eventlet.green.subprocess.Popen objects
4. If you have any results on step 4, that is, you pass check_interval as first positional argument to .wait() method of Popen object, please change it to keyword argument `check_interval=...`
5. Please, spread this message to your coworkers, friends or other people who uses Eventlet in their projects.
Thank you very much.
If you are curious what's going on, here's the full story:
Python 3.3 introduced `timeout` kwarg to lots of methods of subprocess module. The RHEL guys backported it to their Python 2.6 package. At some point, the code they used started to use subprocess from Eventlet which does not have the `timeout` kwarg.
https://bitbucket.org/eventlet/eventlet/issue/89https://bitbucket.org/eventlet/eventlet/pull-request/30
Now in Eventlet, I am going to introduce the `timeout` argument and to make it forward compatible with Python3, it's going to get first place, like in stdlib.
To interested people, you may leave a comment in this discussion or in this Github thread: https://github.com/eventlet/eventlet/pull/34
Version 0.1.1 of Sarge, a cross-platform library which wraps the subprocess
module in the standard library, has been released.
What changed?
-------------
- Added the ability to scan for specific patterns in subprocess output streams.
- Added convenience methods to operate on wrapped subprocesses.
- Exceptions which occur while spawning subprocesses are now propagated.
- Fixed issues #2, #3, and #4.
- Improved shell_shlex resilience with Unicode on 2.x.
- Added get_stdout, get_stderr and get_both for when subprocess output is not
expected to be voluminous.
- Added an internal lock to serialise access to shared data.
- Added tests to cover added functionality and reported issues.
- Added 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
available):
>>> from sarge import capture_stdout
>>> p = capture_stdout('echo foo | cat; echo bar')
>>> for line in p.stdout: print(repr(line))
...
'foo\n'
'bar\n'
* 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.
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,
without cygwin.
* 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
these platforms).
Finding out more
----------------
You can read the documentation at
http://sarge.readthedocs.org/
There's a lot more information, with examples, than I can put into
this post.
You can install Sarge using "pip install sarge" to try it out. The
project is hosted on BitBucket at
https://bitbucket.org/vinay.sajip/sarge/
And you can leave feedback on the issue tracker there.
I hope you find Sarge useful!
Regards,
Vinay Sajip
Numba 0.9 adds support better math functions for all supported data
types (complex and floating). The release also comes with open-sourced
generalized ufunc support from numbapro. This allows users to write a
NumPy generalized ufunc directly in python and compile it with numba.
There is now also support for long double on all platforms. The
support comes with a new dependency on llvmmath. Array expressions and
their performance have also been improved.
Generalized ufuncs:
http://numba.pydata.org/numba-doc/0.9/arrays.html#generalized-ufuncs
Supported math functions:
https://github.com/ContinuumIO/llvmmath/blob/master/llvmmath/RequiredSymbol…
Download
========
http://numba.pydata.org/download.html
Website
=======
http://numba.pydata.org/
Documentation
============
http://numba.pydata.org/numba-doc/0.9/index.html
Numba
======
Numba is an just-in-time specializing compiler which compiles
annotated Python and NumPy code to LLVM (through decorators). Its goal
is to seamlessly integrate with the Python scientific software stack
and produce optimized native code, as well as integrate with native
foreign languages.
===========================
Announcing PyTables 3.0.0
===========================
We are happy to announce PyTables 3.0.0.
PyTables 3.0.0 comes after about 5 years from the last major release
(2.0) and 7 months since the last stable release (2.4.0).
This is new major release and an important milestone for the PyTables
project since it provides the long waited support for Python 3.x, which
has been around for 4 years.
Almost all of the core numeric/scientific packages for Python already
support Python 3 so we are very happy that now also PyTables can provide
this important feature.
What's new
==========
A short summary of main new features:
- Since this release, PyTables now provides full support to Python 3
- The entire code base is now more compliant with coding style
guidelines described in PEP8.
- Basic support for HDF5 drivers. It now is possible to open/create an
HDF5 file using one of the SEC2, DIRECT, LOG, WINDOWS, STDIO or CORE
drivers.
- Basic support for in-memory image files. An HDF5 file can be set
from or copied into a memory buffer.
- Implemented methods to get/set the user block size in a HDF5 file.
- All read methods now have an optional *out* argument that allows to
pass a pre-allocated array to store data.
- Added support for the floating point data types with extended
precision (Float96, Float128, Complex192 and Complex256).
- Consistent ``create_xxx()`` signatures. Now it is possible to create
all data sets Array, CArray, EArray, VLArray, and Table from existing
Python objects.
- Complete rewrite of the `nodes.filenode` module. Now it is fully
compliant with the interfaces defined in the standard `io` module.
Only non-buffered binary I/O is supported currently.
Please refer to the RELEASE_NOTES document for a more detailed list of
changes in this release.
As always, a large amount of bugs have been addressed and squashed as well.
In case you want to know more in detail what has changed in this
version, please refer to: http://pytables.github.io/release_notes.html
You can download a source package with generated PDF and HTML docs, as
well as binaries for Windows, from:
http://sourceforge.net/projects/pytables/files/pytables/3.0.0
For an online version of the manual, visit:
http://pytables.github.io/usersguide/index.html
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.
Resources
=========
About PyTables: http://www.pytables.org
About the HDF5 library: http://hdfgroup.org/HDF5/
About NumPy: http://numpy.scipy.org/
Acknowledgments
===============
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.
----
**Enjoy data!**
-- The PyTables Developers
Hello,
I'm very happy to let you know that Zato 1.1 has just been released.
*What is Zato*
--------------
Zato is a lightweight, yet complete, ESB (Enterprise Service Bus) and
app server in Python designed for creating middleware applications and
systems of systems.
Zato is open-source software released under a commercial-friendly LGPL
license.
The project's site is at https://zato.io
Read more about what ESB is at https://zato.io/docs/intro/esb-soa.html
*Release notes*
---------------
This release is based on feedback from early adopters and includes a
number of improvements to help first time users get started more easily.
An important addition in 1.1 is a unified installer for OS X, Ubuntu,
Mint and Fedora.
Special thanks to Myroslav Opyr (quintagroup.com) for all his
suggestions and code patches and to a vocal group of OS X users
(https://github.com/zatosource/zato/issues/41) who helped create the OS
X installer!
Download: https://zato.io/downloads.html
Migrating from 1.0: https://zato.io/docs/admin/guide/migrating.html
Changelog: https://zato.io/docs/project/changelog.html
Unfortunately, this release doesn't add an installer for RHEL and SLES.
Confronted with a choice between delaying 1.1 and adding support for OS
X and Fedora, I had to make a call and chose the latter.
*Changelog*
-----------
* Unified installer for Ubuntu, Mint, Fedora and OS X
* Added the zato check-config command
* Fixed a bug which lead to double execution of user-defined scheduler jobs
* Made quickstart clusters more robust when confronted with improperly
configured servers, sanity checks are now performed before servers are
started
* Changed the default value of main.deployment_lock_expires so it works
on 32-bit systems without a need for reconfiguring servers after they’re
created
* Made scripts generated by zato quickstart relocatable
* Newly created servers start CPU_COUNT gunicorn workers by default now,
not CPU_COUNT * 2 as previously
* HAProxy load-balancer can now bind to all interfaces. Patch provided
by Myroslav Opyr (quintagroup.com).
cheers,
--
Dariusz Suchojad
https://zato.io
The next generation ESB and application server. Open-source. In Python.