clarity-api-sdk-python 0.3.15__tar.gz → 0.3.17__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 (56) hide show
  1. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/PKG-INFO +1 -1
  2. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/pyproject.toml +1 -1
  3. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/clarity_api_sdk_python.egg-info/PKG-INFO +1 -1
  4. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/clarity_api_sdk_python.egg-info/SOURCES.txt +2 -0
  5. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/device_type.py +6 -0
  6. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/hierarchy.py +11 -5
  7. clarity_api_sdk_python-0.3.15/src/cti/model/source.py → clarity_api_sdk_python-0.3.17/src/cti/model/raw_file.py +24 -22
  8. clarity_api_sdk_python-0.3.17/src/cti/model/raw_file_configuration.py +47 -0
  9. clarity_api_sdk_python-0.3.17/src/cti/model/source.py +49 -0
  10. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/README.md +0 -0
  11. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/setup.cfg +0 -0
  12. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/clarity_api_sdk_python.egg-info/dependency_links.txt +0 -0
  13. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/clarity_api_sdk_python.egg-info/requires.txt +0 -0
  14. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/clarity_api_sdk_python.egg-info/top_level.txt +0 -0
  15. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/__init__.py +0 -0
  16. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/api/__init__.py +0 -0
  17. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/api/async_client.py +0 -0
  18. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/api/client.py +0 -0
  19. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/api/session.py +0 -0
  20. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/logger/__init__.py +0 -0
  21. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/logger/logger.py +0 -0
  22. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/main.py +0 -0
  23. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/main_api.py +0 -0
  24. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/__init__.py +0 -0
  25. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/altitude_source.py +0 -0
  26. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/attitude_source.py +0 -0
  27. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/depth_source.py +0 -0
  28. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/device.py +0 -0
  29. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/final_product.py +0 -0
  30. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/layback_algorithm.py +0 -0
  31. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/layback_source.py +0 -0
  32. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/layback_type.py +0 -0
  33. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/organization.py +0 -0
  34. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/platform.py +0 -0
  35. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/platform_type.py +0 -0
  36. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/position_source.py +0 -0
  37. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/processed_altitude.py +0 -0
  38. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/processed_attitude.py +0 -0
  39. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/processed_depth.py +0 -0
  40. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/processed_layback.py +0 -0
  41. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/processed_position.py +0 -0
  42. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/processed_sidescan_ping.py +0 -0
  43. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/processing_log.py +0 -0
  44. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/project.py +0 -0
  45. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/projection_option.py +0 -0
  46. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/raw_altitude.py +0 -0
  47. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/raw_attitude.py +0 -0
  48. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/raw_depth.py +0 -0
  49. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/raw_layback.py +0 -0
  50. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/raw_position.py +0 -0
  51. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/raw_sidescan_ping.py +0 -0
  52. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/s3.py +0 -0
  53. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/sidescan_ping_source.py +0 -0
  54. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/survey.py +0 -0
  55. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/src/cti/model/target.py +0 -0
  56. {clarity_api_sdk_python-0.3.15 → clarity_api_sdk_python-0.3.17}/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.15
3
+ Version: 0.3.17
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.15"
8
+ version = "0.3.17"
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.15
3
+ Version: 0.3.17
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
@@ -41,6 +41,8 @@ src/cti/model/projection_option.py
41
41
  src/cti/model/raw_altitude.py
42
42
  src/cti/model/raw_attitude.py
43
43
  src/cti/model/raw_depth.py
44
+ src/cti/model/raw_file.py
45
+ src/cti/model/raw_file_configuration.py
44
46
  src/cti/model/raw_layback.py
45
47
  src/cti/model/raw_position.py
46
48
  src/cti/model/raw_sidescan_ping.py
@@ -12,10 +12,16 @@ class DeviceTypeBase(BaseModel):
12
12
  Attributes:
13
13
  name: Device type name.
14
14
  description: Device type description.
15
+ enum_name: Enum name. Once set do NOT change. This will be used to define JSOB keys in
16
+ `raw_file_configuration#configuration` column. For example,
17
+ `usbl`, `sidescan_sonar`, `altimeter`, etc.
18
+ can_parent: Indicates if the device type can be a parent device.
15
19
  """
16
20
 
17
21
  name: str
18
22
  description: str | None = None
23
+ enum_name: str
24
+ can_parent: bool = False
19
25
 
20
26
 
21
27
  class DeviceTypeCreate(DeviceTypeBase):
@@ -6,28 +6,34 @@ from pydantic import BaseModel
6
6
 
7
7
 
8
8
  class Organization(BaseModel):
9
- """Pydantic model for organization data."""
9
+ """Pydantic model for organization hierarchy data."""
10
10
 
11
11
  organization_id: UUID
12
12
  organization_name: str
13
13
 
14
14
 
15
15
  class Project(Organization):
16
- """Pydantic model for project data."""
16
+ """Pydantic model for project hierarchy data."""
17
17
 
18
18
  project_id: UUID
19
19
  project_name: str
20
20
 
21
21
 
22
22
  class Survey(Project):
23
- """Pydantic model for survey data."""
23
+ """Pydantic model for survey hierarchy data."""
24
24
 
25
25
  survey_id: UUID
26
26
  survey_name: str
27
27
 
28
28
 
29
29
  class Source(Survey):
30
- """Pydantic model for source data."""
30
+ """Pydantic model for source hierarchy data."""
31
31
 
32
32
  source_id: UUID
33
- source_file_name: str
33
+
34
+
35
+ class RawFile(Survey):
36
+ """Pydantic model for raw file hierarchy data."""
37
+
38
+ raw_file_id: UUID
39
+ raw_file_file_name: str
@@ -1,4 +1,4 @@
1
- """Pydantic models for source data."""
1
+ """Pydantic models for raw file. This is the data that has been uploaded but not ingested into the database."""
2
2
 
3
3
  from datetime import datetime
4
4
  from enum import Enum
@@ -7,24 +7,26 @@ from uuid import UUID
7
7
  from pydantic import BaseModel, ConfigDict, field_validator
8
8
 
9
9
 
10
- class SourceStatus(str, Enum):
11
- """Status of a source file upload."""
10
+ class RawFileState(str, Enum):
11
+ """State of a raw file upload."""
12
12
 
13
13
  UPLOADING = "uploading"
14
14
  READY = "ready"
15
15
  ERROR = "error"
16
16
 
17
17
 
18
- class SourceBase(BaseModel):
19
- """Base model for source data.
18
+ class RawFileBase(BaseModel):
19
+ """Base model for raw file data.
20
20
 
21
21
  Attributes:
22
22
  survey_id: Foreign key reference to Survey.
23
- file_name: Name of the external source file.
24
- file_size: Size of the external source file in bytes.
23
+ raw_file_configuration_id: Foreign key reference to RawFileConfiguration.
24
+ file_name: Name of the external raw file.
25
+ file_size: Size of the external raw file in bytes.
25
26
  """
26
27
 
27
28
  survey_id: UUID
29
+ raw_file_configuration_id: UUID
28
30
  file_name: str
29
31
  file_size: int
30
32
 
@@ -34,7 +36,7 @@ class SourceBase(BaseModel):
34
36
  """Validate that file_name has a '.xtf' or '.jsf' extension.
35
37
 
36
38
  Args:
37
- value: Name of the external source file.
39
+ value: Name of the external raw file.
38
40
 
39
41
  Returns:
40
42
  The validated file_name.
@@ -47,30 +49,30 @@ class SourceBase(BaseModel):
47
49
  return value
48
50
 
49
51
 
50
- class SourceCreate(SourceBase):
51
- """Model for creating source data (with survey_id in body)."""
52
+ class RawFileCreate(RawFileBase):
53
+ """Model for creating raw file data (with survey_id in body)."""
52
54
 
53
55
 
54
- class SourceUpdate(SourceBase):
55
- """Model for updating source data.
56
+ class RawFileUpdate(RawFileBase):
57
+ """Model for updating raw file data.
56
58
 
57
59
  Attributes:
58
60
  """
59
61
 
60
62
 
61
- class Source(SourceBase):
62
- """Model for source data with database fields.
63
+ class RawFile(RawFileBase):
64
+ """Model for raw file data with database fields.
63
65
 
64
66
  Attributes:
65
- source_id: Unique identifier for the source.
66
- status: Upload status (uploading, ready, error).
67
- uri: uri for source, will allow AWS S3, Google Cloud Storage, NFS, URL, or Azure Blob URI (set after upload initiated).
67
+ raw_file_id: Unique identifier for the source.
68
+ state: Upload state (uploading, ready, error).
69
+ uri: uri for raw file, will allow AWS S3, Google Cloud Storage, NFS, URL, or Azure Blob URI (set after upload initiated).
68
70
  meta_data: meta data for the uri
69
71
  upload_id: S3 multipart upload ID (present while uploading, cleared when complete).
70
72
  """
71
73
 
72
- source_id: UUID
73
- status: SourceStatus = SourceStatus.UPLOADING
74
+ raw_file_id: UUID
75
+ state: RawFileState = RawFileState.UPLOADING
74
76
  uri: str | None = None
75
77
  meta_data: dict
76
78
  upload_id: str | None = None
@@ -81,8 +83,8 @@ class Source(SourceBase):
81
83
  model_config = ConfigDict(from_attributes=True)
82
84
 
83
85
 
84
- class SourceWithUpload(Source):
85
- """Source response including upload information.
86
+ class RawFileWithUpload(RawFile):
87
+ """RawFile response including upload information.
86
88
 
87
- Overrides optional fields from Source to be required for upload responses.
89
+ Overrides optional fields from RawFile to be required for upload responses.
88
90
  """
@@ -0,0 +1,47 @@
1
+ """Pydantic models for raw file. This is the data that has been uploaded but not ingested into the database."""
2
+
3
+ from datetime import datetime
4
+ from uuid import UUID
5
+
6
+ from pydantic import BaseModel, ConfigDict
7
+
8
+
9
+ class RawFileConfigurationBase(BaseModel):
10
+ """Base model for raw file configuration.
11
+
12
+ Attributes:
13
+ survey_id: Foreign key reference to Survey.
14
+ name: Name of the raw file configuration.
15
+ configuration: Configuration settings for the raw file.
16
+ """
17
+
18
+ survey_id: UUID
19
+ name: str
20
+ configuration: dict
21
+
22
+
23
+ class RawFileConfigurationCreate(RawFileConfigurationBase):
24
+ """Model for creating raw file configuration (with survey_id in body)."""
25
+
26
+
27
+ class RawFileConfigurationUpdate(RawFileConfigurationBase):
28
+ """Model for updating raw file configuration.
29
+
30
+ Attributes:
31
+ """
32
+
33
+
34
+ class RawFileConfiguration(RawFileConfigurationBase):
35
+ """Model for raw file configuration data with database fields.
36
+
37
+ Attributes:
38
+ survey_id: Unique identifier for the survey.
39
+ raw_file_configuration_id: Unique identifier for the raw file configuration.
40
+ """
41
+
42
+ raw_file_configuration_id: UUID
43
+ created_date: datetime
44
+ updated_date: datetime
45
+ updated_by: str
46
+
47
+ model_config = ConfigDict(from_attributes=True)
@@ -0,0 +1,49 @@
1
+ """Pydantic models for source data."""
2
+
3
+ from datetime import datetime
4
+ from uuid import UUID
5
+
6
+ from pydantic import BaseModel, ConfigDict
7
+
8
+
9
+ class SourceBase(BaseModel):
10
+ """Base model for source data.
11
+
12
+ Attributes:
13
+ survey_id: Foreign key reference to Survey.
14
+ """
15
+
16
+ survey_id: UUID
17
+
18
+
19
+ class SourceCreate(SourceBase):
20
+ """Model for creating source data (with survey_id in body)."""
21
+
22
+
23
+ class SourceUpdate(SourceBase):
24
+ """Model for updating source data.
25
+
26
+ Attributes:
27
+ """
28
+
29
+
30
+ class Source(SourceBase):
31
+ """Model for source data with database fields.
32
+
33
+ Attributes:
34
+ source_id: Unique identifier for the source.
35
+ """
36
+
37
+ source_id: UUID
38
+ created_date: datetime
39
+ updated_date: datetime
40
+ updated_by: str
41
+
42
+ model_config = ConfigDict(from_attributes=True)
43
+
44
+
45
+ class SourceWithUpload(Source):
46
+ """Source response including upload information.
47
+
48
+ Overrides optional fields from Source to be required for upload responses.
49
+ """