1import numpy
2from numpy.distutils.misc_util import Configuration
3
4
5def configuration(parent_package="", top_path=None):
6    config = Configuration("ensemble", parent_package, top_path)
7
8    config.add_extension(
9        "_gradient_boosting",
10        sources=["_gradient_boosting.pyx"],
11        include_dirs=[numpy.get_include()],
12    )
13
14    config.add_subpackage("tests")
15
16    # Histogram-based gradient boosting files
17    config.add_extension(
18        "_hist_gradient_boosting._gradient_boosting",
19        sources=["_hist_gradient_boosting/_gradient_boosting.pyx"],
20        include_dirs=[numpy.get_include()],
21    )
22
23    config.add_extension(
24        "_hist_gradient_boosting.histogram",
25        sources=["_hist_gradient_boosting/histogram.pyx"],
26        include_dirs=[numpy.get_include()],
27    )
28
29    config.add_extension(
30        "_hist_gradient_boosting.splitting",
31        sources=["_hist_gradient_boosting/splitting.pyx"],
32        include_dirs=[numpy.get_include()],
33    )
34
35    config.add_extension(
36        "_hist_gradient_boosting._binning",
37        sources=["_hist_gradient_boosting/_binning.pyx"],
38        include_dirs=[numpy.get_include()],
39    )
40
41    config.add_extension(
42        "_hist_gradient_boosting._predictor",
43        sources=["_hist_gradient_boosting/_predictor.pyx"],
44        include_dirs=[numpy.get_include()],
45    )
46
47    config.add_extension(
48        "_hist_gradient_boosting._loss",
49        sources=["_hist_gradient_boosting/_loss.pyx"],
50        include_dirs=[numpy.get_include()],
51    )
52
53    config.add_extension(
54        "_hist_gradient_boosting._bitset",
55        sources=["_hist_gradient_boosting/_bitset.pyx"],
56        include_dirs=[numpy.get_include()],
57    )
58
59    config.add_extension(
60        "_hist_gradient_boosting.common",
61        sources=["_hist_gradient_boosting/common.pyx"],
62        include_dirs=[numpy.get_include()],
63    )
64
65    config.add_extension(
66        "_hist_gradient_boosting.utils",
67        sources=["_hist_gradient_boosting/utils.pyx"],
68        include_dirs=[numpy.get_include()],
69    )
70
71    config.add_subpackage("_hist_gradient_boosting.tests")
72
73    return config
74
75
76if __name__ == "__main__":
77    from numpy.distutils.core import setup
78
79    setup(**configuration().todict())
80