from __future__ import division # confidence high import distutils import logging import sys from distutils.command.build_ext import build_ext as _build_ext from distutils.extension import Extension pkg = ['pyfits', 'pyfits.hdu', 'pyfits.tests' ] try: import numpy ext_modules = [ Extension('pyfits.compression', ['src/compress.c', 'src/compressionmodule.c', 'src/fits_hcompress.c', 'src/fits_hdecompress.c', 'src/fitsio.c', 'src/inffast.c', 'src/inftrees.c', 'src/pliocomp.c', 'src/quantize.c', 'src/ricecomp.c', 'src/trees.c', 'src/zlib.c'], include_dirs = ['src', numpy.get_include()]) ] except ImportError: ext_modules = '' logging.warn('NUMPY was not found. It may not be installed or it may') logging.warn('not be in your PYTHONPATH') logging.warn('optional extension module pyfits.compression failed to ' 'build') class build_ext(_build_ext): """Subclassed build_ext to allow build to succeed even if the extension module fails to build. """ def run(self): try: _build_ext.run(self) except: distutils.log.warn(str(sys.exc_info()[1])) logging.warn('optional extension modules failed to build') def build_extensions(self): for ext in self.extensions: try: self.build_extension(ext) except: distutils.log.warn(str(sys.exc_info()[1])) logging.warn('optional extension module %s failed to build' % (ext.name)) setupargs = { 'version': '3.0', 'description': 'Reads FITS images and tables into numpy arrays and manipulates FITS ' 'headers', 'author': 'J. C. Hsu, Paul Barrett, Christopher Hanley, James Taylor, ' 'Michael Droettboom, Erik Bray', 'maintainer_email': 'help@stsci.edu', 'url': 'http://www.stsci.edu/resources/software_hardware/pyfits', 'ext_modules': ext_modules, 'cmdclass': {'build_ext': build_ext,}, 'package_dir': { 'pyfits': 'lib/pyfits', 'pyfits.hdu': 'lib/pyfits/hdu', 'pyfits.tests': 'lib/pyfits/tests'}, 'data_files': [('pyfits/tests/data', ['lib/pyfits/tests/data/*.fits'])], 'scripts': ['scripts/fitscheck'], 'classifiers': [ 'Intended Audience :: Science/Research', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Topic :: Scientific/Engineering :: Astronomy', 'Topic :: Software Development :: Libraries :: Python Modules' ] }