2
2
# -*- coding: utf-8 -*-
3
3
from glob import glob
4
4
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
18
5
import re
19
6
import ast
20
7
import os
21
8
22
9
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
33
26
34
27
35
28
_version_re = re .compile (r'__version__\s+=\s+(.*)' )
@@ -44,8 +37,11 @@ def get_requirements(parsed_requirements):
44
37
with open ('HISTORY.rst' ) as history_file :
45
38
history = history_file .read ()
46
39
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 ))
49
45
50
46
setup (
51
47
name = 'rev_ai' ,
@@ -56,10 +52,9 @@ def get_requirements(parsed_requirements):
56
52
author = "Rev Ai" ,
57
53
packages = find_packages ('src' ),
58
54
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' )],
61
56
include_package_data = True ,
62
- install_requires = get_requirements ( parsed_requirements ) ,
57
+ install_requires = requirements ,
63
58
zip_safe = False ,
64
59
license = 'MIT license' ,
65
60
keywords = 'rev_ai' ,
@@ -78,6 +73,6 @@ def get_requirements(parsed_requirements):
78
73
],
79
74
setup_requires = ['pytest-runner==4.2' ],
80
75
test_suite = 'tests' ,
81
- tests_require = get_requirements ( parsed_test_requirements ) ,
76
+ tests_require = test_requirements ,
82
77
url = 'https://github.com/revdotcom/revai-python-sdk' ,
83
78
)
0 commit comments