clarity-api-sdk-python 0.4.2__py3-none-any.whl → 0.4.3__py3-none-any.whl

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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarity-api-sdk-python
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: A Python SDK to connect to the CTI Clarity API server.
5
5
  Author-email: "Chesapeake Technology Inc." <support@chesapeaketech.com>
6
6
  Project-URL: Homepage, https://github.com/chesapeake-tech/clarity-api-sdk-python
@@ -5,8 +5,8 @@ cti/api/__init__.py,sha256=2abRmywGsoOIyI5LGIW323A83Ip_m_2-n9XviU2_iNM,275
5
5
  cti/api/async_client.py,sha256=k4S8uVRYPGETdQ4LR6_pDyro5h6pyzmvi3q9l0ot65Q,5223
6
6
  cti/api/client.py,sha256=xzmhsHVJc02Svf8TMMqHU2U_J0-EpeLrKRU5Vn0SB5Q,4980
7
7
  cti/api/session.py,sha256=Glfx8zJlD0K1QPFFwTY5Nk7nbMNxrpiSn-PR3m8Ln9U,3905
8
- cti/api/sonar_wiz_api.py,sha256=3_m8ADDhNGX4Z2YSvbf6VulV8RNF_-2OHRIfOAb5z2Q,81907
9
- cti/api/sonar_wiz_async_api.py,sha256=VkdGvzbcex04Ze0wRgOALLU4CJWgHaTK1PAbwmu_4_4,83403
8
+ cti/api/sonar_wiz_api.py,sha256=sZn6mHzFd52C9ZW30rDnGSDkh0nTh5UVAH62xY0FbC4,82966
9
+ cti/api/sonar_wiz_async_api.py,sha256=yQJtLl40gxIoX8_it8P2eTCO1ZRXNW1NLib_Oq-rbxw,84474
10
10
  cti/cli/__init__.py,sha256=8JSrgU2n_cZIRU4pi95GfNVNRgaC-2VIYefMBSipUnI,75
11
11
  cti/cli/__main__.py,sha256=iwQCepbPuq8GETBFeTWFDWLFiRVV9Ee4Vm1808ggBJw,424
12
12
  cti/cli/client.py,sha256=ZA5rtWHtn2bBqMo2Vk-5iAH_XnMbrpyaP2q6u8MIdwQ,1264
@@ -46,8 +46,8 @@ cti/model/tow_system.py,sha256=zQd6k2VbOwXFzjFc0isD_y159OM16eSqETMrO3wR5UE,1337
46
46
  cti/model/user_layer.py,sha256=KXvM1__o9YNpt63Uq3VwqvGEzWE8gQb1xkLfSuKiZr0,3775
47
47
  cti/positioning/__init__.py,sha256=AMr1zGAO_3Q18uOqr1fnSNrXQV8HoAROjacOn4_w2HM,375
48
48
  cti/positioning/target_geometry.py,sha256=km3h8Kpz2CnJnSdeDp7mi3p5yXCnROsdHMzU9UqREy4,6294
49
- clarity_api_sdk_python-0.4.2.dist-info/METADATA,sha256=FZqx_Uge1m8XBLpsw0DbEsd01-Yzlp9I2Bvpcpzd270,3901
50
- clarity_api_sdk_python-0.4.2.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
51
- clarity_api_sdk_python-0.4.2.dist-info/entry_points.txt,sha256=A6tseI4vcnR4KBPaZAbXyf0dWhi-CmZB5mlSCvXeh3Q,46
52
- clarity_api_sdk_python-0.4.2.dist-info/top_level.txt,sha256=q0eCD9KnKXWf_VImQ7xYkyYD7cvcG-4X-vm36HhdT_M,4
53
- clarity_api_sdk_python-0.4.2.dist-info/RECORD,,
49
+ clarity_api_sdk_python-0.4.3.dist-info/METADATA,sha256=WbbiaoXioHlZ_UVNNzoa7tiSVFulpZYnNQWLGWiES2Y,3901
50
+ clarity_api_sdk_python-0.4.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
51
+ clarity_api_sdk_python-0.4.3.dist-info/entry_points.txt,sha256=A6tseI4vcnR4KBPaZAbXyf0dWhi-CmZB5mlSCvXeh3Q,46
52
+ clarity_api_sdk_python-0.4.3.dist-info/top_level.txt,sha256=q0eCD9KnKXWf_VImQ7xYkyYD7cvcG-4X-vm36HhdT_M,4
53
+ clarity_api_sdk_python-0.4.3.dist-info/RECORD,,
cti/api/sonar_wiz_api.py CHANGED
@@ -1709,33 +1709,56 @@ class SonarWizApi:
1709
1709
  response.raise_for_status()
1710
1710
  return Target.model_validate(response.json())
1711
1711
 
1712
- def list_targets(self) -> list[Target]:
1713
- """List all targets.
1712
+ def list_targets(self, sidescan_ping_source_id: UUID | str) -> list[Target]:
1713
+ """List all targets for one sidescan ping source.
1714
+
1715
+ The cross-source ``GET /api/v1/targets`` endpoint is deprecated;
1716
+ the spec scopes target reads to a single SidescanPingSource.
1717
+
1718
+ Args:
1719
+ sidescan_ping_source_id: SidescanPingSource UUID or string identifier.
1714
1720
 
1715
1721
  Returns:
1716
- List of target instances.
1722
+ List of target instances, each with the ``derived`` block
1723
+ populated when the parent line's nav state is available.
1717
1724
  """
1718
- response = self._client.get("/api/v1/targets")
1725
+ response = self._client.get(
1726
+ f"/api/v1/sidescan-ping-sources/{sidescan_ping_source_id}/targets"
1727
+ )
1719
1728
  response.raise_for_status()
1720
1729
  return [Target.model_validate(item) for item in response.json()]
1721
1730
 
1722
1731
  def update_target(self, target_id: UUID | str, target: TargetUpdate) -> Target:
1723
- """Update a target.
1732
+ """Partially update a target.
1733
+
1734
+ Targets MVP is the first endpoint in the API to use PATCH (older
1735
+ update endpoints use PUT for legacy reasons but already behave as
1736
+ PATCH server-side via ``exclude_unset=True``). Body fields are
1737
+ optional; only the supplied fields are mutated.
1724
1738
 
1725
1739
  Args:
1726
1740
  target_id: Target UUID or string identifier.
1727
- target: Target update data.
1741
+ target: Partial target update data.
1728
1742
 
1729
1743
  Returns:
1730
1744
  Updated target instance.
1731
1745
  """
1732
- response = self._client.put(
1746
+ response = self._client.patch(
1733
1747
  f"/api/v1/targets/{target_id}",
1734
1748
  json=target.model_dump(mode="json", exclude_unset=True),
1735
1749
  )
1736
1750
  response.raise_for_status()
1737
1751
  return Target.model_validate(response.json())
1738
1752
 
1753
+ def delete_target(self, target_id: UUID | str) -> None:
1754
+ """Hard-delete a target.
1755
+
1756
+ Args:
1757
+ target_id: Target UUID or string identifier.
1758
+ """
1759
+ response = self._client.delete(f"/api/v1/targets/{target_id}")
1760
+ response.raise_for_status()
1761
+
1739
1762
  def create_tow_system(self, tow_system: TowSystemCreate) -> TowSystem:
1740
1763
  """Create a new tow system.
1741
1764
 
@@ -1753,35 +1753,58 @@ class SonarWizAsyncApi:
1753
1753
  response.raise_for_status()
1754
1754
  return Target.model_validate(response.json())
1755
1755
 
1756
- async def list_targets(self) -> list[Target]:
1757
- """List all targets.
1756
+ async def list_targets(self, sidescan_ping_source_id: UUID | str) -> list[Target]:
1757
+ """List all targets for one sidescan ping source.
1758
+
1759
+ The cross-source ``GET /api/v1/targets`` endpoint is deprecated;
1760
+ the spec scopes target reads to a single SidescanPingSource.
1761
+
1762
+ Args:
1763
+ sidescan_ping_source_id: SidescanPingSource UUID or string identifier.
1758
1764
 
1759
1765
  Returns:
1760
- List of target instances.
1766
+ List of target instances, each with the ``derived`` block
1767
+ populated when the parent line's nav state is available.
1761
1768
  """
1762
- response = await self._client.get("/api/v1/targets")
1769
+ response = await self._client.get(
1770
+ f"/api/v1/sidescan-ping-sources/{sidescan_ping_source_id}/targets"
1771
+ )
1763
1772
  response.raise_for_status()
1764
1773
  return [Target.model_validate(item) for item in response.json()]
1765
1774
 
1766
1775
  async def update_target(
1767
1776
  self, target_id: UUID | str, target: TargetUpdate
1768
1777
  ) -> Target:
1769
- """Update a target.
1778
+ """Partially update a target.
1779
+
1780
+ Targets MVP is the first endpoint in the API to use PATCH (older
1781
+ update endpoints use PUT for legacy reasons but already behave as
1782
+ PATCH server-side via ``exclude_unset=True``). Body fields are
1783
+ optional; only the supplied fields are mutated.
1770
1784
 
1771
1785
  Args:
1772
1786
  target_id: Target UUID or string identifier.
1773
- target: Target update data.
1787
+ target: Partial target update data.
1774
1788
 
1775
1789
  Returns:
1776
1790
  Updated target instance.
1777
1791
  """
1778
- response = await self._client.put(
1792
+ response = await self._client.patch(
1779
1793
  f"/api/v1/targets/{target_id}",
1780
1794
  json=target.model_dump(mode="json", exclude_unset=True),
1781
1795
  )
1782
1796
  response.raise_for_status()
1783
1797
  return Target.model_validate(response.json())
1784
1798
 
1799
+ async def delete_target(self, target_id: UUID | str) -> None:
1800
+ """Hard-delete a target.
1801
+
1802
+ Args:
1803
+ target_id: Target UUID or string identifier.
1804
+ """
1805
+ response = await self._client.delete(f"/api/v1/targets/{target_id}")
1806
+ response.raise_for_status()
1807
+
1785
1808
  async def create_tow_system(self, tow_system: TowSystemCreate) -> TowSystem:
1786
1809
  """Create a new tow system.
1787
1810