1import os
2import numpy
3
4from sklearn._build_utils import gen_from_templates
5
6
7def configuration(parent_package="", top_path=None):
8    from numpy.distutils.misc_util import Configuration
9
10    config = Configuration("linear_model", parent_package, top_path)
11
12    libraries = []
13    if os.name == "posix":
14        libraries.append("m")
15
16    config.add_extension(
17        "_cd_fast",
18        sources=["_cd_fast.pyx"],
19        include_dirs=numpy.get_include(),
20        libraries=libraries,
21    )
22
23    config.add_extension(
24        "_sgd_fast",
25        sources=["_sgd_fast.pyx"],
26        include_dirs=numpy.get_include(),
27        libraries=libraries,
28    )
29
30    # generate sag_fast from template
31    templates = ["sklearn/linear_model/_sag_fast.pyx.tp"]
32    gen_from_templates(templates)
33
34    config.add_extension(
35        "_sag_fast", sources=["_sag_fast.pyx"], include_dirs=numpy.get_include()
36    )
37
38    # add other directories
39    config.add_subpackage("tests")
40    config.add_subpackage("_glm")
41    config.add_subpackage("_glm/tests")
42
43    return config
44
45
46if __name__ == "__main__":
47    from numpy.distutils.core import setup
48
49    setup(**configuration(top_path="").todict())
50