vessel-api-python 2.1.0__tar.gz → 2.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.
@@ -3,7 +3,35 @@
3
3
  All notable changes to this package are documented here.
4
4
  This project follows [Semantic Versioning](https://semver.org/).
5
5
 
6
- ## [2.1.0] - 2026-10-26
6
+ ## [2.1.1] - 2026-10-27
7
+
8
+ Documentation and spec only. No method, parameter or model changed.
9
+
10
+ ### Changed
11
+
12
+ - The API now returns `identity_match` in `PositionCheck` only when it holds a
13
+ record for the vessel and an identifier can be compared. In other cases the
14
+ field is `None`. Before this change, a vessel with no record always got `True`.
15
+ - The API now checks every returned position for a suspected glitch, measured
16
+ from the vessel's previous clean report. More positions can come back with
17
+ `suspected_glitch` set to `True`.
18
+ - The bundled OpenAPI spec is synced with the API. Field descriptions no longer
19
+ begin with an internal field name ("DistanceNM Great-circle distance..." now
20
+ reads "Great-circle distance...").
21
+
22
+ ### Fixed
23
+
24
+ - Docstrings now say when `identity_match` and `vessel_eta` are `None`.
25
+ `vessel_eta` is `None` when no destination or ETA is available, including when
26
+ the lookup does not finish in time. The 2.1.0 notes said it was `None` only
27
+ when the API held no record.
28
+ - `exceeds_typical_speed` and `speed_observed_max` describe the vessel's usual
29
+ top speed (the 99th percentile of its recent speeds) and no longer call it a
30
+ peak.
31
+ - Docstrings call the position in the response the "returned" position, where
32
+ they said "served".
33
+
34
+ ## [2.1.0] - 2026-10-27
7
35
 
8
36
  ### Added
9
37
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vessel-api-python
3
- Version: 2.1.0
3
+ Version: 2.1.1
4
4
  Summary: Python client for the Vessel Tracking API: maritime vessel tracking, port events, emissions, and nautical infrastructure.
5
5
  Project-URL: Documentation, https://vesselapi.com/docs
6
6
  Project-URL: Repository, https://github.com/vessel-api/vesselapi-python
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "vessel-api-python"
7
- version = "2.1.0"
7
+ version = "2.1.1"
8
8
  description = "Python client for the Vessel Tracking API: maritime vessel tracking, port events, emissions, and nautical infrastructure."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,6 +1,6 @@
1
1
  """Constants for the Vessel API Python SDK."""
2
2
 
3
- VERSION = "2.1.0"
3
+ VERSION = "2.1.1"
4
4
  DEFAULT_BASE_URL = "https://api.vesselapi.com/v1"
5
5
  DEFAULT_USER_AGENT = f"vesselapi-python/{VERSION}"
6
6
  DEFAULT_MAX_RETRIES = 3
@@ -127,7 +127,11 @@ class VesselResponse(_Base):
127
127
 
128
128
 
129
129
  class VesselPosition(_Base):
130
- """A real-time vessel position record from AIS data."""
130
+ """A real-time vessel position record from AIS data.
131
+
132
+ ``suspected_glitch`` is true when the move from the previous clean report
133
+ implies a speed over 500 knots.
134
+ """
131
135
 
132
136
  cog: float | None = None
133
137
  heading: int | None = None
@@ -145,7 +149,7 @@ class VesselPosition(_Base):
145
149
 
146
150
 
147
151
  class PreviousPosition(_Base):
148
- """The vessel's newest position report before the served one."""
152
+ """The vessel's newest position report before the returned one."""
149
153
 
150
154
  latitude: float | None = None
151
155
  longitude: float | None = None
@@ -153,9 +157,14 @@ class PreviousPosition(_Base):
153
157
 
154
158
 
155
159
  class PositionCheck(_Base):
156
- """How the served position compares with the vessel's previous position report.
157
-
158
- Only ``lookback_hours`` is present when no previous report falls within it.
160
+ """How the returned position compares with the vessel's previous position report.
161
+
162
+ ``lookback_hours`` is always present. ``identity_match`` is present only when a
163
+ vessel record exists and an identifier can be compared. It is true when the
164
+ returned position's identifiers match those in the record. The other fields
165
+ need a previous report within ``lookback_hours``. ``exceeds_typical_speed`` is
166
+ true when the implied speed exceeds the vessel's usual top speed (99th
167
+ percentile of its recent speeds).
159
168
  """
160
169
 
161
170
  previous_position: PreviousPosition | None = None
@@ -171,7 +180,9 @@ class PositionCheck(_Base):
171
180
  class VesselPositionResponse(_Base):
172
181
  """Response for a single vessel position lookup.
173
182
 
174
- ``vessel`` and ``vessel_eta`` are ``None`` when the API holds no record for them.
183
+ ``vessel`` is ``None`` when no vessel record exists. ``vessel_eta`` is ``None``
184
+ when no destination or ETA is available, including when the lookup does not
185
+ finish in time.
175
186
  """
176
187
 
177
188
  vessel_position: VesselPosition | None = Field(default=None, alias="vesselPosition")