Skip to content

Commit 8978078

Browse files
committed
use --install-options to select drivers to install
1 parent 4048d8e commit 8978078

File tree

1 file changed

+40
-3
lines changed

1 file changed

+40
-3
lines changed

Diff for: setup.py

+40-3
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,53 @@
33

44
from setuptools import setup, find_packages
55
from pip.req import parse_requirements
6+
from itertools import chain
7+
8+
import sys
69

710
__author__ = 'David Barroso <[email protected]>'
811

9-
install_reqs = parse_requirements('requirements/all', session=uuid.uuid1())
10-
reqs = [str(ir.req) for ir in install_reqs]
12+
13+
def extract_drivers(opt):
14+
return set([r.replace("--drivers=", "").strip() for r in opt.split(",")])
15+
16+
17+
def process_requirements():
18+
develop = False
19+
if 'egg_info' in sys.argv:
20+
return []
21+
elif 'develop' in sys.argv:
22+
develop = True
23+
24+
requirements = set()
25+
for r in sys.argv:
26+
if r.startswith("--drivers"):
27+
requirements |= extract_drivers(r)
28+
29+
# let's remove the options
30+
sys.argv = [o for o in sys.argv if not o.startswith("--drivers")]
31+
32+
requirements = requirements or set(['all'])
33+
requirements.add('base')
34+
35+
u = uuid.uuid1()
36+
37+
iter_reqs = chain(*[parse_requirements("requirements/{}".format(r), session=u)
38+
for r in requirements])
39+
40+
if develop:
41+
import pip
42+
[pip.main(['install', (str(ir.req))]) for ir in iter_reqs]
43+
44+
return [str(ir.req) for ir in iter_reqs]
45+
46+
47+
reqs = process_requirements()
1148

1249

1350
setup(
1451
name="napalm",
15-
version='2.00.0-alpha-1',
52+
version='2.0.0a1',
1653
packages=find_packages(exclude=("test*", )),
1754
test_suite='test_base',
1855
author="David Barroso, Kirk Byers, Mircea Ulinic",

0 commit comments

Comments
 (0)