2014-01-12 15:35:31 +00:00
|
|
|
DESCRIPTION = """\
|
|
|
|
PyQtGraph is a pure-python graphics and GUI library built on PyQt4/PySide and
|
|
|
|
numpy.
|
2012-09-13 14:12:59 +00:00
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
It is intended for use in mathematics / scientific / engineering applications.
|
|
|
|
Despite being written entirely in python, the library is very fast due to its
|
|
|
|
heavy leverage of numpy for number crunching, Qt's GraphicsView framework for
|
|
|
|
2D display, and OpenGL for 3D display.
|
|
|
|
"""
|
2012-09-10 22:00:59 +00:00
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
setupOpts = dict(
|
|
|
|
name='pyqtgraph',
|
|
|
|
description='Scientific Graphics and GUI Library for Python',
|
|
|
|
long_description=DESCRIPTION,
|
|
|
|
license='MIT',
|
|
|
|
url='http://www.pyqtgraph.org',
|
|
|
|
author='Luke Campagnola',
|
|
|
|
author_email='luke.campagnola@gmail.com',
|
|
|
|
classifiers = [
|
|
|
|
"Programming Language :: Python",
|
|
|
|
"Programming Language :: Python :: 2",
|
|
|
|
"Programming Language :: Python :: 2.6",
|
|
|
|
"Programming Language :: Python :: 2.7",
|
|
|
|
"Programming Language :: Python :: 3",
|
|
|
|
"Development Status :: 4 - Beta",
|
|
|
|
"Environment :: Other Environment",
|
|
|
|
"Intended Audience :: Science/Research",
|
|
|
|
"License :: OSI Approved :: MIT License",
|
|
|
|
"Operating System :: OS Independent",
|
|
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
|
|
"Topic :: Scientific/Engineering :: Visualization",
|
|
|
|
"Topic :: Software Development :: User Interfaces",
|
|
|
|
],
|
|
|
|
)
|
2012-12-27 04:35:23 +00:00
|
|
|
|
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
from distutils.core import setup
|
|
|
|
import distutils.dir_util
|
|
|
|
import os, sys, re
|
2013-12-01 15:23:45 +00:00
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
path = os.path.split(__file__)[0]
|
|
|
|
sys.path.insert(0, os.path.join(path, 'tools'))
|
|
|
|
import setupHelpers as helpers
|
2013-12-01 15:23:45 +00:00
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
## generate list of all sub-packages
|
|
|
|
allPackages = helpers.listAllPackages(pkgroot='pyqtgraph') + ['pyqtgraph.examples']
|
|
|
|
|
|
|
|
## Decide what version string to use in the build
|
|
|
|
version, forcedVersion, gitVersion, initVersion = helpers.getVersionStrings(pkg='pyqtgraph')
|
2013-12-01 15:23:45 +00:00
|
|
|
|
|
|
|
|
2013-12-15 18:01:37 +00:00
|
|
|
import distutils.command.build
|
|
|
|
|
|
|
|
class Build(distutils.command.build.build):
|
2014-01-12 15:35:31 +00:00
|
|
|
"""
|
|
|
|
* Clear build path before building
|
|
|
|
* Set version string in __init__ after building
|
|
|
|
"""
|
2013-12-15 18:01:37 +00:00
|
|
|
def run(self):
|
2014-01-12 15:35:31 +00:00
|
|
|
global path, version, initVersion, forcedVersion
|
|
|
|
global buildVersion
|
|
|
|
|
|
|
|
## Make sure build directory is clean
|
|
|
|
buildPath = os.path.join(path, self.build_lib)
|
|
|
|
if os.path.isdir(buildPath):
|
|
|
|
distutils.dir_util.remove_tree(buildPath)
|
|
|
|
|
2013-12-15 18:01:37 +00:00
|
|
|
ret = distutils.command.build.build.run(self)
|
|
|
|
|
|
|
|
# If the version in __init__ is different from the automatically-generated
|
|
|
|
# version string, then we will update __init__ in the build directory
|
|
|
|
if initVersion == version:
|
|
|
|
return ret
|
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
try:
|
|
|
|
initfile = os.path.join(buildPath, 'pyqtgraph', '__init__.py')
|
2013-12-15 18:17:26 +00:00
|
|
|
data = open(initfile, 'r').read()
|
|
|
|
open(initfile, 'w').write(re.sub(r"__version__ = .*", "__version__ = '%s'" % version, data))
|
2014-01-12 15:35:31 +00:00
|
|
|
buildVersion = version
|
|
|
|
except:
|
|
|
|
if forcedVersion:
|
|
|
|
raise
|
|
|
|
buildVersion = initVersion
|
|
|
|
sys.stderr.write("Warning: Error occurred while setting version string in build path. "
|
|
|
|
"Installation will use the original version string "
|
|
|
|
"%s instead.\n" % (initVersion)
|
|
|
|
)
|
|
|
|
sys.excepthook(*sys.exc_info())
|
2013-12-15 18:01:37 +00:00
|
|
|
return ret
|
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
from distutils.core import Command
|
|
|
|
import shutil, subprocess
|
2013-12-15 18:01:37 +00:00
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
class DebCommand(Command):
|
|
|
|
description = "build .deb package"
|
|
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
|
|
self.cwd = None
|
|
|
|
def finalize_options(self):
|
|
|
|
self.cwd = os.getcwd()
|
|
|
|
def run(self):
|
|
|
|
assert os.getcwd() == self.cwd, 'Must be in package root: %s' % self.cwd
|
|
|
|
global version
|
|
|
|
pkgName = "python-pyqtgraph-" + version
|
|
|
|
debDir = "deb_build"
|
|
|
|
if os.path.isdir(debDir):
|
|
|
|
raise Exception('DEB build dir already exists: "%s"' % debDir)
|
|
|
|
sdist = "dist/pyqtgraph-%s.tar.gz" % version
|
|
|
|
if not os.path.isfile(sdist):
|
|
|
|
raise Exception("No source distribution; run `setup.py sdist` first.")
|
|
|
|
|
|
|
|
# copy sdist to build directory and extract
|
|
|
|
os.mkdir(debDir)
|
|
|
|
renamedSdist = 'python-pyqtgraph_%s.orig.tar.gz' % version
|
|
|
|
shutil.copy(sdist, os.path.join(debDir, renamedSdist))
|
|
|
|
if os.system("cd %s; tar -xzf %s" % (debDir, renamedSdist)) != 0:
|
|
|
|
raise Exception("Error extracting source distribution.")
|
|
|
|
buildDir = '%s/pyqtgraph-%s' % (debDir, version)
|
|
|
|
|
|
|
|
# copy debian control structure
|
|
|
|
shutil.copytree('tools/debian', buildDir+'/debian')
|
|
|
|
|
|
|
|
# Write changelog
|
|
|
|
#chlog = subprocess.check_output([sys.executable, 'tools/generateChangelog.py', 'CHANGELOG'])
|
|
|
|
#open('%s/pyqtgraph-%s/debian/changelog', 'w').write(chlog)
|
|
|
|
if os.system('python tools/generateChangelog.py CHANGELOG %s > %s/debian/changelog' % (version, buildDir)) != 0:
|
|
|
|
raise Exception("Error writing debian/changelog")
|
|
|
|
|
|
|
|
# build package
|
|
|
|
if os.system('cd %s; debuild -us -uc' % buildDir) != 0:
|
|
|
|
raise Exception("Error during debuild.")
|
2012-12-07 14:31:21 +00:00
|
|
|
|
2014-01-12 15:35:31 +00:00
|
|
|
class TestCommand(Command):
|
|
|
|
description = ""
|
|
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
|
|
pass
|
|
|
|
def run(self):
|
|
|
|
global cmd
|
|
|
|
cmd = self
|
|
|
|
|
|
|
|
setup(
|
|
|
|
version=version,
|
|
|
|
cmdclass={'build': Build, 'deb': DebCommand, 'test': TestCommand},
|
|
|
|
packages=allPackages,
|
2012-12-26 22:51:52 +00:00
|
|
|
package_dir={'pyqtgraph.examples': 'examples'}, ## install examples along with the rest of the source
|
|
|
|
#package_data={'pyqtgraph': ['graphicsItems/PlotItem/*.png']},
|
2012-12-27 15:31:08 +00:00
|
|
|
install_requires = [
|
2012-12-26 22:51:52 +00:00
|
|
|
'numpy',
|
|
|
|
'scipy',
|
|
|
|
],
|
2014-01-12 15:35:31 +00:00
|
|
|
**setupOpts
|
2012-09-10 22:00:59 +00:00
|
|
|
)
|
|
|
|
|