clarity-api-sdk-python 0.3.33__tar.gz → 0.3.35__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 (58) hide show
  1. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/PKG-INFO +4 -3
  2. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/pyproject.toml +7 -3
  3. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/clarity_api_sdk_python.egg-info/PKG-INFO +4 -3
  4. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/clarity_api_sdk_python.egg-info/SOURCES.txt +10 -1
  5. clarity_api_sdk_python-0.3.35/src/clarity_api_sdk_python.egg-info/entry_points.txt +2 -0
  6. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/clarity_api_sdk_python.egg-info/requires.txt +3 -2
  7. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/api/async_client.py +18 -14
  8. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/api/client.py +18 -14
  9. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/api/sonar_wiz_api.py +302 -68
  10. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/api/sonar_wiz_async_api.py +272 -7
  11. clarity_api_sdk_python-0.3.35/src/cti/cli/__init__.py +1 -0
  12. clarity_api_sdk_python-0.3.35/src/cti/cli/__main__.py +20 -0
  13. clarity_api_sdk_python-0.3.35/src/cti/cli/client.py +45 -0
  14. clarity_api_sdk_python-0.3.35/src/cti/cli/main.py +458 -0
  15. clarity_api_sdk_python-0.3.35/src/cti/model/processing_job.py +117 -0
  16. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/raw_file_device_mapping.py +12 -3
  17. clarity_api_sdk_python-0.3.35/tests/test_cli.py +497 -0
  18. clarity_api_sdk_python-0.3.35/tests/test_sdk_async_methods.py +194 -0
  19. clarity_api_sdk_python-0.3.35/tests/test_sdk_methods.py +242 -0
  20. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/README.md +0 -0
  21. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/setup.cfg +0 -0
  22. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/clarity_api_sdk_python.egg-info/dependency_links.txt +0 -0
  23. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/clarity_api_sdk_python.egg-info/top_level.txt +0 -0
  24. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/__init__.py +0 -0
  25. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/api/__init__.py +0 -0
  26. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/api/session.py +0 -0
  27. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/logger/__init__.py +0 -0
  28. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/logger/logger.py +0 -0
  29. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/main.py +0 -0
  30. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/main_api.py +0 -0
  31. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/__init__.py +0 -0
  32. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/altitude_source.py +0 -0
  33. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/attitude_source.py +0 -0
  34. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/deferred_object_deletion.py +0 -0
  35. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/depth_source.py +0 -0
  36. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/device.py +0 -0
  37. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/device_type.py +0 -0
  38. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/final_product.py +0 -0
  39. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/hierarchy.py +0 -0
  40. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/layback_algorithm.py +0 -0
  41. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/layback_source.py +0 -0
  42. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/layback_type.py +0 -0
  43. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/organization.py +0 -0
  44. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/platform.py +0 -0
  45. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/platform_type.py +0 -0
  46. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/position_source.py +0 -0
  47. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/processing_log.py +0 -0
  48. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/project.py +0 -0
  49. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/projection_option.py +0 -0
  50. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/raw_file.py +0 -0
  51. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/raw_file_configuration.py +0 -0
  52. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/raw_file_state.py +0 -0
  53. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/s3.py +0 -0
  54. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/sidescan_ping_source.py +0 -0
  55. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/source.py +0 -0
  56. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/survey.py +0 -0
  57. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/src/cti/model/target.py +0 -0
  58. {clarity_api_sdk_python-0.3.33 → clarity_api_sdk_python-0.3.35}/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.33
3
+ Version: 0.3.35
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
@@ -15,13 +15,14 @@ Requires-Dist: h2
15
15
  Requires-Dist: httpx_auth>=0.23.1
16
16
  Requires-Dist: httpx-retries>=0.4.5
17
17
  Requires-Dist: pydantic==2.12.3
18
- Requires-Dist: structlog
18
+ Requires-Dist: structlog==25.4.0
19
+ Requires-Dist: typer>=0.15
19
20
  Provides-Extra: dev
20
21
  Requires-Dist: black==25.9.0; extra == "dev"
21
22
  Requires-Dist: build==1.3.0; extra == "dev"
22
23
  Requires-Dist: mypy==1.18.2; extra == "dev"
23
24
  Requires-Dist: pre-commit==4.3.0; extra == "dev"
24
- Requires-Dist: pylint==3.3.8; extra == "dev"
25
+ Requires-Dist: pylint==4.0.5; extra == "dev"
25
26
  Requires-Dist: pytest==8.4.2; extra == "dev"
26
27
  Requires-Dist: pytest-asyncio==1.3.0; extra == "dev"
27
28
  Requires-Dist: pytest-md==0.2.0; extra == "dev"
@@ -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.33"
8
+ version = "0.3.35"
9
9
  authors = [
10
10
  { name="Chesapeake Technology Inc.", email="support@chesapeaketech.com" },
11
11
  ]
@@ -24,7 +24,8 @@ dependencies = [
24
24
  "httpx_auth>=0.23.1",
25
25
  "httpx-retries>=0.4.5",
26
26
  "pydantic==2.12.3",
27
- "structlog",
27
+ "structlog==25.4.0",
28
+ "typer>=0.15",
28
29
  ]
29
30
 
30
31
  [project.optional-dependencies]
@@ -33,7 +34,7 @@ dev = [
33
34
  "build==1.3.0",
34
35
  "mypy==1.18.2",
35
36
  "pre-commit==4.3.0",
36
- "pylint==3.3.8",
37
+ "pylint==4.0.5",
37
38
  "pytest==8.4.2",
38
39
  "pytest-asyncio==1.3.0",
39
40
  "pytest-md==0.2.0",
@@ -43,6 +44,9 @@ dev = [
43
44
  brotli = ["httpx[brotli]>=0.28.1"]
44
45
  http2 = ["httpx[http2]>=0.28.1"]
45
46
 
47
+ [project.scripts]
48
+ ftm = "cti.cli.__main__:main"
49
+
46
50
  [project.urls]
47
51
  "Homepage" = "https://github.com/chesapeake-tech/clarity-api-sdk-python"
48
52
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clarity-api-sdk-python
3
- Version: 0.3.33
3
+ Version: 0.3.35
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
@@ -15,13 +15,14 @@ Requires-Dist: h2
15
15
  Requires-Dist: httpx_auth>=0.23.1
16
16
  Requires-Dist: httpx-retries>=0.4.5
17
17
  Requires-Dist: pydantic==2.12.3
18
- Requires-Dist: structlog
18
+ Requires-Dist: structlog==25.4.0
19
+ Requires-Dist: typer>=0.15
19
20
  Provides-Extra: dev
20
21
  Requires-Dist: black==25.9.0; extra == "dev"
21
22
  Requires-Dist: build==1.3.0; extra == "dev"
22
23
  Requires-Dist: mypy==1.18.2; extra == "dev"
23
24
  Requires-Dist: pre-commit==4.3.0; extra == "dev"
24
- Requires-Dist: pylint==3.3.8; extra == "dev"
25
+ Requires-Dist: pylint==4.0.5; extra == "dev"
25
26
  Requires-Dist: pytest==8.4.2; extra == "dev"
26
27
  Requires-Dist: pytest-asyncio==1.3.0; extra == "dev"
27
28
  Requires-Dist: pytest-md==0.2.0; extra == "dev"
@@ -3,6 +3,7 @@ pyproject.toml
3
3
  src/clarity_api_sdk_python.egg-info/PKG-INFO
4
4
  src/clarity_api_sdk_python.egg-info/SOURCES.txt
5
5
  src/clarity_api_sdk_python.egg-info/dependency_links.txt
6
+ src/clarity_api_sdk_python.egg-info/entry_points.txt
6
7
  src/clarity_api_sdk_python.egg-info/requires.txt
7
8
  src/clarity_api_sdk_python.egg-info/top_level.txt
8
9
  src/cti/__init__.py
@@ -14,6 +15,10 @@ src/cti/api/client.py
14
15
  src/cti/api/session.py
15
16
  src/cti/api/sonar_wiz_api.py
16
17
  src/cti/api/sonar_wiz_async_api.py
18
+ src/cti/cli/__init__.py
19
+ src/cti/cli/__main__.py
20
+ src/cti/cli/client.py
21
+ src/cti/cli/main.py
17
22
  src/cti/logger/__init__.py
18
23
  src/cti/logger/logger.py
19
24
  src/cti/model/__init__.py
@@ -32,6 +37,7 @@ src/cti/model/organization.py
32
37
  src/cti/model/platform.py
33
38
  src/cti/model/platform_type.py
34
39
  src/cti/model/position_source.py
40
+ src/cti/model/processing_job.py
35
41
  src/cti/model/processing_log.py
36
42
  src/cti/model/project.py
37
43
  src/cti/model/projection_option.py
@@ -44,4 +50,7 @@ src/cti/model/sidescan_ping_source.py
44
50
  src/cti/model/source.py
45
51
  src/cti/model/survey.py
46
52
  src/cti/model/target.py
47
- src/cti/model/tow_system.py
53
+ src/cti/model/tow_system.py
54
+ tests/test_cli.py
55
+ tests/test_sdk_async_methods.py
56
+ tests/test_sdk_methods.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ ftm = cti.cli.__main__:main
@@ -4,7 +4,8 @@ h2
4
4
  httpx_auth>=0.23.1
5
5
  httpx-retries>=0.4.5
6
6
  pydantic==2.12.3
7
- structlog
7
+ structlog==25.4.0
8
+ typer>=0.15
8
9
 
9
10
  [brotli]
10
11
  httpx[brotli]>=0.28.1
@@ -14,7 +15,7 @@ black==25.9.0
14
15
  build==1.3.0
15
16
  mypy==1.18.2
16
17
  pre-commit==4.3.0
17
- pylint==3.3.8
18
+ pylint==4.0.5
18
19
  pytest==8.4.2
19
20
  pytest-asyncio==1.3.0
20
21
  pytest-md==0.2.0
@@ -25,20 +25,24 @@ class ClarityApiAsyncClient(AsyncClient):
25
25
 
26
26
  def __init__(self):
27
27
 
28
- # credentials for Clarity API
29
- cti_credentials = OAuth2ClientCredentials(
30
- token_url=(
31
- f'{os.environ.get("KEYCLOAK_SERVER_URL", "missing KEYCLOAK_SERVER_URL")}/realms/'
32
- f'{os.environ.get("KEYCLOAK_REALM", "missing KEYCLOAK_REALM")}'
33
- "/protocol/openid-connect/token"
34
- ),
35
- client_id=os.environ.get(
36
- "KEYCLOAK_CLIENT_ID", "missing KEYCLOAK_CLIENT_ID"
37
- ),
38
- client_secret=os.environ.get(
39
- "KEYCLOAK_CLIENT_SECRET", "missing KEYCLOAK_CLIENT_SECRET"
40
- ),
41
- )
28
+ # In local dev mode, skip OAuth2 authentication — the server
29
+ # accepts unauthenticated requests when CLARITY_PLATFORM=local.
30
+ if os.environ.get("CLARITY_PLATFORM") == "local":
31
+ cti_credentials = None
32
+ else:
33
+ cti_credentials = OAuth2ClientCredentials(
34
+ token_url=(
35
+ f'{os.environ.get("KEYCLOAK_SERVER_URL", "missing KEYCLOAK_SERVER_URL")}/realms/'
36
+ f'{os.environ.get("KEYCLOAK_REALM", "missing KEYCLOAK_REALM")}'
37
+ "/protocol/openid-connect/token"
38
+ ),
39
+ client_id=os.environ.get(
40
+ "KEYCLOAK_CLIENT_ID", "missing KEYCLOAK_CLIENT_ID"
41
+ ),
42
+ client_secret=os.environ.get(
43
+ "KEYCLOAK_CLIENT_SECRET", "missing KEYCLOAK_CLIENT_SECRET"
44
+ ),
45
+ )
42
46
 
43
47
  # retry mechanism for API requests
44
48
  retry = Retry(total=12, backoff_factor=0.5)
@@ -22,20 +22,24 @@ class ClarityApiClient(Client):
22
22
 
23
23
  def __init__(self):
24
24
 
25
- # credentials for Clarity API
26
- cti_credentials = OAuth2ClientCredentials(
27
- token_url=(
28
- f'{os.environ.get("KEYCLOAK_SERVER_URL", "missing KEYCLOAK_SERVER_URL")}/realms/'
29
- f'{os.environ.get("KEYCLOAK_REALM", "missing KEYCLOAK_REALM")}'
30
- "/protocol/openid-connect/token"
31
- ),
32
- client_id=os.environ.get(
33
- "KEYCLOAK_CLIENT_ID", "missing KEYCLOAK_CLIENT_ID"
34
- ),
35
- client_secret=os.environ.get(
36
- "KEYCLOAK_CLIENT_SECRET", "missing KEYCLOAK_CLIENT_SECRET"
37
- ),
38
- )
25
+ # In local dev mode, skip OAuth2 authentication — the server
26
+ # accepts unauthenticated requests when CLARITY_PLATFORM=local.
27
+ if os.environ.get("CLARITY_PLATFORM") == "local":
28
+ cti_credentials = None
29
+ else:
30
+ cti_credentials = OAuth2ClientCredentials(
31
+ token_url=(
32
+ f'{os.environ.get("KEYCLOAK_SERVER_URL", "missing KEYCLOAK_SERVER_URL")}/realms/'
33
+ f'{os.environ.get("KEYCLOAK_REALM", "missing KEYCLOAK_REALM")}'
34
+ "/protocol/openid-connect/token"
35
+ ),
36
+ client_id=os.environ.get(
37
+ "KEYCLOAK_CLIENT_ID", "missing KEYCLOAK_CLIENT_ID"
38
+ ),
39
+ client_secret=os.environ.get(
40
+ "KEYCLOAK_CLIENT_SECRET", "missing KEYCLOAK_CLIENT_SECRET"
41
+ ),
42
+ )
39
43
 
40
44
  # retry mechanism for API requests
41
45
  retry = Retry(total=12, backoff_factor=0.5)