|
6 | 6 | from concurrent.futures import ThreadPoolExecutor |
7 | 7 | from typing import Dict |
8 | 8 | from typing import List |
9 | | -from typing import Optional |
10 | 9 |
|
11 | 10 | import superannotate.lib.core as constants |
12 | 11 | from lib.core.conditions import Condition |
|
17 | 16 | from lib.core.entities import FolderEntity |
18 | 17 | from lib.core.entities import ImageEntity |
19 | 18 | from lib.core.entities import ProjectEntity |
20 | | -from lib.core.entities import SubSetEntity |
21 | 19 | from lib.core.entities import VideoEntity |
22 | 20 | from lib.core.exceptions import AppException |
23 | 21 | from lib.core.exceptions import AppValidationException |
|
34 | 32 | logger = logging.getLogger("sa") |
35 | 33 |
|
36 | 34 |
|
37 | | -class GetItemByIDUseCase(BaseUseCase): |
38 | | - def __init__(self, item_id, project, service_provider): |
39 | | - self._item_id = item_id |
40 | | - self._project = project |
41 | | - self._service_provider = service_provider |
42 | | - super().__init__() |
43 | | - |
44 | | - def execute( |
45 | | - self, |
46 | | - ): |
47 | | - try: |
48 | | - response = self._service_provider.items.get_by_id( |
49 | | - item_id=self._item_id, |
50 | | - project_id=self._project.id, |
51 | | - project_type=self._project.type, |
52 | | - ) |
53 | | - if not response.ok: |
54 | | - self._response.errors = response.error |
55 | | - except AppException as e: |
56 | | - self._response.errors = e |
57 | | - else: |
58 | | - self._response.data = response.data |
59 | | - return self._response |
60 | | - |
61 | | - |
62 | 35 | class GetItem(BaseReportableUseCase): |
63 | 36 | def __init__( |
64 | 37 | self, |
@@ -124,94 +97,6 @@ def execute(self) -> Response: |
124 | 97 | return self._response |
125 | 98 |
|
126 | 99 |
|
127 | | -class QueryEntitiesUseCase(BaseReportableUseCase): |
128 | | - def __init__( |
129 | | - self, |
130 | | - reporter: Reporter, |
131 | | - project: ProjectEntity, |
132 | | - folder: FolderEntity, |
133 | | - service_provider: BaseServiceProvider, |
134 | | - query: str, |
135 | | - subset: str = None, |
136 | | - ): |
137 | | - super().__init__(reporter) |
138 | | - self._project = project |
139 | | - self._folder = folder |
140 | | - self._service_provider = service_provider |
141 | | - self._query = query |
142 | | - self._subset = subset |
143 | | - |
144 | | - def validate_arguments(self): |
145 | | - if self._query: |
146 | | - response = self._service_provider.validate_saqul_query( |
147 | | - project=self._project, query=self._query |
148 | | - ) |
149 | | - |
150 | | - if not response.ok: |
151 | | - raise AppException(response.error) |
152 | | - if response.data["isValidQuery"]: |
153 | | - self._query = response.data["parsedQuery"] |
154 | | - else: |
155 | | - raise AppException("Incorrect query.") |
156 | | - else: |
157 | | - response = self._service_provider.validate_saqul_query(self._project, "-") |
158 | | - if not response.ok: |
159 | | - raise AppException(response.error) |
160 | | - |
161 | | - if not any([self._query, self._subset]): |
162 | | - raise AppException( |
163 | | - "The query and subset params cannot have the value None at the same time." |
164 | | - ) |
165 | | - if self._subset and not self._folder.is_root: |
166 | | - raise AppException( |
167 | | - "The folder name should be specified in the query string." |
168 | | - ) |
169 | | - |
170 | | - def execute(self) -> Response: |
171 | | - if self.is_valid(): |
172 | | - query_kwargs = {} |
173 | | - if self._subset: |
174 | | - subset: Optional[SubSetEntity] = None |
175 | | - response = self._service_provider.subsets.list(self._project) |
176 | | - if response.ok: |
177 | | - subset = next( |
178 | | - (_sub for _sub in response.data if _sub.name == self._subset), |
179 | | - None, |
180 | | - ) |
181 | | - else: |
182 | | - self._response.errors = response.error |
183 | | - return self._response |
184 | | - if not subset: |
185 | | - self._response.errors = AppException( |
186 | | - "Subset not found. Use the superannotate." |
187 | | - "get_subsets() function to get a list of the available subsets." |
188 | | - ) |
189 | | - return self._response |
190 | | - query_kwargs["subset_id"] = subset.id |
191 | | - if self._query: |
192 | | - query_kwargs["query"] = self._query |
193 | | - query_kwargs["folder"] = ( |
194 | | - None if self._folder.name == "root" else self._folder |
195 | | - ) |
196 | | - service_response = self._service_provider.saqul_query( |
197 | | - self._project, |
198 | | - **query_kwargs, |
199 | | - ) |
200 | | - if service_response.ok: |
201 | | - data = [] |
202 | | - for i, item in enumerate(service_response.data): |
203 | | - tmp_item = GetItem.serialize_entity( |
204 | | - BaseItemEntity(**item), self._project |
205 | | - ) |
206 | | - folder_path = f"{'/' + item['folder_name'] if not item['is_root_folder'] else ''}" |
207 | | - tmp_item.path = f"{self._project.name}" + folder_path |
208 | | - data.append(tmp_item) |
209 | | - self._response.data = data |
210 | | - else: |
211 | | - self._response.errors = service_response.data |
212 | | - return self._response |
213 | | - |
214 | | - |
215 | 100 | class ListItems(BaseUseCase): |
216 | 101 | def __init__( |
217 | 102 | self, |
|
0 commit comments