sprocket-systems.coda.sdk 1.3.2__py3-none-any.whl → 2.0.5__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.
- coda/__init__.py +2 -31
- coda/sdk/__init__.py +27 -0
- coda/sdk/constants.py +22 -0
- coda/sdk/enums.py +270 -0
- coda/sdk/essence.py +496 -0
- coda/sdk/job.py +582 -0
- coda/sdk/preset.py +215 -0
- coda/sdk/utils.py +282 -0
- coda/sdk/workflow.py +1402 -0
- {sprocket_systems_coda_sdk-1.3.2.dist-info → sprocket_systems_coda_sdk-2.0.5.dist-info}/METADATA +4 -3
- sprocket_systems_coda_sdk-2.0.5.dist-info/RECORD +15 -0
- {sprocket_systems_coda_sdk-1.3.2.dist-info → sprocket_systems_coda_sdk-2.0.5.dist-info}/WHEEL +1 -1
- coda/sdk.py +0 -1646
- sprocket_systems_coda_sdk-1.3.2.dist-info/RECORD +0 -8
- {sprocket_systems_coda_sdk-1.3.2.dist-info → sprocket_systems_coda_sdk-2.0.5.dist-info}/entry_points.txt +0 -0
- {sprocket_systems_coda_sdk-1.3.2.dist-info → sprocket_systems_coda_sdk-2.0.5.dist-info}/licenses/LICENSE +0 -0
coda/__init__.py
CHANGED
|
@@ -1,34 +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__ = "
|
|
4
|
-
CODA_APP_SUITE_VERSION = "+coda-
|
|
3
|
+
__version__ = "2.0.5"
|
|
4
|
+
CODA_APP_SUITE_VERSION = "+coda-2.0.12"
|
|
5
5
|
FINAL_VERSION = __version__ + CODA_APP_SUITE_VERSION
|
|
6
|
-
|
|
7
|
-
import sys
|
|
8
|
-
import shutil
|
|
9
|
-
import subprocess
|
|
10
|
-
|
|
11
|
-
# Find the full path to 'coda'
|
|
12
|
-
coda_path = shutil.which("coda")
|
|
13
|
-
|
|
14
|
-
if coda_path:
|
|
15
|
-
# Run '<path to coda> -v'
|
|
16
|
-
result = subprocess.run(
|
|
17
|
-
[coda_path, "-v"], capture_output=True, text=True, shell=False
|
|
18
|
-
)
|
|
19
|
-
ver = result.stdout.replace("\n", "").replace("coda version ", "")
|
|
20
|
-
# Print output
|
|
21
|
-
if f"+coda-{ver}" not in FINAL_VERSION:
|
|
22
|
-
print(
|
|
23
|
-
"WARNING !!! Mismatched core tools version",
|
|
24
|
-
ver,
|
|
25
|
-
f"for coda python sdk {__version__}",
|
|
26
|
-
file=sys.stderr,
|
|
27
|
-
)
|
|
28
|
-
else:
|
|
29
|
-
split = FINAL_VERSION.split("-")
|
|
30
|
-
ver = split[-1]
|
|
31
|
-
print(
|
|
32
|
-
f"WARNING !!! coda CLI not found in system PATH. Make sure you install coda [v{ver}] if you intend to use the agent.",
|
|
33
|
-
file=sys.stderr,
|
|
34
|
-
)
|
coda/sdk/__init__.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from .job import Job, JobPayloadBuilder
|
|
2
|
+
from .essence import Essence
|
|
3
|
+
from .workflow import WorkflowDefinition, WorkflowDefinitionBuilder
|
|
4
|
+
from .preset import Preset
|
|
5
|
+
from .enums import PresetType, SourceType, VenueType, InputFilter, Language, Format, StemType, FrameRate, InputStemType
|
|
6
|
+
from .utils import user_info, timing_info, get_channels
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"Job",
|
|
10
|
+
"JobPayloadBuilder",
|
|
11
|
+
"Essence",
|
|
12
|
+
"WorkflowDefinition",
|
|
13
|
+
"WorkflowDefinitionBuilder",
|
|
14
|
+
"Preset",
|
|
15
|
+
"PresetType",
|
|
16
|
+
"SourceType",
|
|
17
|
+
"VenueType",
|
|
18
|
+
"InputStemType",
|
|
19
|
+
"InputFilter",
|
|
20
|
+
"Language",
|
|
21
|
+
"Format",
|
|
22
|
+
"StemType",
|
|
23
|
+
"FrameRate",
|
|
24
|
+
"user_info",
|
|
25
|
+
"get_channels",
|
|
26
|
+
"timing_info",
|
|
27
|
+
]
|
coda/sdk/constants.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""Constants used throughout the Coda SDK."""
|
|
2
|
+
|
|
3
|
+
# Environment Variable Names
|
|
4
|
+
ENV_CODA_API_GROUP_ID = "CODA_API_GROUP_ID"
|
|
5
|
+
ENV_CODA_API_URL = "CODA_API_URL"
|
|
6
|
+
ENV_CODA_API_TOKEN = "CODA_API_TOKEN"
|
|
7
|
+
ENV_CODA_API_INSECURE_SKIP_VERIFY = "CODA_API_INSECURE_SKIP_VERIFY"
|
|
8
|
+
ENV_CODA_CLI_EXE = "CODA_CLI_EXE"
|
|
9
|
+
ENV_NO_CODA_EXE = "NO_CODA_EXE"
|
|
10
|
+
ENV_S3_SRC_ROLE = "S3_SRC_ROLE"
|
|
11
|
+
ENV_S3_SRC_EXTERNAL_ID = "S3_SRC_EXTERNAL_ID"
|
|
12
|
+
|
|
13
|
+
# Default Values
|
|
14
|
+
DEFAULT_API_URL = "https://v2.coda.sprocket.systems"
|
|
15
|
+
DEFAULT_PROGRAM_ID = "program-1"
|
|
16
|
+
DEFAULT_BIT_DEPTH = 24
|
|
17
|
+
DEFAULT_SAMPLE_RATE = 48000
|
|
18
|
+
INSECURE_SKIP_VERIFY_VALUES = ("true", "1", "yes")
|
|
19
|
+
|
|
20
|
+
# URL Prefixes
|
|
21
|
+
URL_PREFIX_S3 = "s3://"
|
|
22
|
+
URL_PREFIX_IO = "io://"
|
coda/sdk/enums.py
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
from enum import StrEnum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PresetType(StrEnum):
|
|
5
|
+
"""Enums for the different types of presets available in Coda."""
|
|
6
|
+
|
|
7
|
+
JOBS = "jobs"
|
|
8
|
+
WORKFLOWS = "workflows"
|
|
9
|
+
LOUDNESS = "loudness"
|
|
10
|
+
TIMECODE = "timecode"
|
|
11
|
+
GROUPS = "groups"
|
|
12
|
+
NAMING = "naming"
|
|
13
|
+
DOLBY = "dolby"
|
|
14
|
+
DTS = "dts"
|
|
15
|
+
SUPER_SESSION = "super_session"
|
|
16
|
+
IO_LOCATIONS = "io_locations"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class SourceType(StrEnum):
|
|
20
|
+
"""Enums for the different types of input sources for a job."""
|
|
21
|
+
|
|
22
|
+
INTERLEAVED = "interleaved"
|
|
23
|
+
MULTI_MONO = "multi_mono"
|
|
24
|
+
ADM = "bwav_adm"
|
|
25
|
+
IAB_MXF = "iab_mxf"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class VenueType(StrEnum):
|
|
29
|
+
"""Enums for the different venues supported."""
|
|
30
|
+
|
|
31
|
+
NEARFIELD = "nearfield"
|
|
32
|
+
THEATRICAL = "theatrical"
|
|
33
|
+
ALL_FROM_ESSENCE = "all_from_essence"
|
|
34
|
+
SAME_AS_INPUT = "same_as_input"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class InputFilter(StrEnum):
|
|
38
|
+
"""Enums for the input filters used in workflow process blocks."""
|
|
39
|
+
|
|
40
|
+
ALL_STEMS = "all_stems"
|
|
41
|
+
ALL_STEMS_EXCEPT_OPTIONALS = "all_stems_except_optionals"
|
|
42
|
+
ALL_DX = "all_dx"
|
|
43
|
+
ALL_MX = "all_mx"
|
|
44
|
+
ALL_FX = "all_fx"
|
|
45
|
+
MNE_STEMS = "m&e_stems"
|
|
46
|
+
OPTIONALS_ONLY = "optionals_only"
|
|
47
|
+
PRINTMASTER_ONLY = "printmaster_only"
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class Language(StrEnum):
|
|
51
|
+
"""Enums for language codes."""
|
|
52
|
+
|
|
53
|
+
NO_LINGUISTIC_CONTENT = "ZXX"
|
|
54
|
+
QUALIFIED_FOR_ALL_LANGUAGES = "QAL"
|
|
55
|
+
SEMI_TEXTLESS = "STX"
|
|
56
|
+
ENGLISH = "ENG"
|
|
57
|
+
AFRIKAANS = "AFK"
|
|
58
|
+
ALBANIAN = "SQI"
|
|
59
|
+
AMERICAN_SIGN_LANGUAGE = "ASE"
|
|
60
|
+
ARABIC_MODERN_STANDARD = "MSA"
|
|
61
|
+
ARABIC_EGYPTIAN = "ARE"
|
|
62
|
+
ARABIC_UAE_LEBANON = "ARL"
|
|
63
|
+
ARABIC_CLASSICAL_FORMAL = "QCA"
|
|
64
|
+
ARABIC_SYRIAN = "ASY"
|
|
65
|
+
ARAMAIC = "ARC"
|
|
66
|
+
ARMENIAN = "HYE"
|
|
67
|
+
AZERBAIJANI = "AZE"
|
|
68
|
+
BELARUSIAN = "BEL"
|
|
69
|
+
BOSNIAN = "BOS"
|
|
70
|
+
BRITISH_SIGN_LANGUAGE = "BFI"
|
|
71
|
+
BULGARIAN = "BUL"
|
|
72
|
+
BURMESE = "BUR"
|
|
73
|
+
CATALAN_VALENCIAN = "SCA"
|
|
74
|
+
CHEROKEE = "CHR"
|
|
75
|
+
CHINESE_CANTONESE = "CNT"
|
|
76
|
+
CHINESE_MANDARIN_PRC = "PRC"
|
|
77
|
+
CHINESE_MANDARIN_TAIWAN = "QMT"
|
|
78
|
+
CHINESE_MIN_NAN = "TAI"
|
|
79
|
+
CHINESE_SIMPLIFIED_CHARACTERS = "CMN"
|
|
80
|
+
CHINESE_SIMPLIFIED_CHARACTERS_MALAYSIA = "ZM1"
|
|
81
|
+
CHINESE_SIMPLIFIED_CHARACTERS_PRC = "CN1"
|
|
82
|
+
CHINESE_SIMPLIFIED_CHARACTERS_SINGAPORE = "ZS1"
|
|
83
|
+
CHINESE_TRADITIONAL_CHARACTERS = "CM1"
|
|
84
|
+
CHINESE_TRADITIONAL_CHARACTERS_HONG_KONG = "YU1"
|
|
85
|
+
CHINESE_TRADITIONAL_CHARACTERS_TAIWAN = "ZT1"
|
|
86
|
+
CHINESE_WU = "WUU"
|
|
87
|
+
CHOCTAW = "CHO"
|
|
88
|
+
COMANCHE = "COM"
|
|
89
|
+
CROATIAN = "CRO"
|
|
90
|
+
CZECH = "CZE"
|
|
91
|
+
DANISH = "DAN"
|
|
92
|
+
DUTCH = "DUT"
|
|
93
|
+
DUTCH_FLEMISH = "DFD"
|
|
94
|
+
ENGLISH_AUSTRALIAN = "AUS"
|
|
95
|
+
ENGLISH_BRITISH = "EUK"
|
|
96
|
+
ENGLISH_FOR_INDONESIA = "ENI"
|
|
97
|
+
ENGLISH_FOR_PHILIPPINES = "ENP"
|
|
98
|
+
ESTONIAN = "EST"
|
|
99
|
+
FARSI_PERSIAN = "PER"
|
|
100
|
+
FINNISH = "FIN"
|
|
101
|
+
FLEMISH = "FLM"
|
|
102
|
+
FRENCH_CANADIAN_QUEBECOIS = "FRC"
|
|
103
|
+
FRENCH_FRANCE = "FRP"
|
|
104
|
+
GEORGIAN = "GEO"
|
|
105
|
+
GERMAN = "GER"
|
|
106
|
+
GERMAN_AUSTRIAN = "AST"
|
|
107
|
+
GERMAN_SWISS_ALSATIAN = "SWI"
|
|
108
|
+
GREEK_MODERN = "GRK"
|
|
109
|
+
HAWAIIAN = "HAW"
|
|
110
|
+
HEBREW = "HEB"
|
|
111
|
+
HINDI = "HIN"
|
|
112
|
+
HUNGARIAN = "HUN"
|
|
113
|
+
ICELANDIC = "ICE"
|
|
114
|
+
INDONESIAN_BAHASA = "INB"
|
|
115
|
+
ITALIAN = "ITA"
|
|
116
|
+
JAPANESE = "JPN"
|
|
117
|
+
KANNADA = "KAN"
|
|
118
|
+
KAZAKH = "KAZ"
|
|
119
|
+
KOREAN = "KOR"
|
|
120
|
+
LAKOTA = "LKT"
|
|
121
|
+
LATIN = "LAT"
|
|
122
|
+
LATVIAN = "LTV"
|
|
123
|
+
LITHUANIAN = "LTH"
|
|
124
|
+
LUXEMBOURGISH = "LTZ"
|
|
125
|
+
MACEDONIAN = "MAS"
|
|
126
|
+
MALAY_BAHASA = "MAB"
|
|
127
|
+
MALAYALAM = "MYM"
|
|
128
|
+
MAORI = "MAO"
|
|
129
|
+
MOHAWK = "MOH"
|
|
130
|
+
MONGOLIAN = "MON"
|
|
131
|
+
NORTHERN_SAMI = "SME"
|
|
132
|
+
NORWEGIAN = "NOR"
|
|
133
|
+
OJIBWE = "OJI"
|
|
134
|
+
PANJABI = "PAN"
|
|
135
|
+
POLISH = "POL"
|
|
136
|
+
PORTUGUESE_BRAZILIAN = "PTB"
|
|
137
|
+
PORTUGUESE_EUROPEAN = "PTE"
|
|
138
|
+
PUSHTO = "PUS"
|
|
139
|
+
ROMANIAN_MOLDAVIAN = "ROM"
|
|
140
|
+
RUSSIAN = "RUS"
|
|
141
|
+
SERBIAN = "SER"
|
|
142
|
+
SLAVIC = "SLA"
|
|
143
|
+
SLOVAK = "SLK"
|
|
144
|
+
SLOVENIAN = "SLV"
|
|
145
|
+
SOMALI = "SOM"
|
|
146
|
+
SPANISH_ARGENTINIAN = "SPA"
|
|
147
|
+
SPANISH_CASTILIAN = "SPC"
|
|
148
|
+
SPANISH_CHILEAN = "ECH"
|
|
149
|
+
SPANISH_LATIN_AMERICAN = "LAS"
|
|
150
|
+
SPANISH_MEXICAN = "SPM"
|
|
151
|
+
SWEDISH = "SWE"
|
|
152
|
+
TAGALOG = "TAG"
|
|
153
|
+
TAIWANESE_MIN_NAN = "TAI"
|
|
154
|
+
TAMIL = "TAM"
|
|
155
|
+
TELUGU = "TEL"
|
|
156
|
+
THAI = "THA"
|
|
157
|
+
THAI_ISAN = "TTS"
|
|
158
|
+
TURKISH = "TUR"
|
|
159
|
+
UKRAINIAN = "UKR"
|
|
160
|
+
URDU = "URD"
|
|
161
|
+
VIETNAMESE = "VIE"
|
|
162
|
+
UNDETERMINED = "UND"
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class Format(StrEnum):
|
|
166
|
+
"""Enums for supported audio channel configurations."""
|
|
167
|
+
|
|
168
|
+
ONE_ZERO = "1.0"
|
|
169
|
+
TWO_ZERO = "2.0"
|
|
170
|
+
THREE_ZERO = "3.0"
|
|
171
|
+
LCRS = "LCRS"
|
|
172
|
+
FIVE_ZERO = "5.0"
|
|
173
|
+
FIVE_ZERO_TWO = "5.0.2"
|
|
174
|
+
SEVEN_ZERO = "7.0"
|
|
175
|
+
SEVEN_ONE = "7.1"
|
|
176
|
+
FIVE_ONE = "5.1"
|
|
177
|
+
FIVE_ONE_ONE = "5.1.1"
|
|
178
|
+
FIVE_ONE_TWO = "5.1.2"
|
|
179
|
+
FIVE_ZERO_FOUR = "5.0.4"
|
|
180
|
+
SEVEN_ZERO_TWO = "7.0.2"
|
|
181
|
+
FIVE_ONE_FOUR = "5.1.4"
|
|
182
|
+
SEVEN_ONE_TWO = "7.1.2"
|
|
183
|
+
SEVEN_ZERO_FOUR = "7.0.4"
|
|
184
|
+
SEVEN_ONE_FOUR = "7.1.4"
|
|
185
|
+
SEVEN_ONE_FIVE = "7.1.5"
|
|
186
|
+
SEVEN_ZERO_SIX = "7.0.6"
|
|
187
|
+
NINE_ZERO_FOUR = "9.0.4"
|
|
188
|
+
SEVEN_ONE_SIX = "7.1.6"
|
|
189
|
+
NINE_ONE_FOUR = "9.1.4"
|
|
190
|
+
NINE_ZERO_SIX = "9.0.6"
|
|
191
|
+
NINE_ONE_SIX = "9.1.6"
|
|
192
|
+
IMAX5 = "imax5"
|
|
193
|
+
IMAX6 = "imax6"
|
|
194
|
+
IMAX12 = "imax12"
|
|
195
|
+
ATMOS = "atmos"
|
|
196
|
+
ALL_FROM_ESSENCE = "all_from_essence"
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
class StemType(StrEnum):
|
|
200
|
+
"""Enums for stem types."""
|
|
201
|
+
|
|
202
|
+
PRINTMASTER = "printmaster"
|
|
203
|
+
MNE = "mne"
|
|
204
|
+
DME = "dme"
|
|
205
|
+
WIDES = "wides"
|
|
206
|
+
ALL_FROM_ESSENCE = "all_from_essence"
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
class FrameRate(StrEnum):
|
|
210
|
+
"""Enums for frame rates."""
|
|
211
|
+
|
|
212
|
+
TWENTY_THREE = "23"
|
|
213
|
+
TWENTY_FOUR = "24"
|
|
214
|
+
TWENTY_FIVE = "25"
|
|
215
|
+
TWENTY_NINE = "29"
|
|
216
|
+
TWENTY_NINE_DROP_FRAME = "29DF"
|
|
217
|
+
THIRTY = "30"
|
|
218
|
+
ALL_FROM_ESSENCE = "all_from_essence"
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
class InputStemType(StrEnum):
|
|
222
|
+
"""Enums for input source stem types."""
|
|
223
|
+
|
|
224
|
+
PRINTMASTER = "audio/pm"
|
|
225
|
+
DX_COMP = "audio/dxcomp"
|
|
226
|
+
FX_COMP = "audio/fxcomp"
|
|
227
|
+
MX_COMP = "audio/mxcomp"
|
|
228
|
+
DX = "audio/dx"
|
|
229
|
+
MX = "audio/mx"
|
|
230
|
+
FX = "audio/fx"
|
|
231
|
+
BG = "audio/bg"
|
|
232
|
+
FOL = "audio/fol"
|
|
233
|
+
LG = "audio/lg"
|
|
234
|
+
PFX = "audio/pfx"
|
|
235
|
+
ADR = "audio/adr"
|
|
236
|
+
SONG = "audio/sng"
|
|
237
|
+
SCORE = "audio/scr"
|
|
238
|
+
VOX = "audio/vox"
|
|
239
|
+
FIX = "audio/fix"
|
|
240
|
+
FFFX = "audio/fffx"
|
|
241
|
+
MNE = "audio/mne"
|
|
242
|
+
MNE_MX = "audio/mnemx"
|
|
243
|
+
OPT_A = "audio/opta"
|
|
244
|
+
OPT_B = "audio/optb"
|
|
245
|
+
OPT_C = "audio/optc"
|
|
246
|
+
OPT_D = "audio/optd"
|
|
247
|
+
OPT_E = "audio/opte"
|
|
248
|
+
OPT_F = "audio/optf"
|
|
249
|
+
OPT_G = "audio/optg"
|
|
250
|
+
AUDIO_DESCRIPTION = "audio/audiodescription"
|
|
251
|
+
ARCH = "audio/arch"
|
|
252
|
+
VO = "audio/vo"
|
|
253
|
+
CRD = "audio/crd"
|
|
254
|
+
NAR = "audio/nar"
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
class PackageType(StrEnum):
|
|
258
|
+
"""Enums for the different types of packages that can be created in a workflow."""
|
|
259
|
+
|
|
260
|
+
ADM = "adm"
|
|
261
|
+
DTS = "dts"
|
|
262
|
+
IMAX_ENHANCED = "imax_enhanced"
|
|
263
|
+
DOLBY = "dolby"
|
|
264
|
+
DCP_MXF = "dcp_mxf"
|
|
265
|
+
MULTI_MONO_REELS = "multi_mono_reels"
|
|
266
|
+
SUPER_SESSION = "super_session"
|
|
267
|
+
INTERLEAVED = "interleaved"
|
|
268
|
+
MOV = "mov"
|
|
269
|
+
MULTI_MONO = "multi_mono"
|
|
270
|
+
# IAB_MXF = "iab_mxf"
|