esmporium-processing 0.1.1__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.
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2026, esmporium-processing contributors (https://github.com/esmporium/esmporium-processing/graphs/contributors)
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.3
2
+ Name: esmporium-processing
3
+ Version: 0.1.1
4
+ Summary: Processing of datasets retrieved with esmporium (https://github.com/esmporium/esmporium).
5
+ Author: Zebedee Nicholls
6
+ Author-email: Zebedee Nicholls <zebedee.nicholls@climate-energy-college.org>
7
+ License: 3-Clause BSD License
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Science/Research
10
+ Classifier: License :: OSI Approved :: BSD License
11
+ Classifier: Natural Language :: English
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Typing :: Typed
22
+ Requires-Python: >=3.10
23
+ Project-URL: Changelog, https://esmporium-processing.readthedocs.io/en/stable/changelog
24
+ Project-URL: Documentation, https://esmporium-processing.readthedocs.io
25
+ Project-URL: Homepage, https://esmporium-processing.readthedocs.io
26
+ Project-URL: Issues, https://github.com/esmporium/esmporium-processing/issues
27
+ Project-URL: Repository, https://github.com/esmporium/esmporium-processing
28
+ Provides-Extra: locked
29
+ Description-Content-Type: text/markdown
30
+
31
+ <!--- --8<-- [start:description] -->
32
+ # esmporium processing
33
+
34
+ Processing of datasets retrieved with esmporium (https://github.com/esmporium/esmporium).
35
+
36
+ **Key info :**
37
+ [![Docs](https://readthedocs.org/projects/esmporium-processing/badge/?version=latest)](https://esmporium-processing.readthedocs.io)
38
+ [![Main branch: supported Python versions](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fesmporium%2Fesmporium-processing%2Fmain%2Fpyproject.toml)](https://github.com/esmporium/esmporium-processing/blob/main/pyproject.toml)
39
+ [![Licence](https://img.shields.io/pypi/l/esmporium-processing?label=licence)](https://github.com/esmporium/esmporium-processing/blob/main/LICENCE)
40
+
41
+ **PyPI :**
42
+ [![PyPI](https://img.shields.io/pypi/v/esmporium-processing.svg)](https://pypi.org/project/esmporium-processing/)
43
+ [![PyPI install](https://github.com/esmporium/esmporium-processing/actions/workflows/install-pypi.yaml/badge.svg?branch=main)](https://github.com/esmporium/esmporium-processing/actions/workflows/install-pypi.yaml)
44
+
45
+ **Tests :**
46
+ [![CI](https://github.com/esmporium/esmporium-processing/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/esmporium/esmporium-processing/actions/workflows/ci.yaml)
47
+ [![Coverage](https://codecov.io/gh/esmporium/esmporium-processing/branch/main/graph/badge.svg)](https://codecov.io/gh/esmporium/esmporium-processing)
48
+
49
+ **Other info :**
50
+ [![Last Commit](https://img.shields.io/github/last-commit/esmporium/esmporium-processing.svg)](https://github.com/esmporium/esmporium-processing/commits/main)
51
+ [![Contributors](https://img.shields.io/github/contributors/esmporium/esmporium-processing.svg)](https://github.com/esmporium/esmporium-processing/graphs/contributors)
52
+ ## Status
53
+
54
+ <!---
55
+
56
+ We recommend having a status line in your repo
57
+ to tell anyone who stumbles on your repository where you're up to.
58
+ Some suggested options:
59
+
60
+ - prototype: the project is just starting up and the code is all prototype
61
+ - development: the project is actively being worked on
62
+ - finished: the project has achieved what it wanted
63
+ and is no longer being worked on, we won't reply to any issues
64
+ - dormant: the project is no longer worked on
65
+ but we might come back to it,
66
+ if you have questions, feel free to raise an issue
67
+ - abandoned: this project is no longer worked on
68
+ and we won't reply to any issues
69
+ -->
70
+
71
+ - prototype: the project is just starting up and the code is all prototype
72
+
73
+ <!--- --8<-- [end:description] -->
74
+
75
+ Full documentation can be found at:
76
+ [esmporium-processing.readthedocs.io](https://esmporium-processing.readthedocs.io/en/latest/).
77
+ We recommend reading the docs there because the internal documentation links
78
+ don't render correctly on GitHub's viewer.
79
+
80
+ ## Installation
81
+
82
+ <!--- --8<-- [start:installation] -->
83
+ ### As an application
84
+
85
+ If you want to use esmporium processing as an application,
86
+ then we recommend using the 'locked' version of the package.
87
+ This version pins the version of all dependencies too,
88
+ which reduces the chance of installation issues
89
+ because of breaking updates to dependencies.
90
+
91
+ The locked version of esmporium processing can be installed with
92
+
93
+ === "pip"
94
+ ```sh
95
+ pip install 'esmporium-processing[locked]'
96
+ ```
97
+
98
+ ### As a library
99
+
100
+ If you want to use esmporium processing as a library,
101
+ for example you want to use it
102
+ as a dependency in another package/application that you're building,
103
+ then we recommend installing the package with the commands below.
104
+ This method provides the loosest pins possible of all dependencies.
105
+ This gives you, the package/application developer,
106
+ as much freedom as possible to set the versions of different packages.
107
+ However, the tradeoff with this freedom is that you may install
108
+ incompatible versions of esmporium processing's dependencies
109
+ (we cannot test all combinations of dependencies,
110
+ particularly ones which haven't been released yet!).
111
+ Hence, you may run into installation issues.
112
+ If you believe these are because of a problem in esmporium processing,
113
+ please [raise an issue](https://github.com/esmporium/esmporium-processing/issues).
114
+
115
+ The (non-locked) version of esmporium processing can be installed with
116
+
117
+ === "pip"
118
+ ```sh
119
+ pip install esmporium-processing
120
+ ```
121
+
122
+ ### For developers
123
+
124
+ For development, we rely on [uv](https://docs.astral.sh/uv/)
125
+ for all our dependency management.
126
+ To get started, you will need to make sure that uv is installed
127
+ ([instructions here](https://docs.astral.sh/uv/getting-started/installation/)
128
+ (we found that the self-managed install was best,
129
+ particularly for upgrading uv later).
130
+
131
+ For all of our work, we use our `Makefile`.
132
+ You can read the instructions out and run the commands by hand if you wish,
133
+ but we generally discourage this because it can be error prone.
134
+ In order to create your environment, run `make virtual-environment`.
135
+
136
+ If there are any issues, the messages from the `Makefile` should guide you through.
137
+ If not, please raise an issue in the
138
+ [issue tracker](https://github.com/esmporium/esmporium-processing/issues).
139
+
140
+ For the rest of our developer docs, please see [development][development].
141
+
142
+ <!--- --8<-- [end:installation] -->
143
+
144
+ ## Original template
145
+
146
+ This project was generated from this template:
147
+ [copier core python repository](https://gitlab.com/openscm/copier-core-python-repository).
148
+ [copier](https://copier.readthedocs.io/en/stable/) is used to manage and
149
+ distribute this template.
@@ -0,0 +1,119 @@
1
+ <!--- --8<-- [start:description] -->
2
+ # esmporium processing
3
+
4
+ Processing of datasets retrieved with esmporium (https://github.com/esmporium/esmporium).
5
+
6
+ **Key info :**
7
+ [![Docs](https://readthedocs.org/projects/esmporium-processing/badge/?version=latest)](https://esmporium-processing.readthedocs.io)
8
+ [![Main branch: supported Python versions](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fesmporium%2Fesmporium-processing%2Fmain%2Fpyproject.toml)](https://github.com/esmporium/esmporium-processing/blob/main/pyproject.toml)
9
+ [![Licence](https://img.shields.io/pypi/l/esmporium-processing?label=licence)](https://github.com/esmporium/esmporium-processing/blob/main/LICENCE)
10
+
11
+ **PyPI :**
12
+ [![PyPI](https://img.shields.io/pypi/v/esmporium-processing.svg)](https://pypi.org/project/esmporium-processing/)
13
+ [![PyPI install](https://github.com/esmporium/esmporium-processing/actions/workflows/install-pypi.yaml/badge.svg?branch=main)](https://github.com/esmporium/esmporium-processing/actions/workflows/install-pypi.yaml)
14
+
15
+ **Tests :**
16
+ [![CI](https://github.com/esmporium/esmporium-processing/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/esmporium/esmporium-processing/actions/workflows/ci.yaml)
17
+ [![Coverage](https://codecov.io/gh/esmporium/esmporium-processing/branch/main/graph/badge.svg)](https://codecov.io/gh/esmporium/esmporium-processing)
18
+
19
+ **Other info :**
20
+ [![Last Commit](https://img.shields.io/github/last-commit/esmporium/esmporium-processing.svg)](https://github.com/esmporium/esmporium-processing/commits/main)
21
+ [![Contributors](https://img.shields.io/github/contributors/esmporium/esmporium-processing.svg)](https://github.com/esmporium/esmporium-processing/graphs/contributors)
22
+ ## Status
23
+
24
+ <!---
25
+
26
+ We recommend having a status line in your repo
27
+ to tell anyone who stumbles on your repository where you're up to.
28
+ Some suggested options:
29
+
30
+ - prototype: the project is just starting up and the code is all prototype
31
+ - development: the project is actively being worked on
32
+ - finished: the project has achieved what it wanted
33
+ and is no longer being worked on, we won't reply to any issues
34
+ - dormant: the project is no longer worked on
35
+ but we might come back to it,
36
+ if you have questions, feel free to raise an issue
37
+ - abandoned: this project is no longer worked on
38
+ and we won't reply to any issues
39
+ -->
40
+
41
+ - prototype: the project is just starting up and the code is all prototype
42
+
43
+ <!--- --8<-- [end:description] -->
44
+
45
+ Full documentation can be found at:
46
+ [esmporium-processing.readthedocs.io](https://esmporium-processing.readthedocs.io/en/latest/).
47
+ We recommend reading the docs there because the internal documentation links
48
+ don't render correctly on GitHub's viewer.
49
+
50
+ ## Installation
51
+
52
+ <!--- --8<-- [start:installation] -->
53
+ ### As an application
54
+
55
+ If you want to use esmporium processing as an application,
56
+ then we recommend using the 'locked' version of the package.
57
+ This version pins the version of all dependencies too,
58
+ which reduces the chance of installation issues
59
+ because of breaking updates to dependencies.
60
+
61
+ The locked version of esmporium processing can be installed with
62
+
63
+ === "pip"
64
+ ```sh
65
+ pip install 'esmporium-processing[locked]'
66
+ ```
67
+
68
+ ### As a library
69
+
70
+ If you want to use esmporium processing as a library,
71
+ for example you want to use it
72
+ as a dependency in another package/application that you're building,
73
+ then we recommend installing the package with the commands below.
74
+ This method provides the loosest pins possible of all dependencies.
75
+ This gives you, the package/application developer,
76
+ as much freedom as possible to set the versions of different packages.
77
+ However, the tradeoff with this freedom is that you may install
78
+ incompatible versions of esmporium processing's dependencies
79
+ (we cannot test all combinations of dependencies,
80
+ particularly ones which haven't been released yet!).
81
+ Hence, you may run into installation issues.
82
+ If you believe these are because of a problem in esmporium processing,
83
+ please [raise an issue](https://github.com/esmporium/esmporium-processing/issues).
84
+
85
+ The (non-locked) version of esmporium processing can be installed with
86
+
87
+ === "pip"
88
+ ```sh
89
+ pip install esmporium-processing
90
+ ```
91
+
92
+ ### For developers
93
+
94
+ For development, we rely on [uv](https://docs.astral.sh/uv/)
95
+ for all our dependency management.
96
+ To get started, you will need to make sure that uv is installed
97
+ ([instructions here](https://docs.astral.sh/uv/getting-started/installation/)
98
+ (we found that the self-managed install was best,
99
+ particularly for upgrading uv later).
100
+
101
+ For all of our work, we use our `Makefile`.
102
+ You can read the instructions out and run the commands by hand if you wish,
103
+ but we generally discourage this because it can be error prone.
104
+ In order to create your environment, run `make virtual-environment`.
105
+
106
+ If there are any issues, the messages from the `Makefile` should guide you through.
107
+ If not, please raise an issue in the
108
+ [issue tracker](https://github.com/esmporium/esmporium-processing/issues).
109
+
110
+ For the rest of our developer docs, please see [development][development].
111
+
112
+ <!--- --8<-- [end:installation] -->
113
+
114
+ ## Original template
115
+
116
+ This project was generated from this template:
117
+ [copier core python repository](https://gitlab.com/openscm/copier-core-python-repository).
118
+ [copier](https://copier.readthedocs.io/en/stable/) is used to manage and
119
+ distribute this template.
@@ -0,0 +1,413 @@
1
+ [project]
2
+ name = "esmporium-processing"
3
+ version = "0.1.1"
4
+ description = "Processing of datasets retrieved with esmporium (https://github.com/esmporium/esmporium)."
5
+ authors = [
6
+ { name = "Zebedee Nicholls", email = "zebedee.nicholls@climate-energy-college.org" },
7
+ ]
8
+ requires-python = ">=3.10"
9
+ dependencies = []
10
+ readme = "README.md"
11
+ classifiers = [
12
+ "Development Status :: 3 - Alpha",
13
+ "Intended Audience :: Science/Research",
14
+ "License :: OSI Approved :: BSD License",
15
+ "Natural Language :: English",
16
+ "Operating System :: OS Independent",
17
+ "Programming Language :: Python",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3 :: Only",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Programming Language :: Python :: 3.13",
24
+ "Programming Language :: Python :: 3.14",
25
+ "Typing :: Typed",
26
+ ]
27
+
28
+ [project.license]
29
+ text = "3-Clause BSD License"
30
+
31
+ [project.urls]
32
+ Homepage = "https://esmporium-processing.readthedocs.io"
33
+ Documentation = "https://esmporium-processing.readthedocs.io"
34
+ Changelog = "https://esmporium-processing.readthedocs.io/en/stable/changelog"
35
+ Repository = "https://github.com/esmporium/esmporium-processing"
36
+ Issues = "https://github.com/esmporium/esmporium-processing/issues"
37
+
38
+ [project.optional-dependencies]
39
+ locked = []
40
+
41
+ [dependency-groups]
42
+ dev = [
43
+ "liccheck==0.9.2",
44
+ "mypy==1.14.0",
45
+ "pip==24.3.1",
46
+ "pre-commit==4.0.1",
47
+ "setuptools==75.6.0",
48
+ "tomli==2.2.1 ; python_full_version < '3.11'",
49
+ "tomli-w==1.2.0",
50
+ "towncrier==24.8.0",
51
+ "cfgv==3.4.0",
52
+ "click==8.1.8",
53
+ "colorama==0.4.6 ; sys_platform == 'win32'",
54
+ "distlib==0.3.9",
55
+ "filelock==3.16.1",
56
+ "identify==2.6.5",
57
+ "jinja2==3.1.5",
58
+ "markupsafe==3.0.2",
59
+ "mypy-extensions==1.0.0",
60
+ "nodeenv==1.9.1",
61
+ "platformdirs==4.3.6",
62
+ "pyyaml==6.0.2",
63
+ "semantic-version==2.10.0",
64
+ "toml==0.10.2",
65
+ "typing-extensions==4.12.2",
66
+ "virtualenv==20.28.1",
67
+ "ty==0.0.33",
68
+ ]
69
+ docs = [
70
+ "attrs==25.3.0",
71
+ "mkdocs-autorefs==1.4.4",
72
+ "mkdocs-gen-files==0.6.1",
73
+ "mkdocs-literate-nav==0.6.3",
74
+ "mkdocs-material==9.7.6",
75
+ "mkdocs-section-index==0.3.12",
76
+ "mkdocstrings-python-xref==2.1.1",
77
+ "mkdocstrings-python==2.0.3",
78
+ "properdocs==1.6.7",
79
+ "pymdown-extensions==10.21.3",
80
+ "ruff==0.15.12",
81
+ "babel==2.18.0",
82
+ "backrefs==7.0",
83
+ "certifi==2026.5.20",
84
+ "charset-normalizer==3.4.7",
85
+ "click==8.1.8",
86
+ "colorama==0.4.6",
87
+ "ghp-import==2.1.0",
88
+ "griffe==2.0.2",
89
+ "griffecli==2.0.2",
90
+ "griffelib==2.0.2",
91
+ "idna==3.16",
92
+ "jinja2==3.1.5",
93
+ "markdown==3.10.2",
94
+ "markupsafe==3.0.2",
95
+ "mergedeep==1.3.4",
96
+ "mkdocs-get-deps==0.2.2",
97
+ "mkdocs-material-extensions==1.3.1",
98
+ "mkdocs==1.6.1",
99
+ "mkdocstrings==1.0.4",
100
+ "packaging==24.2",
101
+ "paginate==0.5.7",
102
+ "pathspec==1.1.1",
103
+ "platformdirs==4.3.6",
104
+ "pygments==2.19.1",
105
+ "python-dateutil==2.9.0.post0",
106
+ "pyyaml-env-tag==1.1",
107
+ "pyyaml==6.0.2",
108
+ "requests==2.34.2",
109
+ "six==1.17.0",
110
+ "typing-extensions==4.12.2 ; python_full_version < '3.11'",
111
+ "urllib3==2.7.0",
112
+ "watchdog==6.0.0",
113
+ "jupyterlab==4.4.5",
114
+ "jupytext==1.17.2",
115
+ "mkdocs-jupyter==0.25.1",
116
+ "anyio==4.13.0",
117
+ "appnope==0.1.4 ; sys_platform == 'darwin'",
118
+ "argon2-cffi-bindings==25.1.0",
119
+ "argon2-cffi==25.1.0",
120
+ "arrow==1.4.0",
121
+ "asttokens==3.0.1",
122
+ "async-lru==2.3.0",
123
+ "beautifulsoup4==4.14.3",
124
+ "bleach==6.3.0",
125
+ "cffi==2.0.0",
126
+ "comm==0.2.3",
127
+ "debugpy==1.8.20",
128
+ "decorator==5.3.1",
129
+ "defusedxml==0.7.1",
130
+ "exceptiongroup==1.3.0 ; python_full_version < '3.11'",
131
+ "executing==2.2.1",
132
+ "fastjsonschema==2.21.2",
133
+ "fqdn==1.5.1",
134
+ "h11==0.16.0",
135
+ "httpcore==1.0.9",
136
+ "httpx==0.28.1",
137
+ "ipykernel==6.31.0",
138
+ "ipython-pygments-lexers==1.1.1 ; python_full_version >= '3.11'",
139
+ "ipython==8.39.0 ; python_full_version < '3.11'",
140
+ "ipython==9.13.0 ; python_full_version >= '3.11'",
141
+ "isoduration==20.11.0",
142
+ "jedi==0.20.0",
143
+ "json5==0.14.0",
144
+ "jsonpointer==3.1.1",
145
+ "jsonschema-specifications==2025.9.1",
146
+ "jsonschema==4.26.0",
147
+ "jupyter-client==8.8.0",
148
+ "jupyter-core==5.9.1",
149
+ "jupyter-events==0.12.1",
150
+ "jupyter-lsp==2.3.1",
151
+ "jupyter-server-terminals==0.5.4",
152
+ "jupyter-server==2.18.2",
153
+ "jupyterlab-pygments==0.3.0",
154
+ "jupyterlab-server==2.28.0",
155
+ "lark==1.3.1",
156
+ "markdown-it-py==3.0.0",
157
+ "matplotlib-inline==0.2.2",
158
+ "mdit-py-plugins==0.6.1",
159
+ "mdurl==0.1.2",
160
+ "mistune==3.2.1",
161
+ "nbclient==0.10.4",
162
+ "nbconvert==7.17.1",
163
+ "nbformat==5.10.4",
164
+ "nest-asyncio==1.6.0",
165
+ "notebook-shim==0.2.4",
166
+ "overrides==7.7.0 ; python_full_version < '3.12'",
167
+ "pandocfilters==1.5.1",
168
+ "parso==0.8.7",
169
+ "pexpect==4.9.0 ; sys_platform != 'emscripten' and sys_platform != 'win32'",
170
+ "prometheus-client==0.25.0",
171
+ "prompt-toolkit==3.0.52",
172
+ "psutil==7.2.2",
173
+ "ptyprocess==0.7.0 ; os_name != 'nt' or (sys_platform != 'emscripten' and sys_platform != 'win32')",
174
+ "pure-eval==0.2.3",
175
+ "pycparser==3.0 ; implementation_name != 'PyPy'",
176
+ "python-json-logger==4.1.0",
177
+ "pywinpty==3.0.3 ; os_name == 'nt'",
178
+ "pyzmq==27.1.0",
179
+ "referencing==0.37.0",
180
+ "rfc3339-validator==0.1.4",
181
+ "rfc3986-validator==0.1.1",
182
+ "rfc3987-syntax==1.1.0",
183
+ "rpds-py==0.30.0",
184
+ "send2trash==2.1.0",
185
+ "setuptools==75.6.0",
186
+ "soupsieve==2.8.3",
187
+ "stack-data==0.6.3",
188
+ "terminado==0.18.1",
189
+ "tinycss2==1.4.0",
190
+ "tomli==2.2.1 ; python_full_version < '3.11'",
191
+ "tornado==6.5.5",
192
+ "traitlets==5.15.0",
193
+ "typing-extensions==4.12.2",
194
+ "tzdata==2026.2",
195
+ "uri-template==1.3.0",
196
+ "wcwidth==0.7.0",
197
+ "webcolors==25.10.0",
198
+ "webencodings==0.5.1",
199
+ "websocket-client==1.9.0",
200
+ ]
201
+ tests-min = [
202
+ "pytest==8.3.4",
203
+ "colorama==0.4.6 ; sys_platform == 'win32'",
204
+ "exceptiongroup==1.3.0 ; python_full_version < '3.11'",
205
+ "iniconfig==2.0.0",
206
+ "packaging==24.2",
207
+ "pluggy==1.5.0",
208
+ "tomli==2.2.1 ; python_full_version < '3.11'",
209
+ "typing-extensions==4.12.2 ; python_full_version < '3.11'",
210
+ ]
211
+ tests-full = [
212
+ "pytest-cov==6.0.0",
213
+ "colorama==0.4.6 ; sys_platform == 'win32'",
214
+ "coverage==7.6.10",
215
+ "exceptiongroup==1.3.0 ; python_full_version < '3.11'",
216
+ "iniconfig==2.0.0",
217
+ "packaging==24.2",
218
+ "pluggy==1.5.0",
219
+ "pytest==8.3.4",
220
+ "tomli==2.2.1 ; python_full_version <= '3.11'",
221
+ "typing-extensions==4.12.2 ; python_full_version < '3.11'",
222
+ ]
223
+ tests = [
224
+ { include-group = "tests-min" },
225
+ { include-group = "tests-full" },
226
+ ]
227
+ all-dev = [
228
+ { include-group = "dev" },
229
+ { include-group = "docs" },
230
+ { include-group = "tests" },
231
+ ]
232
+
233
+ [build-system]
234
+ requires = [
235
+ "uv_build>=0.8.7,<0.9.0",
236
+ ]
237
+ build-backend = "uv_build"
238
+
239
+ [tool.uv.build-backend]
240
+ source-include = [
241
+ "src/esmporium_processing",
242
+ "LICENCE",
243
+ ]
244
+
245
+ [tool.coverage.run]
246
+ source = [
247
+ "esmporium_processing",
248
+ ]
249
+ branch = true
250
+
251
+ [tool.coverage.report]
252
+ fail_under = 90
253
+ skip_empty = true
254
+ show_missing = true
255
+ exclude_also = [
256
+ "if TYPE_CHECKING",
257
+ "@overload",
258
+ "\\.\\.\\.",
259
+ ]
260
+
261
+ [tool.mypy]
262
+ strict = true
263
+ disallow_any_unimported = true
264
+ show_error_codes = true
265
+ show_error_context = true
266
+ warn_unreachable = true
267
+ follow_imports = "normal"
268
+
269
+ [tool.ty.environment]
270
+ extra-paths = [
271
+ "stubs",
272
+ ]
273
+ python-version = "3.10"
274
+
275
+ [tool.ty.rules]
276
+
277
+ [tool.ty.src]
278
+ include = [
279
+ "src",
280
+ ]
281
+
282
+ [tool.jupytext]
283
+ formats = "ipynb,py:percent"
284
+
285
+ [tool.pytest.ini_options]
286
+ addopts = [
287
+ "--import-mode=importlib",
288
+ ]
289
+
290
+ [tool.ruff]
291
+ src = [
292
+ "src",
293
+ ]
294
+ target-version = "py310"
295
+ line-length = 88
296
+
297
+ [tool.ruff.lint]
298
+ select = [
299
+ "E",
300
+ "W",
301
+ "F",
302
+ "I",
303
+ "D",
304
+ "PL",
305
+ "TRY",
306
+ "NPY",
307
+ "RUF",
308
+ "UP",
309
+ "S",
310
+ ]
311
+ unfixable = [
312
+ "PD002",
313
+ ]
314
+ ignore = [
315
+ "D200",
316
+ "D400",
317
+ "UP007",
318
+ ]
319
+
320
+ [tool.ruff.lint.per-file-ignores]
321
+ "test*.py" = [
322
+ "D",
323
+ "S101",
324
+ "PLR2004",
325
+ ]
326
+ "docs/*" = [
327
+ "D100",
328
+ "E402",
329
+ "S101",
330
+ ]
331
+ "scripts/*" = [
332
+ "S101",
333
+ ]
334
+ "stubs/*" = [
335
+ "PLR0913",
336
+ ]
337
+
338
+ [tool.ruff.lint.isort]
339
+ known-first-party = [
340
+ "src",
341
+ ]
342
+
343
+ [tool.ruff.lint.pydocstyle]
344
+ convention = "numpy"
345
+
346
+ [tool.ruff.format]
347
+ docstring-code-format = true
348
+
349
+ [tool.towncrier]
350
+ package = "esmporium_processing"
351
+ package_dir = "src"
352
+ filename = "docs/changelog.md"
353
+ directory = "changelog/"
354
+ title_format = "## esmporium processing {version} ({project_date})"
355
+ underlines = [
356
+ "",
357
+ "",
358
+ "",
359
+ ]
360
+ issue_format = "[#{issue}](https://github.com/esmporium/esmporium-processing/pull/{issue})"
361
+ type = [
362
+ { directory = "breaking", name = "⚠️ Breaking Changes", showcontent = true },
363
+ { directory = "deprecation", name = "🗑️ Deprecations", showcontent = true },
364
+ { directory = "feature", name = "🆕 Features", showcontent = true },
365
+ { directory = "improvement", name = "🎉 Improvements", showcontent = true },
366
+ { directory = "fix", name = "🐛 Bug Fixes", showcontent = true },
367
+ { directory = "docs", name = "📚 Improved Documentation", showcontent = true },
368
+ { directory = "trivial", name = "🔧 Trivial/Internal Changes", showcontent = false },
369
+ ]
370
+
371
+ [tool.liccheck]
372
+ authorized_licenses = [
373
+ "bsd",
374
+ "bsd license",
375
+ "BSD 3-Clause",
376
+ "BSD-3-Clause",
377
+ "BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0",
378
+ "CC0",
379
+ "apache",
380
+ "apache 2.0",
381
+ "apache-2.0",
382
+ "apache software",
383
+ "apache software license",
384
+ "Apache License, Version 2.0",
385
+ "CMU License (MIT-CMU)",
386
+ "Historical Permission Notice and Disclaimer (HPND)",
387
+ "isc",
388
+ "isc license",
389
+ "isc license (iscl)",
390
+ "gnu lgpl",
391
+ "lgpl with exceptions or zpl",
392
+ "LGPLv2+",
393
+ "GNU Lesser General Public License v2 (LGPLv2)",
394
+ "GNU Lesser General Public License v2 or later (LGPLv2+)",
395
+ "mit",
396
+ "mit license",
397
+ "Mozilla Public License 2.0 (MPL 2.0)",
398
+ "psf-2.0",
399
+ "python software foundation",
400
+ "python software foundation license",
401
+ "The Unlicense (Unlicense)",
402
+ "zpl 2.1",
403
+ ]
404
+ unauthorized_licenses = [
405
+ "agpl",
406
+ "gnu agpl",
407
+ "gpl v3",
408
+ "gplv3",
409
+ "gpl v2",
410
+ "gplv2",
411
+ "gpl v1",
412
+ "gplv1",
413
+ ]
@@ -0,0 +1,7 @@
1
+ """
2
+ Processing of datasets retrieved with esmporium (https://github.com/esmporium/esmporium).
3
+ """
4
+
5
+ import importlib.metadata
6
+
7
+ __version__ = importlib.metadata.version("esmporium_processing")
@@ -0,0 +1,35 @@
1
+ """
2
+ Operations
3
+
4
+ This module is just there to help with doc building etc. on project creation.
5
+ You will probably delete it early in the project.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+
11
+ def add_two(a: float, b: float) -> float:
12
+ """
13
+ Add two numbers
14
+
15
+ Parameters
16
+ ----------
17
+ a
18
+ First number
19
+
20
+ b
21
+ Second number
22
+
23
+ Returns
24
+ -------
25
+ :
26
+ Sum of the numbers
27
+
28
+ Examples
29
+ --------
30
+ >>> add_two(1, 3)
31
+ 4
32
+ >>> add_two(1, -3)
33
+ -2
34
+ """
35
+ return a + b