Email not displaying correctly? View it in your browser.
Happy 2010! To start the year off, we've released a new version of EPD
and lined up a solid set of training options.
Scientific Computing with Python Webinar
This Friday, Travis Oliphant will then provide an introduction to
multiprocessing and iPython.kernal.
Scientific Computing with Python Webinar
Multiprocessing and iPython.kernal
Friday, January 22: 1pm CST/7pm UTC
Enthought Live Training
Enthought's intensive training courses are offered in 3-5 day
sessions. The Python skills you'll acquire will save you and your
organization time and money in 2010.
Enthought Open Course
February 22-26, Austin, TX
• Python for Scientists and Engineers
• Interfacing with C / C++ and Fortran
• Introduction to UIs and Visualization
The Enthought Team
Now available in our repository, EPD 6.0 includes Python 2.6,
PiCloud's cloud library, and NumPy 1.4... Not to mention 64-bit
support for Windows, OSX, and Linux.
Details. Download now.
Short instructional videos straight from the desktops of our
developers. Get started with a 4-part series on interpolation with
Our mailing address is:
Enthought, Inc. 515 Congress Ave. Austin, TX 78701
Copyright (C) 2009 Enthought, Inc. All rights reserved.
Forward this email to a friend
i just released some bits related to automated testing with Python:
py-1.2.0: py.test core which grew junitxml, standalone-script generation
pytest-xdist-1.0: separately installable dist-testing & looponfailing plugin
pytest-figleaf-1.0: separately installable figleaf-coverage testing plugin
See below or at this URL for the announcement:
If you didn't experience much speed-up or previously had problems with
distributed testing i recommend you try to install "pytest-xdist" now and see
if it works better. For me it speeds up some tests runs by 500% on a 4 CPU
machine due to its better internal model and several fixes. (It's five
times because several tests depend on IO and don't block CPU meanwhile).
Another tip: if you use "pip" (best with a virtualenv) you can do e.g.:
pip install pytest-xdist
pip uninstall pytest-xdist
to conveniently activate/deactivate plugins for py.test. easy_install
works ok as well but has no uninstall, yet remains the only option
for installing with Python3 at the moment, though. You need to use
the fine 'distribute' project's easy_install for the latter.
cheers & have fun,
py.test/pylib 1.2.0: junitxml, standalone test scripts, pluginization
py.test is an advanced automated testing tool working with
Python2, Python3 and Jython versions on all major operating
systems. It has a simple plugin architecture and can run many
existing common Python test suites without modification. It offers
some unique features not found in other testing tools.
See http://pytest.org for more info.
py.test 1.2.0 brings many bug fixes and interesting new abilities:
* --junitxml=path will create an XML file for use with CI processing
* --genscript=path creates a standalone py.test-equivalent test-script
* --ignore=path prevents collection of anything below that path
* --confcutdir=path only lookup conftest.py test configs below that path
* a 'pytest_report_header' hook to add info to the terminal report header
* a 'pytestconfig' function argument gives direct access to option values
* 'pytest_generate_tests' can now be put into a class as well
* on CPython py.test additionally installs as "py.test-VERSION", on
Jython as py.test-jython and on PyPy as py.test-pypy-XYZ
Apart from many bug fixes 1.2.0 also has better pluginization:
Distributed testing and looponfailing testing now live in the
separately installable 'pytest-xdist' plugin. The same is true for
'pytest-figleaf' for doing coverage reporting. Those two plugins
can serve well now as blue prints for doing your own.
thanks to all who helped and gave feedback,
holger krekel, January 2010
Changes between 1.2.0 and 1.1.1
- moved dist/looponfailing from py.test core into a new
separately released pytest-xdist plugin.
- new junitxml plugin: --junitxml=path will generate a junit style xml file
which is processable e.g. by the Hudson CI system.
- new option: --genscript=path will generate a standalone py.test script
which will not need any libraries installed. thanks to Ralf Schmitt.
- new option: --ignore will prevent specified path from collection.
Can be specified multiple times.
- new option: --confcutdir=dir will make py.test only consider conftest
files that are relative to the specified dir.
- new funcarg: "pytestconfig" is the pytest config object for access
to command line args and can now be easily used in a test.
- install 'py.test' and `py.which` with a ``-$VERSION`` suffix to
disambiguate between Python3, python2.X, Jython and PyPy installed versions.
- new "pytestconfig" funcarg allows access to test config object
- new "pytest_report_header" hook can return additional lines
to be displayed at the header of a test run.
- (experimental) allow "py.test path::name1::name2::..." for pointing
to a test within a test collection directly. This might eventually
evolve as a full substitute to "-k" specifications.
- streamlined plugin loading: order is now as documented in
customize.html: setuptools, ENV, commandline, conftest.
also setuptools entry point names are turned to canonical namees ("pytest_*")
- automatically skip tests that need 'capfd' but have no os.dup
- allow pytest_generate_tests to be defined in classes as well
- deprecate usage of 'disabled' attribute in favour of pytestmark
- deprecate definition of Directory, Module, Class and Function nodes
in conftest.py files. Use pytest collect hooks instead.
- collection/item node specific runtest/collect hooks are only called exactly
on matching conftest.py files, i.e. ones which are exactly below
the filesystem path of an item
- change: the first pytest_collect_directory hook to return something
will now prevent further hooks to be called.
- change: figleaf plugin now requires --figleaf to run. Also
change its long command line options to be a bit shorter (see py.test -h).
- change: pytest doctest plugin is now enabled by default and has a
new option --doctest-glob to set a pattern for file matches.
- change: remove internal py._* helper vars, only keep py._pydir
- robustify capturing to survive if custom pytest_runtest_setup
code failed and prevented the capturing setup code from running.
- make py.test.* helpers provided by default plugins visible early -
works transparently both for pydoc and for interactive sessions
which will regularly see e.g. py.test.mark and py.test.importorskip.
- simplify internal plugin manager machinery
- simplify internal collection tree by introducing a RootCollector node
- fix assert reinterpreation that sees a call containing "keyword=..."
- fix issue66: invoke pytest_sessionstart and pytest_sessionfinish
hooks on slaves during dist-testing, report module/session teardown
- fix issue65: properly handle dist-testing if no
execnet/py lib installed remotely.
- skip some install-tests if no execnet is available
- fix docs, fix internal bin/ script generation
----- End forwarded message -----
execnet is a small and stable pure-python library for working with local or
remote clusters of Python interpreters, with ease. It supports seamless
instantiation of remote interpreters through the 'ssh' command line binary.
The 1.0.3 release is a minor backward compatible release with these changes:
- refine termination: CTRL-C and gateway.exit will
now try harder to interrupt remote execution. this
helps to avoid left-over ssh-processes.
- fix read-on-non-blocking-files issue probably related to jython only:
the low-level read on subprocess pipes may be non-blocking, returning
less bytes than requested - so we now loop.
- Windows/python2.4: fix bug that killing subprocesses would fail
- make RemoteError and TimeoutError available directly on execnet namespace
- fix some doc and test issues (thanks thm and ronny), add ssh_fileserver example
- update internal copy of apipkg
- always skip remote tests if no ssh specs given
More info here:
I'm happy to announce the 0.6.2 comtypes release:
Here are the release notes:
comtypes 0.6.2 released.
Summary of important changes:
- Several bug fixes for COM event handlers implemented in Python.
- Allow typelib wrappers that (wrongly?) contain
- DllCanUnloadNow() always returns S_FALSE in comtypes inproc
- The COM interfaces IViewObject, IViewObject2, and
IViewObjectEx in the new module comtypes.viewobject.
Detailed changelog since version 0.6.0:
2010-01-15 Thomas Heller <theller(a)python.net>
* Bumped version number to 0.6.2.
* CoUninitialize() returns nothing, not HRESULT.
2009-12-22 Thomas Heller <theller(a)python.net>
* Bug fixes for event handlers implemented in Python.
2009-12-11 Thomas Heller <theller(a)python.net>
* COM servers implemented in Python can now fire events; it did
not work in some cases.
* When an exception occurs in a COM event handler, a traceback is
2009-11-26 Thomas Heller <theller(a)python.net>
* Allow typelib wrappers that contain 'SAFEARRAY(VARIANT*)'
parameter types to be imported. Calling these methods will fail,
2009-11-13 Thomas Heller <theller(a)python.net>
* To avoid a memory leak when PyInitialize()/PyUninitialize() are
called several times, return S_FALSE from inproc server's
2009-11-05 Thomas Heller <theller(a)python.net>
* COMObject subclasses can now implement a _final_release_()
method to free up resources, for example. This method is called
when the COM reference count reaches zero.
* Implement __hash__ method in dynamic dispatch classes. This
fixes a 'python -3' warning.
* comtypes\safearray.py: When numpy is not installed, creating
safearrays took a very long time. This is fixed now.
* comtypes\test\test_server.py: New way to test COM client and
server. Work in progress.
2009-10-22 Thomas Heller <theller(a)python.net>
* Support broken COM objects that provide IProvideClassInfo2, but
not IProvideClassInfo (although the latter is derived from the
* Fixed a regression from the 0.4 version, [out] parameters didn't
accept pointers or arrays any longer. Thanks again to Michael
2009-10-19 Thomas Heller <theller(a)python.net>
* Fix a memory leak in Python COM servers. Thanks to Michael
Eddington for the patch.
2009-10-02 Thomas Heller <theller(a)python.net>
* comtypes\test\test_server.py: Start a better approach to test
both COM object calls and COM object implementations.
2009-09-09 Thomas Heller <theller(a)python.net>
* Fix returning SAFEARRAY of VT_RECORDs. Based on a patch from
* New module comtypes.viewobject, contains the interfaces
IViewObject, IViewObject2, IViewObjectEx. IAdviseSink is faked.
* Change version number to 0.6.2dev.
2009-09-04 Thomas Heller <theller(a)python.net>
* CoTaskMemFree does not return a HRESULT. Patch from James Teh.
2009-08-19 Thomas Heller <theller(a)python.net>
* Bumped version number to 0.6.1.
2009-08-07 Thomas Heller <theller(a)python.net>
* When an interface was specified in the call to
IClassObject.CreateInstance, return that instead of calling
GetBestInterface. Patch from James Teh.
2009-08-04 Thomas Heller <theller(a)python.net>
* Added comtypes.CoGetClassObject() low-level function,
comtypes.client.GetClassObject() high-level function, and
implemented a pythonic interface to IClassFactory's CreateInstance
* Added the 'dynamic=False' parameter to the
comtypes.client.CoGetObject and comtypes.client.GetActiveObject
functions. Suggested by James Teh.
2009-06-17 Thomas Heller <theller(a)python.net>
* comtypes.automation: Support VT_I8 and VT_UI8 SAFEARRAYs.
* comtypes._comobject: Restore compatibility with Python 2.3.
* Add the comtypes.IServiceProvider interface. Based on a patch
from Michael Curran.
2009-04-30 Thomas Heller <theller(a)python.net>
* Change version number in repository to 0.6.0.2dev.
* Replace the VARIANTEnumerator implementation class in
comtypes.server.automation with a new one which should actually be
* A completely new way how localserver and inproc server instances
A comtypes.LocalServer or comtypes.InprocServer instance
is attached to the comtypes.COMObject class at runtime.
These changes keep localserver running as long as
COMObject instances are alive.
2009-04-29 Thomas Heller <theller(a)python.net>
* comtypes.errorinfo.ReportException now takes an additional
'stacklevel' named argument.
* Add E_OUTOFMEMORY hresult code.
* Register the InprocServer32 only when running as script or
py2exe dll, not when running as py2exe exe server.
2009-04-25 Thomas Heller <theller(a)python.net>
* SAFEARRAYs can now also be created from multi-dimensional numpy
2009-04-23 Thomas Heller <theller(a)python.net>
* Change version number in repository to 0.6.0.1dev.
* SAFEARRAYs can now also be created from array.array objects, and
from (one-dimensional) numpy arrays. This is a lot faster than
creating them from Python lists or tuples, at least for large
* ctypes instances like c_int, c_ubyte, and so on can now be
assigned to VARIANT().value. This allows to force creation of
VARIANTs with the corresponding typecodes V_I4, VT_UI1 and alike.
* Accept typelibs that contain SAFEARRAY(char).
2009-03-17 Thomas Heller <theller(a)python.net>
* Fixed the return type of ITypeLib::ReleaseTLibAttr, which is
documented wrongly in MSDN. The return type is void, not HRESULT.
Reported to cause crashes on Windows 7.
2009-01-29 Thomas Heller <theller(a)python.net>
* Restore compatibility with Python 2.3.
* comtypes\client\_code_cache.py: Add missing 'import types' in
Yet Another Meeting Assistant (YaMA), will help you with the Agenda,
Meeting Invitations, Minutes of a Meeting as well as Action Points. If
you are the assigned minute taker at any meeting, this tool is for
YaMA is written in Python and Tkinter, is open source software
released under GPLv2, and is hosted by SourceForge
Whats New in version 1.6.5 :
1. Updated User Interface
2. Usability Enhancements
3. Minor Bug Fixes
4. Training Videos
I'm pleased to announce the XYZCommander version 0.0.3!
XYZCommander is a pure console visual file manager.
* Tight integration with python run–time system — most of the
settings can be changed "on the fly" using management console.
* Powerful configuration system - define own actions, aliases,
internal commands, key bindings.
* Extensible plug-in system - even core functionality implemented
mainly using plug–ins, keeping base system small and clean.
* Events & hooks subsystem - a flexible way of reacting on certain
* Customizable look-n-feel - every widget component look can be
changed using skins.
* Unicode support
Download page: http://code.google.com/p/xyzcmd/downloads/list
Change log for 0.0.3:
* Python2.4 support
* Permanents filters
* Custom sorting
* High-color mode support with urwid >= 0.9.9
* New command line options: -c colors and -s skin
* XYZCommander's system prefix can be set using XYZCMD_PREFIX environment
variable in case of custom installation, by default it is equal to sys.prefix.
* New internal cmd "alias" is used to print all xyzcmd's aliases.
* New DSL method - section().
Return whole configuration section contents as a dictionary or None.
* New DSL method - fsrule().
Return libxyz.core.FSRule instance from string.
* New DSL method - palette().
Create internal palette object.
* New DSL method - skin().
Make and register new skin.
* New option 'term_colors' in main.xyz. It defines color mode.
Valid values are: 1, 16 (default), 88 and 256. It also can be defined
using -c command line flag.
* New method :sys:panel:get_untagged()
Method returns list of not tagged VFSObject instances.
* New method :core:shell:echo()
Method allows to show any custom string similar to command output.
* Added two hooks to :sys:cmd plugin to save command history on
exit and to restore its contents upon startup.
* :core:shell receives a 'wait' configuration flag, indicating
whether to wait for user input after command executed.
* :core:shell receives a 'setup_shell' configuration flag,
indicating whether to run system shell-specific initialization.
* :sys:panel receives five new filter-related variables:
filters_enable - enables object filtering
filters_policy - dtermines filtering policy
fitlers - list of FSRules to be sequentially applied on objects
sorting_policy - Active sorting policy name or None
sorting - Defined sorting policies. Each key corresponds to a policy
name and value is either a function with two arguments (VFSObject)
behaving like cmp() or a list of those functions.
If value is a list, each function applied sequentially.
* New method :sys:panel:filter
Method takes a list of VFSObject objects and filters out entries according to
filters defined in plugin configuration.
* New method :sys:panel:sort
Method takes a list of VFSObject objects and sorts entries according to
sorting policy defined in plugin configuration.
* New shortcut - (META-=) to quickly change directory in active panel
to the same as in the inactive one.
* Skins were completely reworked. Now skin file uses python syntax and
DSL helper functions: skin and palette to define new skin
* High-color mode now supported with urwid version >= 0.9.9.
* New high-color mode skin added - lighty.
I have just released Shed Skin 0.3, an experimental (restricted)
Python-to-C++ compiler. Please see my blog for more details about the
"Overdesigning is a SIN. It's the archetypal example of what I call 'bad
taste'" - Linus Torvalds
On behalf of the Python development team and the Python community, I'm
happy to announce the release candidate 1 of Python 2.5.5.
This is a source-only release that only includes security fixes. The
last full bug-fix release of Python 2.5 was Python 2.5.4. Users are
encouraged to upgrade to the latest release of Python 2.6 (which is
2.6.4 at this point).
This releases fixes issues with the logging and tarfile modules, and
with thread-local variables. See the detailed release notes at the
website (also available as Misc/NEWS in the source distribution) for
details of bugs fixed.
For more information on Python 2.5.5, including download links for
various platforms, release notes, and known issues, please see:
Highlights of the previous major Python releases are available from
the Python 2.5 page, at
Enjoy this release,
Martin v. Loewis
Python Release Manager
(on behalf of the entire python-dev team)
> Everyone is welcome but we need to let security
> know in advance who is coming, so if you are planning on
> attending, please list your name on (RSVP HERE):
I just found out that I was spozed to get the list in 24 hours in
advance, which is about now. but because I am a newb they are cutting
me some slack an I can send it in tomorrow at 10 am.
You can still show up, but it will just require security to do secure
things, which starts with table scans of multiple lists, and then some
low bandwidth communication with someone. You will wish you were on