Changes in setup.py [14bb7a4:7a5d066] in sasview


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • setup.py

    r14bb7a4 r7a5d066  
     1# -*- coding: utf-8 -*- 
     2#!/usr/bin/env python 
     3 
    14""" 
    25    Setup for SasView 
    3     #TODO: Add checks to see that all the dependencies are on the system 
     6    TODO: Add checks to see that all the dependencies are on the system 
    47""" 
    5 import sys 
     8 
    69import os 
    710import subprocess 
    811import shutil 
    9 from setuptools import setup, Extension 
     12import sys 
    1013from distutils.command.build_ext import build_ext 
    1114from distutils.core import Command 
     15 
    1216import numpy as np 
     17from setuptools import Extension, setup 
    1318 
    1419# Manage version number ###################################### 
    1520import sasview 
     21 
    1622VERSION = sasview.__version__ 
    1723############################################################## 
     
    2632# except when there is no such file 
    2733# Todo : make this list generic 
    28 #plugin_model_list = ['polynominal5.py', 'sph_bessel_jn.py', 
     34# plugin_model_list = ['polynominal5.py', 'sph_bessel_jn.py', 
    2935#                      'sum_Ap1_1_Ap2.py', 'sum_p1_p2.py', 
    3036#                      'testmodel_2.py', 'testmodel.py', 
     
    3642SASVIEW_BUILD = os.path.join(CURRENT_SCRIPT_DIR, "build") 
    3743 
    38 sas_dir = os.path.join(os.path.expanduser("~"),'.sasview') 
     44sas_dir = os.path.join(os.path.expanduser("~"), '.sasview') 
    3945if os.path.isdir(sas_dir): 
    4046    f_path = os.path.join(sas_dir, "sasview.log") 
     
    4854        os.remove(f_path) 
    4955    #f_path = os.path.join(sas_dir, 'plugin_models') 
    50     #if os.path.isdir(f_path): 
     56    # if os.path.isdir(f_path): 
    5157    #     for f in os.listdir(f_path): 
    5258    #         if f in plugin_model_list: 
     
    5460    #             os.remove(file_path) 
    5561    if os.path.exists(SASVIEW_BUILD): 
    56         print("Removing existing build directory", SASVIEW_BUILD, "for a clean build") 
     62        print("Removing existing build directory", 
     63              SASVIEW_BUILD, "for a clean build") 
    5764        shutil.rmtree(SASVIEW_BUILD) 
    5865 
     
    6471enable_openmp = False 
    6572 
    66 if sys.platform =='darwin': 
     73if sys.platform == 'darwin': 
    6774    if not is_64bits: 
    6875        # Disable OpenMP 
     
    7885 
    7986# Options to enable OpenMP 
    80 copt =  {'msvc': ['/openmp'], 
    81          'mingw32' : ['-fopenmp'], 
    82          'unix' : ['-fopenmp']} 
    83 lopt =  {'msvc': ['/MANIFEST'], 
    84          'mingw32' : ['-fopenmp'], 
    85          'unix' : ['-lgomp']} 
     87copt = {'msvc': ['/openmp'], 
     88        'mingw32': ['-fopenmp'], 
     89        'unix': ['-fopenmp']} 
     90lopt = {'msvc': ['/MANIFEST'], 
     91        'mingw32': ['-fopenmp'], 
     92        'unix': ['-lgomp']} 
    8693 
    8794# Platform-specific link options 
    88 platform_lopt = {'msvc' : ['/MANIFEST']} 
     95platform_lopt = {'msvc': ['/MANIFEST']} 
    8996platform_copt = {} 
    9097 
    9198# Set copts to get compile working on OS X >= 10.9 using clang 
    92 if sys.platform =='darwin': 
     99if sys.platform == 'darwin': 
    93100    try: 
    94101        darwin_ver = int(os.uname()[2].split('.')[0]) 
    95102        if darwin_ver >= 13 and darwin_ver < 14: 
    96             platform_copt = {'unix' : ['-Wno-error=unused-command-line-argument-hard-error-in-future']} 
     103            platform_copt = { 
     104                'unix': ['-Wno-error=unused-command-line-argument-hard-error-in-future']} 
    97105    except: 
    98106        print("PROBLEM determining Darwin version") 
     107 
    99108 
    100109class DisableOpenMPCommand(Command): 
     
    115124        pass 
    116125 
    117 class build_ext_subclass( build_ext ): 
     126 
     127class build_ext_subclass(build_ext): 
    118128    def build_extensions(self): 
    119129        # Get 64-bitness 
     
    125135            if c in copt: 
    126136                for e in self.extensions: 
    127                     e.extra_compile_args = copt[ c ] 
     137                    e.extra_compile_args = copt[c] 
    128138            if c in lopt: 
    129139                for e in self.extensions: 
    130                     e.extra_link_args = lopt[ c ] 
     140                    e.extra_link_args = lopt[c] 
    131141 
    132142        # Platform-specific build options 
    133143        if c in platform_lopt: 
    134144            for e in self.extensions: 
    135                 e.extra_link_args = platform_lopt[ c ] 
     145                e.extra_link_args = platform_lopt[c] 
    136146 
    137147        if c in platform_copt: 
    138148            for e in self.extensions: 
    139                 e.extra_compile_args = platform_copt[ c ] 
    140  
     149                e.extra_compile_args = platform_copt[c] 
    141150 
    142151        build_ext.build_extensions(self) 
     152 
    143153 
    144154class BuildSphinxCommand(Command): 
     
    174184        build_sphinx.rebuild() 
    175185 
     186 
    176187# sas module 
    177188package_dir["sas"] = os.path.join("src", "sas") 
     
    187198 
    188199# sas.sascalc.invariant 
    189 package_dir["sas.sascalc.invariant"] = os.path.join("src", "sas", "sascalc", "invariant") 
     200package_dir["sas.sascalc.invariant"] = os.path.join( 
     201    "src", "sas", "sascalc", "invariant") 
    190202packages.extend(["sas.sascalc.invariant"]) 
    191203 
     
    193205guiframe_path = os.path.join("src", "sas", "sasgui", "guiframe") 
    194206package_dir["sas.sasgui.guiframe"] = guiframe_path 
    195 package_dir["sas.sasgui.guiframe.local_perspectives"] = os.path.join(os.path.join(guiframe_path, "local_perspectives")) 
     207package_dir["sas.sasgui.guiframe.local_perspectives"] = os.path.join( 
     208    os.path.join(guiframe_path, "local_perspectives")) 
    196209package_data["sas.sasgui.guiframe"] = ['images/*', 'media/*'] 
    197 packages.extend(["sas.sasgui.guiframe", "sas.sasgui.guiframe.local_perspectives"]) 
     210packages.extend( 
     211    ["sas.sasgui.guiframe", "sas.sasgui.guiframe.local_perspectives"]) 
    198212# build local plugin 
    199213for d in os.listdir(os.path.join(guiframe_path, "local_perspectives")): 
     
    201215        package_name = "sas.sasgui.guiframe.local_perspectives." + d 
    202216        packages.append(package_name) 
    203         package_dir[package_name] = os.path.join(guiframe_path, "local_perspectives", d) 
     217        package_dir[package_name] = os.path.join( 
     218            guiframe_path, "local_perspectives", d) 
    204219 
    205220# sas.sascalc.dataloader 
    206 package_dir["sas.sascalc.dataloader"] = os.path.join("src", "sas", "sascalc", "dataloader") 
    207 package_data["sas.sascalc.dataloader.readers"] = ['defaults.json', 'schema/*.xsd'] 
    208 packages.extend(["sas.sascalc.dataloader", "sas.sascalc.dataloader.readers", "sas.sascalc.dataloader.readers.schema"]) 
     221package_dir["sas.sascalc.dataloader"] = os.path.join( 
     222    "src", "sas", "sascalc", "dataloader") 
     223package_data["sas.sascalc.dataloader.readers"] = ['schema/*.xsd'] 
     224packages.extend(["sas.sascalc.dataloader", "sas.sascalc.dataloader.readers", 
     225                 "sas.sascalc.dataloader.readers.schema"]) 
     226 
    209227 
    210228# sas.sascalc.calculator 
    211229gen_dir = os.path.join("src", "sas", "sascalc", "calculator", "c_extensions") 
    212230package_dir["sas.sascalc.calculator.core"] = gen_dir 
    213 package_dir["sas.sascalc.calculator"] = os.path.join("src", "sas", "sascalc", "calculator") 
    214 packages.extend(["sas.sascalc.calculator","sas.sascalc.calculator.core"]) 
    215 ext_modules.append( Extension("sas.sascalc.calculator.core.sld2i", 
    216         sources = [ 
    217             os.path.join(gen_dir, "sld2i_module.cpp"), 
    218             os.path.join(gen_dir, "sld2i.cpp"), 
    219             os.path.join(gen_dir, "libfunc.c"), 
    220             os.path.join(gen_dir, "librefl.c"), 
    221         ], 
    222         include_dirs=[gen_dir], 
    223     ) 
    224 ) 
     231package_dir["sas.sascalc.calculator"] = os.path.join( 
     232    "src", "sas", "sascalc", "calculator") 
     233packages.extend(["sas.sascalc.calculator", "sas.sascalc.calculator.core"]) 
     234ext_modules.append(Extension("sas.sascalc.calculator.core.sld2i", 
     235                             sources=[ 
     236                                 os.path.join(gen_dir, "sld2i_module.cpp"), 
     237                                 os.path.join(gen_dir, "sld2i.cpp"), 
     238                                 os.path.join(gen_dir, "libfunc.c"), 
     239                                 os.path.join(gen_dir, "librefl.c"), 
     240                             ], 
     241                             include_dirs=[gen_dir], 
     242                             ) 
     243                   ) 
    225244 
    226245# sas.sascalc.pr 
    227 srcdir  = os.path.join("src", "sas", "sascalc", "pr", "c_extensions") 
     246srcdir = os.path.join("src", "sas", "sascalc", "pr", "c_extensions") 
    228247package_dir["sas.sascalc.pr.core"] = srcdir 
    229248package_dir["sas.sascalc.pr"] = os.path.join("src", "sas", "sascalc", "pr") 
    230 packages.extend(["sas.sascalc.pr","sas.sascalc.pr.core"]) 
    231 ext_modules.append( Extension("sas.sascalc.pr.core.pr_inversion", 
    232                               sources = [os.path.join(srcdir, "Cinvertor.c"), 
    233                                          os.path.join(srcdir, "invertor.c"), 
    234                                          ], 
    235                               include_dirs=[], 
    236                               ) ) 
     249packages.extend(["sas.sascalc.pr", "sas.sascalc.pr.core"]) 
     250ext_modules.append(Extension("sas.sascalc.pr.core.pr_inversion", 
     251                             sources=[os.path.join(srcdir, "Cinvertor.c"), 
     252                                      os.path.join(srcdir, "invertor.c"), 
     253                                      ], 
     254                             include_dirs=[], 
     255                             )) 
     256 
    237257 
    238258# sas.sascalc.file_converter 
    239259mydir = os.path.join("src", "sas", "sascalc", "file_converter", "c_ext") 
    240260package_dir["sas.sascalc.file_converter.core"] = mydir 
    241 package_dir["sas.sascalc.file_converter"] = os.path.join("src", "sas", "sascalc", "file_converter") 
    242 packages.extend(["sas.sascalc.file_converter", "sas.sascalc.file_converter.core"]) 
    243 ext_modules.append( Extension("sas.sascalc.file_converter.core.bsl_loader", 
    244                               sources = [os.path.join(mydir, "bsl_loader.c")], 
    245                               include_dirs=[np.get_include()], 
    246                               ) ) 
    247  
    248 #sas.sascalc.corfunc 
    249 package_dir["sas.sascalc.corfunc"] = os.path.join("src", "sas", "sascalc", "corfunc") 
     261package_dir["sas.sascalc.file_converter"] = os.path.join( 
     262    "src", "sas", "sascalc", "file_converter") 
     263packages.extend(["sas.sascalc.file_converter", 
     264                 "sas.sascalc.file_converter.core"]) 
     265ext_modules.append(Extension("sas.sascalc.file_converter.core.bsl_loader", 
     266                             sources=[os.path.join(mydir, "bsl_loader.c")], 
     267                             include_dirs=[np.get_include()], 
     268                             )) 
     269 
     270# sas.sascalc.corfunc 
     271package_dir["sas.sascalc.corfunc"] = os.path.join( 
     272    "src", "sas", "sascalc", "corfunc") 
     273 
    250274packages.extend(["sas.sascalc.corfunc"]) 
    251275 
     
    255279 
    256280# Perspectives 
    257 package_dir["sas.sasgui.perspectives"] = os.path.join("src", "sas", "sasgui", "perspectives") 
    258 package_dir["sas.sasgui.perspectives.pr"] = os.path.join("src", "sas", "sasgui", "perspectives", "pr") 
    259 packages.extend(["sas.sasgui.perspectives","sas.sasgui.perspectives.pr"]) 
     281package_dir["sas.sasgui.perspectives"] = os.path.join( 
     282    "src", "sas", "sasgui", "perspectives") 
     283package_dir["sas.sasgui.perspectives.pr"] = os.path.join( 
     284    "src", "sas", "sasgui", "perspectives", "pr") 
     285packages.extend(["sas.sasgui.perspectives", "sas.sasgui.perspectives.pr"]) 
    260286package_data["sas.sasgui.perspectives.pr"] = ['media/*'] 
    261287 
    262 package_dir["sas.sasgui.perspectives.invariant"] = os.path.join("src", "sas", "sasgui", "perspectives", "invariant") 
     288package_dir["sas.sasgui.perspectives.invariant"] = os.path.join( 
     289    "src", "sas", "sasgui", "perspectives", "invariant") 
    263290packages.extend(["sas.sasgui.perspectives.invariant"]) 
    264 package_data['sas.sasgui.perspectives.invariant'] = [os.path.join("media",'*')] 
    265  
    266 package_dir["sas.sasgui.perspectives.fitting"] = os.path.join("src", "sas", "sasgui", "perspectives", "fitting") 
    267 package_dir["sas.sasgui.perspectives.fitting.plugin_models"] = os.path.join("src", "sas", "sasgui", "perspectives", "fitting", "plugin_models") 
    268 packages.extend(["sas.sasgui.perspectives.fitting", "sas.sasgui.perspectives.fitting.plugin_models"]) 
    269 package_data['sas.sasgui.perspectives.fitting'] = ['media/*', 'plugin_models/*'] 
    270  
    271 packages.extend(["sas.sasgui.perspectives", "sas.sasgui.perspectives.calculator"]) 
     291package_data['sas.sasgui.perspectives.invariant'] = [ 
     292    os.path.join("media", '*')] 
     293 
     294package_dir["sas.sasgui.perspectives.fitting"] = os.path.join( 
     295    "src", "sas", "sasgui", "perspectives", "fitting") 
     296package_dir["sas.sasgui.perspectives.fitting.plugin_models"] = os.path.join( 
     297    "src", "sas", "sasgui", "perspectives", "fitting", "plugin_models") 
     298packages.extend(["sas.sasgui.perspectives.fitting", 
     299                 "sas.sasgui.perspectives.fitting.plugin_models"]) 
     300package_data['sas.sasgui.perspectives.fitting'] = [ 
     301    'media/*', 'plugin_models/*'] 
     302 
     303packages.extend(["sas.sasgui.perspectives", 
     304                 "sas.sasgui.perspectives.calculator"]) 
    272305package_data['sas.sasgui.perspectives.calculator'] = ['images/*', 'media/*'] 
    273306 
    274 package_dir["sas.sasgui.perspectives.corfunc"] = os.path.join("src", "sas", "sasgui", "perspectives", "corfunc") 
     307package_dir["sas.sasgui.perspectives.corfunc"] = os.path.join( 
     308    "src", "sas", "sasgui", "perspectives", "corfunc") 
    275309packages.extend(["sas.sasgui.perspectives.corfunc"]) 
    276310package_data['sas.sasgui.perspectives.corfunc'] = ['media/*'] 
    277311 
    278 package_dir["sas.sasgui.perspectives.file_converter"] = os.path.join("src", "sas", "sasgui", "perspectives", "file_converter") 
     312package_dir["sas.sasgui.perspectives.file_converter"] = os.path.join( 
     313    "src", "sas", "sasgui", "perspectives", "file_converter") 
    279314packages.extend(["sas.sasgui.perspectives.file_converter"]) 
    280315package_data['sas.sasgui.perspectives.file_converter'] = ['media/*'] 
    281316 
    282317# Data util 
    283 package_dir["sas.sascalc.data_util"] = os.path.join("src", "sas", "sascalc", "data_util") 
     318package_dir["sas.sascalc.data_util"] = os.path.join( 
     319    "src", "sas", "sascalc", "data_util") 
    284320packages.append("sas.sascalc.data_util") 
    285321 
    286322# Plottools 
    287 package_dir["sas.sasgui.plottools"] = os.path.join("src", "sas", "sasgui", "plottools") 
     323package_dir["sas.sasgui.plottools"] = os.path.join( 
     324    "src", "sas", "sasgui", "plottools") 
    288325packages.append("sas.sasgui.plottools") 
    289326 
     
    293330 
    294331EXTENSIONS = [".c", ".cpp"] 
     332 
    295333 
    296334def append_file(file_list, dir_path): 
     
    312350                        file_list.append(os.path.join(sub_dir, new_f)) 
    313351 
     352 
    314353# Comment out the following to avoid rebuilding all the models 
    315354file_sources = [] 
    316355append_file(file_sources, gen_dir) 
    317356 
    318 #Wojtek's hacky way to add doc files while bundling egg 
    319 #def add_doc_files(directory): 
     357# Wojtek's hacky way to add doc files while bundling egg 
     358# def add_doc_files(directory): 
    320359#    paths = [] 
    321360#    for (path, directories, filenames) in os.walk(directory): 
     
    330369package_data['sas.sasview'] = ['images/*', 
    331370                               'media/*', 
     371                               'logging.ini', 
    332372                               'test/*.txt', 
    333373                               'test/1d_data/*', 
     
    349389    'lxml', 'h5py', 
    350390 
    351     ## The following dependecies won't install automatically, so assume them 
    352     ## The numbers should be bumped up for matplotlib and wxPython as well. 
     391    # The following dependecies won't install automatically, so assume them 
     392    # The numbers should be bumped up for matplotlib and wxPython as well. 
    353393    # 'numpy>=1.4.1', 'scipy>=0.7.2', 'matplotlib>=0.99.1.1', 
    354394    # 'wxPython>=2.8.11', 'pil', 
    355     ] 
    356  
    357 if os.name=='nt': 
     395] 
     396 
     397if os.name == 'nt': 
    358398    required.extend(['html5lib', 'reportlab']) 
    359399else: 
     
    364404setup( 
    365405    name="sasview", 
    366     version = VERSION, 
    367     description = "SasView application", 
    368     author = "SasView Team", 
    369     author_email = "developers@sasview.org", 
    370     url = "http://sasview.org", 
    371     license = "PSF", 
    372     keywords = "small-angle x-ray and neutron scattering analysis", 
    373     download_url = "https://github.com/SasView/sasview.git", 
    374     package_dir = package_dir, 
    375     packages = packages, 
    376     package_data = package_data, 
    377     ext_modules = ext_modules, 
    378     install_requires = required, 
    379     zip_safe = False, 
    380     entry_points = { 
    381                     'console_scripts':[ 
    382                                        "sasview = sas.sasview.sasview:run", 
    383                                        ] 
    384                     }, 
    385     cmdclass = {'build_ext': build_ext_subclass, 
    386                 'docs': BuildSphinxCommand, 
    387                 'disable_openmp': DisableOpenMPCommand} 
    388     ) 
     406    version=VERSION, 
     407    description="SasView application", 
     408    author="SasView Team", 
     409    author_email="developers@sasview.org", 
     410    url="http://sasview.org", 
     411    license="PSF", 
     412    keywords="small-angle x-ray and neutron scattering analysis", 
     413    download_url="https://github.com/SasView/sasview.git", 
     414    package_dir=package_dir, 
     415    packages=packages, 
     416    package_data=package_data, 
     417    ext_modules=ext_modules, 
     418    install_requires=required, 
     419    zip_safe=False, 
     420    entry_points={ 
     421        'console_scripts': [ 
     422            "sasview = sas.sasview.sasview:run", 
     423        ] 
     424    }, 
     425    cmdclass={'build_ext': build_ext_subclass, 
     426              'docs': BuildSphinxCommand, 
     427              'disable_openmp': DisableOpenMPCommand} 
     428) 
Note: See TracChangeset for help on using the changeset viewer.