polartoolkit 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- polartoolkit-0.2.0/LICENSE +21 -0
- polartoolkit-0.2.0/PKG-INFO +206 -0
- polartoolkit-0.2.0/README.md +104 -0
- polartoolkit-0.2.0/pyproject.toml +266 -0
- polartoolkit-0.2.0/setup.cfg +4 -0
- polartoolkit-0.2.0/src/polartoolkit/__init__.py +12 -0
- polartoolkit-0.2.0/src/polartoolkit/fetch.py +4001 -0
- polartoolkit-0.2.0/src/polartoolkit/maps.py +1748 -0
- polartoolkit-0.2.0/src/polartoolkit/profile.py +1597 -0
- polartoolkit-0.2.0/src/polartoolkit/regions.py +215 -0
- polartoolkit-0.2.0/src/polartoolkit/utils.py +1834 -0
- polartoolkit-0.2.0/src/polartoolkit.egg-info/PKG-INFO +206 -0
- polartoolkit-0.2.0/src/polartoolkit.egg-info/SOURCES.txt +17 -0
- polartoolkit-0.2.0/src/polartoolkit.egg-info/dependency_links.txt +1 -0
- polartoolkit-0.2.0/src/polartoolkit.egg-info/requires.txt +56 -0
- polartoolkit-0.2.0/src/polartoolkit.egg-info/top_level.txt +1 -0
- polartoolkit-0.2.0/tests/test_fetch.py +1369 -0
- polartoolkit-0.2.0/tests/test_profile.py +10 -0
- polartoolkit-0.2.0/tests/test_utils.py +275 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Matt Tankersley
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: polartoolkit
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Helpful tools for polar researchers
|
|
5
|
+
Author-email: Matt Tankersley <matt.d.tankersley@gmail.com>
|
|
6
|
+
License: The MIT License (MIT)
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2022 Matt Tankersley
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Homepage, https://github.com/mdtanker/polartoolkit
|
|
29
|
+
Project-URL: Documentation, https://antarctic-plots.readthedocs.io/
|
|
30
|
+
Project-URL: Bug Tracker, https://github.com/mdtanker/polartoolkit/issues
|
|
31
|
+
Project-URL: Discussions, https://github.com/mdtanker/polartoolkit/discussions
|
|
32
|
+
Project-URL: Changelog, https://antarctic-plots.readthedocs.io/en/latest/changelog.html
|
|
33
|
+
Keywords: cryosphere,antarctica,arctic,greenland,maps,plotting,pygmt,cross-section
|
|
34
|
+
Classifier: Development Status :: 3 - Alpha
|
|
35
|
+
Classifier: Intended Audience :: Science/Research
|
|
36
|
+
Classifier: Intended Audience :: Developers
|
|
37
|
+
Classifier: Intended Audience :: Education
|
|
38
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
39
|
+
Classifier: Natural Language :: English
|
|
40
|
+
Classifier: Operating System :: OS Independent
|
|
41
|
+
Classifier: Topic :: Scientific/Engineering
|
|
42
|
+
Classifier: Programming Language :: Python
|
|
43
|
+
Classifier: Programming Language :: Python :: 3
|
|
44
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
45
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
46
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
47
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
48
|
+
Classifier: Typing :: Typed
|
|
49
|
+
Requires-Python: >=3.9
|
|
50
|
+
Description-Content-Type: text/markdown
|
|
51
|
+
License-File: LICENSE
|
|
52
|
+
Requires-Dist: pandas
|
|
53
|
+
Requires-Dist: openpyxl
|
|
54
|
+
Requires-Dist: pooch[progress]
|
|
55
|
+
Requires-Dist: verde>=1.8.0
|
|
56
|
+
Requires-Dist: xarray[io]
|
|
57
|
+
Requires-Dist: harmonica>=0.6.0
|
|
58
|
+
Requires-Dist: pyproj
|
|
59
|
+
Requires-Dist: matplotlib
|
|
60
|
+
Requires-Dist: pyogrio
|
|
61
|
+
Requires-Dist: rioxarray
|
|
62
|
+
Requires-Dist: scipy
|
|
63
|
+
Requires-Dist: numpy
|
|
64
|
+
Requires-Dist: pygmt
|
|
65
|
+
Requires-Dist: geopandas
|
|
66
|
+
Requires-Dist: zarr
|
|
67
|
+
Requires-Dist: python-dotenv
|
|
68
|
+
Requires-Dist: nptyping
|
|
69
|
+
Provides-Extra: interactive
|
|
70
|
+
Requires-Dist: geoviews; extra == "interactive"
|
|
71
|
+
Requires-Dist: cartopy; extra == "interactive"
|
|
72
|
+
Requires-Dist: ipyleaflet; extra == "interactive"
|
|
73
|
+
Requires-Dist: ipython; extra == "interactive"
|
|
74
|
+
Provides-Extra: viz
|
|
75
|
+
Requires-Dist: seaborn; extra == "viz"
|
|
76
|
+
Provides-Extra: test
|
|
77
|
+
Requires-Dist: pytest>=6; extra == "test"
|
|
78
|
+
Requires-Dist: pytest-cov>=3; extra == "test"
|
|
79
|
+
Requires-Dist: deepdiff; extra == "test"
|
|
80
|
+
Provides-Extra: docs
|
|
81
|
+
Requires-Dist: sphinx>=4.0; extra == "docs"
|
|
82
|
+
Requires-Dist: myst_parser; extra == "docs"
|
|
83
|
+
Requires-Dist: sphinx_copybutton; extra == "docs"
|
|
84
|
+
Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
|
|
85
|
+
Requires-Dist: sphinx-book-theme>=0.3; extra == "docs"
|
|
86
|
+
Requires-Dist: sphinx_design; extra == "docs"
|
|
87
|
+
Requires-Dist: nbsphinx; extra == "docs"
|
|
88
|
+
Requires-Dist: nbconvert; extra == "docs"
|
|
89
|
+
Provides-Extra: dev
|
|
90
|
+
Requires-Dist: polartoolkit[docs,interactive,test,viz]; extra == "dev"
|
|
91
|
+
Requires-Dist: ruff; extra == "dev"
|
|
92
|
+
Requires-Dist: nox; extra == "dev"
|
|
93
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
94
|
+
Requires-Dist: pylint; extra == "dev"
|
|
95
|
+
Requires-Dist: python-semantic-release>=8; extra == "dev"
|
|
96
|
+
Requires-Dist: ipykernel; extra == "dev"
|
|
97
|
+
Requires-Dist: jupyterlab; extra == "dev"
|
|
98
|
+
Requires-Dist: mypy; extra == "dev"
|
|
99
|
+
Requires-Dist: pathspec; extra == "dev"
|
|
100
|
+
Provides-Extra: all
|
|
101
|
+
Requires-Dist: polartoolkit[dev,docs,interactive,test,viz]; extra == "all"
|
|
102
|
+
|
|
103
|
+
<h1 align="center">PolarToolkit</h1>
|
|
104
|
+
<h2 align="center">Helpful tools for polar researchers</h2>
|
|
105
|
+
|
|
106
|
+
<p align="center">
|
|
107
|
+
<a href="https://antarctic-plots.readthedocs.io"><strong>Documentation Link</strong></a>
|
|
108
|
+
</p>
|
|
109
|
+
|
|
110
|
+
<!-- SPHINX-START1 -->
|
|
111
|
+
|
|
112
|
+
<p align="center">
|
|
113
|
+
<a href="https://mybinder.org/v2/gh/mdtanker/antarctic_plots/main">
|
|
114
|
+
<img src="https://mybinder.org/badge_logo.svg" alt="Binder link"></a>
|
|
115
|
+
</p>
|
|
116
|
+
|
|
117
|
+
<p align="center">
|
|
118
|
+
<a href="https://pypi.python.org/pypi/polartoolkit">
|
|
119
|
+
<img
|
|
120
|
+
src="https://img.shields.io/pypi/v/polartoolkit?style=flat-square"
|
|
121
|
+
alt="Latest version on PyPI"
|
|
122
|
+
/>
|
|
123
|
+
</a>
|
|
124
|
+
<a href="https://github.com/conda-forge/polartoolkit-feedstock">
|
|
125
|
+
<img
|
|
126
|
+
src="https://img.shields.io/conda/vn/conda-forge/polartoolkit.svg?style=flat-square"
|
|
127
|
+
alt="Latest version on conda-forge"
|
|
128
|
+
/>
|
|
129
|
+
</a>
|
|
130
|
+
<a href="https://codecov.io/gh/mdtanker/antarctic_plots">
|
|
131
|
+
<img
|
|
132
|
+
src="https://img.shields.io/codecov/c/github/mdtanker/antarctic_plots/main.svg?style=flat-square"
|
|
133
|
+
alt="Test coverage status"
|
|
134
|
+
/>
|
|
135
|
+
|
|
136
|
+
<p align="center">
|
|
137
|
+
<a href="https://pypi.org/project/polartoolkit/">
|
|
138
|
+
<img src="https://img.shields.io/pypi/pyversions/polartoolkit?style=flat-square"
|
|
139
|
+
alt="Compatible Python versions."
|
|
140
|
+
/>
|
|
141
|
+
</a>
|
|
142
|
+
<a href="https://zenodo.org/badge/latestdoi/475677039">
|
|
143
|
+
<img src="https://zenodo.org/badge/475677039.svg?style=flat-square"
|
|
144
|
+
alt="Zenodo DOI"
|
|
145
|
+
/>
|
|
146
|
+
</a>
|
|
147
|
+
<a href='https://readthedocs.org/projects/antarctic-plots/'><img src='https://readthedocs.org/projects/antarctic-plots/badge/?version=latest&style=flat-square' alt='Documentation Status' /></a>
|
|
148
|
+
</p>
|
|
149
|
+
|
|
150
|
+
<!-- SPHINX-END1 -->
|
|
151
|
+
|
|
152
|
+

|
|
153
|
+
|
|
154
|
+
## Disclaimer
|
|
155
|
+
|
|
156
|
+
<p align="center">
|
|
157
|
+
🚨 **This package is in early stages of development.** 🚨
|
|
158
|
+
</p>
|
|
159
|
+
|
|
160
|
+
This means that we are still adding a lot of new features and sometimes we make
|
|
161
|
+
changes to the ones we already have while we try to improve the software based
|
|
162
|
+
on users' experience, test new ideas, make better design decisions, etc. Some of
|
|
163
|
+
these changes could be **backwards incompatible**. Keep that in mind before you
|
|
164
|
+
update PolarToolkit to a newer version.
|
|
165
|
+
|
|
166
|
+
I welcome any feedback, ideas, or contributions! Please contact us on the
|
|
167
|
+
[GitHub discussions page](https://github.com/mdtanker/polartoolkit/discussions)
|
|
168
|
+
or submit an [issue on GitHub](https://github.com/mdtanker/polartoolkit/issues)
|
|
169
|
+
for problems or feature ideas.
|
|
170
|
+
|
|
171
|
+
<!-- SPHINX-START2 -->
|
|
172
|
+
|
|
173
|
+
The **PolarToolkit** python package provides some basic tools to help in
|
|
174
|
+
conducting polar research. You can use it to download common datasets (i.e.
|
|
175
|
+
BedMachine, Bedmap2, MODIA MoA), create maps and plots specific to Antarctica
|
|
176
|
+
(soon Greenland and the Arctic as well), and visualize data with multiple
|
|
177
|
+
methods.
|
|
178
|
+
|
|
179
|
+
Feel free to use, share, modify, and
|
|
180
|
+
[contribute](https://antarctic-plots.readthedocs.io/en/latest/contribute.html)
|
|
181
|
+
to this project. I've mostly made this for personal usage so expect significant
|
|
182
|
+
changes. Hopefully, I'll implement more tests and Gallery examples soon.
|
|
183
|
+
|
|
184
|
+
## Project goals
|
|
185
|
+
|
|
186
|
+
Below is a list of some features I hope to eventually include. Feel free to make
|
|
187
|
+
a feature request through
|
|
188
|
+
[GitHub Issues](https://github.com/mdtanker/polartoolkit/issues/new/choose).
|
|
189
|
+
|
|
190
|
+
- Create 3D interactive models to help visualize data.
|
|
191
|
+
- Include more datasets to aid in downloading and storage.
|
|
192
|
+
- Additional projections and possible support for the Arctic region as well.
|
|
193
|
+
|
|
194
|
+
<!-- SPHINX-END2 -->
|
|
195
|
+
|
|
196
|
+
## How to contribute
|
|
197
|
+
|
|
198
|
+
I really welcome all forms of contribution! If you have any questions, comments
|
|
199
|
+
or suggestions, please open a [discussion]() or [issue (feature request)]() on
|
|
200
|
+
the [GitHub page](https://github.com/mdtanker/polartoolkit/)!
|
|
201
|
+
|
|
202
|
+
Also, please feel free to share how you're using PolarToolkit, I'd love to know.
|
|
203
|
+
|
|
204
|
+
Please, read our
|
|
205
|
+
[Contributor Guide](https://github.com/mdtanker/polartoolkit/blob/main/.github/CONTRIBUTING.md)
|
|
206
|
+
to learn how you can contribute to the project.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<h1 align="center">PolarToolkit</h1>
|
|
2
|
+
<h2 align="center">Helpful tools for polar researchers</h2>
|
|
3
|
+
|
|
4
|
+
<p align="center">
|
|
5
|
+
<a href="https://antarctic-plots.readthedocs.io"><strong>Documentation Link</strong></a>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<!-- SPHINX-START1 -->
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<a href="https://mybinder.org/v2/gh/mdtanker/antarctic_plots/main">
|
|
12
|
+
<img src="https://mybinder.org/badge_logo.svg" alt="Binder link"></a>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://pypi.python.org/pypi/polartoolkit">
|
|
17
|
+
<img
|
|
18
|
+
src="https://img.shields.io/pypi/v/polartoolkit?style=flat-square"
|
|
19
|
+
alt="Latest version on PyPI"
|
|
20
|
+
/>
|
|
21
|
+
</a>
|
|
22
|
+
<a href="https://github.com/conda-forge/polartoolkit-feedstock">
|
|
23
|
+
<img
|
|
24
|
+
src="https://img.shields.io/conda/vn/conda-forge/polartoolkit.svg?style=flat-square"
|
|
25
|
+
alt="Latest version on conda-forge"
|
|
26
|
+
/>
|
|
27
|
+
</a>
|
|
28
|
+
<a href="https://codecov.io/gh/mdtanker/antarctic_plots">
|
|
29
|
+
<img
|
|
30
|
+
src="https://img.shields.io/codecov/c/github/mdtanker/antarctic_plots/main.svg?style=flat-square"
|
|
31
|
+
alt="Test coverage status"
|
|
32
|
+
/>
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="https://pypi.org/project/polartoolkit/">
|
|
36
|
+
<img src="https://img.shields.io/pypi/pyversions/polartoolkit?style=flat-square"
|
|
37
|
+
alt="Compatible Python versions."
|
|
38
|
+
/>
|
|
39
|
+
</a>
|
|
40
|
+
<a href="https://zenodo.org/badge/latestdoi/475677039">
|
|
41
|
+
<img src="https://zenodo.org/badge/475677039.svg?style=flat-square"
|
|
42
|
+
alt="Zenodo DOI"
|
|
43
|
+
/>
|
|
44
|
+
</a>
|
|
45
|
+
<a href='https://readthedocs.org/projects/antarctic-plots/'><img src='https://readthedocs.org/projects/antarctic-plots/badge/?version=latest&style=flat-square' alt='Documentation Status' /></a>
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
<!-- SPHINX-END1 -->
|
|
49
|
+
|
|
50
|
+

|
|
51
|
+
|
|
52
|
+
## Disclaimer
|
|
53
|
+
|
|
54
|
+
<p align="center">
|
|
55
|
+
🚨 **This package is in early stages of development.** 🚨
|
|
56
|
+
</p>
|
|
57
|
+
|
|
58
|
+
This means that we are still adding a lot of new features and sometimes we make
|
|
59
|
+
changes to the ones we already have while we try to improve the software based
|
|
60
|
+
on users' experience, test new ideas, make better design decisions, etc. Some of
|
|
61
|
+
these changes could be **backwards incompatible**. Keep that in mind before you
|
|
62
|
+
update PolarToolkit to a newer version.
|
|
63
|
+
|
|
64
|
+
I welcome any feedback, ideas, or contributions! Please contact us on the
|
|
65
|
+
[GitHub discussions page](https://github.com/mdtanker/polartoolkit/discussions)
|
|
66
|
+
or submit an [issue on GitHub](https://github.com/mdtanker/polartoolkit/issues)
|
|
67
|
+
for problems or feature ideas.
|
|
68
|
+
|
|
69
|
+
<!-- SPHINX-START2 -->
|
|
70
|
+
|
|
71
|
+
The **PolarToolkit** python package provides some basic tools to help in
|
|
72
|
+
conducting polar research. You can use it to download common datasets (i.e.
|
|
73
|
+
BedMachine, Bedmap2, MODIA MoA), create maps and plots specific to Antarctica
|
|
74
|
+
(soon Greenland and the Arctic as well), and visualize data with multiple
|
|
75
|
+
methods.
|
|
76
|
+
|
|
77
|
+
Feel free to use, share, modify, and
|
|
78
|
+
[contribute](https://antarctic-plots.readthedocs.io/en/latest/contribute.html)
|
|
79
|
+
to this project. I've mostly made this for personal usage so expect significant
|
|
80
|
+
changes. Hopefully, I'll implement more tests and Gallery examples soon.
|
|
81
|
+
|
|
82
|
+
## Project goals
|
|
83
|
+
|
|
84
|
+
Below is a list of some features I hope to eventually include. Feel free to make
|
|
85
|
+
a feature request through
|
|
86
|
+
[GitHub Issues](https://github.com/mdtanker/polartoolkit/issues/new/choose).
|
|
87
|
+
|
|
88
|
+
- Create 3D interactive models to help visualize data.
|
|
89
|
+
- Include more datasets to aid in downloading and storage.
|
|
90
|
+
- Additional projections and possible support for the Arctic region as well.
|
|
91
|
+
|
|
92
|
+
<!-- SPHINX-END2 -->
|
|
93
|
+
|
|
94
|
+
## How to contribute
|
|
95
|
+
|
|
96
|
+
I really welcome all forms of contribution! If you have any questions, comments
|
|
97
|
+
or suggestions, please open a [discussion]() or [issue (feature request)]() on
|
|
98
|
+
the [GitHub page](https://github.com/mdtanker/polartoolkit/)!
|
|
99
|
+
|
|
100
|
+
Also, please feel free to share how you're using PolarToolkit, I'd love to know.
|
|
101
|
+
|
|
102
|
+
Please, read our
|
|
103
|
+
[Contributor Guide](https://github.com/mdtanker/polartoolkit/blob/main/.github/CONTRIBUTING.md)
|
|
104
|
+
to learn how you can contribute to the project.
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=64"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "polartoolkit"
|
|
7
|
+
authors = [
|
|
8
|
+
{name = "Matt Tankersley", email = "matt.d.tankersley@gmail.com"},
|
|
9
|
+
]
|
|
10
|
+
description = "Helpful tools for polar researchers"
|
|
11
|
+
requires-python = ">=3.9"
|
|
12
|
+
classifiers = [
|
|
13
|
+
"Development Status :: 3 - Alpha",
|
|
14
|
+
"Intended Audience :: Science/Research",
|
|
15
|
+
"Intended Audience :: Developers",
|
|
16
|
+
"Intended Audience :: Education",
|
|
17
|
+
"License :: OSI Approved :: MIT License",
|
|
18
|
+
"Natural Language :: English",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
20
|
+
"Topic :: Scientific/Engineering",
|
|
21
|
+
"Programming Language :: Python",
|
|
22
|
+
"Programming Language :: Python :: 3",
|
|
23
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
24
|
+
"Programming Language :: Python :: 3.9",
|
|
25
|
+
"Programming Language :: Python :: 3.10",
|
|
26
|
+
"Programming Language :: Python :: 3.11",
|
|
27
|
+
"Typing :: Typed",
|
|
28
|
+
]
|
|
29
|
+
readme = "README.md"
|
|
30
|
+
version = "0.2.0"
|
|
31
|
+
license = {file = "LICENSE"}
|
|
32
|
+
|
|
33
|
+
keywords = ["cryosphere", "antarctica", "arctic", "greenland", "maps", "plotting", "pygmt", "cross-section"]
|
|
34
|
+
|
|
35
|
+
dependencies = [
|
|
36
|
+
"pandas",
|
|
37
|
+
"openpyxl",
|
|
38
|
+
"pooch[progress]", # includes tqdm
|
|
39
|
+
"verde>=1.8.0",
|
|
40
|
+
"xarray[io]", # includes netCDF4, h5netcdf, scipy, pydap, zarr, fsspec, cftime, rasterio, cfgrib, pooch
|
|
41
|
+
"harmonica>=0.6.0",
|
|
42
|
+
"pyproj",
|
|
43
|
+
"matplotlib",
|
|
44
|
+
"pyogrio",
|
|
45
|
+
"rioxarray",
|
|
46
|
+
"scipy",
|
|
47
|
+
"numpy",
|
|
48
|
+
"pygmt",
|
|
49
|
+
"geopandas",
|
|
50
|
+
"zarr",
|
|
51
|
+
"python-dotenv",
|
|
52
|
+
"nptyping",
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
[project.optional-dependencies]
|
|
56
|
+
interactive = [
|
|
57
|
+
"geoviews",
|
|
58
|
+
"cartopy",
|
|
59
|
+
"ipyleaflet",
|
|
60
|
+
"ipython",
|
|
61
|
+
]
|
|
62
|
+
viz = [
|
|
63
|
+
"seaborn",
|
|
64
|
+
]
|
|
65
|
+
test = [
|
|
66
|
+
"pytest >=6",
|
|
67
|
+
"pytest-cov >=3",
|
|
68
|
+
"deepdiff",
|
|
69
|
+
]
|
|
70
|
+
docs = [
|
|
71
|
+
"sphinx>=4.0",
|
|
72
|
+
"myst_parser",
|
|
73
|
+
"sphinx_copybutton",
|
|
74
|
+
"sphinx_autodoc_typehints",
|
|
75
|
+
"sphinx-book-theme>=0.3",
|
|
76
|
+
"sphinx_design",
|
|
77
|
+
"nbsphinx",
|
|
78
|
+
"nbconvert",
|
|
79
|
+
]
|
|
80
|
+
dev = [
|
|
81
|
+
"polartoolkit[interactive,viz,test,docs]",
|
|
82
|
+
"ruff",
|
|
83
|
+
"nox",
|
|
84
|
+
"pre-commit",
|
|
85
|
+
"pylint",
|
|
86
|
+
"python-semantic-release >=8",
|
|
87
|
+
"ipykernel",
|
|
88
|
+
"jupyterlab",
|
|
89
|
+
"mypy",
|
|
90
|
+
"pathspec",
|
|
91
|
+
]
|
|
92
|
+
all = [
|
|
93
|
+
"polartoolkit[interactive,viz,test,dev,docs]",
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
[project.urls]
|
|
97
|
+
Homepage = "https://github.com/mdtanker/polartoolkit"
|
|
98
|
+
Documentation = "https://antarctic-plots.readthedocs.io/"
|
|
99
|
+
"Bug Tracker" = "https://github.com/mdtanker/polartoolkit/issues"
|
|
100
|
+
Discussions = "https://github.com/mdtanker/polartoolkit/discussions"
|
|
101
|
+
Changelog = "https://antarctic-plots.readthedocs.io/en/latest/changelog.html"
|
|
102
|
+
|
|
103
|
+
[tool.coverage]
|
|
104
|
+
run.source = ["polartoolkit"]
|
|
105
|
+
port.exclude_lines = [
|
|
106
|
+
'pragma: no cover',
|
|
107
|
+
'\.\.\.',
|
|
108
|
+
'if typing.TYPE_CHECKING:',
|
|
109
|
+
]
|
|
110
|
+
|
|
111
|
+
[tool.pytest.ini_options]
|
|
112
|
+
minversion = "6.0"
|
|
113
|
+
addopts = [
|
|
114
|
+
"-rA",
|
|
115
|
+
"--showlocals",
|
|
116
|
+
"--strict-markers",
|
|
117
|
+
"--strict-config",
|
|
118
|
+
"--cov", "--cov-report", "term-missing",
|
|
119
|
+
]
|
|
120
|
+
xfail_strict = true
|
|
121
|
+
filterwarnings = [
|
|
122
|
+
"error",
|
|
123
|
+
"ignore::DeprecationWarning",
|
|
124
|
+
"ignore::PendingDeprecationWarning",
|
|
125
|
+
"ignore::FutureWarning",
|
|
126
|
+
]
|
|
127
|
+
log_cli_level = "INFO"
|
|
128
|
+
testpaths = [
|
|
129
|
+
"tests",
|
|
130
|
+
]
|
|
131
|
+
markers = [
|
|
132
|
+
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
133
|
+
"earthdata: marks tests as requiring earthdata login info (deselect with '-m \"not earthdata\"')",
|
|
134
|
+
"issue: mark tests with current issues (deselect with '-m \"not issues\"')",
|
|
135
|
+
"fetch: marks tests which fetch data",
|
|
136
|
+
]
|
|
137
|
+
|
|
138
|
+
[tool.mypy]
|
|
139
|
+
files = ["src"]
|
|
140
|
+
python_version = "3.9"
|
|
141
|
+
warn_unused_configs = true
|
|
142
|
+
strict = true
|
|
143
|
+
show_error_codes = true
|
|
144
|
+
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
|
|
145
|
+
warn_unreachable = true
|
|
146
|
+
disallow_untyped_defs = false
|
|
147
|
+
disallow_incomplete_defs = false
|
|
148
|
+
ignore_missing_imports = true
|
|
149
|
+
|
|
150
|
+
[[tool.mypy.overrides]]
|
|
151
|
+
module = "polartoolkit.*"
|
|
152
|
+
disallow_untyped_defs = true
|
|
153
|
+
disallow_incomplete_defs = true
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
[tool.ruff]
|
|
157
|
+
lint.select = [
|
|
158
|
+
"E", "F", "W", # flake8
|
|
159
|
+
"B", # flake8-bugbear
|
|
160
|
+
"I", # isort
|
|
161
|
+
"ARG", # flake8-unused-arguments
|
|
162
|
+
"C4", # flake8-comprehensions
|
|
163
|
+
"EM", # flake8-errmsg
|
|
164
|
+
"ICN", # flake8-import-conventions
|
|
165
|
+
"ISC", # flake8-implicit-str-concat
|
|
166
|
+
"G", # flake8-logging-format
|
|
167
|
+
"PGH", # pygrep-hooks
|
|
168
|
+
"PIE", # flake8-pie
|
|
169
|
+
"PL", # pylint
|
|
170
|
+
"PT", # flake8-pytest-style
|
|
171
|
+
"PTH", # flake8-use-pathlib
|
|
172
|
+
"RET", # flake8-return
|
|
173
|
+
"RUF", # Ruff-specific
|
|
174
|
+
"SIM", # flake8-simplify
|
|
175
|
+
"T20", # flake8-print
|
|
176
|
+
"UP", # pyupgrade
|
|
177
|
+
"YTT", # flake8-2020
|
|
178
|
+
"EXE", # flake8-executable
|
|
179
|
+
"NPY", # NumPy specific rules
|
|
180
|
+
"PD", # pandas-vet
|
|
181
|
+
]
|
|
182
|
+
lint.extend-ignore = [
|
|
183
|
+
"PLR", # Design related pylint codes
|
|
184
|
+
"G004", # Logging with f-strings
|
|
185
|
+
"PD901", # Bad variable name warning
|
|
186
|
+
"PD003", # Changes .isna to .isnull
|
|
187
|
+
"PD004", # Changes .notna to .notnull
|
|
188
|
+
"PD011", # Changes .values() to .to_numpy()
|
|
189
|
+
]
|
|
190
|
+
src = ["src"]
|
|
191
|
+
lint.unfixable = [
|
|
192
|
+
"T20", # Removes print statements
|
|
193
|
+
"F841", # Removes unused variables
|
|
194
|
+
"PD003", # Changes .isna to .isnull
|
|
195
|
+
"PD004", # Changes .notna to .notnull
|
|
196
|
+
"PD011", # Changes .values() to .to_numpy()
|
|
197
|
+
]
|
|
198
|
+
exclude = ["docs/index.md", "CHANGELOG.md", "tools/license_notice.py"]
|
|
199
|
+
line-length = 88 # Set the maximum line length to 88.
|
|
200
|
+
lint.flake8-unused-arguments.ignore-variadic-names = true
|
|
201
|
+
# lint.isort.required-imports = ["from __future__ import annotations"]
|
|
202
|
+
# Uncomment if using a _compat.typing backport
|
|
203
|
+
# typing-modules = ["polartoolkit._compat.typing"]
|
|
204
|
+
extend-include = ["*.ipynb"]
|
|
205
|
+
[tool.ruff.lint.per-file-ignores]
|
|
206
|
+
"tests/**" = ["T20"]
|
|
207
|
+
"noxfile.py" = ["T20"]
|
|
208
|
+
"*.ipynb" = ["E402", "B018", "T201", "F821"]
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
[tool.pylint]
|
|
212
|
+
py-version = "3.9"
|
|
213
|
+
ignore-paths = ["CHANGELOG.md"]
|
|
214
|
+
reports.output-format = "colorized"
|
|
215
|
+
similarities.ignore-imports = "yes"
|
|
216
|
+
similarities.min-similarity-lines = 5
|
|
217
|
+
messages_control.disable = [
|
|
218
|
+
"design",
|
|
219
|
+
"fixme",
|
|
220
|
+
"line-too-long",
|
|
221
|
+
"missing-module-docstring",
|
|
222
|
+
"wrong-import-position",
|
|
223
|
+
"cyclic-import",
|
|
224
|
+
]
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
[tool.semantic_release]
|
|
228
|
+
version_variables = ["src/polartoolkit/__init__.py:__version__"]
|
|
229
|
+
version_toml = ["pyproject.toml:project.version"]
|
|
230
|
+
major_on_zero = false
|
|
231
|
+
build_command = """
|
|
232
|
+
python -m pip install build
|
|
233
|
+
python -m build .
|
|
234
|
+
"""
|
|
235
|
+
commit_parser = "angular"
|
|
236
|
+
|
|
237
|
+
[tool.semantic_release.branches.main]
|
|
238
|
+
match = "main"
|
|
239
|
+
prerelease = false
|
|
240
|
+
|
|
241
|
+
[tool.semantic_release.branches.notmain]
|
|
242
|
+
match = "(?!main)"
|
|
243
|
+
prerelease = true
|
|
244
|
+
|
|
245
|
+
[tool.semantic_release.changelog]
|
|
246
|
+
template_dir = "templates"
|
|
247
|
+
|
|
248
|
+
[tool.semantic_release.changelog.environment]
|
|
249
|
+
trim_blocks = true
|
|
250
|
+
|
|
251
|
+
[tool.semantic_release.commit_parser_options]
|
|
252
|
+
allowed_tags = [
|
|
253
|
+
"build", # Changes that affect the build system or external dependencies
|
|
254
|
+
"chore", # Changes to the build process or auxiliary tools and libraries such as documentation generation
|
|
255
|
+
"ci", # CI related changes
|
|
256
|
+
"docs", # Documentation only changes
|
|
257
|
+
"feat", # A new feature
|
|
258
|
+
"fix", # A bug fix
|
|
259
|
+
"perf", # A code change that improves performance
|
|
260
|
+
"style", # Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
|
|
261
|
+
"refactor", # A code change that neither fixes a bug nor adds a feature
|
|
262
|
+
"test", # Adding missing or correcting existing tests
|
|
263
|
+
]
|
|
264
|
+
# including BREAKING CHANGE: in the commit message will trigger a major release
|
|
265
|
+
minor_tags = ["feat"] # tags which result in minor releases
|
|
266
|
+
patch_tags = ["fix", "perf"] # tags which result in patch releases
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Copyright (c) 2022 The Polartoolkit Developers.
|
|
2
|
+
# Distributed under the terms of the MIT License.
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
#
|
|
5
|
+
# This code is part of the package:
|
|
6
|
+
# PolarToolkit (https://github.com/mdtanker/polartoolkit)
|
|
7
|
+
#
|
|
8
|
+
"""Helpful tools for polar researchers"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
__version__ = "0.2.0"
|