Skip to content
This repository was archived by the owner on Dec 6, 2023. It is now read-only.

Commit cd63bad

Browse files
authored
slightly refactor setup scripts (#174)
1 parent a327bbb commit cd63bad

File tree

3 files changed

+44
-76
lines changed

3 files changed

+44
-76
lines changed

lightning/impl/randomkit/setup.py

+13-10
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
import sys
2-
import numpy
32

4-
def configuration(parent_package='', top_path=None):
5-
from numpy.distutils.misc_util import Configuration
3+
from numpy import get_include
4+
from numpy.distutils.core import setup
5+
from numpy.distutils.misc_util import Configuration
6+
67

7-
config = Configuration('randomkit', parent_package, top_path)
8+
def configuration(parent_package='', top_path=None):
9+
rnd_kit = 'randomkit'
10+
rnd_fast = 'random_fast'
11+
config = Configuration(rnd_kit, parent_package, top_path)
812
libs = []
913
if sys.platform == 'win32':
1014
libs.append('Advapi32')
1115

1216
config.add_extension(
13-
'random_fast',
14-
sources=['random_fast.pyx', 'randomkit.c'],
17+
rnd_fast,
18+
sources=[f'{rnd_fast}.pyx', f'{rnd_kit}.c'],
1519
language='c++',
1620
libraries=libs,
17-
include_dirs=[numpy.get_include()]
21+
include_dirs=[get_include()]
1822
)
1923

2024
config.add_subpackage('tests')
21-
config.add_data_files('random_fast.pxd')
22-
config.add_data_files('randomkit.h')
25+
config.add_data_files(f'{rnd_fast}.pxd')
26+
config.add_data_files(f'{rnd_kit}.h')
2327

2428
return config
2529

2630
if __name__ == '__main__':
27-
from numpy.distutils.core import setup
2831
setup(**configuration(top_path='').todict())

lightning/impl/setup.py

+28-63
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,45 @@
11
import os.path
22

3-
import numpy
3+
from numpy import get_include
4+
from numpy.distutils.core import setup
5+
from numpy.distutils.misc_util import Configuration
46

57

68
def configuration(parent_package='', top_path=None):
7-
from numpy.distutils.misc_util import Configuration
8-
99
config = Configuration('impl', parent_package, top_path)
1010

1111
randomdir = os.path.join(top_path, "lightning", "impl", "randomkit")
12-
13-
config.add_extension('adagrad_fast',
14-
sources=['adagrad_fast.pyx'],
15-
language='c++',
16-
include_dirs=[numpy.get_include(), randomdir])
17-
18-
config.add_extension('dataset_fast',
19-
sources=['dataset_fast.pyx'],
20-
language='c++',
21-
include_dirs=[numpy.get_include(), randomdir])
22-
23-
config.add_extension('dual_cd_fast',
24-
sources=['dual_cd_fast.pyx'],
25-
language='c++',
26-
include_dirs=[numpy.get_include(), randomdir])
27-
28-
config.add_extension('loss_fast',
29-
sources=['loss_fast.pyx'],
30-
language='c++',
31-
include_dirs=[numpy.get_include(), randomdir])
32-
33-
config.add_extension('prank_fast',
34-
sources=['prank_fast.pyx'],
35-
language='c++',
36-
include_dirs=[numpy.get_include(), randomdir])
37-
38-
config.add_extension('primal_cd_fast',
39-
sources=['primal_cd_fast.pyx'],
40-
language='c++',
41-
include_dirs=[numpy.get_include(), randomdir])
42-
43-
config.add_extension('prox_fast',
44-
sources=['prox_fast.pyx'],
45-
language='c++',
46-
include_dirs=[numpy.get_include(), randomdir])
47-
48-
config.add_extension('sag_fast',
49-
sources=['sag_fast.pyx'],
50-
language='c++',
51-
include_dirs=[numpy.get_include(), randomdir])
52-
53-
config.add_extension('sdca_fast',
54-
sources=['sdca_fast.pyx'],
55-
language='c++',
56-
include_dirs=[numpy.get_include(), randomdir])
57-
58-
config.add_extension('sgd_fast',
59-
sources=['sgd_fast.pyx'],
60-
language='c++',
61-
include_dirs=[numpy.get_include(), randomdir])
62-
63-
config.add_extension('svrg_fast',
64-
sources=['svrg_fast.pyx'],
65-
language='c++',
66-
include_dirs=[numpy.get_include(), randomdir])
12+
currdir = os.path.dirname(os.path.abspath(__file__))
13+
14+
files = [
15+
'adagrad_fast',
16+
'dataset_fast',
17+
'dual_cd_fast',
18+
'loss_fast',
19+
'prank_fast',
20+
'primal_cd_fast',
21+
'prox_fast',
22+
'sag_fast',
23+
'sdca_fast',
24+
'sgd_fast',
25+
'svrg_fast',
26+
]
27+
for f in files:
28+
config.add_extension(f,
29+
sources=[f'{f}.pyx'],
30+
language='c++',
31+
include_dirs=[get_include(), randomdir])
32+
33+
# add .pxd files to be re-used by third party software
34+
pxd_file = os.path.join(currdir, f'{f}.pxd')
35+
if os.path.exists(pxd_file):
36+
config.add_data_files(f'{f}.pxd')
6737

6838
config.add_subpackage('datasets')
6939
config.add_subpackage('randomkit')
7040
config.add_subpackage('tests')
7141

72-
# add .pxd files to be re-used by third party software
73-
config.add_data_files('sag_fast.pxd', 'dataset_fast.pxd',
74-
'sgd_fast.pxd', 'prox_fast.pxd')
75-
7642
return config
7743

7844
if __name__ == '__main__':
79-
from numpy.distutils.core import setup
8045
setup(**configuration(top_path='').todict())

lightning/setup.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
from numpy.distutils.core import setup
2+
from numpy.distutils.misc_util import Configuration
3+
14
from lightning._build_utils import maybe_cythonize_extensions
25

36

47
def configuration(parent_package='', top_path=None):
5-
from numpy.distutils.misc_util import Configuration
6-
78
config = Configuration('lightning', parent_package, top_path)
89

910
config.add_subpackage('impl')
@@ -13,5 +14,4 @@ def configuration(parent_package='', top_path=None):
1314
return config
1415

1516
if __name__ == '__main__':
16-
from numpy.distutils.core import setup
1717
setup(**configuration(top_path='').todict())

0 commit comments

Comments
 (0)