Metadata-Version: 1.0
Name: py2app
Version: 0.5.1
Summary: Create standalone Mac OS X applications with Python
Home-page: http://undefined.org/python/#py2app
Author: Ronald Oussoren
Author-email: ronaldoussoren@mac.com
License: MIT or PSF License
Download-URL: http://undefined.org/python/#py2app
Description: py2app is a Python setuptools command which will allow
        you to make standalone Mac OS X application bundles
        and plugins from Python scripts.
        
        py2app is similar in purpose and design to py2exe for
        Windows.
        
        NEWS
        ====
        
        py2app 0.5.1
        ------------
        
        py2app 0.5.1 is a bugfix release
        
        Bug fixes:
        
        - Ensure stub executables get included in the egg files
        
        - Fix name of the bundletemplate stub executable for 32-bit builds
        
        
        
        py2app 0.5
        ----------
        
        py2app 0.5 is a minor feature release.
        
        Features:
        - Add support for the ``--with-framework-name`` option of Python's
        configure script, that is: py2app now also works when the Python
        framework is not named 'Python.framework'.
        - Add support for various build flavours of Python (32bit, 3-way, ...)
        - py2app now actually works for me (ronaldoussoren@mac.com) with a
        python interpreter in a virtualenv environment.
        - Experimental support for python 3
        
        Bug fixes:
        - Fix recipe for matplotlib: that recipe caused an exception with
        current versions of matplotlib and pytz.
        - Use modern API's in the alias-build bootstrap code, without
        this 'py2app -A' will result in broken bundles on a 64-bit build
        of Python.
        (Patch contributed by James R Eagan)
        - Try both 'import Image' and 'from PIL import Image' in the PIL
        recipe.
        (Patch contributed by Christopher Barker)
        - The stub executable now works for 64-bit application bundles
        - (Lowlevel) The application stub was rewritten to use
        ``dlopen`` instead of ``dyld`` APIs. This removes deprecation
        warnings during compilation.
        
        py2app 0.4.3
        ------------
        
        py2app 0.4.3 is a bugfix release
        
        Bug fixes:
        - A bad format string in build_app.py made it impossible to copy the
        Python framework into an app bundle.
        
        py2app 0.4.2
        ------------
        
        py2app 0.4.2 is a minor feature release
        
        Features:
        
        - When the '--strip' option is specified we now also remove '.dSYM'
        directories from the bundle.
        
        - Remove dependency on a 'version.plist' file in the python framework
        
        - A new recipe for `PyQt`_ 4.x. This recipe was donated by Kevin Walzer.
        
        - A new recipe for `virtualenv`_, this allows you to use py2app from
        a virtual environment.
        
        - Adds support for converting ``.xib`` files (NIB files for
        Interface Builder 3)
        
        - Introduces an experimental plugin API for data converters.
        
        A conversion plugin should be defined as an entry-point in the
        ``py2app.converter`` group::
        
        setup(
        ...
        entry_points = {
        'py2app.converter': [
        "label          = some_module:converter_function",
        ]
        },
        ...
        )
        
        The conversion function should be defined like this::
        
        from py2app.decorators import converts
        
        @converts('.png')
        def optimze_png(source, proposed_destionation, dryrun=0):
        # Copy 'source' to 'proposed_destination'
        # The conversion is allowed to change the proposed
        # destination to another name in the same directory.
        pass
        
        .. `virtualenv`_: http://pypi.python.org/pypi/virtualenv
        
        Buf fixes:
        
        - This fixes an issue with copying a different version of Python over
        to an app/plugin bundle than the one used to run py2app with.
        
        
        py2app 0.4.0
        ------------
        
        py2app 0.4.0 is a minor feature release (and was never formally released).
        
        Features:
        - Support for CoreData mapping models (introduced in Mac OS X 10.5)
        - Support for python packages that are stored in zipfiles (such as ``zip_safe``
        python eggs).
        
        Bug fixes:
        - Fix incorrect symlink target creation with an alias bundle that has included
        frameworks.
        - Stuffit tends to extract archives recursively, which results in unzipped
        code archives inside py2app-created bundles. This version has a workaround
        for this "feature" for Stuffit.
        - Be more carefull about passing non-constant strings as the template argumenti
        of string formatting functions (in the app and bundle templates), to avoid
        crashes under some conditions.
        
        py2app 0.3.6
        ------------
        
        py2app 0.3.6 is a minor bugfix release.
        
        Bug fixes:
        
        - Ensure that custom icons are copied into the output bundle
        - Solve compatibility problem with some haxies and inputmanager plugins
        
        
        py2app 0.3.5
        ------------
        
        py2app 0.3.5 is a minor bugfix release.
        
        Bug fixes:
        
        - Resolve disable_linecache issue
        - Fix Info.plist and Python path for plugins
        
        
        py2app 0.3.4
        ------------
        
        py2app 0.3.4 is a minor bugfix release.
        
        Bug fixes:
        
        - Fixed a typo in the py2applet script
        - Removed some, but not all, compiler warnings from the bundle template
        (which is still probably broken anyway)
        
        
        py2app 0.3.3
        ------------
        
        py2app 0.3.3 is a minor bugfix release.
        
        Bug Fixes:
        
        - Fixed a typo in the argv emulation code
        - Removed the unnecessary py2app.install hack (setuptools does that already)
        
        
        py2app 0.3.2
        ------------
        
        py2app 0.3.2 is a major bugfix release.
        
        Functional changes:
        
        - Massively updated documentation
        - New prefer-ppc option
        - New recipes: numpy, scipy, matplotlib
        - Updated py2applet script to take options, provide --make-setup
        
        Bug Fixes:
        
        - No longer defaults to LSPrefersPPC
        - Replaced stdlib usage of argvemulator to inline version for i386
        compatibility
        
        
        py2app 0.3.1
        ------------
        
        py2app 0.3.1 is a minor bugfix release.
        
        Functional changes:
        
        - New EggInstaller example
        
        Bug Fixes:
        
        - Now ensures that the executable is +x (when installed from egg this may not
        be the case)
        
        
        py2app 0.3.0
        ------------
        
        py2app 0.3.0 is a major feature enhancements release.
        
        Functional changes:
        
        - New --xref (-x) option similar to py2exe's that produces
        a list of modules and their interdependencies as a HTML
        file
        - sys.executable now points to a regular Python interpreter
        alongside the regular executable, so spawning sub-interpreters
        should work much more reliably
        - Application bootstrap now detects paths containing ":"
        and will provide a "friendly" error message instead of just
        crashing <http://python.org/sf/1507224>.
        - Application bootstrap now sets PYTHONHOME instead of
        a large PYTHONPATH
        - Application bootstrap rewritten in C that links to
        CoreFoundation and Cocoa dynamically as needed,
        so it doesn't imply any particular version of the runtime.
        - Documentation and examples changed to use setuptools
        instead of distutils.core, which removes the need for
        the py2app import
        - Refactored to use setuptools, distributed as an egg.
        - macholib, bdist_mpkg, modulegraph, and altgraph are now
        separately maintained packages available on PyPI as eggs
        - macholib now supports little endian architectures,
        64-bit Mach-O headers, and reading/writing of
        multiple headers per file (fat / universal binaries)
        
        
        py2app 0.2.1
        ------------
        
        py2app 0.2.1 is a minor bug fix release.
        
        Bug Fixes:
        
        - macholib.util.in_system_path understands SDKs now
        - DYLD_LIBRARY_PATH searching is fixed
        - Frameworks and excludes options should work again.
        
        
        py2app 0.2.0
        ------------
        
        py2app 0.2.0 is a minor bug fix release.
        
        Functional changes:
        
        - New datamodels option to support CoreData.  Compiles
        .xcdatamodel files and places them in the Resources dir
        (as .mom).
        
        - New use-pythonpath option.  The py2app application bootstrap
        will no longer use entries from PYTHONPATH unless this option
        is used.
        
        - py2app now persists information about the build environment
        (python version, executable, build style, etc.) in the
        Info.plist and will clean the executable before rebuilding
        if anything at all has changed.
        
        - bdist_mpkg now builds packages with the full platform info,
        so that installing a package for one platform combination
        will not look like an upgrade to another platform combination.
        
        Bug Fixes:
        
        - Fixed a bug in standalone building, where a rebuild could
        cause an unlaunchable executable.
        
        - Plugin bootstrap should compile/link correctly
        with gcc 4.
        
        - Plugin bootstrap no longer sets PYTHONHOME and will
        restore PYTHONPATH after initialization.
        
        - Plugin bootstrap swaps out thread state upon plug-in
        load if it is the first to initialize Python.  This
        fixes threading issues.
        
        py2app 0.1.9
        ------------
        
        py2app 0.1.9 is a minor bug fix release.
        
        Bugs fixed:
        
        - bdist_mpkg now builds zip files that are correctly unzipped
        by all known tools.
        
        - The behavior of the bootstrap has changed slightly such that
        ``__file__`` should now point to your main script, rather than
        the bootstrap.  The main script has also moved to ``Resources``,
        from ``Resources/Python``, so that ``__file__`` relative resource
        paths should still work.
        
        py2app 0.1.8
        ------------
        
        py2app 0.1.8 is a major enhancements release:
        
        Bugs fixed:
        
        - Symlinks in included frameworks should be preserved correctly
        (fixes Tcl/Tk)
        - Fixes some minor issues with alias bundles
        - Removed implicit SpiderImagePlugin -> ImageTk reference in PIL
        recipe
        - The ``--optimize`` option should work now
        - ``weakref`` is now included by default
        - ``anydbm``'s dynamic dependencies are now in the standard implies
        list
        - Errors on app launch are brought to the front so the user does
        not miss them
        - bdist_mpkg now compatible with pychecker (data_files had issues)
        
        Options changed:
        
        - deprecated ``--strip``, it is now on by default
        - new ``--no-strip`` option to turn off stripping of executables
        
        New features:
        
        - Looks for a hacked version of the PyOpenGL __init__.py so that
        it doesn't have to include the whole package in order to get
        at the stupid version file.
        - New ``loader_files`` key that a recipe can return in order to
        ensure that non-code ends up in the .zip (the pygame recipe
        uses this)
        - Now scans all files in the bundle and normalizes Mach-O load
        commands, not just extensions.  This helps out when using the
        ``--package`` option, when including frameworks that have plugins,
        etc.
        - An embedded Python interpreter is now included in the executable
        bundle (``sys.executable`` points to it), this currently only
        works for framework builds of Python
        - New ``macho_standalone`` tool
        - New ``macho_find`` tool
        - Major enhancements to the way plugins are built
        - bdist_mpkg now has a ``--zipdist`` option to build zip files
        from the built package
        - The bdist_mpkg "Installed to:" description is now based on the
        package install root, rather than the build root
        
        py2app 0.1.7
        ------------
        
        `py2app`_ 0.1.7 is a bug fix release:
        
        - The ``bdist_mpkg`` script will now set up sys.path properly, for setup scripts
        that require local imports.
        - ``bdist_mpkg`` will now correctly accept ``ReadMe``, ``License``, ``Welcome``,
        and ``background`` files by parameter.
        - ``bdist_mpkg`` can now display a custom background again (0.1.6 broke this).
        - ``bdist_mpkg`` now accepts a ``build-base=`` argument, to put build files in
        an alternate location.
        - ``py2app`` will now accept main scripts with a ``.pyw`` extension.
        - ``py2app``'s not_stdlib_filter will now ignore a ``site-python`` directory as
        well as ``site-packages``.
        - ``py2app``'s plugin bundle template no longer displays GUI dialogs by default,
        but still links to ``AppKit``.
        - ``py2app`` now ensures that the directory of the main script is now added to
        ``sys.path`` when scanning modules.
        - The ``py2app`` build command has been refactored such that it would be easier
        to change its behavior by subclassing.
        - ``py2app`` alias bundles can now cope with editors that do atomic saves
        (write new file, swap names with existing file).
        - ``macholib`` now has minimal support for fat binaries.  It still assumes big
        endian and will not make any changes to a little endian header.
        - Add a warning message when using the ``install`` command rather than installing
        from a package.
        - New ``simple/structured`` example that shows how you could package an
        application that is organized into several folders.
        - New ``PyObjC/pbplugin`` Xcode Plug-In example.
        
        py2app 0.1.6
        ------------
        
        Since I have been slacking and the last announcement was for 0.1.4, here are the
        changes for the soft-launched releases 0.1.5 and 0.1.6:
        
        `py2app`_ 0.1.6 was a major feature enhancements release:
        
        - ``py2applet`` and ``bdist_mpkg`` scripts have been moved to Python modules
        so that the functionality can be shared with the tools.
        - Generic graph-related functionality from ``py2app`` was moved to
        ``altgraph.ObjectGraph`` and ``altgraph.GraphUtil``.
        - ``bdist_mpkg`` now outputs more specific plist requirements
        (for future compatibility).
        - ``py2app`` can now create plugin bundles (MH_BUNDLE) as well as executables.
        New recipe for supporting extensions built with `sip`_, such as `PyQt`_.  Note that
        due to the way that `sip`_ works, when one sip-based extension is used, *all*
        sip-based extensions are included in your application.  In practice, this means
        anything provided by `Riverbank`_, I don't think anyone else uses `sip`_ (publicly).
        - New recipe for `PyOpenGL`_.  This is very naive and simply includes the whole
        thing, rather than trying to monkeypatch their brain-dead
        version acquisition routine in ``__init__``.
        - Bootstrap now sets ``ARGVZERO`` and ``EXECUTABLEPATH`` environment variables,
        corresponding to the ``argv[0]`` and the ``_NSGetExecutablePath(...)`` that the
        bundle saw.  This is only really useful if you need to relaunch your own
        application.
        - More correct ``dyld`` search behavior.
        - Refactored ``macholib`` to use ``altgraph``, can now generate `GraphViz`_ graphs
        and more complex analysis of dependencies can be done.
        - ``macholib`` was refactored to be easier to maintain, and the structure handling
        has been optimized a bit.
        - The few tests that there are were refactored in `py.test`_ style.
        - New `PyQt`_ example.
        - New `PyOpenGL`_ example.
        
        See also:
        
        - http://mail.python.org/pipermail/pythonmac-sig/2004-December/012272.html
        
        .. _`py.test`: http://codespeak.net/py/current/doc/test.html
        .. _`PyOpenGL`: http://pyopengl.sourceforge.net/
        .. _`Riverbank`: http://www.riverbankcomputing.co.uk/
        .. _`sip`: http://www.riverbankcomputing.co.uk/sip/index.php
        .. _`PyQt`: http://www.riverbankcomputing.co.uk/pyqt/index.php
        .. _`docutils`: http://docutils.sf.net/
        .. _`setuptools`: http://cvs.eby-sarna.com/PEAK/setuptools/
        
        py2app 0.1.5
        ------------
        
        `py2app`_ 0.1.5 is a major feature enhancements release:
        
        - Added a ``bdist_mpkg`` distutils extension, for creating Installer
        an metapackage from any distutils script.
        
        - Includes PackageInstaller tool
        - bdist_mpkg script
        - setup.py enhancements to support bdist_mpkg functionality
        
        - Added a ``PackageInstaller`` tool, a droplet that performs the same function
        as the ``bdist_mpkg`` script.
        - Create a custom ``bdist_mpkg`` subclass for `py2app`_'s setup script.
        - Source package now includes `PJE`_'s `setuptools`_ extension to distutils.
        - Added lots of metadata to the setup script.
        - ``py2app.modulegraph`` is now a top-level package, ``modulegraph``.
        - ``py2app.find_modules`` is now ``modulegraph.find_modules``.
        - Should now correctly handle paths (and application names) with unicode characters
        in them.
        - New ``--strip`` option for ``py2app`` build command, strips all Mach-O files
        in output application bundle.
        - New ``--bdist-base=`` option for ``py2app`` build command, allows an alternate
        build directory to be specified.
        - New `docutils`_ recipe.
        Support for non-framework Python, such as the one provided by `DarwinPorts`_.
        
        See also:
        
        - http://mail.python.org/pipermail/pythonmac-sig/2004-October/011933.html
        
        .. _`py.test`: http://codespeak.net/py/current/doc/test.html
        .. _`GraphViz`: http://www.pixelglow.com/graphviz/
        .. _`PyOpenGL`: http://pyopengl.sourceforge.net/
        .. _`Riverbank`: http://www.riverbankcomputing.co.uk/
        .. _`sip`: http://www.riverbankcomputing.co.uk/sip/index.php
        .. _`PyQt`: http://www.riverbankcomputing.co.uk/pyqt/index.php
        .. _`DarwinPorts`: http://darwinports.opendarwin.org/
        .. _`docutils`: http://docutils.sourceforge.net/
        .. _`setuptools`: http://cvs.eby-sarna.com/PEAK/setuptools/
        .. _`PJE`: http://dirtSimple.org/
        .. _`PyObjC`: http://pyobjc.sourceforge.net/
        
        py2app 0.1.4
        ------------
        
        `py2app`_ 0.1.4 is a minor bugfix release:
        
        - The ``altgraph`` from 0.1.3 had a pretty nasty bug in it that prevented
        filtering from working properly, so I fixed it and bumped to 0.1.4.
        
        py2app 0.1.3
        ------------
        
        `py2app`_ 0.1.3 is a refactoring and new features release:
        
        - ``altgraph``, my fork of Istvan Albert's `graphlib`_, is now part of the
        distribution
        - ``py2app.modulegraph`` has been refactored to use ``altgraph``
        - `py2app`_ can now create `GraphViz`_ DOT graphs with the ``-g`` option
        (`TinyTinyEdit example`_)
        - Moved the filter stack into ``py2app.modulegraph``
        - Fixed a bug that may have been in 0.1.2 where explicitly included packages
        would not be scanned by ``macholib``
        - ``py2app.apptemplate`` now contains a stripped down ``site`` module as
        opposed to a ``sitecustomize``
        - Alias builds are now the only ones that contain the system and user
        ``site-packages`` directory in ``sys.path``
        - The ``pydoc`` recipe has been beefed up to also exclude ``BaseHTTPServer``,
        etc.
        
        Known issues:
        
        - Commands marked with XXX in the help are not implemented
        - Includes *all* files from packages, it should be smart enough to strip
        unused .py/.pyc/.pyo files (to save space, depending on which optimization
        flag is used)
        - ``macholib`` should be refactored to use ``altgraph``
        - ``py2app.build_app`` and ``py2app.modulegraph`` should be refactored to
        search for dependencies on a per-application basis
        
        .. _`graphlib`: http://www.personal.psu.edu/staff/i/u/iua1/python/graphlib/html/
        .. _`GraphViz`: http://www.research.att.com/sw/tools/graphviz/
        .. _`TinyTinyEdit example`: http://undefined.org/~bob/TinyTinyEdit.pdf
        
        py2app 0.1.2
        ------------
        
        `py2app`_ 0.2 is primarily a bugfix release:
        
        - The encodings package now gets included in the zip file (saves space)
        - A copy of the Python interpreter is not included anymore in standalone
        builds (saves space)
        - The executable bootstrap is now stripped by default (saves a little space)
        - ``sys.argv`` is set correctly now, it used to point to the executable, now
        it points to the boot script.  This should enhance compatibility with some
        applications.
        - Adds an "Alias" feature to modulegraph, so that ``sys.modules`` craziness
        such as ``wxPython.wx -> wx`` can be accomodated (this particular craziness
        is also now handled by default)
        - A ``sys.path`` alternative may be passed to ``find_modules`` now, though
        this is not used yet
        - The ``Command`` instance is now passed to recipes instead of the
        ``Distribution`` instance (though no recipes currently use either)
        - The post-filtering of modules and extensions is now generalized into a
        stack and can be modified by recipes
        - A `wxPython`_ example demonstrating how to package `wxGlade`_ has been
        added (this is a good example of how to write your own recipe, and how to
        deal with complex applications that mix code and data files)
        - ``PyRuntimeLocations`` is now set to (only) the location of the current
        interpreter's ``Python.framework`` for alias and semi-standalone build
        modes (enhances compatibility with extensions built with an unpatched
        Makefile with Mac OS X 10.3's Python 2.3.0)
        
        Known issues:
        
        - Includes *all* files from packages, it should be smart enough to strip
        unused .py/.pyc/.pyo files (to save space, depending on which optimization
        flag is used).
        
        .. _`wxGlade`: http://wxglade.sourceforge.net/
        
        py2app 0.1.1
        ------------
        
        `py2app`_ 0.1.1 is primarily a bugfix release:
        
        - Several problems related to Mac OS X 10.2 compatibility and standalone
        building have been resolved
        - Scripts that are not in the same directory as setup.py now work
        - A new recipe has been added that removes the pydoc -> Tkinter dependency
        - A recipe has been added for `py2app`_ itself
        - a `wxPython`_ example (superdoodle) has been added.
        Demonstrates not only how easy it is (finally!) to bundle
        `wxPython`_ applications, but also how one setup.py can
        deal with both `py2exe`_ and `py2app`_.
        - A new experimental tool, py2applet, has been added.
        Once you've built it (``python setup.py py2app``, of course), you should
        be able to build simple applications simply by dragging your main script
        and optionally any packages, data files, Info.plist and icon it needs.
        
        Known issues:
        
        - Includes *all* files from packages, it should be smart enough to strip
        unused .py/.pyc/.pyo files (to save space, depending on which
        optimization flag is used).
        
        - The default ``PyRuntimeLocations`` can cause problems on machines that
        have a /Library/Frameworks/Python.framework installed.  Workaround is
        to set a plist that has the following key:
        ``PyRuntimeLocations=['/System/Library/Frameworks/Python.framework/Versions/2.3/Python']``
        (this will be resolved soon)
        
        
        py2app 0.1
        ----------
        
        (first public release)
        `py2app`_ is the bundlebuilder replacement we've all been waiting
        for.  It is implemented as a distutils command, similar to `py2exe`_.
        
        .. _`wxPython`: http://www.wxpython.org/
        .. _`py2app`: http://undefined.org/python/#py2app
        .. _`py2exe`: http://starship.python.net/crew/theller/py2exe/
        
Platform: MacOS X
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: MacOS X :: Cocoa
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Objective C
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: User Interfaces
Classifier: Topic :: Software Development :: Build Tools
