-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathsetup.py
122 lines (104 loc) · 2.94 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import os
import re
try:
from setuptools import setup, find_packages
except ImportError:
raise RuntimeError('setuptools is required')
DESCRIPTION = ('pvops is a python library for the analysis of ' +
'field collected operational data for photovoltaic systems.')
LONG_DESCRIPTION = """
pvops is a python package for PV operators & researchers. It is
a collection of functions for working with text-based data
from photovoltaic power systems. The library includes functions for
processing text data as well as fusion of the text information with
time series data for visualization of contextual details for data
analysis.
Documentation: https://pvops.readthedocs.io/en/latest/index.html
Source code: https://github.com/sandialabs/pvOps
"""
DISTNAME = 'pvops'
MAINTAINER = "Thushara Gunda"
MAINTAINER_EMAIL = '[email protected]'
AUTHOR = 'pvOps Developers'
LICENSE = 'BSD 3-Clause License'
URL = 'https://github.com/sandialabs/pvops'
TESTS_REQUIRE = [
'pytest',
]
INSTALL_REQUIRES = [
'numpy',
'pandas',
'scipy',
'scikit-learn',
'nltk>=3.9.1',
'datefinder',
'matplotlib',
'seaborn',
'plotly',
'gensim',
'networkx',
'pvlib',
'pvanalytics',
'timezonefinder',
]
DOCS_REQUIRE = [
'sphinx==7.2.6',
'coverage==7.2.3',
'ipykernel==6.22.0',
'nbconvert==7.3.1',
'nbformat==5.8.0',
'nbsphinx==0.9.3',
'nbsphinx-link==1.3.0',
'sphinx-copybutton==0.5.2',
'sphinxcontrib-bibtex==2.5.0',
'sphinx_rtd_theme==1.3.0',
]
IV_REQUIRE = [
'keras',
'tensorflow',
'pyDOE',
]
EXTRAS_REQUIRE = {
'iv': IV_REQUIRE,
'test': TESTS_REQUIRE,
'doc': DOCS_REQUIRE
}
EXTRAS_REQUIRE['all'] = sorted(set(sum(EXTRAS_REQUIRE.values(), [])))
SETUP_REQUIRES = ['setuptools_scm']
CLASSIFIERS = [
'Development Status :: 2 - Pre-Alpha',
'Operating System :: OS Independent',
'Intended Audience :: Science/Research',
'Programming Language :: Python :: 3',
'Topic :: Scientific/Engineering'
]
PACKAGES = find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"])
# get version from __init__.py
file_dir = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(file_dir, 'pvops', '__init__.py')) as f:
version_file = f.read()
version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]",
version_file, re.M)
if version_match:
VERSION = version_match.group(1)
else:
raise RuntimeError("Unable to find version string.")
setup(
name=DISTNAME,
use_scm_version=True,
packages=PACKAGES,
install_requires=INSTALL_REQUIRES,
extras_require=EXTRAS_REQUIRE,
tests_require=TESTS_REQUIRE,
setup_requires=SETUP_REQUIRES,
ext_modules=[],
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
author=AUTHOR,
maintainer=MAINTAINER,
maintainer_email=MAINTAINER_EMAIL,
license=LICENSE,
classifiers=CLASSIFIERS,
url=URL,
version=VERSION
)