sprocket-systems.coda.sdk 2.0.11__tar.gz → 2.1.0__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 (16) hide show
  1. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/PKG-INFO +1 -1
  2. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/pyproject.toml +1 -1
  3. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/__init__.py +2 -2
  4. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/essence.py +9 -7
  5. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/job.py +2 -1
  6. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/workflow.py +14 -14
  7. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/LICENSE +0 -0
  8. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/PYPI_README.md +0 -0
  9. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/__init__.py +0 -0
  10. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/constants.py +0 -0
  11. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/enums.py +0 -0
  12. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/exceptions.py +0 -0
  13. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/preset.py +0 -0
  14. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk/utils.py +0 -0
  15. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/sdk.py +0 -0
  16. {sprocket_systems_coda_sdk-2.0.11 → sprocket_systems_coda_sdk-2.1.0}/src/coda/tc_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sprocket-systems.coda.sdk
3
- Version: 2.0.11
3
+ Version: 2.1.0
4
4
  Summary: The Coda SDK provides a Python interface to define Coda workflows, create jobs and run them.
5
5
  Keywords: python,coda,sdk
6
6
  Author-Email: Sprocket Systems <support@sprocket.systems>
@@ -27,7 +27,7 @@ dependencies = [
27
27
  "requests",
28
28
  "soundfile>=0.13.1",
29
29
  ]
30
- version = "2.0.11"
30
+ version = "2.1.0"
31
31
 
32
32
  [project.urls]
33
33
  Documentation = "https://v2.coda.sprocket.systems/docs/sdks/python/"
@@ -1,5 +1,5 @@
1
1
  # The versions below will be replaced automatically in CI.
2
2
  # You do not need to modify any of the versions below.
3
- __version__ = "2.0.11"
4
- CODA_APP_SUITE_VERSION = "+coda-2.0.14"
3
+ __version__ = "2.1.0"
4
+ CODA_APP_SUITE_VERSION = "+coda-2.0.17"
5
5
  FINAL_VERSION = __version__ + CODA_APP_SUITE_VERSION
@@ -402,6 +402,8 @@ class Essence:
402
402
  ) -> list["Essence"]:
403
403
  """Create a list of CodaEssence objects from files.
404
404
 
405
+ Note: this method only supports multi-mono file sets.
406
+
405
407
  This method inspects local files using the 'coda inspect' command-line tool
406
408
  to automatically determine their properties. For S3 files or when the CLI
407
409
  is unavailable, it relies on the `file_info` dictionary for manual creation.
@@ -410,20 +412,20 @@ class Essence:
410
412
  files (List): A list of file paths.
411
413
  io_location_id (str, optional): The IO Location ID associated with the source files. Required for agent transfers.
412
414
  file_info (dict, optional): Manual override info for files. Required for S3.
413
- Should contain keys like 'format', 'type', 'frames', 's3_auth'. Defaults to None.
415
+ Should contain keys like 'format', 'type', 'frames', 'auth'. Defaults to None.
414
416
  Examples: file_info = {
415
417
  "frames": 720000,
416
418
  "format": Format.SEVEN_ONE,
417
419
  "type": InputStemType.PRINTMASTER,
418
- "s3_auth": {
420
+ "auth": {
419
421
  "iam_role": os.getenv(ENV_S3_ROLE, "XXXX"),
420
422
  "iam_external_id": os.getenv(ENV_S3_EXTERNAL_ID, "XXXX"),
421
423
  },
422
- "s3_options": {"region": "us-west-2"},
424
+ "opts": {"region": "us-west-2"},
423
425
  }
424
426
 
425
- Note: `s3_auth` may also use S3 access key secret and ID
426
- "s3_auth": {
427
+ Note: `auth` may also use S3 access key secret and ID
428
+ "auth": {
427
429
  "access_key_id": os.getenv(ENV_S3_ACCESS_KEY_ID, "XXXX"),
428
430
  "secret_access_key": os.getenv(ENV_S3_SECRET_ACCESS_KEY, "XXXX"),
429
431
  }
@@ -551,8 +553,8 @@ class Essence:
551
553
  res = [
552
554
  {
553
555
  "url": r,
554
- "auth": file_info.get("s3_auth"),
555
- "opts": file_info.get("s3_options"),
556
+ "auth": file_info.get("auth"),
557
+ "opts": file_info.get("opts"),
556
558
  }
557
559
  for r in s3_files
558
560
  ]
@@ -729,5 +729,6 @@ class Job:
729
729
  CodaAPIError: If query fails (HTTP 4XX or 5XX response).
730
730
 
731
731
  """
732
- ret = make_request(requests.get, f"/interface/v1/jobs?sort=asc&start_date={start_date}&end_date={end_date}")
732
+ group_id = validate_group_id()
733
+ ret = make_request(requests.get, f"/interface/v2/groups/{group_id}/jobs?sort=asc&start_date={start_date}&end_date={end_date}")
733
734
  return ret.json()
@@ -1120,40 +1120,40 @@ class WorkflowDefinitionBuilder:
1120
1120
 
1121
1121
  return self
1122
1122
 
1123
- def with_destination(self, name: str, io_location_id: str | None = None, s3_url: str | None = None, s3_auth: dict | None = None, options: dict | None = None) -> 'WorkflowDefinitionBuilder':
1123
+ def with_destination(self, name: str, io_location_id: str | None = None, url: str | None = None, auth: dict | None = None, options: dict | None = None) -> 'WorkflowDefinitionBuilder':
1124
1124
  """Add a destination node to the workflow.
1125
1125
 
1126
1126
  Args:
1127
1127
  name (str): A unique name for the destination.
1128
1128
  io_location_id (str): The ULID of a desired IO Location. Defaults to None.
1129
- s3_url (str): The URL of the S3 destination (e.g., "s3://..."). Defaults to None.
1130
- s3_auth (dict, optional): Authentication details. Defaults to None.
1129
+ url (str): The URL of the cloud storage destination (e.g., "s3://..."). Defaults to None.
1130
+ auth (dict, optional): Authentication details. Defaults to None.
1131
1131
  options (dict, optional): URL options. Defaults to None.
1132
1132
 
1133
1133
  Returns:
1134
1134
  WorkflowDefinitionBuilder: The builder instance for fluent chaining.
1135
1135
 
1136
1136
  Raises:
1137
- ValueError: If either io_location or s3_url is not supplied.
1138
- ValueError: If both io_location and s3_url is supplied.
1137
+ ValueError: If either io_location or url is not supplied.
1138
+ ValueError: If both io_location and url is supplied.
1139
1139
 
1140
1140
  """
1141
- if s3_url is None and io_location_id is None:
1142
- raise ValueError("Either an 'io_location_id' or 's3_url' must be supplied")
1141
+ if url is None and io_location_id is None:
1142
+ raise ValueError("Either an 'io_location_id' or 'url' must be supplied")
1143
1143
 
1144
- if s3_url is not None and io_location_id is not None:
1145
- raise ValueError("Either an 'io_location_id' or 's3_url' must be supplied, not both.")
1144
+ if url is not None and io_location_id is not None:
1145
+ raise ValueError("Either an 'io_location_id' or 'url' must be supplied, not both.")
1146
1146
 
1147
1147
  dest_def: dict[str, Any] = {"package_ids": []}
1148
- if s3_url is not None and io_location_id is None:
1148
+ if url is not None and io_location_id is None:
1149
1149
  dest_type = "s3"
1150
- dest_def["url"] = s3_url
1151
- if s3_auth:
1152
- dest_def["auth"] = s3_auth
1150
+ dest_def["url"] = url
1151
+ if auth:
1152
+ dest_def["auth"] = auth
1153
1153
  if options:
1154
1154
  dest_def["opts"] = options
1155
1155
 
1156
- if io_location_id is not None and s3_url is None:
1156
+ if io_location_id is not None and url is None:
1157
1157
  dest_type = "io_location"
1158
1158
  dest_def["io_location_id"] = io_location_id
1159
1159