JanusReader 0.18.2__tar.gz → 0.18.3__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.
@@ -1,5 +1,10 @@
1
1
  # JanusReader
2
2
 
3
+ ## 0.18.3 13-10-2026
4
+
5
+ - Suppress the missing-label warning for `geom:target_heliocentric_distance` instead of `geom:spacecraft_heliocentric_distance`.
6
+ - Restore the missing-label warning for `geom:spacecraft_heliocentric_distance`.
7
+
3
8
  ## 0.18.2 13-10-2026
4
9
 
5
10
  - Suppress the missing-label warning for `geom:spacecraft_heliocentric_distance`.
@@ -5,5 +5,5 @@ authors:
5
5
  given-names: Romolo
6
6
  orcid: "https://orcid.org/0000-0002-9793-9780"
7
7
  title: "JANUS-JUICE/janusReader"
8
- version: "0.18.2"
8
+ version: "0.18.3"
9
9
  repository-code: "https://github.com/JANUS-JUICE/janusReader"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: JanusReader
3
- Version: 0.18.2
3
+ Version: 0.18.3
4
4
  Summary: Python Reader for the data from JANUS instrument suite on-board the ESA mission JUICE
5
5
  Keywords: ESA,Space Missions,JUICE,JANUS,Jupiter
6
6
  Author: Romolo Politi, Luca Penasa
@@ -23,7 +23,7 @@ Description-Content-Type: text/markdown
23
23
 
24
24
  # JanusReader
25
25
 
26
- ![Version](https://img.shields.io/badge/version-0.18.2-blue)
26
+ ![Version](https://img.shields.io/badge/version-0.18.3-blue)
27
27
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13364878.svg)](https://doi.org/10.5281/zenodo.13364878)
28
28
 
29
29
  **JanusReader** is the official Python library for reading data from the JANUS instrument on board ESA's JUICE mission. It loads image pixels and metadata from the accompanying PDS4 label.
@@ -32,7 +32,7 @@ Description-Content-Type: text/markdown
32
32
 
33
33
  ## Installation
34
34
 
35
- The current source version is **0.18.2** and requires **Python >=3.14,<4**.
35
+ The current source version is **0.18.3** and requires **Python >=3.14,<4**.
36
36
 
37
37
  Install the published package:
38
38
 
@@ -83,7 +83,7 @@ print(product.startDT, product.endDT)
83
83
  product.Show() # General product information
84
84
  product.Show(all=True) # Includes processing and instrument metadata
85
85
 
86
- # Both distances are None when geom:Distances or the spacecraft distance is missing.
86
+ # Both distances are None when geom:Distances or the target distance is missing.
87
87
  spacecraft_solar_distance = product.spacecraftSolarDistance
88
88
  target_solar_distance = product.targetSolarDistance
89
89
  ```
@@ -109,7 +109,7 @@ Attribute names are case-sensitive.
109
109
 
110
110
  Since 0.18.0, `psa:stop_orbit_number` is no longer read, `endOrbit` is no longer created, and the information display omits End Orbit. Since 0.18.1, `psa:start_orbit_number`, `startOrbit`, and the Start Orbit display row are also removed.
111
111
 
112
- Since 0.18.2, a missing `geom:spacecraft_heliocentric_distance` produces no missing-label warning. If `geom:Distances` or the spacecraft distance field is absent, the constructor sets both `spacecraftSolarDistance` and `targetSolarDistance` to `None`. If only `geom:target_heliocentric_distance` is absent, it emits a warning and sets `targetSolarDistance` to `None`, preserving the spacecraft distance.
112
+ Since 0.18.3, a missing `geom:target_heliocentric_distance` produces no missing-label warning; a missing spacecraft distance produces a warning again. If `geom:Distances` or the target distance field is absent, the constructor sets both `spacecraftSolarDistance` and `targetSolarDistance` to `None`. If only `geom:spacecraft_heliocentric_distance` is absent, it emits a warning and sets `spacecraftSolarDistance` to `None`, preserving the target distance.
113
113
 
114
114
  Missing scalar label values generally produce a warning and return `None`; missing required XML structures can raise `IndexError`. Missing files raise `FileNotFoundError`, and malformed XML raises a parser error. With `vicar=True`, an invalid raw VICAR header raises `JanusReader.exceptions.NOT_VALID_VICAR_FILE`.
115
115
 
@@ -158,7 +158,7 @@ The repository's pytest configuration writes coverage reports under `coverage/`.
158
158
 
159
159
  Before each release, set the version with `uv version <version>` (or `uv version --bump patch`), and update the README version badge, changelog, and citation metadata to match. Commit the updated `pyproject.toml` and `uv.lock` together.
160
160
 
161
- For version 0.18.2:
161
+ For version 0.18.3:
162
162
 
163
163
  ```shell
164
164
  uv sync --locked
@@ -171,7 +171,7 @@ uv build --no-sources
171
171
  Set `UV_PUBLISH_TOKEN` to a PyPI API token through your shell or secret manager, then upload only the artifacts for the intended version:
172
172
 
173
173
  ```shell
174
- uv publish dist/janusreader-0.18.2.tar.gz dist/janusreader-0.18.2-py3-none-any.whl
174
+ uv publish dist/janusreader-0.18.3.tar.gz dist/janusreader-0.18.3-py3-none-any.whl
175
175
  ```
176
176
 
177
177
  Avoid a bare `uv publish` when `dist/` contains artifacts from older releases: it defaults to uploading all files in that directory. PyPI does not allow replacing an existing distribution filename with different contents; publish changed code under a new version.
@@ -183,7 +183,7 @@ The workflow [Upload Python Package](.github/workflows/python-publish.yml) start
183
183
  1. Commit and push the release changes, including the workflow and `uv.lock`.
184
184
  2. In the repository's **Settings → Secrets and variables → Actions**, create the repository secret `PYPI_API_TOKEN` with a PyPI token authorized to publish JanusReader, or verify that it is already configured.
185
185
  3. In **Actions → Upload Python Package**, enable the workflow if it is disabled.
186
- 4. In **Releases → Draft a new release**, choose a tag matching the package version (for example, `v0.18.2`) and target the commit containing the release changes. Add release notes and select **Publish release**.
186
+ 4. In **Releases → Draft a new release**, choose a tag matching the package version (for example, `v0.18.3`) and target the commit containing the release changes. Add release notes and select **Publish release**.
187
187
  5. Follow the job in **Actions**. It installs Python 3.14 and locked dependencies, runs tests, builds the sdist and wheel with uv, and uploads them using `pypa/gh-action-pypi-publish` and the configured token.
188
188
 
189
189
  A push, a tag alone, or a saved release draft does not trigger this workflow. It has no `workflow_dispatch` trigger, so there is no manual **Run workflow** button. GitHub Pages and environment configuration are not required for this PyPI publication.
@@ -1,6 +1,6 @@
1
1
  # JanusReader
2
2
 
3
- ![Version](https://img.shields.io/badge/version-0.18.2-blue)
3
+ ![Version](https://img.shields.io/badge/version-0.18.3-blue)
4
4
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13364878.svg)](https://doi.org/10.5281/zenodo.13364878)
5
5
 
6
6
  **JanusReader** is the official Python library for reading data from the JANUS instrument on board ESA's JUICE mission. It loads image pixels and metadata from the accompanying PDS4 label.
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## Installation
11
11
 
12
- The current source version is **0.18.2** and requires **Python >=3.14,<4**.
12
+ The current source version is **0.18.3** and requires **Python >=3.14,<4**.
13
13
 
14
14
  Install the published package:
15
15
 
@@ -60,7 +60,7 @@ print(product.startDT, product.endDT)
60
60
  product.Show() # General product information
61
61
  product.Show(all=True) # Includes processing and instrument metadata
62
62
 
63
- # Both distances are None when geom:Distances or the spacecraft distance is missing.
63
+ # Both distances are None when geom:Distances or the target distance is missing.
64
64
  spacecraft_solar_distance = product.spacecraftSolarDistance
65
65
  target_solar_distance = product.targetSolarDistance
66
66
  ```
@@ -86,7 +86,7 @@ Attribute names are case-sensitive.
86
86
 
87
87
  Since 0.18.0, `psa:stop_orbit_number` is no longer read, `endOrbit` is no longer created, and the information display omits End Orbit. Since 0.18.1, `psa:start_orbit_number`, `startOrbit`, and the Start Orbit display row are also removed.
88
88
 
89
- Since 0.18.2, a missing `geom:spacecraft_heliocentric_distance` produces no missing-label warning. If `geom:Distances` or the spacecraft distance field is absent, the constructor sets both `spacecraftSolarDistance` and `targetSolarDistance` to `None`. If only `geom:target_heliocentric_distance` is absent, it emits a warning and sets `targetSolarDistance` to `None`, preserving the spacecraft distance.
89
+ Since 0.18.3, a missing `geom:target_heliocentric_distance` produces no missing-label warning; a missing spacecraft distance produces a warning again. If `geom:Distances` or the target distance field is absent, the constructor sets both `spacecraftSolarDistance` and `targetSolarDistance` to `None`. If only `geom:spacecraft_heliocentric_distance` is absent, it emits a warning and sets `spacecraftSolarDistance` to `None`, preserving the target distance.
90
90
 
91
91
  Missing scalar label values generally produce a warning and return `None`; missing required XML structures can raise `IndexError`. Missing files raise `FileNotFoundError`, and malformed XML raises a parser error. With `vicar=True`, an invalid raw VICAR header raises `JanusReader.exceptions.NOT_VALID_VICAR_FILE`.
92
92
 
@@ -135,7 +135,7 @@ The repository's pytest configuration writes coverage reports under `coverage/`.
135
135
 
136
136
  Before each release, set the version with `uv version <version>` (or `uv version --bump patch`), and update the README version badge, changelog, and citation metadata to match. Commit the updated `pyproject.toml` and `uv.lock` together.
137
137
 
138
- For version 0.18.2:
138
+ For version 0.18.3:
139
139
 
140
140
  ```shell
141
141
  uv sync --locked
@@ -148,7 +148,7 @@ uv build --no-sources
148
148
  Set `UV_PUBLISH_TOKEN` to a PyPI API token through your shell or secret manager, then upload only the artifacts for the intended version:
149
149
 
150
150
  ```shell
151
- uv publish dist/janusreader-0.18.2.tar.gz dist/janusreader-0.18.2-py3-none-any.whl
151
+ uv publish dist/janusreader-0.18.3.tar.gz dist/janusreader-0.18.3-py3-none-any.whl
152
152
  ```
153
153
 
154
154
  Avoid a bare `uv publish` when `dist/` contains artifacts from older releases: it defaults to uploading all files in that directory. PyPI does not allow replacing an existing distribution filename with different contents; publish changed code under a new version.
@@ -160,7 +160,7 @@ The workflow [Upload Python Package](.github/workflows/python-publish.yml) start
160
160
  1. Commit and push the release changes, including the workflow and `uv.lock`.
161
161
  2. In the repository's **Settings → Secrets and variables → Actions**, create the repository secret `PYPI_API_TOKEN` with a PyPI token authorized to publish JanusReader, or verify that it is already configured.
162
162
  3. In **Actions → Upload Python Package**, enable the workflow if it is disabled.
163
- 4. In **Releases → Draft a new release**, choose a tag matching the package version (for example, `v0.18.2`) and target the commit containing the release changes. Add release notes and select **Publish release**.
163
+ 4. In **Releases → Draft a new release**, choose a tag matching the package version (for example, `v0.18.3`) and target the commit containing the release changes. Add release notes and select **Publish release**.
164
164
  5. Follow the job in **Actions**. It installs Python 3.14 and locked dependencies, runs tests, builds the sdist and wheel with uv, and uploads them using `pypa/gh-action-pypi-publish` and the configured token.
165
165
 
166
166
  A push, a tag alone, or a saved release draft does not trigger this workflow. It has no `workflow_dispatch` trigger, so there is no manual **Run workflow** button. GitHub Pages and environment configuration are not required for this PyPI publication.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "JanusReader"
3
- version = "0.18.2"
3
+ version = "0.18.3"
4
4
  description="Python Reader for the data from JANUS instrument suite on-board the ESA mission JUICE"
5
5
  requires-python = ">=3.14,<4"
6
6
  dependencies = [
@@ -53,7 +53,7 @@ def getElement(doc: md.Document | md.Element, label: str, el: int = 0) -> md.Ele
53
53
  def getValue(nodeList: md.Document | md.Element, label: str) -> str | int | float | None:
54
54
  """Read label values with JanusReader's historical conversion semantics."""
55
55
  elements = _get_elements(nodeList, label)
56
- not_error=["geom:spacecraft_heliocentric_distance"]
56
+ not_error=["geom:target_heliocentric_distance"]
57
57
  if not elements and label not in not_error:
58
58
  cons.print(f"{MSG.WARNING} Missing label {label}. The label might have been removed or renamed.")
59
59
  return None