QualityDatabaseHandler.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from UM.Settings.DatabaseContainerMetadataController import DatabaseMetadataContainerController
  2. from UM.Settings.InstanceContainer import InstanceContainer
  3. class QualityDatabaseHandler(DatabaseMetadataContainerController):
  4. def __init__(self) -> None:
  5. super().__init__(
  6. insert_query = """ INSERT INTO qualities (id, name, quality_type, material, variant, global_quality, definition, version, setting_version)
  7. VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?)""",
  8. update_query = """ UPDATE qualities
  9. SET name = ?,
  10. quality_type = ?,
  11. material = ?,
  12. variant = ?,
  13. global_quality = ?,
  14. definition = ?,
  15. version = ?,
  16. setting_version = ?
  17. WHERE id = ?
  18. """,
  19. select_query = "SELECT * FROM qualities WHERE id = ?",
  20. delete_query = "DELETE FROM qualities WHERE id = ?",
  21. table_query = """CREATE TABLE qualities
  22. (
  23. id text,
  24. name text,
  25. quality_type text,
  26. material text,
  27. variant text,
  28. global_quality bool,
  29. definition text,
  30. version text,
  31. setting_version text
  32. );
  33. CREATE UNIQUE INDEX idx_qualities_id on qualities (id);"""
  34. )
  35. def _convertMetadataToUpdateBatch(self, metadata):
  36. return self._convertMetadataToInsertBatch(metadata)[1:]
  37. def _convertRawDataToMetadata(self, data):
  38. return {"id": data[0], "name": data[1], "quality_type": data[2], "material": data[3], "variant": data[4],
  39. "global_quality": data[5], "definition": data[6], "container_type": InstanceContainer,
  40. "version": data[7], "setting_version": data[8], "type": "quality"}
  41. def _convertMetadataToInsertBatch(self, metadata):
  42. global_quality = False
  43. if "global_quality" in metadata:
  44. global_quality = metadata["global_quality"]
  45. material = ""
  46. if "material" in metadata:
  47. material = metadata["material"]
  48. variant = ""
  49. if "variant" in metadata:
  50. variant = metadata["variant"]
  51. return metadata["id"], metadata["name"], metadata["quality_type"], material, variant, global_quality, metadata["definition"], metadata["version"], metadata["setting_version"]