Skip to content
Snippets Groups Projects

Drop DataSource handling

Merged Erwan Rouchet requested to merge drop-datasource into master
All threads resolved!
2 files
+ 12
108
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -6,6 +6,9 @@ class WorkerVersionMixin(object):
"""
Get worker version from cache if possible, otherwise make API request
"""
if worker_version_id is None:
raise ValueError("No worker version ID")
if worker_version_id in self._worker_version_cache:
return self._worker_version_cache[worker_version_id]
@@ -15,32 +18,12 @@ class WorkerVersionMixin(object):
return worker_version
def get_worker_version_slug(self, worker_version_id: str) -> str:
"""
Get worker version slug from cache if possible, otherwise make API request
"""
worker_version = self.get_worker_version(worker_version_id)
return worker_version["worker"]["slug"]
def get_ml_result_slug(self, ml_result) -> str:
"""
Helper function to get the worker slug from element, classification or transcription.
Gets the worker version slug from cache if possible, otherwise makes an API request.
Returns None if there is no associated worker version.
:type ml_result: Element, classification or transcription
"""
# Handle cached models
if hasattr(ml_result, "worker_version_id"):
worker_version_id = ml_result.worker_version_id
elif "worker_version" in ml_result:
worker_version_id = ml_result["worker_version"]
# transcriptions have worker_version_id but elements have worker_version
elif "worker_version_id" in ml_result:
worker_version_id = ml_result["worker_version_id"]
else:
raise ValueError(f"Unable to get slug from: {ml_result}")
if worker_version_id is None:
return
return self.get_worker_version_slug(worker_version_id)
worker_version = self.get_worker_version(worker_version_id)
return worker_version["worker"]["slug"]
Loading