dataroom-client 1.0.6.post149.dev0__tar.gz → 1.0.6.post200.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataroom-client
3
- Version: 1.0.6.post149.dev0
3
+ Version: 1.0.6.post200.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
@@ -353,6 +353,7 @@ class DataRoomClient:
353
353
  datasets__all: list = None,
354
354
  datasets__ne_all: list = None,
355
355
  datasets__empty: bool = None,
356
+ query: str = None,
356
357
  group_ids: list[str] = None,
357
358
  roles: list[str] = None,
358
359
  group_type: str = None,
@@ -440,6 +441,7 @@ class DataRoomClient:
440
441
  "datasets__all": ",".join(datasets__all) if datasets__all else None,
441
442
  "datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
442
443
  "datasets__empty": datasets__empty,
444
+ "query": query,
443
445
  "group_ids": ",".join(group_ids) if group_ids else None,
444
446
  "roles": ",".join(roles) if roles else None,
445
447
  "group_type": group_type,
@@ -507,6 +509,7 @@ class DataRoomClient:
507
509
  datasets__all: list = None,
508
510
  datasets__ne_all: list = None,
509
511
  datasets__empty: bool = None,
512
+ query: str = None,
510
513
  ) -> AsyncIterable[dict]:
511
514
  """
512
515
  Retrieves an iterator of images, with optional filtering and field selection.
@@ -593,6 +596,7 @@ class DataRoomClient:
593
596
  "datasets__all": ",".join(datasets__all) if datasets__all else None,
594
597
  "datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
595
598
  "datasets__empty": datasets__empty,
599
+ "query": query,
596
600
  }
597
601
  ),
598
602
  headers=headers,
@@ -658,6 +662,7 @@ class DataRoomClient:
658
662
  datasets__all: list = None,
659
663
  datasets__ne_all: list = None,
660
664
  datasets__empty: bool = None,
665
+ query: str = None,
661
666
  ) -> list[dict]:
662
667
  """
663
668
  Get a list of random images.
@@ -747,6 +752,7 @@ class DataRoomClient:
747
752
  "datasets__all": ",".join(datasets__all) if datasets__all else None,
748
753
  "datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
749
754
  "datasets__empty": datasets__empty,
755
+ "query": query,
750
756
  }
751
757
  ),
752
758
  headers=headers,
@@ -803,6 +809,7 @@ class DataRoomClient:
803
809
  datasets__all: list = None,
804
810
  datasets__ne_all: list = None,
805
811
  datasets__empty: bool = None,
812
+ query: str = None,
806
813
  ) -> int:
807
814
  """
808
815
  Returns the total count of images based on the provided filters.
@@ -868,6 +875,7 @@ class DataRoomClient:
868
875
  "datasets__all": ",".join(datasets__all) if datasets__all else None,
869
876
  "datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
870
877
  "datasets__empty": datasets__empty,
878
+ "query": query,
871
879
  }
872
880
  ),
873
881
  )
@@ -1324,6 +1332,7 @@ class DataRoomClient:
1324
1332
  datasets__all: list = None,
1325
1333
  datasets__ne_all: list = None,
1326
1334
  datasets__empty: bool = None,
1335
+ query: str = None,
1327
1336
  ) -> list[dict]:
1328
1337
  """
1329
1338
  Finds images similar to a given image, vector, or text query.
@@ -1402,6 +1411,7 @@ class DataRoomClient:
1402
1411
  "datasets__all": ",".join(datasets__all) if datasets__all else None,
1403
1412
  "datasets__ne_all": ",".join(datasets__ne_all) if datasets__ne_all else None,
1404
1413
  "datasets__empty": datasets__empty,
1414
+ "query": query,
1405
1415
  })
1406
1416
 
1407
1417
  if image_file:
@@ -1999,6 +2009,77 @@ class DataRoomClient:
1999
2009
  """
2000
2010
  return await self._make_request(url=f"images/{image_id}/groups/", method="GET")
2001
2011
 
2012
+ # -------------------- Query API methods --------------------
2013
+
2014
+ async def get_queries(self, limit: int = 1000) -> list[dict]:
2015
+ """
2016
+ Retrieves a list of queries.
2017
+
2018
+ @param limit: The maximum number of queries to return.
2019
+ @return: A list of query dictionaries.
2020
+ """
2021
+ return await self._make_paginated_request(
2022
+ url="queries/",
2023
+ limit=limit,
2024
+ )
2025
+
2026
+ async def get_query(self, slug: str) -> dict:
2027
+ """
2028
+ Retrieves a single query by its slug.
2029
+
2030
+ @param slug: The identifier for the query (e.g., "my-query").
2031
+ @return: A dictionary representing the query.
2032
+ """
2033
+ return await self._make_request(
2034
+ url=f"queries/{slug}/",
2035
+ )
2036
+
2037
+ async def create_query(self, slug: str, name: str, filters: dict, description: str | None = None) -> dict:
2038
+ """
2039
+ Creates a new query.
2040
+
2041
+ @param slug: The identifier for the query (e.g., "my-query").
2042
+ @param name: The display name of the query.
2043
+ @param filters: The filters for the query.
2044
+ @param description: An optional description for the query.
2045
+ @return: A dictionary representing the newly created query.
2046
+ """
2047
+ return await self._make_request(
2048
+ url="queries/",
2049
+ method="POST",
2050
+ json={
2051
+ "slug": slug,
2052
+ "name": name,
2053
+ "description": description if description else "",
2054
+ "filters": filters,
2055
+ },
2056
+ )
2057
+
2058
+ async def update_query(
2059
+ self, slug: str, name: str | None = None, description: str | None = None, filters: dict | None = None
2060
+ ) -> dict:
2061
+ """
2062
+ Updates a query.
2063
+
2064
+ @param slug: The identifier for the query (e.g., "my-query").
2065
+ @param name: The display name of the query.
2066
+ @param description: An optional description for the query.
2067
+ @param filters: The filters for the query.
2068
+ @return: A dictionary representing the updated query.
2069
+ """
2070
+ return await self._make_request(
2071
+ url=f"queries/{slug}/",
2072
+ method="PUT",
2073
+ json=self._dict_filter_none(
2074
+ {
2075
+ "slug": slug,
2076
+ "name": name,
2077
+ "description": description,
2078
+ "filters": filters,
2079
+ }
2080
+ ),
2081
+ )
2082
+
2002
2083
 
2003
2084
  class AsyncRunner:
2004
2085
  """
@@ -6,7 +6,7 @@ authors = [
6
6
  ]
7
7
  readme = "README.md"
8
8
  dynamic = []
9
- version = "1.0.6.post149.dev0"
9
+ version = "1.0.6.post200.dev0"
10
10
 
11
11
  [tool.poetry]
12
12