-
Notifications
You must be signed in to change notification settings - Fork 5
/
setup.py
67 lines (51 loc) · 1.63 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import os
import subprocess
from codecs import open
from setuptools import setup
from setuptools.command import build_py, develop
here = os.path.abspath(os.path.dirname(__file__))
package = "plyflatten"
about = {}
with open(os.path.join(here, package, "__about__.py"), "r", "utf-8") as f:
exec(f.read(), about)
def readme():
with open(os.path.join(here, "README.md"), "r", "utf-8") as f:
return f.read()
class CustomDevelop(develop.develop):
"""
Class needed for "pip install -e ."
"""
def run(self):
subprocess.check_call("make lib", shell=True)
super(CustomDevelop, self).run()
class CustomBuildPy(build_py.build_py):
"""
Class needed for "pip install plyflatten"
"""
def run(self):
super(CustomBuildPy, self).run()
subprocess.check_call("make lib", shell=True)
subprocess.check_call("cp -r lib build/lib/", shell=True)
install_requires = ["affine", "numpy", "plyfile", "pyproj", "rasterio"]
extras_require = {
"dev": ["bump2version", "pre-commit"],
"test": ["pytest", "pytest-cov"],
}
setup(
name=about["__title__"],
version=about["__version__"],
description=about["__description__"],
long_description=readme(),
long_description_content_type="text/markdown",
url=about["__url__"],
author=about["__author__"],
author_email=about["__author_email__"],
packages=[package],
install_requires=install_requires,
extras_require=extras_require,
entry_points="""
[console_scripts]
plyflatten=plyflatten.cli:main
""",
cmdclass={"develop": CustomDevelop, "build_py": CustomBuildPy},
)