view setup.py @ 9:f3462128e87c

Minor alterations to the galaxy interface with some better examples and error messages added.
author davidmurphy
date Mon, 30 Jan 2012 08:17:57 -0500
parents c55bdc2fb9fa
children
line wrap: on
line source

#!/usr/bin/env python

import sys

from distutils.core import setup
from distutils.core import Extension
from distutils.command.build import build
from distutils.command.install_data import install_data

# Supress warning that distutils generates for the install_requires option
import warnings
warnings.simplefilter('ignore', UserWarning, lineno =236)

# check dependancies
if not hasattr(sys, 'version_info') or sys.version_info < (2,3,0,'final'):
    raise SystemExit,  \
        "Dependancy error: CodonLogo requires Python 2.3 or later."
 
 
from weblogolib import __version__

def main() :     
    long_description = open("README.txt").read()

      
    setup(
        name             =  "codonlogo",
        version          =  __version__,
        description      = "CodonLogo: WebLogo3 messed around with",
        long_description  = long_description,
        maintainer       = "David Murphy",
        maintainer_email = "Murphy.David@gmail.com",
        classifiers      =[
            'Development Status :: Alpha',
            'Intended Audience :: Science/Research',
            'License :: OSI Approved :: BSD License',
            'Topic :: Scientific/Engineering :: Bio-Informatics',
            'Programming Language :: Python',
            'Natural Language :: English',
            'Operating System :: OS Independent',
            'Topic :: Software Development :: Libraries',
            'Topic :: Software Development :: Libraries :: Python Modules',
            ],
        
        scripts = [ 'codonlogo', ],
        packages  = [ 'weblogolib',],
        data_files = ['weblogolib/htdocs/*.*','weblogolib/template.eps'],
        install_requires=['numpy', 'corebio'],        
        
        cmdclass= {"install_data" : _install_data},
    )


# Python 2.3 compatability 
# Rework the install_data command to act like the package_data distutils
# command included with python 2.4.
# Adapted from biopython, which was adapted from mxtexttools
class _install_data(install_data):
    def finalize_options(self):
        if self.install_dir is None:
            installobj = self.distribution.get_command_obj('install')
            # Use install_lib rather than install_platlib because we are
            # currently a pure python distribution (No c extensions.)
            self.install_dir = installobj.install_lib 
            #print installobj.install_lib 
        install_data.finalize_options(self)

    def run (self):
        import glob
        import os
        if not self.dry_run:
            self.mkpath(self.install_dir)
        data_files = self.get_inputs()
        for entry in data_files:
            if type(entry) is not type(""):
                raise ValueError("data_files must be strings")
            # Unix- to platform-convention conversion
            entry = os.sep.join(entry.split("/"))
            filenames = glob.glob(entry)
            for filename in filenames:
                dst = os.path.join(self.install_dir, filename)
                dstdir = os.path.split(dst)[0]
                if not self.dry_run:
                    self.mkpath(dstdir)
                    outfile = self.copy_file(filename, dst)[0]
                else:
                    outfile = dst
                self.outfiles.append(outfile)
  
if __name__ == '__main__' :
    main()