vessel-api-python 1.2.0__tar.gz → 1.3.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.
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/PKG-INFO +16 -3
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/README.md +13 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/pyproject.toml +2 -2
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/__init__.py +11 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/_constants.py +1 -1
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/_services.py +20 -20
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/.github/workflows/ci.yml +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/.github/workflows/publish.yml +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/.gitignore +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/LICENSE +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/Makefile +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/SECURITY.md +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/examples/async_basic.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/examples/basic.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/openapi/swagger.json +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/_client.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/_errors.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/_iterator.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/_models.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/_transport.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/src/vessel_api_python/py.typed +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/__init__.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/conftest.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/test_client.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/test_errors.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/test_iterator.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/test_services.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/test_smoke.py +0 -0
- {vessel_api_python-1.2.0 → vessel_api_python-1.3.1}/tests/test_transport.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: vessel-api-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: Python client for the Vessel Tracking API — maritime vessel tracking, port events, emissions, and navigation data.
|
|
5
5
|
Project-URL: Documentation, https://vesselapi.com/docs
|
|
6
6
|
Project-URL: Repository, https://github.com/vessel-api/vesselapi-python
|
|
@@ -10,7 +10,7 @@ Author-email: Vessel API <support@vesselapi.com>
|
|
|
10
10
|
License-Expression: MIT
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Keywords: ais,maritime,sdk,tracking,vessel,vesselapi
|
|
13
|
-
Classifier: Development Status ::
|
|
13
|
+
Classifier: Development Status :: 7 - Inactive
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: License :: OSI Approved :: MIT License
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -34,6 +34,19 @@ Description-Content-Type: text/markdown
|
|
|
34
34
|
|
|
35
35
|
# vesselapi-python
|
|
36
36
|
|
|
37
|
+
> [!WARNING]
|
|
38
|
+
> **This version is no longer maintained.** Several endpoints wrapped by 1.x
|
|
39
|
+
> were retired from the VesselAPI service on 10 August 2026 and now return
|
|
40
|
+
> HTTP 410. Please upgrade:
|
|
41
|
+
>
|
|
42
|
+
> ```bash
|
|
43
|
+
> pip install 'vessel-api-python>=2'
|
|
44
|
+
> ```
|
|
45
|
+
>
|
|
46
|
+
> 2.x removes the retired surface, requires the parameters the API requires,
|
|
47
|
+
> and adds unified search, repeatable filters and satellite position fallback.
|
|
48
|
+
> See the CHANGELOG for migration notes.
|
|
49
|
+
|
|
37
50
|
[](https://github.com/vessel-api/vesselapi-python/actions/workflows/ci.yml)
|
|
38
51
|
[](https://pypi.org/project/vessel-api-python/)
|
|
39
52
|
[](https://pypi.org/project/vessel-api-python/)
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# vesselapi-python
|
|
2
2
|
|
|
3
|
+
> [!WARNING]
|
|
4
|
+
> **This version is no longer maintained.** Several endpoints wrapped by 1.x
|
|
5
|
+
> were retired from the VesselAPI service on 10 August 2026 and now return
|
|
6
|
+
> HTTP 410. Please upgrade:
|
|
7
|
+
>
|
|
8
|
+
> ```bash
|
|
9
|
+
> pip install 'vessel-api-python>=2'
|
|
10
|
+
> ```
|
|
11
|
+
>
|
|
12
|
+
> 2.x removes the retired surface, requires the parameters the API requires,
|
|
13
|
+
> and adds unified search, repeatable filters and satellite position fallback.
|
|
14
|
+
> See the CHANGELOG for migration notes.
|
|
15
|
+
|
|
3
16
|
[](https://github.com/vessel-api/vesselapi-python/actions/workflows/ci.yml)
|
|
4
17
|
[](https://pypi.org/project/vessel-api-python/)
|
|
5
18
|
[](https://pypi.org/project/vessel-api-python/)
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "vessel-api-python"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.3.1"
|
|
8
8
|
description = "Python client for the Vessel Tracking API — maritime vessel tracking, port events, emissions, and navigation data."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -14,7 +14,7 @@ authors = [
|
|
|
14
14
|
]
|
|
15
15
|
keywords = ["vesselapi", "maritime", "vessel", "tracking", "ais", "sdk"]
|
|
16
16
|
classifiers = [
|
|
17
|
-
"Development Status ::
|
|
17
|
+
"Development Status :: 7 - Inactive",
|
|
18
18
|
"Intended Audience :: Developers",
|
|
19
19
|
"License :: OSI Approved :: MIT License",
|
|
20
20
|
"Programming Language :: Python :: 3",
|
|
@@ -8,6 +8,17 @@ Usage::
|
|
|
8
8
|
result = client.search.vessels(filter_name="Ever Given")
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
+
import warnings as _warnings
|
|
12
|
+
|
|
13
|
+
_warnings.warn(
|
|
14
|
+
"vessel-api-python 1.x is no longer maintained. Several endpoints it wraps "
|
|
15
|
+
"were retired from the service on 10 August 2026 and now return HTTP 410. "
|
|
16
|
+
"Upgrade to 2.x: pip install 'vessel-api-python>=2'. See the CHANGELOG for "
|
|
17
|
+
"the migration notes.",
|
|
18
|
+
DeprecationWarning,
|
|
19
|
+
stacklevel=2,
|
|
20
|
+
)
|
|
21
|
+
|
|
11
22
|
from ._client import AsyncVesselClient, VesselClient
|
|
12
23
|
from ._constants import DEFAULT_BASE_URL, VERSION
|
|
13
24
|
from ._errors import (
|
|
@@ -130,9 +130,9 @@ class VesselsService:
|
|
|
130
130
|
error_from_response(r.status_code, r.content)
|
|
131
131
|
return TypesOwnershipResponse.model_validate(r.json())
|
|
132
132
|
|
|
133
|
-
def positions(self, *, filter_id_type: str = "imo", filter_ids: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselPositionsResponse:
|
|
133
|
+
def positions(self, *, filter_id_type: str = "imo", filter_ids: str | None = None, time_from: str | None = None, time_to: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselPositionsResponse:
|
|
134
134
|
"""Retrieve positions for multiple vessels."""
|
|
135
|
-
r = self._client.get("/vessels/positions", params=_strip_none({"filter.idType": filter_id_type, "filter.ids": filter_ids, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
135
|
+
r = self._client.get("/vessels/positions", params=_strip_none({"filter.idType": filter_id_type, "filter.ids": filter_ids, "time.from": time_from, "time.to": time_to, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
136
136
|
error_from_response(r.status_code, r.content)
|
|
137
137
|
return VesselPositionsResponse.model_validate(r.json())
|
|
138
138
|
|
|
@@ -322,15 +322,15 @@ class SearchService:
|
|
|
322
322
|
def __init__(self, client: httpx.Client) -> None:
|
|
323
323
|
self._client = client
|
|
324
324
|
|
|
325
|
-
def vessels(self, *, filter_name: str | None = None, filter_imo: str | None = None, filter_mmsi: str | None = None, filter_flag: str | None = None, filter_vessel_type: str | None = None, filter_callsign: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindVesselsResponse:
|
|
325
|
+
def vessels(self, *, filter_name: str | None = None, filter_imo: str | None = None, filter_mmsi: str | None = None, filter_flag: str | None = None, filter_vessel_type: str | None = None, filter_callsign: str | None = None, filter_year_built_min: int | None = None, filter_year_built_max: int | None = None, filter_class_society: str | None = None, filter_owner: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindVesselsResponse:
|
|
326
326
|
"""Search for vessels by name, callsign, flag, type, and other filters."""
|
|
327
|
-
r = self._client.get("/search/vessels", params=_strip_none({"filter.name": filter_name, "filter.imo": filter_imo, "filter.mmsi": filter_mmsi, "filter.flag": filter_flag, "filter.vesselType": filter_vessel_type, "filter.callsign": filter_callsign, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
327
|
+
r = self._client.get("/search/vessels", params=_strip_none({"filter.name": filter_name, "filter.imo": filter_imo, "filter.mmsi": filter_mmsi, "filter.flag": filter_flag, "filter.vesselType": filter_vessel_type, "filter.callsign": filter_callsign, "filter.yearBuiltMin": filter_year_built_min, "filter.yearBuiltMax": filter_year_built_max, "filter.classSociety": filter_class_society, "filter.owner": filter_owner, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
328
328
|
error_from_response(r.status_code, r.content)
|
|
329
329
|
return FindVesselsResponse.model_validate(r.json())
|
|
330
330
|
|
|
331
|
-
def ports(self, *, filter_name: str | None = None, filter_country: str | None = None, filter_port_type: str | None = None, filter_region: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindPortsResponse:
|
|
331
|
+
def ports(self, *, filter_name: str | None = None, filter_country: str | None = None, filter_port_type: str | None = None, filter_size: str | None = None, filter_region: str | None = None, filter_harbor_size: str | None = None, filter_harbor_use: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindPortsResponse:
|
|
332
332
|
"""Search for ports by name, country, type, region, and other filters."""
|
|
333
|
-
r = self._client.get("/search/ports", params=_strip_none({"filter.name": filter_name, "filter.country": filter_country, "filter.type": filter_port_type, "filter.region": filter_region, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
333
|
+
r = self._client.get("/search/ports", params=_strip_none({"filter.name": filter_name, "filter.country": filter_country, "filter.type": filter_port_type, "filter.size": filter_size, "filter.region": filter_region, "filter.harborSize": filter_harbor_size, "filter.harborUse": filter_harbor_use, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
334
334
|
error_from_response(r.status_code, r.content)
|
|
335
335
|
return FindPortsResponse.model_validate(r.json())
|
|
336
336
|
|
|
@@ -427,15 +427,15 @@ class LocationService:
|
|
|
427
427
|
def __init__(self, client: httpx.Client) -> None:
|
|
428
428
|
self._client = client
|
|
429
429
|
|
|
430
|
-
def vessels_bounding_box(self, *, lat_min: float | None = None, lat_max: float | None = None, lon_min: float | None = None, lon_max: float | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
430
|
+
def vessels_bounding_box(self, *, lat_min: float | None = None, lat_max: float | None = None, lon_min: float | None = None, lon_max: float | None = None, time_from: str | None = None, time_to: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
431
431
|
"""Retrieve vessel positions within a bounding box."""
|
|
432
|
-
r = self._client.get("/location/vessels/bounding-box", params=_strip_none({"filter.latBottom": lat_min, "filter.latTop": lat_max, "filter.lonLeft": lon_min, "filter.lonRight": lon_max, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
432
|
+
r = self._client.get("/location/vessels/bounding-box", params=_strip_none({"filter.latBottom": lat_min, "filter.latTop": lat_max, "filter.lonLeft": lon_min, "filter.lonRight": lon_max, "time.from": time_from, "time.to": time_to, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
433
433
|
error_from_response(r.status_code, r.content)
|
|
434
434
|
return VesselsWithinLocationResponse.model_validate(r.json())
|
|
435
435
|
|
|
436
|
-
def vessels_radius(self, *, latitude: float | None = None, longitude: float | None = None, radius: float | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
436
|
+
def vessels_radius(self, *, latitude: float | None = None, longitude: float | None = None, radius: float | None = None, time_from: str | None = None, time_to: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
437
437
|
"""Retrieve vessel positions within a radius."""
|
|
438
|
-
r = self._client.get("/location/vessels/radius", params=_strip_none({"filter.latitude": latitude, "filter.longitude": longitude, "filter.radius": radius, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
438
|
+
r = self._client.get("/location/vessels/radius", params=_strip_none({"filter.latitude": latitude, "filter.longitude": longitude, "filter.radius": radius, "time.from": time_from, "time.to": time_to, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
439
439
|
error_from_response(r.status_code, r.content)
|
|
440
440
|
return VesselsWithinLocationResponse.model_validate(r.json())
|
|
441
441
|
|
|
@@ -710,9 +710,9 @@ class AsyncVesselsService:
|
|
|
710
710
|
error_from_response(r.status_code, r.content)
|
|
711
711
|
return TypesOwnershipResponse.model_validate(r.json())
|
|
712
712
|
|
|
713
|
-
async def positions(self, *, filter_id_type: str = "imo", filter_ids: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselPositionsResponse:
|
|
713
|
+
async def positions(self, *, filter_id_type: str = "imo", filter_ids: str | None = None, time_from: str | None = None, time_to: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselPositionsResponse:
|
|
714
714
|
"""Retrieve positions for multiple vessels."""
|
|
715
|
-
r = await self._client.get("/vessels/positions", params=_strip_none({"filter.idType": filter_id_type, "filter.ids": filter_ids, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
715
|
+
r = await self._client.get("/vessels/positions", params=_strip_none({"filter.idType": filter_id_type, "filter.ids": filter_ids, "time.from": time_from, "time.to": time_to, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
716
716
|
error_from_response(r.status_code, r.content)
|
|
717
717
|
return VesselPositionsResponse.model_validate(r.json())
|
|
718
718
|
|
|
@@ -902,15 +902,15 @@ class AsyncSearchService:
|
|
|
902
902
|
def __init__(self, client: httpx.AsyncClient) -> None:
|
|
903
903
|
self._client = client
|
|
904
904
|
|
|
905
|
-
async def vessels(self, *, filter_name: str | None = None, filter_imo: str | None = None, filter_mmsi: str | None = None, filter_flag: str | None = None, filter_vessel_type: str | None = None, filter_callsign: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindVesselsResponse:
|
|
905
|
+
async def vessels(self, *, filter_name: str | None = None, filter_imo: str | None = None, filter_mmsi: str | None = None, filter_flag: str | None = None, filter_vessel_type: str | None = None, filter_callsign: str | None = None, filter_year_built_min: int | None = None, filter_year_built_max: int | None = None, filter_class_society: str | None = None, filter_owner: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindVesselsResponse:
|
|
906
906
|
"""Search for vessels."""
|
|
907
|
-
r = await self._client.get("/search/vessels", params=_strip_none({"filter.name": filter_name, "filter.imo": filter_imo, "filter.mmsi": filter_mmsi, "filter.flag": filter_flag, "filter.vesselType": filter_vessel_type, "filter.callsign": filter_callsign, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
907
|
+
r = await self._client.get("/search/vessels", params=_strip_none({"filter.name": filter_name, "filter.imo": filter_imo, "filter.mmsi": filter_mmsi, "filter.flag": filter_flag, "filter.vesselType": filter_vessel_type, "filter.callsign": filter_callsign, "filter.yearBuiltMin": filter_year_built_min, "filter.yearBuiltMax": filter_year_built_max, "filter.classSociety": filter_class_society, "filter.owner": filter_owner, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
908
908
|
error_from_response(r.status_code, r.content)
|
|
909
909
|
return FindVesselsResponse.model_validate(r.json())
|
|
910
910
|
|
|
911
|
-
async def ports(self, *, filter_name: str | None = None, filter_country: str | None = None, filter_port_type: str | None = None, filter_region: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindPortsResponse:
|
|
911
|
+
async def ports(self, *, filter_name: str | None = None, filter_country: str | None = None, filter_port_type: str | None = None, filter_size: str | None = None, filter_region: str | None = None, filter_harbor_size: str | None = None, filter_harbor_use: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> FindPortsResponse:
|
|
912
912
|
"""Search for ports."""
|
|
913
|
-
r = await self._client.get("/search/ports", params=_strip_none({"filter.name": filter_name, "filter.country": filter_country, "filter.type": filter_port_type, "filter.region": filter_region, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
913
|
+
r = await self._client.get("/search/ports", params=_strip_none({"filter.name": filter_name, "filter.country": filter_country, "filter.type": filter_port_type, "filter.size": filter_size, "filter.region": filter_region, "filter.harborSize": filter_harbor_size, "filter.harborUse": filter_harbor_use, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
914
914
|
error_from_response(r.status_code, r.content)
|
|
915
915
|
return FindPortsResponse.model_validate(r.json())
|
|
916
916
|
|
|
@@ -1007,15 +1007,15 @@ class AsyncLocationService:
|
|
|
1007
1007
|
def __init__(self, client: httpx.AsyncClient) -> None:
|
|
1008
1008
|
self._client = client
|
|
1009
1009
|
|
|
1010
|
-
async def vessels_bounding_box(self, *, lat_min: float | None = None, lat_max: float | None = None, lon_min: float | None = None, lon_max: float | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
1010
|
+
async def vessels_bounding_box(self, *, lat_min: float | None = None, lat_max: float | None = None, lon_min: float | None = None, lon_max: float | None = None, time_from: str | None = None, time_to: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
1011
1011
|
"""Retrieve vessel positions within a bounding box."""
|
|
1012
|
-
r = await self._client.get("/location/vessels/bounding-box", params=_strip_none({"filter.latBottom": lat_min, "filter.latTop": lat_max, "filter.lonLeft": lon_min, "filter.lonRight": lon_max, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
1012
|
+
r = await self._client.get("/location/vessels/bounding-box", params=_strip_none({"filter.latBottom": lat_min, "filter.latTop": lat_max, "filter.lonLeft": lon_min, "filter.lonRight": lon_max, "time.from": time_from, "time.to": time_to, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
1013
1013
|
error_from_response(r.status_code, r.content)
|
|
1014
1014
|
return VesselsWithinLocationResponse.model_validate(r.json())
|
|
1015
1015
|
|
|
1016
|
-
async def vessels_radius(self, *, latitude: float | None = None, longitude: float | None = None, radius: float | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
1016
|
+
async def vessels_radius(self, *, latitude: float | None = None, longitude: float | None = None, radius: float | None = None, time_from: str | None = None, time_to: str | None = None, pagination_limit: int | None = None, pagination_next_token: str | None = None) -> VesselsWithinLocationResponse:
|
|
1017
1017
|
"""Retrieve vessel positions within a radius."""
|
|
1018
|
-
r = await self._client.get("/location/vessels/radius", params=_strip_none({"filter.latitude": latitude, "filter.longitude": longitude, "filter.radius": radius, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
1018
|
+
r = await self._client.get("/location/vessels/radius", params=_strip_none({"filter.latitude": latitude, "filter.longitude": longitude, "filter.radius": radius, "time.from": time_from, "time.to": time_to, "pagination.limit": pagination_limit, "pagination.nextToken": pagination_next_token}))
|
|
1019
1019
|
error_from_response(r.status_code, r.content)
|
|
1020
1020
|
return VesselsWithinLocationResponse.model_validate(r.json())
|
|
1021
1021
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|