dataroom-client 1.0.1.post14.dev0__tar.gz → 1.0.1.post49.dev0__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.
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/PKG-INFO +2 -2
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/README.md +1 -1
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/client.py +152 -2
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/pyproject.toml +1 -1
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/__init__.py +0 -0
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/counter.py +0 -0
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/loader.py +0 -0
- {dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/print_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dataroom-client
|
|
3
|
-
Version: 1.0.1.
|
|
3
|
+
Version: 1.0.1.post49.dev0
|
|
4
4
|
Summary: A python client to interface with the Dataroom backend API
|
|
5
5
|
Author: Ales Kocjancic
|
|
6
6
|
Author-email: hi@ales.io
|
|
@@ -38,5 +38,5 @@ For more examples see [client_example.ipynb](./notebooks/client_example.ipynb).
|
|
|
38
38
|
|
|
39
39
|
# Developing
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Follow the instructions in the main [README](../README.md).
|
|
42
42
|
|
{dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/client.py
RENAMED
|
@@ -87,6 +87,7 @@ class ImageUpdate(TypedDict, total=False):
|
|
|
87
87
|
tags: Optional[List[str]]
|
|
88
88
|
coca_embedding: Optional[str]
|
|
89
89
|
related_images: Optional[dict[str, str]]
|
|
90
|
+
datasets: Optional[list[str]]
|
|
90
91
|
|
|
91
92
|
|
|
92
93
|
class ImageCreate(TypedDict, total=False):
|
|
@@ -97,6 +98,7 @@ class ImageCreate(TypedDict, total=False):
|
|
|
97
98
|
attributes: Optional[dict]
|
|
98
99
|
tags: Optional[list[str]]
|
|
99
100
|
related_images: Optional[dict[str, str]]
|
|
101
|
+
datasets: Optional[list[str]]
|
|
100
102
|
|
|
101
103
|
|
|
102
104
|
def arg_deprecation_msg(arg_name, msg=''):
|
|
@@ -305,6 +307,11 @@ class DataRoomClient:
|
|
|
305
307
|
date_updated__gte: datetime = None,
|
|
306
308
|
date_updated__lt: datetime = None,
|
|
307
309
|
date_updated__lte: datetime = None,
|
|
310
|
+
datasets: list = None,
|
|
311
|
+
datasets__ne: list = None,
|
|
312
|
+
datasets__all: list = None,
|
|
313
|
+
datasets__ne_all: list = None,
|
|
314
|
+
datasets__empty: bool = None,
|
|
308
315
|
):
|
|
309
316
|
headers = {}
|
|
310
317
|
if cache_ttl:
|
|
@@ -368,6 +375,11 @@ class DataRoomClient:
|
|
|
368
375
|
"date_updated__gte": date_updated__gte.isoformat() if date_updated__gte else None,
|
|
369
376
|
"date_updated__lt": date_updated__lt.isoformat() if date_updated__lt else None,
|
|
370
377
|
"date_updated__lte": date_updated__lte.isoformat() if date_updated__lte else None,
|
|
378
|
+
"datasets": ",".join(datasets) if datasets else None,
|
|
379
|
+
"datasets__ne": ",".join(datasets__ne) if datasets__ne else None,
|
|
380
|
+
"datasets__all": ",".join(datasets__all) if datasets__all else None,
|
|
381
|
+
"datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
|
|
382
|
+
"datasets__empty": datasets__empty,
|
|
371
383
|
}
|
|
372
384
|
),
|
|
373
385
|
headers=headers,
|
|
@@ -427,6 +439,11 @@ class DataRoomClient:
|
|
|
427
439
|
date_updated__gte: datetime = None,
|
|
428
440
|
date_updated__lt: datetime = None,
|
|
429
441
|
date_updated__lte: datetime = None,
|
|
442
|
+
datasets: list = None,
|
|
443
|
+
datasets__ne: list = None,
|
|
444
|
+
datasets__all: list = None,
|
|
445
|
+
datasets__ne_all: list = None,
|
|
446
|
+
datasets__empty: bool = None,
|
|
430
447
|
):
|
|
431
448
|
headers = {}
|
|
432
449
|
if cache_ttl:
|
|
@@ -490,6 +507,11 @@ class DataRoomClient:
|
|
|
490
507
|
"date_updated__gte": date_updated__gte.isoformat() if date_updated__gte else None,
|
|
491
508
|
"date_updated__lt": date_updated__lt.isoformat() if date_updated__lt else None,
|
|
492
509
|
"date_updated__lte": date_updated__lte.isoformat() if date_updated__lte else None,
|
|
510
|
+
"datasets": ",".join(datasets) if datasets else None,
|
|
511
|
+
"datasets__ne": ",".join(datasets__ne) if datasets__ne else None,
|
|
512
|
+
"datasets__all": ",".join(datasets__all) if datasets__all else None,
|
|
513
|
+
"datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
|
|
514
|
+
"datasets__empty": datasets__empty,
|
|
493
515
|
}
|
|
494
516
|
),
|
|
495
517
|
headers=headers,
|
|
@@ -550,6 +572,11 @@ class DataRoomClient:
|
|
|
550
572
|
date_updated__gte: datetime = None,
|
|
551
573
|
date_updated__lt: datetime = None,
|
|
552
574
|
date_updated__lte: datetime = None,
|
|
575
|
+
datasets: list = None,
|
|
576
|
+
datasets__ne: list = None,
|
|
577
|
+
datasets__all: list = None,
|
|
578
|
+
datasets__ne_all: list = None,
|
|
579
|
+
datasets__empty: bool = None,
|
|
553
580
|
):
|
|
554
581
|
"""
|
|
555
582
|
Get a list of random images.
|
|
@@ -621,6 +648,11 @@ class DataRoomClient:
|
|
|
621
648
|
"date_updated__gte": date_updated__gte.isoformat() if date_updated__gte else None,
|
|
622
649
|
"date_updated__lt": date_updated__lt.isoformat() if date_updated__lt else None,
|
|
623
650
|
"date_updated__lte": date_updated__lte.isoformat() if date_updated__lte else None,
|
|
651
|
+
"datasets": ",".join(datasets) if datasets else None,
|
|
652
|
+
"datasets__ne": ",".join(datasets__ne) if datasets__ne else None,
|
|
653
|
+
"datasets__all": ",".join(datasets__all) if datasets__all else None,
|
|
654
|
+
"datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
|
|
655
|
+
"datasets__empty": datasets__empty,
|
|
624
656
|
}
|
|
625
657
|
),
|
|
626
658
|
headers=headers,
|
|
@@ -672,6 +704,11 @@ class DataRoomClient:
|
|
|
672
704
|
date_updated__gte: datetime = None,
|
|
673
705
|
date_updated__lt: datetime = None,
|
|
674
706
|
date_updated__lte: datetime = None,
|
|
707
|
+
datasets: list = None,
|
|
708
|
+
datasets__ne: list = None,
|
|
709
|
+
datasets__all: list = None,
|
|
710
|
+
datasets__ne_all: list = None,
|
|
711
|
+
datasets__empty: bool = None,
|
|
675
712
|
):
|
|
676
713
|
|
|
677
714
|
if source is not None:
|
|
@@ -725,6 +762,11 @@ class DataRoomClient:
|
|
|
725
762
|
"date_updated__gte": date_updated__gte.isoformat() if date_updated__gte else None,
|
|
726
763
|
"date_updated__lt": date_updated__lt.isoformat() if date_updated__lt else None,
|
|
727
764
|
"date_updated__lte": date_updated__lte.isoformat() if date_updated__lte else None,
|
|
765
|
+
"datasets": ",".join(datasets) if datasets else None,
|
|
766
|
+
"datasets__ne": ",".join(datasets__ne) if datasets__ne else None,
|
|
767
|
+
"datasets__all": ",".join(datasets__all) if datasets__all else None,
|
|
768
|
+
"datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
|
|
769
|
+
"datasets__empty": datasets__empty,
|
|
728
770
|
}
|
|
729
771
|
),
|
|
730
772
|
)
|
|
@@ -759,6 +801,7 @@ class DataRoomClient:
|
|
|
759
801
|
attributes: dict = None,
|
|
760
802
|
tags: list[str] = None,
|
|
761
803
|
related_images: dict[str, str] | None = None,
|
|
804
|
+
datasets: list[str] = None,
|
|
762
805
|
):
|
|
763
806
|
if not image_file and not image_url:
|
|
764
807
|
raise DataRoomError('Please provide either an "image_file" or "image_url" field')
|
|
@@ -777,6 +820,7 @@ class DataRoomClient:
|
|
|
777
820
|
"attributes": attributes,
|
|
778
821
|
"tags": tags,
|
|
779
822
|
"related_images": related_images,
|
|
823
|
+
"datasets": datasets,
|
|
780
824
|
}
|
|
781
825
|
)
|
|
782
826
|
|
|
@@ -836,6 +880,7 @@ class DataRoomClient:
|
|
|
836
880
|
"attributes": image.get('attributes'),
|
|
837
881
|
"tags": image.get('tags'),
|
|
838
882
|
"related_images": image.get('related_images'),
|
|
883
|
+
"datasets": image.get('datasets'),
|
|
839
884
|
})
|
|
840
885
|
files.append((
|
|
841
886
|
f"json_{i}",
|
|
@@ -853,9 +898,15 @@ class DataRoomClient:
|
|
|
853
898
|
tags: list[str] = None,
|
|
854
899
|
coca_embedding: str = None,
|
|
855
900
|
related_images: dict[str, str] | None = None,
|
|
901
|
+
datasets: list[str] = None,
|
|
856
902
|
):
|
|
857
903
|
"""
|
|
858
|
-
Update the image
|
|
904
|
+
Update the image:
|
|
905
|
+
* overwrite tags
|
|
906
|
+
* merge attributes
|
|
907
|
+
* merge latents
|
|
908
|
+
* merge related_images
|
|
909
|
+
* merge datasets
|
|
859
910
|
"""
|
|
860
911
|
|
|
861
912
|
if coca_embedding:
|
|
@@ -895,6 +946,7 @@ class DataRoomClient:
|
|
|
895
946
|
"tags": tags,
|
|
896
947
|
"coca_embedding": coca_embedding,
|
|
897
948
|
"related_images": related_images,
|
|
949
|
+
"datasets": datasets,
|
|
898
950
|
})
|
|
899
951
|
files.append((
|
|
900
952
|
"json",
|
|
@@ -911,6 +963,7 @@ class DataRoomClient:
|
|
|
911
963
|
"tags": tags,
|
|
912
964
|
"coca_embedding": coca_embedding,
|
|
913
965
|
"related_images": related_images,
|
|
966
|
+
"datasets": datasets,
|
|
914
967
|
}),
|
|
915
968
|
)
|
|
916
969
|
|
|
@@ -919,7 +972,12 @@ class DataRoomClient:
|
|
|
919
972
|
images: List[ImageUpdate],
|
|
920
973
|
):
|
|
921
974
|
"""
|
|
922
|
-
Bulk update images
|
|
975
|
+
Bulk update images:
|
|
976
|
+
* overwrite tags
|
|
977
|
+
* merge attributes
|
|
978
|
+
* merge latents
|
|
979
|
+
* merge related_images
|
|
980
|
+
* merge datasets
|
|
923
981
|
"""
|
|
924
982
|
for image in images:
|
|
925
983
|
if 'id' not in image:
|
|
@@ -929,6 +987,7 @@ class DataRoomClient:
|
|
|
929
987
|
image.setdefault('tags', None)
|
|
930
988
|
image.setdefault('coca_embedding', None)
|
|
931
989
|
image.setdefault('related_images', None)
|
|
990
|
+
image.setdefault('datasets', None)
|
|
932
991
|
|
|
933
992
|
return await self._make_request(
|
|
934
993
|
url=f"images/bulk_update/",
|
|
@@ -941,6 +1000,7 @@ class DataRoomClient:
|
|
|
941
1000
|
"tags": image['tags'],
|
|
942
1001
|
"coca_embedding": image['coca_embedding'],
|
|
943
1002
|
"related_images": image['related_images'],
|
|
1003
|
+
"datasets": image['datasets'],
|
|
944
1004
|
})
|
|
945
1005
|
for image in images
|
|
946
1006
|
],
|
|
@@ -1064,6 +1124,11 @@ class DataRoomClient:
|
|
|
1064
1124
|
date_updated__gte: datetime = None,
|
|
1065
1125
|
date_updated__lt: datetime = None,
|
|
1066
1126
|
date_updated__lte: datetime = None,
|
|
1127
|
+
datasets: list = None,
|
|
1128
|
+
datasets__ne: list = None,
|
|
1129
|
+
datasets__all: list = None,
|
|
1130
|
+
datasets__ne_all: list = None,
|
|
1131
|
+
datasets__empty: bool = None,
|
|
1067
1132
|
):
|
|
1068
1133
|
search_args = {
|
|
1069
1134
|
'image_id': image_id, 'image_file': image_file, 'image_vector': image_vector, 'image_text': image_text,
|
|
@@ -1118,6 +1183,11 @@ class DataRoomClient:
|
|
|
1118
1183
|
"date_updated__gte": date_updated__gte.isoformat() if date_updated__gte else None,
|
|
1119
1184
|
"date_updated__lt": date_updated__lt.isoformat() if date_updated__lt else None,
|
|
1120
1185
|
"date_updated__lte": date_updated__lte.isoformat() if date_updated__lte else None,
|
|
1186
|
+
"datasets": ",".join(datasets) if datasets else None,
|
|
1187
|
+
"datasets__ne": ",".join(datasets__ne) if datasets__ne else None,
|
|
1188
|
+
"datasets__all": ",".join(datasets__all) if datasets__all else None,
|
|
1189
|
+
"datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
|
|
1190
|
+
"datasets__empty": datasets__empty,
|
|
1121
1191
|
})
|
|
1122
1192
|
|
|
1123
1193
|
if image_file:
|
|
@@ -1312,6 +1382,63 @@ class DataRoomClient:
|
|
|
1312
1382
|
},
|
|
1313
1383
|
)
|
|
1314
1384
|
|
|
1385
|
+
# -------------------- Dataset API methods --------------------
|
|
1386
|
+
|
|
1387
|
+
async def get_datasets(self, slug: str = None, limit: int = 1000):
|
|
1388
|
+
return await self._make_paginated_request(
|
|
1389
|
+
url=f"datasets/",
|
|
1390
|
+
params=self._dict_filter_none({
|
|
1391
|
+
"slug": slug,
|
|
1392
|
+
}),
|
|
1393
|
+
limit=limit,
|
|
1394
|
+
)
|
|
1395
|
+
|
|
1396
|
+
async def get_dataset(self, slug_version: str):
|
|
1397
|
+
return await self._make_request(
|
|
1398
|
+
url=f"datasets/{slug_version}/",
|
|
1399
|
+
)
|
|
1400
|
+
|
|
1401
|
+
async def create_dataset(self, name: str, slug: str, description: str = None):
|
|
1402
|
+
return await self._make_request(
|
|
1403
|
+
url=f"datasets/",
|
|
1404
|
+
method="POST",
|
|
1405
|
+
json={
|
|
1406
|
+
"name": name,
|
|
1407
|
+
"slug": slug,
|
|
1408
|
+
"description": description if description else "",
|
|
1409
|
+
},
|
|
1410
|
+
)
|
|
1411
|
+
|
|
1412
|
+
async def freeze_dataset(self, slug_version: str):
|
|
1413
|
+
return await self._make_request(
|
|
1414
|
+
url=f"datasets/{slug_version}/freeze/",
|
|
1415
|
+
method="POST",
|
|
1416
|
+
)
|
|
1417
|
+
|
|
1418
|
+
async def unfreeze_dataset(self, slug_version: str):
|
|
1419
|
+
return await self._make_request(
|
|
1420
|
+
url=f"datasets/{slug_version}/unfreeze/",
|
|
1421
|
+
method="POST",
|
|
1422
|
+
)
|
|
1423
|
+
|
|
1424
|
+
async def dataset_add_images(self, slug_version: str, image_ids: List[str]):
|
|
1425
|
+
return await self._make_request(
|
|
1426
|
+
url=f"datasets/{slug_version}/images/",
|
|
1427
|
+
method="POST",
|
|
1428
|
+
json={
|
|
1429
|
+
"image_ids": image_ids,
|
|
1430
|
+
},
|
|
1431
|
+
)
|
|
1432
|
+
|
|
1433
|
+
async def dataset_remove_images(self, slug_version: str, image_ids: List[str]):
|
|
1434
|
+
return await self._make_request(
|
|
1435
|
+
url=f"datasets/{slug_version}/images/",
|
|
1436
|
+
method="DELETE",
|
|
1437
|
+
json={
|
|
1438
|
+
"image_ids": image_ids,
|
|
1439
|
+
},
|
|
1440
|
+
)
|
|
1441
|
+
|
|
1315
1442
|
|
|
1316
1443
|
class DataRoomClientSync:
|
|
1317
1444
|
"""
|
|
@@ -1439,6 +1566,29 @@ class DataRoomClientSync:
|
|
|
1439
1566
|
def tag_images(self, *args, **kwargs):
|
|
1440
1567
|
return self._run_sync(self._async_client.tag_images(*args, **kwargs))
|
|
1441
1568
|
|
|
1569
|
+
# -------------------- Dataset API methods --------------------
|
|
1570
|
+
|
|
1571
|
+
def get_datasets(self, *args, **kwargs):
|
|
1572
|
+
return self._run_sync(self._async_client.get_datasets(*args, **kwargs))
|
|
1573
|
+
|
|
1574
|
+
def get_dataset(self, *args, **kwargs):
|
|
1575
|
+
return self._run_sync(self._async_client.get_dataset(*args, **kwargs))
|
|
1576
|
+
|
|
1577
|
+
def create_dataset(self, *args, **kwargs):
|
|
1578
|
+
return self._run_sync(self._async_client.create_dataset(*args, **kwargs))
|
|
1579
|
+
|
|
1580
|
+
def freeze_dataset(self, *args, **kwargs):
|
|
1581
|
+
return self._run_sync(self._async_client.freeze_dataset(*args, **kwargs))
|
|
1582
|
+
|
|
1583
|
+
def unfreeze_dataset(self, *args, **kwargs):
|
|
1584
|
+
return self._run_sync(self._async_client.unfreeze_dataset(*args, **kwargs))
|
|
1585
|
+
|
|
1586
|
+
def dataset_add_images(self, *args, **kwargs):
|
|
1587
|
+
return self._run_sync(self._async_client.dataset_add_images(*args, **kwargs))
|
|
1588
|
+
|
|
1589
|
+
def dataset_remove_images(self, *args, **kwargs):
|
|
1590
|
+
return self._run_sync(self._async_client.dataset_remove_images(*args, **kwargs))
|
|
1591
|
+
|
|
1442
1592
|
|
|
1443
1593
|
for method_name in dir(DataRoomClient):
|
|
1444
1594
|
if not method_name.startswith("_"):
|
{dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/__init__.py
RENAMED
|
File without changes
|
{dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/counter.py
RENAMED
|
File without changes
|
{dataroom_client-1.0.1.post14.dev0 → dataroom_client-1.0.1.post49.dev0}/dataroom_client/loader.py
RENAMED
|
File without changes
|
|
File without changes
|