-
Notifications
You must be signed in to change notification settings - Fork 14
/
setup.py
105 lines (93 loc) · 2.26 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
"""Setup"""
import os
import sys
from setuptools import find_packages, setup
if sys.version_info[:2] < (3, 9):
error = (
"eDisGo requires Python 3.9 or later (%d.%d detected)." % sys.version_info[:2]
)
sys.stderr.write(error + "\n")
sys.exit(1)
def read(fname):
"""
Read a text file.
Parameters
----------
fname : str or PurePath
Path to file
Returns
-------
str
File content
"""
return open(os.path.join(os.path.dirname(__file__), fname)).read()
requirements = [
"contextily",
"dash < 2.9.0",
"demandlib",
"descartes",
"egoio >= 0.4.7",
"geoalchemy2 < 0.7.0",
"geopandas >= 0.12.0",
"geopy >= 2.0.0",
"jupyterlab",
"jupyter_dash",
"matplotlib >= 3.3.0",
"multiprocess",
"networkx >= 2.5.0",
# newer pandas versions don't work with specified sqlalchemy versions, but upgrading
# sqlalchemy leads to new errors.. should be fixed at some point
"pandas >= 1.4.0, < 2.2.0",
"plotly",
"pydot",
"pygeos",
"pypower",
"pyproj >= 3.0.0",
"pypsa == 0.26.2",
"pyyaml",
"saio",
"scikit-learn < 1.3.0",
"shapely >= 1.7.0",
"sqlalchemy < 1.4.0",
"sshtunnel",
"urllib3 < 2.0.0",
"workalendar",
]
dev_requirements = [
"black",
"flake8",
"isort",
"pre-commit",
"pylint",
"pytest",
"pytest-notebook",
"pyupgrade",
"sphinx",
"sphinx_rtd_theme >=0.5.2",
"sphinx-autodoc-typehints",
"sphinx-autoapi",
]
extras = {"dev": dev_requirements}
setup(
name="eDisGo",
version="0.3.0dev",
packages=find_packages(),
url="https://github.com/openego/eDisGo",
license="GNU Affero General Public License v3.0",
author=(
"birgits, AnyaHe, khelfen, mltja, gplssm, nesnoj, jaappedersen, Elias, "
"boltbeard"
),
author_email="[email protected]",
description="A python package for distribution network analysis and optimization",
long_description=read("README.md"),
long_description_content_type="text/markdown",
install_requires=requirements,
extras_require=extras,
package_data={
"edisgo": [
os.path.join("config", "*.cfg"),
os.path.join("equipment", "*.csv"),
]
},
)