from setuptools import setup, Extension import os, sys import subprocess as sp here = os.path.abspath(os.path.dirname(__file__)) # README = open(os.path.join(here, 'README.rst')).read() # NEWS = open(os.path.join(here, 'NEWS.txt')).read() install_requires = [ 'cffi', 'numpy<2' ] SYS_LIBRARIES = { # 'linux': ['boost_system'], } # # NC_CONFIG = os.environ.get('NC_CONFIG', 'nc-config') # # def ncpaths(): # try: # include_dir = sp.check_output([NC_CONFIG, '--includedir']).decode('utf-8').strip() # lib_dir = sp.check_output([NC_CONFIG, '--libdir']).decode('utf-8').strip() # except FileNotFoundError: # raise RuntimeError("nc-config not found; Please ensure NetCDF is installed and nc-config is in PATH.") # return include_dir, lib_dir # # NC_LIB_NAMES =['netcdf_c++4', 'netcdf', 'hdf5_hl', 'hdf5'] def libraries_for_platform(): env = os.environ.get('LIBS', None) if env is not None: import re return list(re.split(r'[,\s]+', env)) zult = SYS_LIBRARIES.get(sys.platform, []) return zult # NC_INCLUDE_DIR, NC_LIB_DIR = ncpaths() SRCS = "HCastFile.cxx HimawariHSDFile.cxx aHimawariFile.cxx HimawariScene.cxx erfa/erfa.c HimawariResample.cxx HimawariTypes.cxx" SOURCES = ['src/' + x for x in SRCS.split()] INCLUDES = [os.path.abspath(x) for x in ['include', 'src/erfa']] os.environ['CXXFLAGS'] = ' '.join(['-std=c++11'] + os.environ.get('CXXFLAGS', '').split()) # build a stub module which we actually use CFFI to access in bit_untrim.py _himawari = Extension('_himawari', sources = ['src/py_himawari_stub.c'] + SOURCES, include_dirs=INCLUDES, libraries=libraries_for_platform(), extra_compile_args=["-DNO_LRU_CACHE", "-DNO_SATPYCF"] ) def _git_version(): try: gittyup = '-g' + sp.check_output(['git', 'rev-parse', 'HEAD']).decode('ASCII').strip()[:8] except: # want to use sp.CalledProcessError but under Windows it shows up as WindowsError. because, windows... gittyup = '' from datetime import datetime when = datetime.utcnow().strftime("%Y.%m%d.%H%M") # print("WARNING: using current time as version instead of GIT hash") return when # + gittyup setup(name='himawari', version=_git_version(), description="Access library for Himawari AHI HSD format files", # long_description=README + '\n\n' + NEWS, classifiers=[ # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers ], keywords='Himawari-8 Himawari-9 AHI HSD', author='R.K.Garcia', author_email='rayg@ssec.wisc.edu', url='http://www.ssec.wisc.edu', license='GPLv3', packages=['himawari'], # package_dir = {'himawari': 'py'}, # include_package_data=True, # package_data={'himawari': ['data/TD/leapsec.dat']}, zip_safe=False, install_requires=install_requires, extras_require = { 'scmi': ['goesr'], # https://gitlab.ssec.wisc.edu/rayg/goesr }, ext_modules = [_himawari], # entry_points={ # 'console_scripts': # ['sips_cris_l0l1a=sips_cris_l0l1a:main', # 'cris_l1a_lint=sips_cris_l0l1a.lint:main', # 'flagpoll=sips_cris_l0l1a.flagpoll:main', # 'nc_compare_schema=sips_cris_l0l1a.netcdf_compare:main', # 'nc_copy_vars=sips_cris_l0l1a.netcdf:main', # 'nc_copy_schema=sips_cris_l0l1a.netcdf_copy_vars:main'] # } )