clarity-api-sdk-python 0.3.30__tar.gz → 0.3.32__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.
Files changed (61) hide show
  1. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/PKG-INFO +1 -1
  2. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/pyproject.toml +1 -1
  3. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/clarity_api_sdk_python.egg-info/PKG-INFO +1 -1
  4. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/api/async_client.py +9 -1
  5. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/api/client.py +9 -1
  6. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_file.py +5 -4
  7. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/README.md +0 -0
  8. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/setup.cfg +0 -0
  9. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/clarity_api_sdk_python.egg-info/SOURCES.txt +0 -0
  10. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/clarity_api_sdk_python.egg-info/dependency_links.txt +0 -0
  11. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/clarity_api_sdk_python.egg-info/requires.txt +0 -0
  12. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/clarity_api_sdk_python.egg-info/top_level.txt +0 -0
  13. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/__init__.py +0 -0
  14. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/api/__init__.py +0 -0
  15. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/api/session.py +0 -0
  16. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/api/sonar_wiz_api.py +0 -0
  17. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/api/sonar_wiz_async_api.py +0 -0
  18. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/logger/__init__.py +0 -0
  19. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/logger/logger.py +0 -0
  20. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/main.py +0 -0
  21. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/main_api.py +0 -0
  22. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/__init__.py +0 -0
  23. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/altitude_source.py +0 -0
  24. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/attitude_source.py +0 -0
  25. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/deferred_object_deletion.py +0 -0
  26. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/depth_source.py +0 -0
  27. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/device.py +0 -0
  28. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/device_type.py +0 -0
  29. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/final_product.py +0 -0
  30. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/hierarchy.py +0 -0
  31. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/layback_algorithm.py +0 -0
  32. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/layback_source.py +0 -0
  33. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/layback_type.py +0 -0
  34. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/organization.py +0 -0
  35. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/platform.py +0 -0
  36. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/platform_type.py +0 -0
  37. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/position_source.py +0 -0
  38. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/processed_altitude.py +0 -0
  39. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/processed_attitude.py +0 -0
  40. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/processed_depth.py +0 -0
  41. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/processed_layback.py +0 -0
  42. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/processed_position.py +0 -0
  43. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/processed_sidescan_ping.py +0 -0
  44. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/processing_log.py +0 -0
  45. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/project.py +0 -0
  46. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/projection_option.py +0 -0
  47. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_altitude.py +0 -0
  48. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_attitude.py +0 -0
  49. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_depth.py +0 -0
  50. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_file_configuration.py +0 -0
  51. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_file_device_mapping.py +0 -0
  52. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_file_state.py +0 -0
  53. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_layback.py +0 -0
  54. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_position.py +0 -0
  55. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/raw_sidescan_ping.py +0 -0
  56. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/s3.py +0 -0
  57. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/sidescan_ping_source.py +0 -0
  58. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/source.py +0 -0
  59. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/survey.py +0 -0
  60. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/target.py +0 -0
  61. {clarity_api_sdk_python-0.3.30 → clarity_api_sdk_python-0.3.32}/src/cti/model/tow_system.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarity-api-sdk-python
3
- Version: 0.3.30
3
+ Version: 0.3.32
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,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "clarity-api-sdk-python"
8
- version = "0.3.30"
8
+ version = "0.3.32"
9
9
  authors = [
10
10
  { name="Chesapeake Technology Inc.", email="support@chesapeaketech.com" },
11
11
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarity-api-sdk-python
3
- Version: 0.3.30
3
+ Version: 0.3.32
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
@@ -3,7 +3,7 @@
3
3
  import os
4
4
  import uuid
5
5
 
6
- from httpx import AsyncClient, HTTPStatusError, RequestError, Response, URL
6
+ from httpx import AsyncClient, HTTPStatusError, Limits, RequestError, Response, URL
7
7
  from httpx_auth import OAuth2ClientCredentials, OAuth2, TokenMemoryCache
8
8
  from httpx_retries import Retry, RetryTransport
9
9
 
@@ -44,6 +44,13 @@ class ClarityApiAsyncClient(AsyncClient):
44
44
  retry = Retry(total=12, backoff_factor=0.5)
45
45
  transport = RetryTransport(retry=retry)
46
46
 
47
+ # connection pool limits
48
+ limits = Limits(
49
+ max_connections=100,
50
+ max_keepalive_connections=20,
51
+ keepalive_expiry=float(os.environ.get("CLARITY_KEEPALIVE_EXPIRY", "55")),
52
+ )
53
+
47
54
  super().__init__(
48
55
  base_url=os.environ.get("CLARITY_API_URL", "missing Clarity_API_URL"),
49
56
  auth=cti_credentials,
@@ -51,6 +58,7 @@ class ClarityApiAsyncClient(AsyncClient):
51
58
  transport=transport,
52
59
  http2=True,
53
60
  headers={"Accept": "application/json"},
61
+ limits=limits,
54
62
  )
55
63
 
56
64
  async def request(self, method: str, url: URL | str, **kwargs) -> Response:
@@ -3,7 +3,7 @@
3
3
  import os
4
4
  import uuid
5
5
 
6
- from httpx import Client, HTTPStatusError, RequestError, Response, URL
6
+ from httpx import Client, HTTPStatusError, Limits, RequestError, Response, URL
7
7
  from httpx_auth import OAuth2ClientCredentials, OAuth2, TokenMemoryCache
8
8
  from httpx_retries import Retry, RetryTransport
9
9
 
@@ -41,6 +41,13 @@ class ClarityApiClient(Client):
41
41
  retry = Retry(total=12, backoff_factor=0.5)
42
42
  transport = RetryTransport(retry=retry)
43
43
 
44
+ # connection pool limits
45
+ limits = Limits(
46
+ max_connections=100,
47
+ max_keepalive_connections=20,
48
+ keepalive_expiry=float(os.environ.get("CLARITY_KEEPALIVE_EXPIRY", "55")),
49
+ )
50
+
44
51
  super().__init__(
45
52
  base_url=os.environ.get("CLARITY_API_URL", "missing Clarity_API_URL"),
46
53
  auth=cti_credentials,
@@ -48,6 +55,7 @@ class ClarityApiClient(Client):
48
55
  transport=transport,
49
56
  http2=True,
50
57
  headers={"Accept": "application/json"},
58
+ limits=limits,
51
59
  )
52
60
 
53
61
  def request(self, method: str, url: URL | str, **kwargs) -> Response:
@@ -26,7 +26,7 @@ class RawFileBase(BaseModel):
26
26
  @field_validator("file_name")
27
27
  @classmethod
28
28
  def validate_file_name(cls, value: str) -> str:
29
- """Validate that file_name has a '.xtf' or '.jsf' extension.
29
+ """Validate that file_name has a supported sonar file extension.
30
30
 
31
31
  Args:
32
32
  value: Name of the external raw file.
@@ -35,10 +35,11 @@ class RawFileBase(BaseModel):
35
35
  The validated file_name.
36
36
 
37
37
  Raises:
38
- ValueError: If file_name does not have a '.xtf' or '.jsf' extension.
38
+ ValueError: If file_name does not have a supported extension.
39
39
  """
40
- if not value.lower().endswith((".xtf", ".jsf")):
41
- raise ValueError("file_name must have a '.xtf' or '.jsf' extension")
40
+ supported_extensions = (".xtf", ".jsf", ".csf", ".hsx", ".s7k", ".sdf", ".sds", ".til")
41
+ if not value.lower().endswith(supported_extensions):
42
+ raise ValueError(f"file_name must have one of the following extensions: {', '.join(supported_extensions)}")
42
43
  return value
43
44
 
44
45