Skip to content

Commit 05d591a

Browse files
andersktimabbott
authored andcommitted
Remove legacy distutils support.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
1 parent 095d5d8 commit 05d591a

File tree

5 files changed

+13
-130
lines changed

5 files changed

+13
-130
lines changed

zulip/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ recommend installing version 0.6.4.
1111

1212
#### Installing
1313

14-
This package uses distutils, so you can just run:
14+
This package uses setuptools, so you can just run:
1515

1616
python setup.py install
1717

zulip/setup.py

+5-31
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
import itertools
44
import os
5-
import sys
6-
from typing import Any, Dict, Generator, List, Tuple
5+
from typing import Any, Generator, List, Tuple
6+
7+
from setuptools import find_packages, setup
78

89
with open("README.md") as fh:
910
long_description = fh.read()
@@ -26,8 +27,7 @@ def recur_expand(target_root: Any, dir: Any) -> Generator[Tuple[str, List[str]],
2627
yield os.path.join(target_root, root), paths
2728

2829

29-
# We should be installable with either setuptools or distutils.
30-
package_info = dict(
30+
setup(
3131
name="zulip",
3232
version=version(),
3333
description="Bindings for the Zulip message API",
@@ -63,38 +63,12 @@ def recur_expand(target_root: Any, dir: Any) -> Generator[Tuple[str, List[str]],
6363
"zulip-api=zulip.cli:cli",
6464
],
6565
},
66-
) # type: Dict[str, Any]
67-
68-
setuptools_info = dict(
6966
install_requires=[
7067
"requests[security]>=0.12.1",
7168
"matrix_client",
7269
"distro",
7370
"click",
7471
"typing_extensions>=3.7",
7572
],
73+
packages=find_packages(exclude=["tests"]),
7674
)
77-
78-
try:
79-
from setuptools import find_packages, setup
80-
81-
package_info.update(setuptools_info)
82-
package_info["packages"] = find_packages(exclude=["tests"])
83-
84-
except ImportError:
85-
from distutils.core import setup
86-
from distutils.version import LooseVersion
87-
88-
# Manual dependency check
89-
try:
90-
import requests
91-
92-
assert LooseVersion(requests.__version__) >= LooseVersion("0.12.1")
93-
except (ImportError, AssertionError):
94-
print("requests >=0.12.1 is not installed", file=sys.stderr)
95-
sys.exit(1)
96-
97-
package_info["packages"] = ["zulip"]
98-
99-
100-
setup(**package_info)

zulip/zulip/__init__.py

-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import types
1212
import urllib.parse
1313
from configparser import SafeConfigParser
14-
from distutils.version import LooseVersion
1514
from typing import (
1615
IO,
1716
Any,
@@ -37,9 +36,6 @@
3736

3837
logger = logging.getLogger(__name__)
3938

40-
# Check that we have a recent enough version
41-
# Older versions don't provide the 'json' attribute on responses.
42-
assert LooseVersion(requests.__version__) >= LooseVersion("0.12.1")
4339
# In newer versions, the 'json' attribute is a function, not a property
4440
requests_json_is_function = callable(requests.Response.json)
4541

zulip_bots/setup.py

+4-51
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#!/usr/bin/env python3
22

3-
import os
4-
import sys
5-
from typing import Any, Dict, Optional
3+
from setuptools import find_packages, setup
64

75
ZULIP_BOTS_VERSION = "0.8.1"
86
IS_PYPA_PACKAGE = False
@@ -21,8 +19,7 @@
2119
with open("README.md") as fh:
2220
long_description = fh.read()
2321

24-
# We should be installable with either setuptools or distutils.
25-
package_info = dict(
22+
setup(
2623
name="zulip_bots",
2724
version=ZULIP_BOTS_VERSION,
2825
description="Zulip's Bot framework",
@@ -54,9 +51,6 @@
5451
"zulip-bot-shell=zulip_bots.bot_shell:main",
5552
],
5653
},
57-
) # type: Dict[str, Any]
58-
59-
setuptools_info = dict(
6054
install_requires=[
6155
"pip",
6256
"zulip",
@@ -66,47 +60,6 @@
6660
"typing_extensions",
6761
'importlib-metadata >= 3.6; python_version < "3.10"',
6862
],
63+
packages=find_packages(),
64+
package_data=package_data,
6965
)
70-
71-
try:
72-
from setuptools import find_packages, setup
73-
74-
package_info.update(setuptools_info)
75-
package_info["packages"] = find_packages()
76-
package_info["package_data"] = package_data
77-
78-
except ImportError:
79-
from distutils.core import setup
80-
from distutils.version import LooseVersion
81-
from importlib import import_module
82-
83-
# Manual dependency check
84-
def check_dependency_manually(module_name: str, version: Optional[str] = None) -> None:
85-
try:
86-
module = import_module(module_name) # type: Any
87-
if version is not None:
88-
assert LooseVersion(module.__version__) >= LooseVersion(version)
89-
except (ImportError, AssertionError):
90-
if version is not None:
91-
print(
92-
f"{module_name}>={version} is not installed.",
93-
file=sys.stderr,
94-
)
95-
else:
96-
print(f"{module_name} is not installed.", file=sys.stderr)
97-
sys.exit(1)
98-
99-
check_dependency_manually("zulip")
100-
check_dependency_manually("mock", "2.0.0")
101-
check_dependency_manually("html2text")
102-
check_dependency_manually("PyDictionary")
103-
104-
# Include all submodules under bots/
105-
package_list = ["zulip_bots"]
106-
dirs = os.listdir("zulip_bots/bots/")
107-
for dir_name in dirs:
108-
if os.path.isdir(os.path.join("zulip_bots/bots/", dir_name)):
109-
package_list.append("zulip_bots.bots." + dir_name)
110-
package_info["packages"] = package_list
111-
112-
setup(**package_info)

zulip_botserver/setup.py

+3-43
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
#!/usr/bin/env python3
22

3-
import sys
4-
from typing import Any, Dict, Optional
3+
from setuptools import find_packages, setup
54

65
ZULIP_BOTSERVER_VERSION = "0.8.1"
76

87
with open("README.md") as fh:
98
long_description = fh.read()
109

11-
# We should be installable with either setuptools or distutils.
12-
package_info = dict(
10+
setup(
1311
name="zulip_botserver",
1412
version=ZULIP_BOTSERVER_VERSION,
1513
description="Zulip's Flask server for running bots",
@@ -42,48 +40,10 @@
4240
},
4341
test_suite="tests",
4442
package_data={"zulip_botserver": ["py.typed"]},
45-
) # type: Dict[str, Any]
46-
47-
setuptools_info = dict(
4843
install_requires=[
4944
"zulip",
5045
"zulip_bots",
5146
"flask>=0.12.2",
5247
],
48+
packages=find_packages(exclude=["tests"]),
5349
)
54-
55-
try:
56-
from setuptools import find_packages, setup
57-
58-
package_info.update(setuptools_info)
59-
package_info["packages"] = find_packages(exclude=["tests"])
60-
61-
except ImportError:
62-
from distutils.core import setup
63-
from distutils.version import LooseVersion
64-
from importlib import import_module
65-
66-
# Manual dependency check
67-
def check_dependency_manually(module_name: str, version: Optional[str] = None) -> None:
68-
try:
69-
module = import_module(module_name) # type: Any
70-
if version is not None:
71-
assert LooseVersion(module.__version__) >= LooseVersion(version)
72-
except (ImportError, AssertionError):
73-
if version is not None:
74-
print(
75-
f"{module_name}>={version} is not installed.",
76-
file=sys.stderr,
77-
)
78-
else:
79-
print(f"{module_name} is not installed.", file=sys.stderr)
80-
sys.exit(1)
81-
82-
check_dependency_manually("zulip")
83-
check_dependency_manually("zulip_bots")
84-
check_dependency_manually("flask", "0.12.2")
85-
86-
package_info["packages"] = ["zulip_botserver"]
87-
88-
89-
setup(**package_info)

0 commit comments

Comments
 (0)