mrjob v0.3.0 released

2011-12-08 Thread Jimmy Retzlaff
What is mrjob?
---
mrjob is a Python package that helps you write and run Hadoop Streaming
jobs.

mrjob fully supports Amazon's Elastic MapReduce (EMR) service, which allows
you to buy time on a Hadoop cluster on an hourly basis. It also works with
your own Hadoop cluster.

Some important features:

 * Run jobs on EMR, your own Hadoop cluster, or locally (for testing).
 * Write multi-step jobs (one map-reduce step feeds into the next)
 * Duplicate your production environment inside Hadoop
   * Upload your source tree and put it in your job's $PYTHONPATH
   * Run make and other setup scripts
   * Set environment variables (e.g. $TZ)
   * Easily install python packages from tarballs (EMR only)
   * Setup handled transparently by mrjob.conf config file
 * Automatically interpret error logs from EMR
 * SSH tunnel to hadoop job tracker on EMR
 * Minimal setup
   * To run on EMR, set $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY
   * To run on your Hadoop cluster, install simplejson and make sure
$HADOOP_HOME is set.

More info:

 * Install mrjob: pip install mrjob -OR- easy_install mrjob
 * Documentation: http://packages.python.org/mrjob/
 * PyPI: http://pypi.python.org/pypi/mrjob
 * Mailing list: http://groups.google.com/group/mrjob
 * Development is hosted at github: http://github.com/Yelp/mrjob

What's new?

mrjob v0.3.0 is a major new release. Full details are at
http://packages.python.org/mrjob/whats-new.html - here are a few highlights:

v0.3.0, 2011-12-07
 * Combiners
 * *_init() and *_final() for mappers, reducers, and combiners
 * Custom option parsers
 * Job flow pooling on EMR (saves time and money!)
 * SSH log fetching
 * New EMR diagnostic tools

A big thanks to the contributors to this release: Steve Johnson, Dave
Marin, Wahbeh Qardaji, Derek Wilson, Jordan Andersen, and Benjamin
Goldenberg!
-- 
http://mail.python.org/mailman/listinfo/python-list


mrjob v0.2.7 released

2011-07-12 Thread Jimmy Retzlaff
What is mrjob?
-
mrjob is a Python package that helps you write and run Hadoop Streaming
jobs.

mrjob fully supports Amazon's Elastic MapReduce (EMR) service, which allows
you to buy time on a Hadoop cluster on an hourly basis. It also works with
your own Hadoop cluster.

Some important features:

 * Run jobs on EMR, your own Hadoop cluster, or locally (for testing).
 * Write multi-step jobs (one map-reduce step feeds into the next)
 * Duplicate your production environment inside Hadoop
   * Upload your source tree and put it in your job's $PYTHONPATH
   * Run make and other setup scripts
   * Set environment variables (e.g. $TZ)
   * Easily install python packages from tarballs (EMR only)
   * Setup handled transparently by mrjob.conf config file
 * Automatically interpret error logs from EMR
 * SSH tunnel to hadoop job tracker on EMR
 * Minimal setup
   * To run on EMR, set $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY
   * To run on your Hadoop cluster, install simplejson and make sure
$HADOOP_HOME is set.

More info:

 * Install mrjob: python setup.py install
 * Documentation: http://packages.python.org/mrjob/
 * PyPI: http://pypi.python.org/pypi/mrjob
 * Development is hosted at github: http://github.com/Yelp/mrjob


What's new?
-
Big thank you to Yelp intern Steve Johnson, who wrote the majority of the
code for this release. Wahbeh Qardaji, another Yelp intern, contributed as
well, and has been working hard on features for v0.3.0.

v0.2.7, 2011-07-12 -- Hooray for interns!
 * All runner options can be set from the command line (Issue #121)
  * Including for mrjob.tools.emr.create_job_flow (Issue #142)
 * New EMR options:
  * availability_zone (Issue #72)
  * bootstrap_actions (Issue #69)
  * enable_emr_debugging (Issue #133)
 * Read counters from EMR log files (Issue #134)
 * Clean old files out of S3 with mrjob.tools.emr.s3_tmpwatch (Issue #9)
 * EMR parses and reports job failure due to steps timing out (Issue #15)
 * EMR boostrap files are no longer made public on S3 (Issue #70)
 * mrjob.tools.emr.terminate_idle_job_flows handles custom hadoop streaming
  jars correctly (Issue #116)
 * LocalMRJobRunner separates out counters by step (Issue #28)
 * bootstrap_python_packages works regardless of tarball name (Issue #49)
 * mrjob always creates temp buckets in the correct AWS region (Issue #64)
 * Catch abuse of __main__ in jobs (Issue #78)
 * Added mr_travelling_salesman example
-- 
http://mail.python.org/mailman/listinfo/python-list


Subject: mrjob v0.2.6 released

2011-05-24 Thread Jimmy Retzlaff
What is mrjob?
-
mrjob is a Python package that helps you write and run Hadoop Streaming jobs.

mrjob fully supports Amazon's Elastic MapReduce (EMR) service, which
allows you to buy time on a Hadoop cluster on an hourly basis. It also
works with your own Hadoop cluster.

Some important features:

 * Run jobs on EMR, your own Hadoop cluster, or locally (for testing).
 * Write multi-step jobs (one map-reduce step feeds into the next)
 * Duplicate your production environment inside Hadoop
   * Upload your source tree and put it in your job's $PYTHONPATH
   * Run make and other setup scripts
   * Set environment variables (e.g. $TZ)
   * Easily install python packages from tarballs (EMR only)
   * Setup handled transparently by mrjob.conf config file
 * Automatically interpret error logs from EMR
 * SSH tunnel to hadoop job tracker on EMR
 * Minimal setup
   * To run on EMR, set $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY
   * To run on your Hadoop cluster, install simplejson and make sure
$HADOOP_HOME is set.

More info:

 * Install mrjob: python setup.py install
 * Documentation: http://packages.python.org/mrjob/
 * PyPI: http://pypi.python.org/pypi/mrjob
 * Development is hosted at github: http://github.com/Yelp/mrjob


What's new?
-
v0.2.6, 2011-05-24 -- fix bootstrapping mrjob
 * Set Hadoop to run on EMR with --hadoop-version (Issue #71).
   * Default is still 0.18, but will change to 0.20 in mrjob v0.3.0.
 * New inline runner, for testing locally with a debugger
 * New --strict-protocols option, to catch unencodable data (Issue #76)
 * Added steps_python_bin option (for use with virtualenv)
 * mrjob no longer chokes when asked to run on an EMR job flow running
Hadoop 0.20 (Issue #110)
 * mrjob no longer chokes on job flows with no LogUri (Issue #112)
-- 
http://mail.python.org/mailman/listinfo/python-list


mrjob v0.2.5 released

2011-04-30 Thread Jimmy Retzlaff
What is mrjob?
---

mrjob is a Python package that helps you write and run Hadoop Streaming jobs.

mrjob fully supports Amazon's Elastic MapReduce (EMR) service, which
allows you to buy time on a Hadoop cluster on an hourly basis. It also
works with your own Hadoop cluster.

Some important features:

  * Run jobs on EMR, your own Hadoop cluster, or locally (for testing).
  * Write multi-step jobs (one map-reduce step feeds into the next)
  * Duplicate your production environment inside Hadoop
  * Upload your source tree and put it in your job's $PYTHONPATH
  * Run make and other setup scripts
  * Set environment variables (e.g. $TZ)
  * Easily install python packages from tarballs (EMR only)
  * Setup handled transparently by mrjob.conf config file
  * Automatically interpret error logs from EMR
  * SSH tunnel to hadoop job tracker on EMR
  * Minimal setup
  * To run on EMR, set $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY
  * To run on your Hadoop cluster, install simplejson and make
sure $HADOOP_HOME is set.

More info:

  * Install mrjob: python setup.py install
  * Documentation: http://packages.python.org/mrjob/
  * PyPI: http://pypi.python.org/pypi/mrjob
  * Discussion: http://groups.google.com/group/mrjob
  * Development is hosted at github: http://github.com/Yelp/mrjob


What's new?
---

v0.2.5, 2011-04-29 -- Hadoop input and output formats
  * Added hadoop_input/output_format options
  * You can now specify a custom Hadoop streaming jar (hadoop_streaming_jar)
  * extra args to hadoop now come before -mapper/-reducer on EMR, so
that e.g. -libjar will work (worked in hadoop mode since v0.2.2)
  * hadoop mode now supports s3n:// URIs (Issue #53)
-- 
http://mail.python.org/mailman/listinfo/python-list


mrjob v0.2.4 released

2011-03-09 Thread Jimmy Retzlaff
What is mrjob?
---

mrjob is a Python package that helps you write and run Hadoop Streaming
jobs.

mrjob fully supports Amazon's Elastic MapReduce (EMR) service, which allows
you to buy time on a Hadoop cluster on an hourly basis. It also works with
your own Hadoop cluster.

Some important features:

 * Run jobs on EMR, your own Hadoop cluster, or locally (for testing).
 * Write multi-step jobs (one map-reduce step feeds into the next)
 * Duplicate your production environment inside Hadoop
   * Upload your source tree and put it in your job's $PYTHONPATH
   * Run make and other setup scripts
   * Set environment variables (e.g. $TZ)
   * Easily install python packages from tarballs (EMR only)
   * Setup handled transparently by mrjob.conf config file
 * Automatically interpret error logs from EMR
 * SSH tunnel to hadoop job tracker on EMR
 * Minimal setup
   * To run on EMR, set $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY
   * To run on your Hadoop cluster, install simplejson and make sure
$HADOOP_HOME is set.

More info:

 * Install mrjob: python setup.py install
 * Documentation: http://packages.python.org/mrjob/
 * PyPI: http://pypi.python.org/pypi/mrjob
 * Development is hosted at github: http://github.com/Yelp/mrjob


What's new?
---

v0.2.4, 2011-03-09 -- fix bootstrapping mrjob
 * Fix bootstrapping of mrjob in hadoop and local mode (Issue #89)
 * SSH tunnels try to use the same port for the same job flow (Issue #67)
 * Added mr_postfix_bounce and mr_pegasos_svm to examples.
 * Retry on spurious 505s from EMR API
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: [Py2exe-users] how to build same executabl with and without console output

2010-07-30 Thread Jimmy Retzlaff
On Fri, Jul 30, 2010 at 1:10 AM, Gelonida  wrote:
> What I'd like to achieve ideally is to create a py2exe program,
> which
> will only display a window (so 'compiled' as 'windows'-application) if
> called normally.
>
> however if being called with the option --debug it should display the
> graphical window plus a debug console where I can print to.
>
> Is there any trick in adding a console window to an application,
> that was built as 'windows' application?
>
> If above is not possible:
>
> Is there any way to compile the same python script (myprog.py) from one
> py2exe script into once a 'windows' executable (myprog.exe) and once
> into a 'console' executable (myprog_debug.exe)?

I can't think of an easy way to achieve the first approach - I've
always taken the second approach. The advanced example included with
py2exe has an example of how to do this. Look at all the occurrences
of test_wx in the following link to see all the pieces involved:

http://py2exe.svn.sourceforge.net/viewvc/py2exe/trunk/py2exe/py2exe/samples/advanced/setup.py?view=markup

This uses an alternate form of the "windows" and "console" arguments
where each target is an object with specially named member variables
rather than a string that names the .py file (this string is one of
the member variables). This is necessary so you can give different
names to the console version and the windows version.

Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


py2exe 0.6.9 released

2008-11-15 Thread Jimmy Retzlaff
py2exe 0.6.9 released
=

py2exe is a Python distutils extension which converts Python scripts
into executable Windows programs, able to run without requiring a
Python installation. Console and Windows (GUI) applications, Windows
NT services, exe and dll COM servers are supported.

Changes in 0.6.9:

* Binaries for Python 2.6 and Python 2.7.

* Fixed a modulefinder crash on certain relative imports.

* Changed the py2exe\samples\singlefile\gui\test_wx.py sample to
  use the wx package instead of the old wxPython package.

* Copy the manifest, if any, from the 'template' into the targets
  to ensure embedded assembly references, as required for python 2.6
  based apps, are copied.

* Allow each target to specify Vista User Access Control flags. For
  example, specifying 'uac_execution_info="requireAdministrator"' would
  force elevation for the final executable.


Changes in 0.6.8:

* Support for relative imports.

* Fix MemoryLoadLibrary to handle loading function addresses by ordinal
  numbers. Patch and test by Matthias Miller.

* Using the options compressed=1, bundle_files=3, and zipfile=None at
  the same time now works; patch from Alexey Borzenkov.

* Allow renaming of single-executable files; patch from Alexey
  Borzenkov.

* Embedding icon resources into the image now works correctly even for
  ico files containing multiple images.

* pyd files from different packages with the same filename no longer
  conflict. Patch from Grant Edwards.

* There are new samples for the 'typelibs' support, including the new
  option of pre-generating a typelib and specifying the file as an
  input to py2exe.

* The test suite is now included in the source distribution.


Changes in 0.6.6:

* Better support for Python 2.5.

* Experimental support for 64-bit builds of Python on win64.

* Better ISAPI support.

* New samples for ISAPI and COM servers.

* Support for new "command-line styles" when building Windows services.

Changes in 0.6.5:

* Fixed modulefinder / mf related bugs introduced in 0.6.4. This
  will be most evident when working with things like
  win32com.shell and xml.xpath.

* Files no longer keep read-only attributes when they are copied
  as this was causing problems with the copying of some MS DLLs.

Changes in 0.6.4:

* New skip-archive option which copies the Python bytecode files
  directly into the dist directory and subdirectories - no
  archive is used.

* An experimental new custom-boot-script option which allows a
  boot script to be specified (e.g., --custom-boot-script=cbs.py)
  which can do things like installing a customized stdout
  blackhole. See py2exe's boot_common.py for examples of what can
  be done. The custom boot script is executed during startup of
  the executable immediately after boot_common.py is executed.

* Thomas Heller's performance improvements for finding needed
  modules.

* Mark Hammond's fix for thread-state errors when a py2exe
  created executable tries to use a py2exe created COM DLL.

Changes in 0.6.3:

* First release assembled by py2exe's new maintainer, Jimmy
  Retzlaff. Code changes in this release are from Thomas Heller
  and Gordon Scott.

* The dll-excludes option is now available on the command line.
  It was only possible to specify that in the options argument to
  the setup function before.

  The dll-excludes option can now be used to filter out dlls like
  msvcr71.dll or even w9xpopen.exe.

* Fix from Gordon Scott: py2exe crashed copying extension modules
  in packages.

Changes in 0.6.2:

* Several important bugfixes:

  - bundled extensions in packages did not work correctly, this
made the wxPython single-file sample fail with newer wxPython
versions.

  - occasionally dlls/pyds were loaded twice, with very strange
effects.

  - the source distribution was not complete.

  - it is now possible to build a debug version of py2exe.

Changes in 0.6.1:

* py2exe can now bundle binary extensions and dlls into the
  library-archive or the executable itself.  This allows to
  finally build real single-file executables.

  The bundled dlls and pyds are loaded at runtime by some special
  code that emulates the Windows LoadLibrary function - they are
  never unpacked to the file system.

  This part of the code is distributed under the MPL 1.1, so this
  license is now pulled in by py2exe.

* By default py2exe now includes the codecs module and the
  encodings package.

* Several other fixes.

Homepage:

<http://www.py2exe.org>

Download from the usual location:

<http://sourceforge.net/project/showfiles.php?group_id=15583>

Enjoy,
Jimmy

--
http://mail.python.org/mailman/listinfo/python-list


py2exe 0.6.8 released

2008-06-15 Thread Jimmy Retzlaff
py2exe 0.6.8 released
=

py2exe is a Python distutils extension which converts Python scripts
into executable Windows programs, able to run without requiring a
Python installation. Console and Windows (GUI) applications, Windows
NT services, exe and dll COM servers are supported.

Changes in 0.6.8:

* Support for relative imports.

* Fix MemoryLoadLibrary to handle loading function addresses by ordinal
  numbers. Patch and test by Matthias Miller.

* Using the options compressed=1, bundle_files=3, and zipfile=None at
  the same time now works; patch from Alexey Borzenkov.

* Allow renaming of single-executable files; patch from Alexey
  Borzenkov.

* Embedding icon resources into the image now works correctly even for
  ico files containing multiple images.

* pyd files from different packages with the same filename no longer
  conflict. Patch from Grant Edwards.

* There are new samples for the 'typelibs' support, including the new
  option of pre-generating a typelib and specifying the file as an
  input to py2exe.

* The test suite is now included in the source distribution.


Changes in 0.6.6:

* Better support for Python 2.5.

* Experimental support for 64-bit builds of Python on win64.

* Better ISAPI support.

* New samples for ISAPI and COM servers.

* Support for new "command-line styles" when building Windows services.

Changes in 0.6.5:

* Fixed modulefinder / mf related bugs introduced in 0.6.4. This
  will be most evident when working with things like
  win32com.shell and xml.xpath.

* Files no longer keep read-only attributes when they are copied
  as this was causing problems with the copying of some MS DLLs.

Changes in 0.6.4:

* New skip-archive option which copies the Python bytecode files
  directly into the dist directory and subdirectories - no
  archive is used.

* An experimental new custom-boot-script option which allows a
  boot script to be specified (e.g., --custom-boot-script=cbs.py)
  which can do things like installing a customized stdout
  blackhole. See py2exe's boot_common.py for examples of what can
  be done. The custom boot script is executed during startup of
  the executable immediately after boot_common.py is executed.

* Thomas Heller's performance improvements for finding needed
  modules.

* Mark Hammond's fix for thread-state errors when a py2exe
  created executable tries to use a py2exe created COM DLL.

Changes in 0.6.3:

* First release assembled by py2exe's new maintainer, Jimmy
  Retzlaff. Code changes in this release are from Thomas Heller
  and Gordon Scott.

* The dll-excludes option is now available on the command line.
  It was only possible to specify that in the options argument to
  the setup function before.

  The dll-excludes option can now be used to filter out dlls like
  msvcr71.dll or even w9xpopen.exe.

* Fix from Gordon Scott: py2exe crashed copying extension modules
  in packages.

Changes in 0.6.2:

* Several important bugfixes:

  - bundled extensions in packages did not work correctly, this
made the wxPython single-file sample fail with newer wxPython
versions.

  - occasionally dlls/pyds were loaded twice, with very strange
effects.

  - the source distribution was not complete.

  - it is now possible to build a debug version of py2exe.

Changes in 0.6.1:

* py2exe can now bundle binary extensions and dlls into the
  library-archive or the executable itself.  This allows to
  finally build real single-file executables.

  The bundled dlls and pyds are loaded at runtime by some special
  code that emulates the Windows LoadLibrary function - they are
  never unpacked to the file system.

  This part of the code is distributed under the MPL 1.1, so this
  license is now pulled in by py2exe.

* By default py2exe now includes the codecs module and the
  encodings package.

* Several other fixes.

Homepage:

<http://www.py2exe.org>

Download from the usual location:

<http://sourceforge.net/project/showfiles.php?group_id=15583>

Enjoy,
Jimmy

--
http://mail.python.org/mailman/listinfo/python-list


ANN: EasyDialogs for Windows version 46691.0

2007-02-15 Thread Jimmy Retzlaff
EasyDialogs for Windows is available at:

http://www.averdevelopment.com/python/

EasyDialogs for Windows is a ctypes based emulation of the EasyDialogs
module included in the Python distribution for Mac. It attempts to be as
compatible as possible. Code using the Mac EasyDialogs module can often
be run unchanged on Windows using this module. The module has been
tested on Python 2.3 running on Windows NT, 98, XP, and 2003.

EasyDialogs is written in pure Python using Thomas Heller's ctypes
module to call Windows APIs directly. No Python GUI toolkit is used.
This means that relatively small distributions can be made with py2exe
(or its equivalents). A simple test of all the dialogs in EasyDialogs
bundled up using py2exe results in a distribution that is about 1.25MB.
Using py2exe in concert with NSIS as shown here allows the same test to
run as a single file executable that is just under 500KB.

Requires: Microsoft Windows, Python 2.3 or higher, and ctypes 0.6.3 or
higher (ctypes is included with Python 2.5 and higher, so it is not a
separate requirement there).

License: MIT

Change history:

Version 46691.0
- Fixed a bug that caused warnings with newer version of ctypes
(including the version included in Python 2.5)
- The edit box in AskString now scrolls horizontally if the entered text
does not otherwise fit
- AskFileForOpen(multiple=True) will allow multiple files to be selected
and a list of strings will be returned. If multiple is False (the
default if not specified) then only a single file can be selected and a
string is returned. This no longer seems to work on the Mac, but it's
useful enough to add it to the Windows version anyway. This change is
based on a patch contributed by Waldemar Osuch.
- Made minor changes to bring inline with SVN revision 46691 for Mac

Version 1.16.0
- Removed resource DLL, resources are now in a Python source file which
simplifies distribution of apps with py2exe
- Spelling corrections
- File open/save dialogs did not display on Windows 98
- AskString edit boxes were too short on Windows 98
- Improved display of drop down lists on Windows 98 and NT
- Made minor changes to bring inline with CVS version 1.16 for Mac

Version 1.14.0
- Initial public release


Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


py2exe 0.6.6 released

2006-12-31 Thread Jimmy Retzlaff
py2exe 0.6.6 released
=

py2exe is a Python distutils extension which converts Python scripts
into executable Windows programs, able to run without requiring a
Python installation. Console and Windows (GUI) applications, Windows
NT services, exe and dll COM servers are supported.

Changes in 0.6.6:

* Better support for Python 2.5.

* Experimental support for 64-bit builds of Python on win64.

* Better ISAPI support.

* New samples for ISAPI and COM servers.

* Support for new "command-line styles" when building Windows
  services.

Changes in 0.6.5:

* Fixed modulefinder / mf related bugs introduced in 0.6.4. This
  will be most evident when working with things like
  win32com.shell and xml.xpath.

* Files no longer keep read-only attributes when they are copied
  as this was causing problems with the copying of some MS DLLs.

Changes in 0.6.4:

* New skip-archive option which copies the Python bytecode files
  directly into the dist directory and subdirectories - no
  archive is used.

* An experimental new custom-boot-script option which allows a
  boot script to be specified (e.g., --custom-boot-script=cbs.py)
  which can do things like installing a customized stdout
  blackhole. See py2exe's boot_common.py for examples of what can
  be done. The custom boot script is executed during startup of
  the executable immediately after boot_common.py is executed.

* Thomas Heller's performance improvements for finding needed
  modules.

* Mark Hammond's fix for thread-state errors when a py2exe
  created executable tries to use a py2exe created COM DLL.

Changes in 0.6.3:

* First release assembled by py2exe's new maintainer, Jimmy
  Retzlaff. Code changes in this release are from Thomas Heller
  and Gordon Scott.

* The dll-excludes option is now available on the command line.
  It was only possible to specify that in the options argument to
  the setup function before.

  The dll-excludes option can now be used to filter out dlls like
  msvcr71.dll or even w9xpopen.exe.

* Fix from Gordon Scott: py2exe crashed copying extension modules
  in packages.

Changes in 0.6.2:

* Several important bugfixes:

  - bundled extensions in packages did not work correctly, this
made the wxPython single-file sample fail with newer wxPython
versions.

  - occasionally dlls/pyds were loaded twice, with very strange
effects.

  - the source distribution was not complete.

  - it is now possible to build a debug version of py2exe.

Changes in 0.6.1:

* py2exe can now bundle binary extensions and dlls into the
  library-archive or the executable itself.  This allows to
  finally build real single-file executables.

  The bundled dlls and pyds are loaded at runtime by some special
  code that emulates the Windows LoadLibrary function - they are
  never unpacked to the file system.

  This part of the code is distributed under the MPL 1.1, so this
  license is now pulled in by py2exe.

* By default py2exe now includes the codecs module and the
  encodings package.

* Several other fixes.

Homepage:

<http://www.py2exe.org>

Download from the usual location:

<http://sourceforge.net/project/showfiles.php?group_id=15583>

Enjoy,
Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


py2exe 0.6.5 released

2006-03-20 Thread Jimmy Retzlaff
py2exe 0.6.5 released
=

py2exe is a Python distutils extension which converts Python scripts
into executable Windows programs, able to run without requiring a
Python installation. Console and Windows (GUI) applications, Windows
NT services, exe and dll COM servers are supported.

Changes in 0.6.5:

* Fixed modulefinder / mf related bugs introduced in 0.6.4. This
  will be most evident when working with things like
  win32com.shell and xml.xpath.

* Files no longer keep read-only attributes when they are copied
  as this was causing problems with the copying of some MS DLLs.

Changes in 0.6.4:

* New skip-archive option which copies the Python bytecode files
  directly into the dist directory and subdirectories - no
  archive is used.

* An experimental new custom-boot-script option which allows a
  boot script to be specified (e.g., --custom-boot-script=cbs.py)
  which can do things like installing a customized stdout
  blackhole. See py2exe's boot_common.py for examples of what can
  be done. The custom boot script is executed during startup of
  the executable immediately after boot_common.py is executed.

* Thomas Heller's performance improvements for finding needed
  modules.

* Mark Hammond's fix for thread-state errors when a py2exe
  created executable tries to use a py2exe created COM DLL.

Changes in 0.6.3:

* First release assembled by py2exe's new maintainer, Jimmy
  Retzlaff. Code changes in this release are from Thomas Heller
  and Gordon Scott.

* The dll-excludes option is now available on the command line.
  It was only possible to specify that in the options argument to
  the setup function before.

  The dll-excludes option can now be used to filter out dlls like
  msvcr71.dll or even w9xpopen.exe.

* Fix from Gordon Scott: py2exe crashed copying extension modules
  in packages.

Changes in 0.6.2:

* Several important bugfixes:

  - bundled extensions in packages did not work correctly, this
made the wxPython single-file sample fail with newer wxPython
versions.

  - occasionally dlls/pyds were loaded twice, with very strange
effects.

  - the source distribution was not complete.

  - it is now possible to build a debug version of py2exe.

Changes in 0.6.1:

* py2exe can now bundle binary extensions and dlls into the
  library-archive or the executable itself.  This allows to
  finally build real single-file executables.

  The bundled dlls and pyds are loaded at runtime by some special
  code that emulates the Windows LoadLibrary function - they are
  never unpacked to the file system.

  This part of the code is distributed under the MPL 1.1, so this
  license is now pulled in by py2exe.

* By default py2exe now includes the codecs module and the
  encodings package.

* Several other fixes.

Homepage:

<http://www.py2exe.org>

Download from the usual location:

<http://sourceforge.net/project/showfiles.php?group_id=15583>

Enjoy,
Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


py2exe 0.6.4 released

2006-02-13 Thread Jimmy Retzlaff
py2exe 0.6.4 released
=

py2exe is a Python distutils extension which converts Python scripts
into executable Windows programs, able to run without requiring a
Python installation. Console and Windows (GUI) applications, Windows
NT services, exe and dll COM servers are supported.

Changes in 0.6.4:

* New skip-archive option which copies the Python bytecode files
  directly into the dist directory and subdirectories - no
  archive is used.

* An experimental new custom-boot-script option which allows a
  boot script to be specified (e.g., --custom-boot-script=cbs.py)
  which can do things like installing a customized stdout
  blackhole. See py2exe's boot_common.py for examples of what can
  be done. The custom boot script is executed during startup of
  the executable immediately after boot_common.py is executed.

* Thomas Heller's performance improvements for finding needed
  modules.

* Mark Hammond's fix for thread-state errors when a py2exe
  created executable tries to use a py2exe created COM DLL.

Changes in 0.6.3:

* First release assembled by py2exe's new maintainer, Jimmy
  Retzlaff. Code changes in this release are from Thomas Heller
  and Gordon Scott.

* The dll-excludes option is now available on the command line.
  It was only possible to specify that in the options argument to
  the setup function before.

  The dll-excludes option can now be used to filter out dlls like
  msvcr71.dll or even w9xpopen.exe.

* Fix from Gordon Scott: py2exe crashed copying extension modules
  in packages.

Changes in 0.6.2:

* Several important bugfixes:

  - bundled extensions in packages did not work correctly, this
made the wxPython single-file sample fail with newer wxPython
versions.

  - occasionally dlls/pyds were loaded twice, with very strange
effects.

  - the source distribution was not complete.

  - it is now possible to build a debug version of py2exe.

Changes in 0.6.1:

* py2exe can now bundle binary extensions and dlls into the
  library-archive or the executable itself.  This allows to
  finally build real single-file executables.

  The bundled dlls and pyds are loaded at runtime by some special
  code that emulates the Windows LoadLibrary function - they are
  never unpacked to the file system.

  This part of the code is distributed under the MPL 1.1, so this
  license is now pulled in by py2exe.

* By default py2exe now includes the codecs module and the
  encodings package.

* Several other fixes.

Homepage:

<http://www.py2exe.org>

Download from the usual location:

<http://sourceforge.net/project/showfiles.php?group_id=15583>

Enjoy,
Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


RE: py2exe and pyGTK (was "Error")

2005-11-14 Thread Jimmy Retzlaff
danger wrote:
> hi everybody, i have a problem with py2exe that gives me this error:
> 
> ImportError: could not import pango
> ImportError: could not import pango
> Traceback (most recent call last):
>   File "acqua.py", line 40, in ?
>   File "gtk\__init__.pyc", line 113, in ?
> AttributeError: 'module' object has no attribute 'Font'
> 
> does anybody knows how to solve it?

Does http://www.anti-particle.com/py2exe.shtml help?

Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


py2exe 0.6.3 released

2005-10-06 Thread Jimmy Retzlaff
py2exe 0.6.3 released
=

py2exe is a Python distutils extension which converts Python scripts
into executable Windows programs, able to run without requiring a
Python installation. Console and Windows (GUI) applications, Windows
NT services, exe and dll COM servers are supported.

Changes in 0.6.3:

* First release assembled by py2exe's new maintainer, Jimmy
  Retzlaff. Code changes in this release are from Thomas Heller
  and Gordon Scott.

* The dll-excludes option is now available on the command line.
  It was only possible to specify that in the options argument to
  the setup function before.

  The dll-excludes option can now be used to filter out dlls like
  msvcr71.dll or even w9xpopen.exe.

* Fix from Gordon Scott: py2exe crashed copying extension modules
  in packages.

Changes in 0.6.2:

* Several important bugfixes:

  - bundled extensions in packages did not work correctly, this
made the wxPython single-file sample fail with newer wxPython
versions.

  - occasionally dlls/pyds were loaded twice, with very strange
effects.

  - the source distribution was not complete.

  - it is now possible to build a debug version of py2exe.

Changes in 0.6.1:

* py2exe can now bundle binary extensions and dlls into the
  library-archive or the executable itself.  This allows to
  finally build real single-file executables.

  The bundled dlls and pyds are loaded at runtime by some special
  code that emulates the Windows LoadLibrary function - they are
  never unpacked to the file system.

  This part of the code is distributed under the MPL 1.1, so this
  license is now pulled in by py2exe.

* By default py2exe now includes the codecs module and the
  encodings package.

* Several other fixes.

Homepage:

<http://www.py2exe.org>

Download from the usual location:

<http://sourceforge.net/project/showfiles.php?group_id=15583>

Enjoy,
Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


py2exe has a new maintainer

2005-10-04 Thread Jimmy Retzlaff
I am taking over the maintenance and support of py2exe from Thomas
Heller. As he announced a few weeks ago he is looking to focus on other
things. py2exe has been very useful to me over the years and I look
forward to keeping it every bit as useful in the future.

I plan to make the transition as smooth as possible for users of py2exe.
I don't plan to make changes to the license other than adding my name to
the list of people not to sue. I will try to be as helpful as Thomas has
been in supporting py2exe on the py2exe mailing list and
comp.lang.python. The mailing list, the SourceForge project, and the
Wiki will continue in their current locations. The web site is moving to
http://www.py2exe.org and the old site will forward to the new one so
any bookmarks should still work.

I will be releasing version 0.6.3 very soon with a few changes Thomas
and others have made over the last few weeks. After that my priorities
for py2exe will be:

- Support
- Documentation (which should help familiarize me with the code)
- Automated tests (to point out when I haven't familiarized myself
enough)
- Bug fixes

Any help on any of these fronts will be greatly appreciated.

After I feel comfortable with things, I hope to work with other projects
in the Python packaging community (e.g., cx_Freeze,
PyInstaller/McMillan, py2app, setuptools, etc.) to see if we can't find
synergies that will make all of them better. I recognize that different
packagers are better for different audiences because of licensing,
platform, Python versions, and module support among other things.
Working together on the common parts (identifying dependencies,
customized handling of modules with unique needs, etc.) should make all
of the packagers serve their niches better.

I'd like to thank Thomas for the great work he's done with py2exe over
the years. He's set a very high standard for me to try and maintain.

Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


RE: Py2Exe + kinterbasdb

2005-10-03 Thread Jimmy Retzlaff
[EMAIL PROTECTED] wrote:
> I compile an application (that working good in native python) to exe
> with py2exe.
> In native mode (python.exe ReportApp.py) it is working, the reports
are
> created good.
> But when I try to create a report from the compiled exe, it is show an
> error:
> 
> Traceback (most recent call last):
>   File "Report01.pyc", line 164, in OnButton1Button
>   File "report_01.pyc", line 12, in OpenDBForReport
>   File "report_db.pyc", line 11, in OpenDB
>   File "kinterbasdb\__init__.pyc", line 472, in connect
>   File "kinterbasdb\__init__.pyc", line 558, in __init__
>   File "kinterbasdb\__init__.pyc", line 367, in _ensureInitialized
>   File "kinterbasdb\__init__.pyc", line 315, in init
> ImportError: No module named typeconv_backcompat

Try adding kinterbasdb to the py2exe packages options as shown below:

setup(
  console=["Report01.py"],
  options={"py2exe": {"packages": ["kinterbasdb"]}}
 )

Jimmy
-- 
http://mail.python.org/mailman/listinfo/python-list


RE: MessageBox ONOK?

2005-04-19 Thread Jimmy Retzlaff
Ali wrote:
> How do i connect the onOK of a win32ui MessageBox with the Ok button
so
> that I get to know when the user clicks the Ok button?

win32ui.MessageBox returns the ID of the button that was clicked to
dismiss the message box. There are constants in win32con you can use to
compare to that ID. An example:

>>> import win32con
>>> import win32ui
>>> buttonID = win32ui.MessageBox('Hello World')
>>> if buttonID == win32con.IDOK:
... print 'OK pressed'
... else:
... print 'OK not pressed'
... 
OK pressed

I clicked OK when the dialog appeared. There are also constants for
IDCANCEL, IDYES, IDNO, etc. which can be useful if you are using other
buttons (e.g., win32ui.MessageBox('Do it?', None, win32con.MB_YESNO)).

Jimmy
--
http://mail.python.org/mailman/listinfo/python-list


RE: py2exe - create one EXE

2005-04-15 Thread Jimmy Retzlaff
Codecraig wrote:
> i tried the SingleInstaller linkwhich points to a
> script using NSIS.  I followed those instructions which generated an
> .exe.   HOwever, when i run the .exe nothing happens (meaning no
> process starts, no output, no errors, nothing).
> 
> any ideas on that?  have ever used it?

There are a couple of things you can try. First off, if you are using
Python 2.4, then you may be missing msvcr71.dll and/or msvcp71.dll on
the system you are trying to run on (the corresponding file(s) for
Python 2.3 and earlier are extremely common so you aren't nearly as
likely to run into this problem). Look for the line that looks like this
in the NSIS script:

File /r '${py2exe.

And add this line just after it (assuming you installed Python in the
default location):

File 'C:\Python24\msvc*.*'

If you intend to distribute your result, then you can Google this group
for discussions about msvcr71.dll and license requirements for
redistribution - you won't find a definitive answer to the questions
you'll see, but you should be aware of the issues.

If that doesn't solve your problem, the next step to debugging it is to
try running the multi-file version produced by setup.py. If that doesn't
work, some common problems/workarounds can be found on the py2exe wiki.
Obviously the single file version won't work until the multi file
version works.

Chris Liechti has another solution, but the last time I checked it was
only for Python 2.3. It's on his page at:

http://homepage.hispeed.ch/py430/python/

Jimmy
--
http://mail.python.org/mailman/listinfo/python-list


RE: Python 2.4 killing commercial Windows Python development ?

2005-04-12 Thread Jimmy Retzlaff
Terry Reedy wrote:
> I guess I don't understand some people's determination to not have
users
> install fully useable Python on their Windows machines.  Doing so
seems no
> different to me than having to install (or upgrade) Shockwave, or
Apple's
> Quicksomething for Windows (not used so much anymore), or RealPlayer,
or
> the lastest upgrade for DirectX, or DivX, or a zip decoder, or any
other
> 3rd party software, to run .xxx files or specialized .exe programs.
(And
> I left out the most direct analogy of a java system.)

The Windows application that I develop and distribute relies on Python
plus 14 other packages (wxPython, pywin32all, ctypes, Numeric, PIL,
etc.). My customers typically install the application on 20-100 user
machines within their organization at one time so it's mandatory that I
make an automated silent installer available. That's a lot easier to do
with py2exe and a Windows installer than it is to do with Python's MSI
and 14 other packages. It's also more robust - the installer is much
simpler and my application is always used with exactly the same Python
environment that was used for QA.

There are also significant hurdles to clear before software can be put
on user machines in an organization like this. The reviews with the IT
groups go much more smoothly since I can state that my installer will
only write files to one folder of the IT group's choosing, put an icon
in the Start Menu, and will only touch the registry to register an
uninstaller. If there were 15 installers being run (even if automated)
we'd have to review each of those individually and my product would
almost never be approved.

I don't actively hide the fact that I use Python, but my customers are
rarely interested in my toolbox - they are too focused on their own
business. Some groups will ask what language I use, and the following
question will always be something like "If we need it to, can it
interact with Java?" or C# or ...  that's their only interest in the
language I use. If they open themselves up by asking then I can't help
but badger them with the virtues of Python for a while. :)

> To put it another way, needing a Python interpreter to run .py files
is no
> different from, for instance, needing a movie player to run .mpg
files,
> and all Windows users are or need to become familiar with that general
> concept.

Many of my users don't have a concept of a "file" unless it's something
they ask their assistant to get from a cabinet. They are typically
corporate executives for very big companies and if they have a computer
problem then a team of IT people get paged to fix it immediately. They
don't "need" to become familiar with anything on a computer - their job
is managing many billions of dollars worth of business every year. They
can use almost every feature of my application if they can move the
mouse and click the left button. That requires training for some of
them, and I feel honored they'll take the time to learn that much in
order to use my software.

> Also, I think it a bit 'anti-social' to hide usage of Python.  If all
> Python Windows programs ran with a normal, communally installed
Python,
> then users would gradually get the idea that having Python installed
is
> much like having Shockwave and other utility platforms installed, and
that
> is is part of a 'fully loaded' Windows system to have a .py player
> installed.

I feel the opposite. I've skipped evaluating a number of applications
because they didn't come with their own dedicated JVM. I've spent way
too much of my own time trying to use applications with conflicting JVM
requirements only to give up in the end. It's just a new form of DLL
hell.

As a user, I only want to think about how well an application does what
I need it to do. The more time I spend dealing with supporting
technologies, the less time I spend on the intended task.

> If there is something about the default install of Python on Windows
that
> makes it less desireable or less easy than other platforms, then maybe
> that can be fixed.

Something like Flash is quite special purposed and you don't have tons
of large extension modules that are in common use. You just use the base
system and it is very tightly controlled by one organization to maintain
backwards compatibility. And it is primarily used to augment/replace
HTML pages, so you don't want to download/install the engine each time
you come across another page with Flash content. Applications are
different, you acquire them once and use them over and over and the
runtime environment is much more variable from app to app. You don't
just have to worry about the backward compatibility of Python itself,
but of every extension module in common use and all the combinations
that arise out of that. Again look at the pain of shared JVM use. I
think Microsoft is on the right track to addressing DLL hell now by
recommending that DLLs be installed in the application folder, not the
system folder. That's analogous to using applicat

RE: string methods (warning, newbie)

2005-02-26 Thread Jimmy Retzlaff
Anthonyberet wrote:
> Is there a string mething to return only the alpha characters of a
string?
> eg 'The Beatles - help - 03 - Ticket to ride', would be
> 'TheBeatlesTickettoride'
> 
> If not then how best to approach this?
> I have some complicated plan to cut the string into individual
> characters and then concatenate a new string with the ones that return
> true with the .isalpha string method.
> 
> Is there an easier way?

The approach you are considering may be easier than you think:

>>> filter(str.isalpha, 'The Beatles - help - 03 - Ticket to ride')
'TheBeatleshelpTickettoride'

Jimmy
--
http://mail.python.org/mailman/listinfo/python-list


RE: bad generator performance

2005-02-06 Thread Jimmy Retzlaff
Johannes Ahl-mann wrote:
> i just wondered if there was a concise, clean way of doing this with
> generators which i had overlooked, or whether there was some blatant
> mistake in my code.

Aside from the recursion question...

You don't really give the complete story so it's hard to tell what
exactly is going on. For example, I would assume the recursion is
calling the same method (i.e., depthFirstIterator1 or
depthFirstIterator2), but then you posted separate timing information
for a "recursive helper function" so I'm not so sure. Also there is not
much of a hint as to the nature of your data.

Below is a test where each of your 2 methods calls itself recursively.
To make it work I had to build a data tree - I used the files and
folders in my C:\Python23 directory. In my testing (on Python 2.3.4 on
Windows XP), the generator version takes about 1/4 of the time that the
list version takes. If both versions call the list version of the method
recursively (i.e., you're only getting the benefit of the generator at
the top level of the recursion), the generator version is still about
20% faster.

Timing differences could potentially depend on your data also - things
like how deep vs. wide your tree is.

Jimmy


import os
import time

class Node:
def __init__(self, pathname):
self.thisIsAFolder = os.path.isdir(pathname)
self.children = []
if self.isFolder():
for filename in os.listdir(pathname):
childpathname = os.path.join(pathname, filename)
self.children.append(Node(childpathname))

def isFolder(self):
return self.thisIsAFolder

def depthFirstIterator1(self, depth = 0):
ret = [[self, True, depth]]

if self.isFolder():
  for c in self.children:
ret = ret + c.depthFirstIterator1(depth = depth + 1)

return ret + [[self, False, depth]]

def depthFirstIterator2(self, depth = 0):
yield [self, True, depth]

if self.isFolder():
  for c in self.children:
for y in c.depthFirstIterator2(depth = depth + 1):
  yield y

yield [self, False, depth]


x = Node(r'C:\Python23')
for iterator in (x.depthFirstIterator1, x.depthFirstIterator2):
print iterator.__name__,
start = time.time()
for item in iterator():
pass
print round(time.time()-start, 2)
--
http://mail.python.org/mailman/listinfo/python-list


RE: Open Folder in Desktop

2005-01-25 Thread Jimmy Retzlaff
Kamilche wrote:
> Is there a command you can execute in Python that will open a window
on
> the desktop, such as 'My Documents'? Kind of like 'system', but for
> folder names, not just programs. I'm running on Windows 2000.

There are two issues here. The first is how to open a folder and the
second is how to resolve "special" folders. Folders are "documents"
typically associated with the explorer.exe application. To open a
document with its default app (e.g., a folder), use os.startfile which
is included in Python. For example:

import os
os.startfile(r'c:\windows')

Folders like My Documents, My Pictures, etc. are special and you need to
determine their actual path before you can open them. The pywin32
extensions
(https://sourceforge.net/project/showfiles.php?group_id=78018) include a
way to get at this:

from win32com.shell import shellcon, shell
path = shell.SHGetFolderPath(0, shellcon.CSIDL_MYPICTURES, 0, 0)
os.startfile(path)

Google for CSIDL to find the constants to use for other special folders.

Jimmy
--
http://mail.python.org/mailman/listinfo/python-list


RE: feature suggestion

2004-12-24 Thread Jimmy Retzlaff
flexibal wrote:
...
> as we all know, just doing
> v = 5
> declares a new variable named 'v'... but we are people, and we do make
> typos... and it's very disturbing to find your program crashing after
> two weeks of operation, over a NameError... because a certain branch
in
> your code, that was previously never taken, had finally been taken.
...

PyChecker (http://pychecker.sourceforge.net/) will help you spot this
kind of thing. For example consider typo.py:

def f():
x = 1
y = 1
if 0 == 1:
print a
else:
print x+y

When you run PyChecker on typo.py it will issue the following warning:

typo.py:5: No global (a) found

Jimmy
--
http://mail.python.org/mailman/listinfo/python-list


RE: Audio interviews of Guido or other Python advocates?

2004-12-04 Thread Jimmy Retzlaff
Dave Benjamin wrote:
> I looked around for recordings of Guido, but couldn't find any. Does
> anyone know of any streamable audio (or video) interviews or speeches
> featuring Guido, the bots, or any other interesting people in the
Python
> community?

There's a video with a few folks in it at:

http://www.ibiblio.org/obp/pyBiblio/pythonvideo.php

Jimmy
--
http://mail.python.org/mailman/listinfo/python-list