@@ -257,6 +257,7 @@ class AssetsNamespace(DomainNamespace): # pylint: disable=too-many-public-metho
257257 - create_pdf(): Create PDF assets
258258 - create_text(): Create plain text assets
259259 - create_rich_text(): Create rich-text formatted text assets
260+ - create_audio(): Create audio assets
260261 - delete(): Delete assets from projects
261262 - add_metadata(): Add metadata to assets
262263 - set_metadata(): Set metadata on assets
@@ -1311,6 +1312,102 @@ def create_rich_text(
13111312 ** kwargs ,
13121313 )
13131314
1315+ @overload
1316+ def create_audio (
1317+ self ,
1318+ * ,
1319+ project_id : str ,
1320+ content : Union [str , dict ],
1321+ external_id : Optional [str ] = None ,
1322+ json_metadata : Optional [dict ] = None ,
1323+ wait_until_availability : bool = True ,
1324+ ** kwargs ,
1325+ ) -> dict [Literal ["id" , "asset_ids" ], Union [str , List [str ]]]:
1326+ ...
1327+
1328+ @overload
1329+ def create_audio (
1330+ self ,
1331+ * ,
1332+ project_id : str ,
1333+ content_array : Union [List [str ], List [dict ]],
1334+ external_id_array : Optional [List [str ]] = None ,
1335+ json_metadata_array : Optional [List [dict ]] = None ,
1336+ disable_tqdm : Optional [bool ] = None ,
1337+ wait_until_availability : bool = True ,
1338+ ** kwargs ,
1339+ ) -> dict [Literal ["id" , "asset_ids" ], Union [str , List [str ]]]:
1340+ ...
1341+
1342+ @typechecked
1343+ def create_audio (
1344+ self ,
1345+ * ,
1346+ project_id : str ,
1347+ content : Optional [Union [str , dict ]] = None ,
1348+ content_array : Optional [Union [List [str ], List [dict ]]] = None ,
1349+ external_id : Optional [str ] = None ,
1350+ external_id_array : Optional [List [str ]] = None ,
1351+ json_metadata : Optional [dict ] = None ,
1352+ json_metadata_array : Optional [List [dict ]] = None ,
1353+ disable_tqdm : Optional [bool ] = None ,
1354+ wait_until_availability : bool = True ,
1355+ ** kwargs ,
1356+ ) -> dict [Literal ["id" , "asset_ids" ], Union [str , List [str ]]]:
1357+ """Create audio assets in a project.
1358+
1359+ Args:
1360+ project_id: Identifier of the project
1361+ content: URL or local file path to an audio file
1362+ content_array: List of URLs or local file paths to audio files
1363+ external_id: External id to identify the asset
1364+ external_id_array: List of external ids given to identify the assets
1365+ json_metadata: The metadata given to the asset
1366+ json_metadata_array: The metadata given to each asset
1367+ disable_tqdm: If True, the progress bar will be disabled
1368+ wait_until_availability: If True, waits until assets are fully processed
1369+ **kwargs: Additional arguments (e.g., is_honeypot)
1370+
1371+ Returns:
1372+ A dictionary with project id and list of created asset ids
1373+
1374+ Examples:
1375+ >>> # Create single audio asset
1376+ >>> result = kili.assets.create_audio(
1377+ ... project_id="my_project",
1378+ ... content="https://example.com/audio.mp3"
1379+ ... )
1380+
1381+ >>> # Create multiple audio assets
1382+ >>> result = kili.assets.create_audio(
1383+ ... project_id="my_project",
1384+ ... content_array=["https://example.com/audio1.mp3", "https://example.com/audio2.wav"]
1385+ ... )
1386+
1387+ >>> # Create audio with metadata
1388+ >>> result = kili.assets.create_audio(
1389+ ... project_id="my_project",
1390+ ... content="https://example.com/audio.mp3",
1391+ ... json_metadata={"speaker": "John Doe"}
1392+ ... )
1393+ """
1394+ if content is not None :
1395+ content_array = cast (Union [list [str ], list [dict ]], [content ])
1396+ if external_id is not None :
1397+ external_id_array = [external_id ]
1398+ if json_metadata is not None :
1399+ json_metadata_array = [json_metadata ]
1400+
1401+ return self ._client .append_many_to_dataset (
1402+ project_id = project_id ,
1403+ content_array = content_array ,
1404+ external_id_array = external_id_array ,
1405+ json_metadata_array = json_metadata_array ,
1406+ disable_tqdm = disable_tqdm ,
1407+ wait_until_availability = wait_until_availability ,
1408+ ** kwargs ,
1409+ )
1410+
13141411 @overload
13151412 def delete (
13161413 self ,
0 commit comments