Skip to content

Commit

Permalink
Issue #304: Update file setup.py.
Browse files Browse the repository at this point in the history
  • Loading branch information
matysek committed Feb 24, 2013
1 parent d2e7c2b commit 73c62b4
Showing 1 changed file with 76 additions and 84 deletions.
160 changes: 76 additions & 84 deletions setup.py
@@ -1,94 +1,86 @@
"""
PyInstaller is a program that converts (packages) Python programs into
stand-alone executables, under Windows, Linux, and Mac OS X. Its main
advantages over similar tools are that PyInstaller works with any
version of Python since 2.2, it builds smaller executables thanks to
transparent compression, it is fully multi-platform, and use the OS
support to load the dynamic libraries, thus ensuring full
compatibility.
The main goal of PyInstaller is to be compatible with 3rd-party
packages out-of-the-box. This means that, with PyInstaller, all the
required tricks to make external packages work are already integrated
within PyInstaller itself so that there is no user intervention
required. You'll never be required to look for tricks in wikis and
apply custom modification to your files or your setup scripts. As an
example, libraries like PyQt, Django or matplotlib are fully
supported, without having to handle plugins or external data files
manually.
"""
#! /usr/bin/env python
#-----------------------------------------------------------------------------
# Copyright (c) 2013, PyInstaller Development Team.
#
# Distributed under the terms of the GNU General Public License with exception
# for distributing bootloader.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------

raise SystemExit("\nsetup.py is not yet supposed to work. "
"Please Use PyInstaller without installation.\n")

from setuptools import setup, find_packages
from PyInstaller import get_version

import platform
import itertools
import glob
import os

scripts = [
'pyinstaller.py',
'pyinstaller-gui.py',
'utils/ArchiveViewer.py',
#'utils/BinDepend.py',
'utils/Build.py',
'utils/Configure.py',
#'utils/Crypt.py',
#'utils/GrabVersion.py',
'utils/Makespec.py',
]
DESC = 'Converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, AIX and Solaris.'

if platform.system() == "Windows":
scripts.append('MakeComServer.py')
LONG_DESC = """PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, AIX and Solaris. Its main advantages over similar tools are that PyInstaller works with any version of Python since 2.3, it builds smaller executables thanks to transparent compression, it is fully multi-platform, and uses the OS support to load the dynamic libraries, thus ensuring full compatibility.
The main goal of PyInstaller is to be compatible with 3rd-party packages out-of-the-box. This means that, with PyInstaller, all the required tricks to make external packages work are already integrated within PyInstaller itself so that there is no user intervention required. You'll never be required to look for tricks in wikis and apply custom modification to your files or your setup scripts. As an example, libraries like PyQt, Django or matplotlib are fully supported, without having to handle plugins or external data files manually.
"""


CLASSIFIERS = """
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: AIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: POSIX :: SunOS/Solaris
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.4
Classifier: Programming Language :: Python :: 2.5
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 2 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Software Development :: Interpreters
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Software Distribution
Classifier: Topic :: Utilities
""".splitlines()

def find_data_files(*patterns):
data_files = {}
for fn in itertools.chain(*(glob.iglob(p) for p in patterns)):
if os.path.isfile(fn):
data_files.setdefault(os.path.dirname(fn), []).append(fn)
return data_files.items()

setup(
name = 'pyinstaller',
version = '1.6.0dev',
scripts = scripts,
packages = find_packages(),
data_files = find_data_files('doc/*',
'doc/images/*', 'doc/stylesheets/*.css',
'support/*.py', 'support/rthooks/*.py',
'support/loader/*', 'support/loader/*/*'),
author = "Gordon McMillan, William Caban, Giovanni Bajo and the PyInstaller team",
author_email = "pyinstaller@googlegroups.com",
maintainer = "Giovanni Bajo and the PyInstaller team",
maintainer_email = "pyinstaller@googlegroups.com",
description = "Converts (packages) Python programs into stand-alone executables, under Windows, Linux, and Mac OS X.",
long_description = __doc__,
license = ("GPL license with a special exception which allows to use "
"PyInstaller to build and distribute non-free programs "
"(including commercial ones)."),
keywords = "packaging, standalone executable, freeze",
url = "http://www.pyinstaller.org/",
download_url = "http://www.pyinstaller.org/wiki#Downloads",
install_requires=['distribute'],

name = 'PyInstaller',
version = get_version(),

description = DESC,
long_description = LONG_DESC,
keywords = 'packaging, standalone executable, pyinstaller, macholib, freeze, py2exe, py2app, bbfreeze',

author = 'Gordon McMillan, William Caban, Giovanni Bajo, Hartmut Goebel, Martin Zibricky',
author_email = 'pyinstaller@googlegroups.com',
maintainer = 'Giovanni Bajo, Hartmut Goebel, Martin Zibricky',
maintainer_email = 'pyinstaller@googlegroups.com',

license = 'GPL license with a special exception which allows to use PyInstaller to build and distribute non-free programs (including commercial ones)',
url = 'http://www.pyinstaller.org',
download_url = 'https://sourceforge.net/projects/pyinstaller/files',

classifiers = CLASSIFIERS,
zip_safe = False,
classifiers = [
'Development Status :: 6 - Mature',
'Environment :: Console',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU General Public License (GPL)',
'Natural Language :: English',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python :: 2.3',
'Programming Language :: Python :: 2.4',
'Programming Language :: Python :: 2.5',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: C',
'Topic :: Software Development :: Build Tools',
'Topic :: System :: Software Distribution',
]
)
packages = find_packages(),
include_package_data = True,

entry_points="""
[console_scripts]
pyinstaller=PyInstaller.main:run
"""
)

0 comments on commit 73c62b4

Please sign in to comment.