11#!/usr/bin/env python
2+ """mpi4py-fft -- Parallel Fast Fourier Transforms (FFTs) using MPI for Python"""
23
34import os
45import sys
@@ -33,6 +34,8 @@ def get_prefix_dirs():
3334 append (dirs , sys .prefix )
3435 if 'CONDA_BUILD' not in os .environ :
3536 append (dirs , '/usr' )
37+ append (dirs , '/usr/local' )
38+ append (dirs , '/opt/homebrew' )
3639 return dirs
3740
3841def get_include_dirs ():
@@ -101,10 +104,10 @@ def generate_extensions(fftwlibs, force=True):
101104def remove_extensions (fftwlibs ):
102105 """Remove generated files"""
103106 for fname in (
104- 'utilities.c' ,
105- 'fftw_xfftn.c' ,
106- 'fftwf_xfftn.c' ,
107- 'fftwl_xfftn.c' ,
107+ 'utilities.c' ,
108+ 'fftw_xfftn.c' ,
109+ 'fftwf_xfftn.c' ,
110+ 'fftwl_xfftn.c' ,
108111 ):
109112 dst = os .path .join (fftwdir , fname )
110113 try :
@@ -116,10 +119,10 @@ def remove_extensions(fftwlibs):
116119 continue
117120 p = 'fftw' + prec_map [d ]+ '_'
118121 for fname in (
119- 'fftw_planxfftn.h' ,
120- 'fftw_planxfftn.c' ,
121- 'fftw_xfftn.pyx' ,
122- 'fftw_xfftn.pxd' ,
122+ 'fftw_planxfftn.h' ,
123+ 'fftw_planxfftn.c' ,
124+ 'fftw_xfftn.pyx' ,
125+ 'fftw_xfftn.pxd' ,
123126 ):
124127 dst = os .path .join (fftwdir , fname .replace ('fftw_' , p ))
125128 try :
@@ -131,20 +134,31 @@ def get_extensions():
131134 """Return list of extension modules"""
132135 include_dirs = get_include_dirs ()
133136 library_dirs = get_library_dirs ()
134- ext = [Extension ("mpi4py_fft.fftw.utilities" ,
135- sources = [os .path .join (fftwdir , "utilities.pyx" )],
136- include_dirs = include_dirs )]
137+ ext = [
138+ Extension (
139+ "mpi4py_fft.fftw.utilities" ,
140+ sources = [os .path .join (fftwdir , "utilities.pyx" )],
141+ define_macros = [('NPY_NO_DEPRECATED_API' , 'NPY_1_7_API_VERSION' )],
142+ include_dirs = include_dirs ,
143+ ),
144+ ]
137145
138146 fftwlibs = get_fftw_libs ()
139147 for d , libs in fftwlibs .items ():
140- p = 'fftw' + prec_map [d ]+ '_'
141- ext .append (Extension ("mpi4py_fft.fftw.{}xfftn" .format (p ),
142- sources = [os .path .join (fftwdir , "{}xfftn.pyx" .format (p )),
143- os .path .join (fftwdir , "{}planxfftn.c" .format (p ))],
144- #define_macros=[('NPY_NO_DEPRECATED_API', 'NPY_1_7_API_VERSION')],
145- libraries = libs ,
146- include_dirs = include_dirs ,
147- library_dirs = library_dirs ))
148+ p = 'fftw' + prec_map [d ] + '_'
149+ ext .append (
150+ Extension (
151+ "mpi4py_fft.fftw.{}xfftn" .format (p ),
152+ sources = [
153+ os .path .join (fftwdir , "{}xfftn.pyx" .format (p )),
154+ os .path .join (fftwdir , "{}planxfftn.c" .format (p )),
155+ ],
156+ define_macros = [('NPY_NO_DEPRECATED_API' , 'NPY_1_7_API_VERSION' )],
157+ libraries = libs ,
158+ include_dirs = include_dirs ,
159+ library_dirs = library_dirs ,
160+ )
161+ )
148162 return ext
149163
150164
@@ -190,14 +204,19 @@ def version():
190204if __name__ == '__main__' :
191205 setup (name = "mpi4py-fft" ,
192206 version = version (),
193- description = "mpi4py-fft -- Parallel Fast Fourier Transforms (FFTs) using MPI for Python" ,
207+ description = __doc__ . strip () ,
194208 long_description = long_description ,
209+ long_description_content_type = 'text/x-rst' ,
195210 author = "Lisandro Dalcin and Mikael Mortensen" ,
196- url = 'https://github.com/mpi4py/mpi4py-fft' ,
197- packages = ["mpi4py_fft" ,
198- "mpi4py_fft.fftw" ,
199- "mpi4py_fft.io" ],
200- package_dir = {"mpi4py_fft" : "mpi4py_fft" },
211+ url = "https://github.com/mpi4py/mpi4py-fft" ,
212+ packages = [
213+ "mpi4py_fft" ,
214+ "mpi4py_fft.fftw" ,
215+ "mpi4py_fft.io" ,
216+ ],
217+ package_dir = {
218+ "mpi4py_fft" : "mpi4py_fft" ,
219+ },
201220 classifiers = [
202221 'Development Status :: 4 - Beta' ,
203222 'Environment :: Console' ,
@@ -209,10 +228,9 @@ def version():
209228 'License :: OSI Approved :: BSD License' ,
210229 'Topic :: Scientific/Engineering :: Mathematics' ,
211230 'Topic :: Software Development :: Libraries :: Python Modules' ,
212- ],
231+ ],
232+ keywords = ['Python' , 'FFTW' , 'FFT' , 'DCT' , 'DST' , 'MPI' ],
213233 distclass = Dist ,
214234 ext_modules = get_extensions (),
215235 install_requires = ["mpi4py" , "numpy" ],
216- setup_requires = ["setuptools>=18.0" , "cython>=0.25" ],
217- keywords = ['Python' , 'FFTW' , 'FFT' , 'DCT' , 'DST' , 'MPI' ]
218236 )
0 commit comments