-
Notifications
You must be signed in to change notification settings - Fork 4
/
setup.py
107 lines (90 loc) · 2.92 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/usr/bin/env python
"""
Author: Wenyu Ouyang
Date: 2022-12-02 10:42:19
LastEditTime: 2024-02-19 19:59:18
LastEditors: Wenyu Ouyang
Description: The setup script.
FilePath: \hydroutils\setup.py
Copyright (c) 2023-2024 Wenyu Ouyang. All rights reserved.
"""
import io
import pathlib
import os
import platform
from os import path as op
from setuptools import setup, find_packages
from setuptools.command.install import install
readme = pathlib.Path("README.md").read_text()
here = op.abspath(op.dirname(__file__))
# get the dependencies and installs
with io.open(op.join(here, "requirements.txt"), encoding="utf-8") as f:
all_reqs = f.read().split("\n")
install_requires = [x.strip() for x in all_reqs if "git+" not in x]
dependency_links = [x.strip().replace("git+", "") for x in all_reqs if "git+" not in x]
requirements = []
setup_requirements = [
"pytest-runner",
]
test_requirements = [
"pytest>=3",
]
def get_cache_dir(app_name):
home = os.path.expanduser("~")
system = platform.system()
if system == "Windows":
cache_dir = os.path.join(home, "AppData", "Local", app_name, "Cache")
elif system == "Darwin":
cache_dir = os.path.join(home, "Library", "Caches", app_name)
else:
cache_dir = os.path.join(home, ".cache", app_name)
if not os.path.exists(cache_dir):
os.makedirs(cache_dir)
return cache_dir
class PostInstallCommand(install):
def run(self):
install.run(self)
# Define cache and config paths
setting_dir = pathlib.Path.home()
get_cache_dir("hydro")
setting_file = setting_dir.joinpath("hydro_setting.yml")
if not setting_file.is_file():
setting_file.touch(exist_ok=False)
setup(
author="Wenyu Ouyang",
author_email="wenyuouyang@outlook.com",
python_requires=">=3.9",
classifiers=[
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
],
description="A collection of commonly used util functions in hydrological modeling",
entry_points={
"console_scripts": [
"hydroutils=hydroutils.cli:main",
],
},
install_requires=install_requires,
dependency_links=dependency_links,
license="MIT license",
long_description=readme,
long_description_content_type="text/markdown",
include_package_data=True,
keywords="hydroutils",
name="hydroutils",
packages=find_packages(include=["hydroutils", "hydroutils.*"]),
setup_requires=setup_requirements,
test_suite="tests",
tests_require=test_requirements,
url="https://github.com/OuyangWenyu/hydroutils",
version='0.0.12',
zip_safe=False,
cmdclass={
"install": PostInstallCommand,
},
)