setup.py 4.32 KB
Newer Older
1
2
3
#!/usr/bin/env python
# -*- coding: utf-8 -*-

4
# EnPT, EnMAP Processing Tool - A Python package for pre-processing of EnMAP Level-1B data
5
#
Daniel Scheffler's avatar
Daniel Scheffler committed
6
# Copyright (C) 2018-2021 Karl Segl (GFZ Potsdam, segl@gfz-potsdam.de), Daniel Scheffler
7
8
# (GFZ Potsdam, danschef@gfz-potsdam.de), Niklas Bohn (GFZ Potsdam, nbohn@gfz-potsdam.de),
# Stéphane Guillaso (GFZ Potsdam, stephane.guillaso@gfz-potsdam.de)
9
10
11
12
13
14
15
#
# This software was developed within the context of the EnMAP project supported
# by the DLR Space Administration with funds of the German Federal Ministry of
# Economic Affairs and Energy (on the basis of a decision by the German Bundestag:
# 50 EE 1529) and contributions from DLR, GFZ and OHB System AG.
#
# This program is free software: you can redistribute it and/or modify it under
16
17
18
19
20
21
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version. Please note the following exception: `EnPT` depends on tqdm, which
# is distributed under the Mozilla Public Licence (MPL) v2.0 except for the files
# "tqdm/_tqdm.py", "setup.py", "README.rst", "MANIFEST.in" and ".gitignore".
# Details can be found here: https://github.com/tqdm/tqdm/blob/master/LICENCE.
22
23
24
25
26
27
28
29
30
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
# details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.

André Hollstein's avatar
André Hollstein committed
31
from setuptools import setup, find_packages
32

33
34
35
__author__ = 'Daniel Scheffler'


36
37
38
with open('README.rst') as readme_file:
    readme = readme_file.read()

39
version = {}
40
with open("enpt/version.py", encoding='utf-8') as version_file:
41
42
    exec(version_file.read(), version)

43
req = [
44
45
    'arosics>=1.0.0',
    'cerberus',
46
    'geoarray>=0.15.8',
47
48
49
50
51
52
53
54
55
56
    'jsmin',
    'lxml',
    'matplotlib',
    'mvgavg',
    'natsort',
    'numpy',
    'numpy-indexed',
    'pandas',
    'pyproj>=2.2.0',
    'py_tools_ds>=0.14.23',
57
    'scikit-image',
58
59
    'scipy',
    'sensormapgeo>=0.4.0',
60
    'sicor>=0.16.0',
61
62
    'tqdm',
    'utm',
63
64
]

65
req_setup = ['setuptools-git']  # needed for package_data version controlled by GIT
66

Daniel Scheffler's avatar
Daniel Scheffler committed
67
req_test = ['pytest', 'pytest-cov', 'pytest-reporter-html1', 'urlchecker']
68
69
70
71
72
73

req_doc = ['sphinx-argparse', 'sphinx_rtd_theme']

req_lint = ['flake8', 'pycodestyle', 'pydocstyle']

req_dev = req_setup + req_test + req_doc + req_lint
74
75

setup(
76
77
78
    author="Karl Segl, Daniel Scheffler, Niklas Bohn, Stéphane Guillaso, Brenner Silva",
    author_email="segl@gfz-potsdam.de, danschef@gfz-potsdam.de, nbohn@gfz-potsdam.de, "
                 "stephane.guillaso@gfz-potsdam.de, brenner.silva@awi.de",
79
    classifiers=[
80
        'Development Status :: 4 - Beta',
81
        'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
82
        'Natural Language :: English',
83
84
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
Daniel Scheffler's avatar
Daniel Scheffler committed
85
        'Programming Language :: Python :: 3.8',
86
        'Programming Language :: Python :: 3.9',
87
    ],
88
    description="EnMAP Processing Tool",
89
90
    entry_points={
        'console_scripts': [
91
            'enpt=enpt.cli:main',
92
93
        ],
    },
94
95
96
97
98
99
    extras_require={
        "doc": req_doc,
        "test": req_test,
        "lint": req_lint,
        "dev": req_dev
    },
100
101
    keywords=['EnPT', 'EnMAP', 'EnMAP-Box', 'hyperspectral', 'remote sensing', 'satellite', 'processing chain'],
    include_package_data=True,
102
    install_requires=req,
103
    license="GPL-3.0-or-later",
104
    long_description=readme,
105
    name='enpt',
106
    package_dir={'enpt': 'enpt'},
107
108
109
    # NOTE: if the 'package_data' files are not under CVS or Subversion version control, we need setuptools-git here,
    #       otherwise they are not included in the PyPi upload content
    package_data={"enpt": ["resources/**/**/*"]},
110
111
    packages=find_packages(exclude=['tests*', 'examples*']),  # does not seem to work, therefore use MANIFEST.in
    python_requires='>=3.6,<3.10',  # ImportError related to os.sep in Python 3.10
112
    setup_requires=req_setup,
113
    test_suite='tests',
114
    tests_require=req_test,
115
    url='https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT',
116
117
    version=version['__version__'],
    zip_safe=False
118
)