IntentDatabaseHandler.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from UM.Settings.DatabaseContainerMetadataController import DatabaseMetadataContainerController
  2. from UM.Settings.InstanceContainer import InstanceContainer
  3. class IntentDatabaseHandler(DatabaseMetadataContainerController):
  4. def __init__(self) -> None:
  5. super().__init__(
  6. insert_query="INSERT INTO intents (id, name, quality_type, intent_category, variant, definition, material, version, setting_version) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?)",
  7. update_query="""UPDATE intents
  8. SET name = ?,
  9. quality_type = ?,
  10. intent_category = ?,
  11. variant = ?,
  12. definition = ?,
  13. material = ?,
  14. version = ?,
  15. setting_version = ?
  16. WHERE id = ?
  17. """,
  18. select_query = "SELECT * FROM intents where id = ?",
  19. table_query="""CREATE TABLE intents
  20. (
  21. id text,
  22. name text,
  23. quality_type text,
  24. intent_category text,
  25. variant text,
  26. definition text,
  27. material text,
  28. version text,
  29. setting_version text
  30. );
  31. CREATE UNIQUE INDEX idx_intents_id on intents (id);"""
  32. )
  33. def _convertMetadataToUpdateBatch(self, metadata):
  34. return self._convertMetadataToInsertBatch(metadata)[1:]
  35. def _convertRawDataToMetadata(self, data):
  36. return {"id": data[0], "name": data[1], "quality_type": data[2], "intent_category": data[3], "variant": data[4], "definition": data[5], "container_type": InstanceContainer, "material": data[6], "version": data[7], "setting_version": data[8], "type": "intent"}
  37. def _convertMetadataToInsertBatch(self, metadata):
  38. return metadata["id"], metadata["name"], metadata["quality_type"], metadata["intent_category"], metadata[
  39. "variant"], metadata["definition"], metadata["material"], metadata["version"], metadata["setting_version"]