setup.py 4.87 KB
Newer Older
1
2
3
4
5
6
7
8
'''
Author: Zhang Xin zhangx@bao.ac.cn
Date: 2023-08-07 11:23:28
LastEditors: Zhang Xin zhangx@bao.ac.cn
LastEditTime: 2023-10-08 14:44:19
FilePath: /undefined/Users/zhangxin/Work/SlitlessSim/CSST_SIM/CSST_develop/csst-simulation/setup.py
Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
'''
Fang Yuedong's avatar
Fang Yuedong committed
9
10
from setuptools import setup, find_packages

Xin Zhang's avatar
Xin Zhang committed
11
12
from setuptools.extension import Extension
from setuptools.config import read_configuration
13
from distutils.command.build_ext import build_ext
Xin Zhang's avatar
Xin Zhang committed
14
15
16
17
18

from Cython.Build import cythonize

import numpy

19
20
21
22

class CTypes(Extension):
    pass

23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

class build_ext(build_ext):

    def build_extension(self, ext):
        self._ctypes = isinstance(ext, CTypes)
        return super().build_extension(ext)

    def get_export_symbols(self, ext):
        if self._ctypes:
            return ext.export_symbols
        return super().get_export_symbols(ext)

    def get_ext_filename(self, ext_name):
        if self._ctypes:
            return ext_name + '.so'
        return super().get_ext_filename(ext_name)

40

Xin Zhang's avatar
Xin Zhang committed
41
extensions = [
Fang Yuedong's avatar
Fang Yuedong committed
42
    Extension("observation_sim.mock_objects.SpecDisperser.disperse_c.interp", ["observation_sim/mock_objects/SpecDisperser/disperse_c/interp.pyx"],
43
44
45
              include_dirs=[numpy.get_include()],
              libraries=["m"]),

Fang Yuedong's avatar
Fang Yuedong committed
46
    Extension("observation_sim.mock_objects.SpecDisperser.disperse_c.disperse", ["observation_sim/mock_objects/SpecDisperser/disperse_c/disperse.pyx"],
47
48
              include_dirs=[numpy.get_include()],
              libraries=["m"]),
Xin Zhang's avatar
Xin Zhang committed
49
50
]

Fang Yuedong's avatar
Fang Yuedong committed
51
52
53
df_module = [CTypes('observation_sim.instruments.chip.libBF.libmoduleBF',
                    ['observation_sim/instruments/chip/libBF/diffusion_X1.c',
                        'observation_sim/instruments/chip/libBF/nrutil.c'],
54
                    include_dirs=[
Fang Yuedong's avatar
Fang Yuedong committed
55
                        'observation_sim/instruments/chip/libBF/', '/usr/include']
56
                    )]
Fang Yuedong's avatar
Fang Yuedong committed
57
58
59
cti_module = [CTypes('observation_sim.instruments.chip.libCTI.libmoduleCTI',
                     ['observation_sim/instruments/chip/libCTI/src/add_CTI.c', 'observation_sim/instruments/chip/libCTI/src/nrutil.c', 'observation_sim/instruments/chip/libCTI/src/ran1.c', 'observation_sim/instruments/chip/libCTI/src/ran2.c', 'observation_sim/instruments/chip/libCTI/src/poidev.c',
                         'observation_sim/instruments/chip/libCTI/src/gammln.c', 'observation_sim/instruments/chip/libCTI/src/gasdev.c', 'observation_sim/instruments/chip/libCTI/src/sort.c', 'observation_sim/instruments/chip/libCTI/src/creattraps.c'],
60
                     include_dirs=[
Fang Yuedong's avatar
Fang Yuedong committed
61
                         'observation_sim/instruments/chip/libCTI/src/', '/usr/include']
62
                     )]
63

Xin Zhang's avatar
Xin Zhang committed
64
65
66
67
68

# setup(
#     name = "slssim_disperse",
#     ext_modules = cythonize(extensions),
# )
Zhang Xin's avatar
Zhang Xin committed
69
70
71
72
73
74
75
76
# 读取依赖列表requirements.txt
# 忽略#开头或者版本号不明确指定的条目
with open("requirements.txt", "r") as f:
    requirements = [
        req.strip()
        for req in f.readlines()
        if not req.startswith("#") and req.__contains__("==")
    ]
Xin Zhang's avatar
Xin Zhang committed
77

78
setup(name='csst_msc_sim',
79
      version='3.0.0',
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
      packages=find_packages(),
      # install_requires=[
      #     # 'numpy>=1.18.5',
      #     # 'galsim>=2.2.4',
      #     # 'pyyaml>=5.3.1',
      #     # 'astropy>=4.0.1',
      #     # 'scipy>=1.5.0',
      #     # 'mpi4py>=3.0.3',
      #     # 'sep>=1.0.3',
      #     # 'healpy>=1.14.0',
      #     # 'h5py>=2.10.0',
      #     # 'Cython>=0.29.21',
      #     # 'numba>=0.50.1'
      # ],

      package_data={
Fang Yuedong's avatar
Fang Yuedong committed
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
          'observation_sim.astrometry.lib': ['libshao.so'],
          'observation_sim.instruments.chip.libBF': ['libmoduleBF.so'],
          'observation_sim.instruments.chip.libCTI': ['libmoduleCTI.so'],
          'observation_sim.mock_objects.data': ['*.dat'],
          'observation_sim.mock_objects.data.led': ['*.fits'],
          'observation_sim.instruments.data': ['*.txt', '*.dat', '*.json'],
          'observation_sim.instruments.data.field_distortion': ['*.pickle'],
          'observation_sim.instruments.data.ccd': ['*.txt', '*.json'],
          'observation_sim.instruments.data.filters': ['*.txt', '*.list', '*.dat'],
          'observation_sim.instruments.data.throughputs': ['*.txt', '*.dat'],
          'observation_sim.instruments.data.sls_conf': ['*.conf', '*.fits'],
          #   'observation_sim.Instrument.data.flatCube': ['*.fits'],
          'catalog.data': ['*.fits', '*.so'],
          'observation_sim.config.header': ['*.fits', '*.lst'],
          'observation_sim.sky_background.data': ['*.dat'],
          'observation_sim.sky_background.data.sky': ['*.dat'],
          'observation_sim.sky_background.lib': ['*'],
113
114
115
116
117
118
119
      },
      python_requires=">=3.11",  # Python版本要求
      install_requires=requirements,

      ext_modules=cythonize(extensions) + df_module + cti_module,
      cmdclass={'build_ext': build_ext}
      )