Skip to content

Commit 08a49f8

Browse files
author
Kevin Weng
authored
AISDK-124: Parse reqs without pip internal in Python SDK (#56)
1 parent ec0e228 commit 08a49f8

File tree

1 file changed

+24
-29
lines changed

1 file changed

+24
-29
lines changed

setup.py

+24-29
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,27 @@
22
# -*- coding: utf-8 -*-
33
from glob import glob
44
from setuptools import setup, find_packages
5-
try:
6-
# pip >=20
7-
from pip._internal.network.session import PipSession
8-
from pip._internal.req import parse_requirements
9-
except ImportError:
10-
try:
11-
# 10.0.0 <= pip <= 19.3.1
12-
from pip._internal.download import PipSession
13-
from pip._internal.req import parse_requirements
14-
except ImportError:
15-
# pip <= 9.0.3
16-
from pip.download import PipSession
17-
from pip.req import parse_requirements
185
import re
196
import ast
207
import os
218

229

23-
def get_requirements(parsed_requirements):
24-
"""Return strings of requirements from pip's ParsedRequirement objects
25-
26-
In pip <= 19.3.1, requirements are in ParsedRequirement.req
27-
In pip > 19.3.1, requirements are in ParsedRequirement.requirement
28-
"""
29-
return [
30-
str(ir.req if hasattr(ir, "req") else ir.requirement)
31-
for ir in parsed_requirements
32-
]
10+
def parse_requirements(filehandle):
11+
for line in filehandle:
12+
line = line.strip()
13+
if line == '':
14+
continue
15+
# Comments are lines that start with # only.
16+
elif not line or line.startswith('#'):
17+
continue
18+
elif (line.startswith('-r') or line.startswith('--requirement') or
19+
line.startswith('-f') or line.startswith('--find-links') or
20+
line.startswith('-i') or line.startswith('--index-url') or
21+
line.startswith('--extra-index-url') or line.startswith('--no-index') or
22+
line.startswith('-Z') or line.startswith('--always-unzip')):
23+
continue
24+
else:
25+
yield line
3326

3427

3528
_version_re = re.compile(r'__version__\s+=\s+(.*)')
@@ -44,8 +37,11 @@ def get_requirements(parsed_requirements):
4437
with open('HISTORY.rst') as history_file:
4538
history = history_file.read()
4639

47-
parsed_requirements = parse_requirements('requirements.txt', session=PipSession())
48-
parsed_test_requirements = parse_requirements('requirements_dev.txt', session=PipSession())
40+
with open('requirements.txt', 'r') as req_file:
41+
requirements = list(parse_requirements(req_file))
42+
43+
with open('requirements_dev.txt', 'r') as req_dev_file:
44+
test_requirements = list(parse_requirements(req_dev_file))
4945

5046
setup(
5147
name='rev_ai',
@@ -56,10 +52,9 @@ def get_requirements(parsed_requirements):
5652
author="Rev Ai",
5753
packages=find_packages('src'),
5854
package_dir={'': 'src'},
59-
py_modules=[os.path.splitext(os.path.basename(path))[0]
60-
for path in glob('src/*.py')],
55+
py_modules=[os.path.splitext(os.path.basename(path))[0] for path in glob('src/*.py')],
6156
include_package_data=True,
62-
install_requires=get_requirements(parsed_requirements),
57+
install_requires=requirements,
6358
zip_safe=False,
6459
license='MIT license',
6560
keywords='rev_ai',
@@ -78,6 +73,6 @@ def get_requirements(parsed_requirements):
7873
],
7974
setup_requires=['pytest-runner==4.2'],
8075
test_suite='tests',
81-
tests_require=get_requirements(parsed_test_requirements),
76+
tests_require=test_requirements,
8277
url='https://github.com/revdotcom/revai-python-sdk',
8378
)

0 commit comments

Comments
 (0)