Skip to content

Commit c7073c3

Browse files
committed
[setup.py] Update to latest Python 2&3 compatible format
1 parent 61a849f commit c7073c3

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

setup.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,16 @@
88
from ast import parse
99
from distutils.sysconfig import get_python_lib
1010
from functools import partial
11+
from operator import attrgetter, itemgetter
1112
from os import listdir, path
13+
from sys import version_info
1214

1315
from setuptools import find_packages, setup
1416

17+
if version_info[0] == 2:
18+
from itertools import ifilter as filter
19+
from itertools import imap as map
20+
1521
package_name = "nginxctl"
1622

1723

@@ -22,7 +28,7 @@ def to_funcs(*paths):
2228
:param paths: one or more str, referring to relative folder names
2329
:type paths: ```*paths```
2430
25-
:return: 2 functions
31+
:returns: 2 functions
2632
:rtype: ```Tuple[Callable[Optional[List[str]], str], Callable[Optional[List[str]], str]]```
2733
"""
2834
return (
@@ -34,11 +40,23 @@ def to_funcs(*paths):
3440
if __name__ == "__main__":
3541
with open(path.join(package_name, "__init__.py")) as f:
3642
__author__, __version__ = map(
37-
lambda buf: next(map(lambda e: e.value.s, parse(buf).body)),
38-
filter(
39-
lambda line: line.startswith("__version__")
40-
or line.startswith("__author__"),
41-
f,
43+
lambda const: const.value if version_info > (3, 6) else const.s,
44+
map(
45+
attrgetter("value"),
46+
map(
47+
itemgetter(0),
48+
map(
49+
attrgetter("body"),
50+
map(
51+
parse,
52+
filter(
53+
lambda line: line.startswith("__version__")
54+
or line.startswith("__author__"),
55+
f,
56+
),
57+
),
58+
),
59+
),
4260
),
4361
)
4462

0 commit comments

Comments
 (0)