source: sasview/sansmodels/setup.py @ 29c15be

ESS_GUIESS_GUI_DocsESS_GUI_batch_fittingESS_GUI_bumps_abstractionESS_GUI_iss1116ESS_GUI_iss879ESS_GUI_iss959ESS_GUI_openclESS_GUI_orderingESS_GUI_sync_sascalccostrafo411magnetic_scattrelease-4.1.1release-4.1.2release-4.2.2release_4.0.1ticket-1009ticket-1094-headlessticket-1242-2d-resolutionticket-1243ticket-1249ticket885unittest-saveload
Last change on this file since 29c15be was 73f9a68, checked in by Jae Cho <jhjcho@…>, 13 years ago

updated package folder for setup

  • Property mode set to 100644
File size: 12.5 KB
RevLine 
[ae3ce4e]1"""
2 Installation script for SANS models
3
4  - To compile and install:
5      python setup.py install
6  - To create distribution:
7      python setup.py bdist_wininst
8  - To create odb files:
9      python setup.py odb
10
11"""
[f88624d]12import sys
13import os
[ca3072fb]14if len(sys.argv) == 1:
15    sys.argv.append('install')
[87615a48]16   
[b72b595]17from numpy.distutils.misc_util import get_numpy_include_dirs
[6c13861]18numpy_incl_path = os.path.join(get_numpy_include_dirs()[0], "numpy")
[b72b595]19
[ae3ce4e]20def createODBcontent(class_name):
21    """
22        Return the content of the Pyre odb file for a given class
23        @param class_name: Name of the class to write an odb file for [string]
24        @return: content of the file [string]
25    """
26    content  = "\"\"\"\n"
27    content += "  Facility for SANS model\n\n"
28    content += "  WARNING: THIS FILE WAS AUTOGENERATED AT INSTALL TIME\n"
29    content += "           DO NOT MODIFY\n\n"
30    content += "  This code was written as part of the DANSE project\n"
31    content += "  http://danse.us/trac/sans/\n"
32    content += "  @copyright 2007:"
[25579e8]33    content += "  SANS/DANSE Group (University of Tennessee), for the DANSE project\n\n"
[ae3ce4e]34    content += "\"\"\"\n"
35    content += "def model():\n"
36    content += "    from ScatteringIntensityFactory import ScatteringIntensityFactory\n"
37    content += "    from sans.models.%s import %s\n" % (class_name, class_name)
38    content += "    return ScatteringIntensityFactory(%s)('%s')\n"\
39                 % (class_name, class_name)
40
41    return content
42
43def createODBfiles():
44    """
45       Create odb files for all available models
46    """
47    from sans.models.ModelFactory import ModelFactory
48   
49    class_list = ModelFactory().getAllModels()
50    for name in class_list:
[73f9a68]51        odb = open("src/sans/models/pyre/%s.odb" % name, 'w')
[ae3ce4e]52        odb.write(createODBcontent(name))
53        odb.close()
[73f9a68]54        print "src/sans/models/pyre/%s.odb created" % name
[ae3ce4e]55       
56#
57# Proceed with installation
58#
59
60# First, create the odb files
61if len(sys.argv) > 1 and sys.argv[1].lower() == 'odb':
62    print "Creating odb files"
63    try:
64        createODBfiles()
65    except:   
66        print "ERROR: could not create odb files"
67        print sys.exc_value
68    sys.exit()
69
70# Then build and install the modules
[87615a48]71from distutils.core import Extension, setup
72#from setuptools import setup#, find_packages
[ae3ce4e]73
74# Build the module name
[73f9a68]75srcdir  = "src/sans/models/c_extensions"
76igordir = "src/sans/models/libigor"
[ae3ce4e]77
78print "Installing SANS models"
79
80
[87615a48]81dist = setup(
[ca3072fb]82    name="sans.models",
[87615a48]83    version = "0.9.1",
[ae3ce4e]84    description = "Python module for SANS scattering models",
[87615a48]85    author = "SANS/DANSE",
86    author_email = "sansdanse@gmail.gov",
[ae3ce4e]87    url = "http://danse.us/trac/sans",
88   
89    # Place this module under the sans package
90    #ext_package = "sans",
91   
92    # Use the pure python modules
[73f9a68]93    package_dir = {"sans":"src/sans",
94                   "sans.models.sans_extension":"src/sans/models/c_extensions",
[42c974f]95                  },
96    package_data={'sans.models': [os.path.join('media', "*")]},
97    packages = ["sans","sans.models",
98                "sans.models.sans_extension","sans.models.pyre",],
[ae3ce4e]99   
[c089120]100    ext_modules = [ Extension("sans.models.sans_extension.c_models",
[ae3ce4e]101     sources = [
[73f9a68]102        "src/sans/models/c_models/c_models.cpp",
[0f5bc9f]103        #srcdir+"/CSphereModel.c",
104        #srcdir+"/sphere.c",
[73f9a68]105        "src/sans/models/c_models/CSphereModel.cpp",
106        "src/sans/models/c_models/CPearlNecklaceModel.cpp",
107        "src/sans/models/c_models/pearlnecklace.cpp",
[ca153ba]108        srcdir+"/pearlnecklace.c",
[73f9a68]109        "src/sans/models/c_models/COnionModel.cpp",
110        "src/sans/models/c_models/onion.cpp",
[5d57267]111        srcdir+"/onion.c",
[73f9a68]112        "src/sans/models/c_models/CReflModel.cpp",
113        "src/sans/models/c_models/refl.cpp",
[35aface]114        srcdir+"/refl.c",
[73f9a68]115        "src/sans/models/c_models/CReflAdvModel.cpp",
116        "src/sans/models/c_models/refl_adv.cpp",
[3be060d]117        srcdir+"/refl_adv.c",
[8240eab]118        #srcdir+"/SquareWell.c",
[73f9a68]119        "src/sans/models/c_models/CSquareWellStructure.cpp", 
120        "src/sans/models/c_models/SquareWell.cpp", 
[8240eab]121        #srcdir+"/StickyHS.c",         
[73f9a68]122        "src/sans/models/c_models/CStickyHSStructure.cpp", 
123        "src/sans/models/c_models/StickyHS.cpp",             
124        "src/sans/models/c_models/CHardsphereStructure.cpp", 
125        "src/sans/models/c_models/Hardsphere.cpp",   
[8240eab]126        #srcdir+"/DiamCyl.c",         
[73f9a68]127        "src/sans/models/c_models/CDiamCylFunc.cpp", 
128        "src/sans/models/c_models/DiamCyl.cpp",   
[8240eab]129        #srcdir+"/DiamEllip.c",         
[73f9a68]130        "src/sans/models/c_models/CDiamEllipFunc.cpp", 
131        "src/sans/models/c_models/DiamEllip.cpp",     
[8240eab]132        #srcdir+"/HayterMSA.c",         
[73f9a68]133        "src/sans/models/c_models/CHayterMSAStructure.cpp", 
134        "src/sans/models/c_models/HayterMSA.cpp",             
135        "src/sans/models/c_models/sphere.cpp",
[89c0919]136        srcdir+"/fuzzysphere.c",
[73f9a68]137        "src/sans/models/c_models/CFuzzySphereModel.cpp",
138        "src/sans/models/c_models/fuzzysphere.cpp",
[af03ddd]139        #srcdir+"/CCylinderModel.c",
[73f9a68]140        "src/sans/models/c_models/CCylinderModel.cpp",
141        "src/sans/models/c_models/cylinder.cpp",
142        "src/sans/models/c_models/parameters.cpp",
143        "src/sans/models/c_models/dispersion_visitor.cpp",
[ae3ce4e]144        srcdir+"/cylinder.c",
[f41b4c3]145        #srcdir+"/CParallelepiped.c",
[73f9a68]146        "src/sans/models/c_models/CParallelepipedModel.cpp",
147        "src/sans/models/c_models/parallelepiped.cpp",
[f41b4c3]148        srcdir+"/parallelepiped.c",
[73f9a68]149        "src/sans/models/c_models/CCSParallelepipedModel.cpp",
150        "src/sans/models/c_models/csparallelepiped.cpp",
[2e862a0]151        srcdir+"/csparallelepiped.c",
[0f5bc9f]152        #srcdir+"/CCoreShellCylinderModel.c",
[73f9a68]153        "src/sans/models/c_models/CCoreShellCylinderModel.cpp",
154        "src/sans/models/c_models/coreshellcylinder.cpp",
[ae3ce4e]155        srcdir+"/core_shell_cylinder.c",
[27fea3f]156        #srcdir+"/CHollowCylinderModel.c",
[73f9a68]157        "src/sans/models/c_models/CHollowCylinderModel.cpp",
158        "src/sans/models/c_models/hollowcylinder.cpp",
[27fea3f]159        srcdir+"/hollow_cylinder.c",
[0f5bc9f]160        #srcdir+"/CCoreShellModel.c",
161        #srcdir+"/core_shell.c",
[73f9a68]162        "src/sans/models/c_models/CCoreShellModel.cpp",
163        "src/sans/models/c_models/coreshellsphere.cpp",
[0f5bc9f]164        #srcdir+"/CEllipsoidModel.c",
[73f9a68]165        "src/sans/models/c_models/CEllipsoidModel.cpp",
166        "src/sans/models/c_models/ellipsoid.cpp",       
[ae3ce4e]167        srcdir+"/ellipsoid.c",
[73f9a68]168        "src/sans/models/c_models/CCoreFourShellModel.cpp",
169        "src/sans/models/c_models/corefourshell.cpp",
[2399b2a]170        #srcdir+"/corefourshell.c",
[0f5bc9f]171        #srcdir+"/CEllipticalCylinderModel.c",
[73f9a68]172        "src/sans/models/c_models/CEllipticalCylinderModel.cpp",
173        "src/sans/models/c_models/ellipticalcylinder.cpp",               
[ae3ce4e]174        srcdir+"/elliptical_cylinder.c",
[34c3020]175        #srcdir+"/CTriaxialEllipsoidModel.c",
[73f9a68]176        "src/sans/models/c_models/CTriaxialEllipsoidModel.cpp",
177        "src/sans/models/c_models/triaxialellipsoid.cpp",               
[5068697]178        srcdir+"/triaxial_ellipsoid.c",
179        #srcdir+"/CFlexibleCylinderModel.c",
[73f9a68]180        "src/sans/models/c_models/CFlexibleCylinderModel.cpp",
181        "src/sans/models/c_models/flexiblecylinder.cpp",               
[5068697]182        srcdir+"/flexible_cylinder.c",
[73f9a68]183        "src/sans/models/c_models/CFlexCylEllipXModel.cpp",
184        "src/sans/models/c_models/flexcyl_ellipX.cpp",         
[89c0919]185        srcdir+"/flexcyl_ellipX.c",
[73f9a68]186        "src/sans/models/c_models/CBarBellModel.cpp",
187        "src/sans/models/c_models/barbell.cpp",         
[20f00bed]188        srcdir+"/barbell.c",
[73f9a68]189        "src/sans/models/c_models/CCappedCylinderModel.cpp",
190        "src/sans/models/c_models/capcyl.cpp",         
[20f00bed]191        srcdir+"/capcyl.c",
[5068697]192        #srcdir+"/CStakedDisksModel.c",
[73f9a68]193        "src/sans/models/c_models/CSCCrystalModel.cpp",
194        "src/sans/models/c_models/sc.cpp",               
[d2d815d]195        srcdir+"/sc.c",
[73f9a68]196        "src/sans/models/c_models/CFCCrystalModel.cpp",
197        "src/sans/models/c_models/fcc.cpp",               
[d2d815d]198        srcdir+"/fcc.c",
[73f9a68]199        "src/sans/models/c_models/CBCCrystalModel.cpp",
200        "src/sans/models/c_models/bcc.cpp",               
[d2d815d]201        srcdir+"/bcc.c",
[73f9a68]202        "src/sans/models/c_models/CStackedDisksModel.cpp",
203        "src/sans/models/c_models/stackeddisks.cpp",               
[5068697]204        srcdir+"/stacked_disks.c",
[34c3020]205        #srcdir+"/CLamellarModel.c",
[73f9a68]206        "src/sans/models/c_models/CLamellarModel.cpp",
207        "src/sans/models/c_models/lamellar.cpp",               
[34c3020]208        srcdir+"/lamellar.c",
209        #srcdir+"/CLamellarFFHGModel.c",
[73f9a68]210        "src/sans/models/c_models/CLamellarFFHGModel.cpp",
211        "src/sans/models/c_models/lamellarFF_HG.cpp",               
[2399b2a]212        #srcdir+"/lamellarFF_HG.c",
[27a0771]213        #srcdir+"/CLamellarPSModel.c",
[73f9a68]214        "src/sans/models/c_models/CLamellarPSModel.cpp",
215        "src/sans/models/c_models/lamellarPS.cpp",               
[27a0771]216        srcdir+"/lamellarPS.c",
217        #srcdir+"/CLamellarPSHGModel.c",
[73f9a68]218        "src/sans/models/c_models/CLamellarPSHGModel.cpp",
219        "src/sans/models/c_models/lamellarPS_HG.cpp",               
[2399b2a]220        #srcdir+"/lamellarPS_HG.c",
[73f9a68]221        "src/sans/models/c_models/CLamellarPCrystalModel.cpp",
222        "src/sans/models/c_models/lamellarPC.cpp",               
[2399b2a]223        #srcdir+"/lamellarPC.c",
[27a0771]224        #srcdir+"/COblateModel.c",
[73f9a68]225        "src/sans/models/c_models/CCoreShellEllipsoidModel.cpp",
226        "src/sans/models/c_models/spheroid.cpp",   
[975ec8e]227        srcdir+"/spheroid.c",             
228        #srcdir+"/COblateModel.c",
[5be36bb]229        #"sans/models/c_models/COblateModel.cpp",
230        #"sans/models/c_models/oblate.cpp",               
231        #srcdir+"/oblate.c",
[27a0771]232        #srcdir+"/CProlateModel.c",
[5be36bb]233        #"sans/models/c_models/CProlateModel.cpp",
234        #"sans/models/c_models/prolate.cpp",               
235        #srcdir+"/prolate.c",
[3d25331f]236        #srcdir+"/CMultishellModel.c",
[73f9a68]237        "src/sans/models/c_models/CMultiShellModel.cpp",
238        "src/sans/models/c_models/multishell.cpp",               
[2399b2a]239        #srcdir+"/multishell.c",
[73f9a68]240        "src/sans/models/c_models/CSphereSLDModel.cpp",
241        "src/sans/models/c_models/spheresld.cpp",               
[96d19c6]242        srcdir+"/spheresld.c",
[3d25331f]243        #srcdir+"/CVesicleModel.c",
[73f9a68]244        "src/sans/models/c_models/CVesicleModel.cpp",
245        "src/sans/models/c_models/vesicle.cpp",               
[2399b2a]246        #srcdir+"/vesicle.c",
[3d25331f]247        #srcdir+"/CBinaryHSModel.c",
[73f9a68]248        "src/sans/models/c_models/CBinaryHSModel.cpp",
249        "src/sans/models/c_models/binaryHS.cpp",               
250        "src/sans/models/c_models/CPoly_GaussCoil.cpp",
251        "src/sans/models/c_models/polygausscoil.cpp",   
[35aface]252        srcdir+"/rpa.c",             
[73f9a68]253        "src/sans/models/c_models/CRPAModel.cpp",
254        "src/sans/models/c_models/rpa.cpp", 
[2399b2a]255        #srcdir+"/fractal.c",             
[73f9a68]256        "src/sans/models/c_models/CFractalModel.cpp",
257        "src/sans/models/c_models/fractal.cpp", 
[96d19c6]258        srcdir+"/sld_cal.c",         
[73f9a68]259        "src/sans/models/c_models/CSLDCalFunc.cpp", 
260        "src/sans/models/c_models/sld_cal.cpp", 
[89c0919]261        #gammainc function need to imported from somewhere 
262        #srcdir+"/polyexclvol.c",             
263        #"sans/models/c_models/CPolymerExclVolModel.cpp",
264        #"sans/models/c_models/polyexclvol.cpp", 
[96d19c6]265        srcdir+"/libmultifunc/librefl.c",
[ca153ba]266        srcdir+"/libmultifunc/libfunc.c",
[8240eab]267        #srcdir+"/polygausscoil.c",             
[2399b2a]268        #srcdir+"/binaryHS.c",
[59b9b675]269        srcdir+"/disperser.c",
[ae3ce4e]270        igordir+"/libCylinder.c",
[25579e8]271        igordir+"/libStructureFactor.c",
[ae3ce4e]272        igordir+"/libSphere.c",
[89c0919]273        igordir+"/libTwoPhase.c",
[59b9b675]274        srcdir+"/gaussian.c",
275        srcdir+"/CGaussian.c",
276        srcdir+"/logNormal.c",
277        srcdir+"/CLogNormal.c",
278        srcdir+"/schulz.c",
279        srcdir+"/CSchulz.c",
280        srcdir+"/lorentzian.c",
281        srcdir+"/CLorentzian.c"
[ae3ce4e]282            ],
[73f9a68]283        include_dirs=[igordir,srcdir,"src/sans/models/c_models",numpy_incl_path]),       
[87615a48]284        # Smearer extension
[c089120]285        Extension("sans.models.sans_extension.smearer",
[642b259]286                   sources = [
[73f9a68]287        "src/sans/models/c_smearer/smearer_module.cpp",
288        "src/sans/models/c_smearer/smearer.cpp",
[642b259]289        ],
[73f9a68]290        include_dirs=["src/sans/models/c_smearer",numpy_incl_path]),
[c089120]291        Extension("sans.models.sans_extension.smearer2d_helper",
[87615a48]292                  sources = [
[73f9a68]293        "src/sans/models/c_smearer/smearer2d_helper_module.cpp",
294        "src/sans/models/c_smearer/smearer2d_helper.cpp",
[87615a48]295        ],
[73f9a68]296        include_dirs=["src/sans/models/c_smearer",numpy_incl_path]
[87615a48]297        )
298        ]
299    )
[b72b595]300       
Note: See TracBrowser for help on using the repository browser.