setup.py :  » Mobile » Pysces » pysces-0.7.2-(test) » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Mobile » Pysces 
Pysces » pysces 0.7.2 test  » setup.py
#!/usr/bin/env python

"""
PySCeS - Python Simulator for Cellular Systems (http://pysces.sourceforge.net)

Copyright (C) 2004-2009 B.G. Olivier, J.M. Rohwer, J.-H.S Hofmeyr all rights reserved,

Brett G. Olivier (bgoli@users.sourceforge.net)
Triple-J Group for Molecular Cell Physiology
Stellenbosch University, South Africa

Permission to use, modify, and distribute this software is given under the
terms of the PySceS (BSD style) license.  See LICENSE.txt that came with
this distribution for specifics.

NO WARRANTY IS EXPRESSED OR IMPLIED.  USE AT YOUR OWN RISK.
Brett G. Olivier
"""

__doc__ = "PySCeS: the Python Simulator for Cellular Systems setup file"
__version__ = '0.7.2'

import os, re
import fileinput
import ConfigParser
import shutil

try:
    print 'Building an egg? %s.' % FRYING_EGGS
except:
    FRYING_EGGS = False

try:
    from numpy.distutils.core import setup,Extension
except Exception, ex:
    print ex
    print "PySCeS requires NumPy and SciPy 0.6x+\n"
    os.sys.exit(-1)

########## User configuration section ##########

# Install extension modules (zero for skip module) - brett 20040310
pitcon = 1

##Special licence libraries see the relevant readme.txt file for details
nleq2 = 1                       # pysces/nleq2/readme.txt
# this is now obsolete with nleq2 4.3
##  nleq2_byteorder_override = 0    # allow a user supplied nleq2.f (mach_spec) otherwise PySCeS

use = re.split('\s+', os.getenv('PYSCES_USE', ''))
for e in use:
    if e == 'pitcon':
        pitcon = 1
    elif e == 'nopitcon':
        pitcon = 0
    elif e == 'nleq2':
        nleq2 = 1
    elif e == 'nonleq2':
        nleq2 = 0
# this is now obsolete with nleq2 4.3
    ##  elif e.startswith('nleq2_byteorder='):
        ##  nleq2_byteorder_override = int(e[16:])

# detects and uses IEEE fp big/little endian
### End user configuration section

########## From here on it's up to distutils ##########

# get the dir of setup.py
local_path = os.path.dirname(os.path.abspath(os.sys.argv[0]))
os.chdir(local_path)

myscripts = []
mydata_files = []

#add some model files into pscmodels
modfold = os.path.join(local_path, 'pysces', 'pscmodels')
mods = os.listdir(modfold)
alist = []
for x in mods:
    if x[-4:] != '.psc':
        pass
    else:
        alist.append(os.path.join(modfold,x))
mydata_files.append((os.path.join('pysces','pscmodels'), alist))

# Default configurations for the pyscfg.ini files
if os.sys.platform == 'win32':
    #pysces-0.6.8-py2.5-win32.egg
    if FRYING_EGGS:
        eggdir = 'pysces-%s-py%s.%s-%s.egg' %(__version__, os.sys.version_info[0],\
        os.sys.version_info[1], os.sys.platform)
        installdir = os.path.join(os.sys.prefix,'lib','site-packages',eggdir,'pysces')
    else:
        installdir = os.path.join(os.sys.prefix,'lib','site-packages','pysces')
    config = {
    "install_dir"  : installdir,
    "model_dir"    : "os.path.join(os.getenv('HOMEDRIVE')+os.path.sep,'Pysces','psc')",
    "output_dir"   : "os.path.join(os.getenv('HOMEDRIVE')+os.path.sep,'Pysces')",
    "gnuplot_dir"  : "None",
    }
else:
    if hasattr(os.sys, 'lib'):
        lib = os.sys.lib
    else:
        lib = 'lib'
    config = {
    "install_dir"  : os.path.join(os.sys.prefix,lib,"python%d.%d" % tuple(os.sys.version_info[:2]) ,'site-packages','pysces'),
    "model_dir"    : "os.path.join(os.path.expanduser('~'),'Pysces','psc')",
    "output_dir"   : "os.path.join(os.path.expanduser('~'),'Pysces')",
    "gnuplot_dir"  : "None",
    }

def writeConfig(local_path, config={}):
    cfgfile = open(os.path.join(local_path,'pysces','pyscfg.ini'),'w')
    cp = ConfigParser.ConfigParser()
    # PySCeS internal setup
    cp.add_section('Pysces')
    for key in config:
        print `key` + ' :: ' + config[key]
        cp.set('Pysces',key, config[key])
    #add configuration data
    cp.add_section('PyscesConfig')
    cp.set('PyscesConfig','matplotlib', True)
    cp.set('PyscesConfig','gnuplot', False)
    # Built in modules
    cp.add_section('PyscesModules')
    if pitcon:
        cp.set('PyscesModules','pitcon', True)
    else:
        cp.set('PyscesModules','pitcon', False)
    #PySCeS external module setup
    cp.add_section('ExternalModules')
    if nleq2:
        cp.set('ExternalModules','nleq2', True)
        mydata_files.append((os.path.join('pysces','nleq2'), [os.path.join(local_path,'pysces','nleq2','nleq2_readme.txt')]))
    else:
        cp.set('ExternalModules','nleq2', False)
        mydata_files.append((os.path.join('pysces','nleq2'), [os.path.join(local_path,'pysces','nleq2','readme.txt')]))
    cp.write(cfgfile)
    cfgfile.close()

writeConfig(local_path,config)
print 'Default configuration file installed'

# my subpackage list
mypackages= ['pysces','pysces.tests','pysces.lib','pysces.pitcon',\
            'pysces.sandbox', 'pysces.contrib','pysces.contrib.demo', 'pysces.core2',\
            'pysces.kraken']

#PySCeS modules
mymodules = []

if pitcon:
    print '\nBuilding pitcon'
    extpath = os.path.join(local_path, 'pysces', 'pitcon')
    pitcon = Extension('pysces.pitcon.pitcon',[os.path.join(extpath,'pitcon.pyf'),os.path.join(extpath,'pcon61subd.f'),os.path.join(extpath,'dpcon61.f'),os.path.join(extpath,'dpcon61w.f')])
    mymodules.append(pitcon)
    #mydata_files.append((os.path.join('pysces','pitcon'), [os.path.join(local_path, 'pysces', 'pitcon','readme.txt'), os.path.join(local_path, 'pysces', 'pitcon','readme.txt')]))
else:
    print '\nSkipping pitcon'


if nleq2:
    print '\nBuilding nleq2'
    # this is now obsolete with nleq2 4.3 ... i hope !
    ##  print 'System ByteOrder', os.sys.byteorder
    ##  if os.path.exists(os.path.join(local_path, 'pysces', 'nleq2','nleq2.f')) and nleq2_byteorder_override:
        ##  print 'INFO: using user supplied nleq2.f'
    ##  else:
        ##  if os.sys.byteorder == 'little':
            ##  shutil.copyfile(os.path.join(extpath,'nleq2_little.f'), os.path.join(extpath,'nleq2.f'))
        ##  elif os.sys.byteorder == 'big':
            ##  shutil.copyfile(os.path.join(extpath,'nleq2_big.f'), os.path.join(extpath,'nleq2.f'))
    extpath = os.path.join(local_path, 'pysces', 'nleq2')
    nleq2 = Extension('pysces.nleq2.nleq2',[os.path.join(extpath,'nleq2.pyf'),\
            os.path.join(extpath,'nleq2.f'), os.path.join(extpath,'linalg_nleq2.f'),\
            os.path.join(extpath,'zibmon.f'), os.path.join(extpath,'zibsec.f'),\
            os.path.join(extpath,'zibconst.f'), os.path.join(extpath,'wnorm.f')
            ])
    mymodules.append(nleq2)
    mypackages.append('pysces.nleq2')
else:
    print '\n'

if len(mymodules) == 0:
    noext = Extension('None',[],None) # Not ideal but seems safe
    mymodules.append(noext)

# Data files to copy
mydata_files.append((os.path.join('pysces'), [os.path.join(local_path,'pysces','pyscfg.ini')]))
mydata_files.append(('',[os.path.join(local_path,'pysces','pysces.pth')]))
mydata_files.append((os.path.join('pysces','docs'), [os.path.join(local_path,'pysces','docs','userguide.pdf')]))

os.chdir(local_path)
# Install packages and the metatool binaries as "data"
setup(name="pysces",
    version = __version__,
    description = "The Python Simulator for Cellular Systems - simulation and analysis tools for modelling biological systems",
    long_description = """
 PySCeS is developed by the Triple-J Group for Molecular Cell Physiology
 in order to try model and understand the complex processes and systems
 which make up the living cell.

    PySCeS features, amongst other things:
    - A text based model description language.
    - A structural analysis module.
    - Integrators for time simulation
    - Non-linear solvers for steady-state analysis
    - A module for performing Metabolic Control Analysis
    - A bifurcation module for systems which exhibit multiple steady states
    - A variety of extra utilites for parameter scans, data output and plotting.
    - A dynamic module loading framework.
    - SBML import and export capability.
    """,
    author = "Brett G. Olivier",
    author_email = "bgoli@users.sourceforge.net",
    maintainer = "Brett G. Olivier",
    maintainer_email = "bgoli@users.sourceforge.net",
    url = "http://pysces.sourceforge.net",
    download_url = "http://pysces.sourceforge.net/download.html",
    license = "New BSD style",
    keywords = "computational systems biology, modelling, simulation, systems biology" ,
    zip_safe = False,
    requires = ['numpy','scipy','matplotlib'],
    platforms = ["Windows", "Linux"],#, "Solaris", "Mac OS-X", "Unix"],
    classifiers = [
    'Development Status :: 4 - Beta',
    'Environment :: Console',
    'Intended Audience :: End Users/Desktop',
    'Intended Audience :: Science/Research',
    'License :: OSI Approved :: BSD License',
    'Natural Language :: English',
    'Operating System :: OS Independent',
    'Programming Language :: Fortran',
    'Programming Language :: Python',
    'Topic :: Scientific/Engineering :: Bio-Informatics',
    'Topic :: Scientific/Engineering :: Chemistry'],
    packages = mypackages,
    data_files = mydata_files,
    ext_modules = mymodules
    )

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.