QualityDatabaseHandler.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. table_query = """CREATE TABLE qualities
  21. (
  22. id text,
  23. name text,
  24. quality_type text,
  25. material text,
  26. variant text,
  27. global_quality bool,
  28. definition text,
  29. version text,
  30. setting_version text
  31. );
  32. CREATE UNIQUE INDEX idx_qualities_id on qualities (id);"""
  33. )
  34. def _convertMetadataToUpdateBatch(self, metadata):
  35. return self._convertMetadataToInsertBatch(metadata)[1:]
  36. def _convertRawDataToMetadata(self, data):
  37. return {"id": data[0], "name": data[1], "quality_type": data[2], "material": data[3], "variant": data[4],
  38. "global_quality": data[5], "definition": data[6], "container_type": InstanceContainer,
  39. "version": data[7], "setting_version": data[8], "type": "quality"}
  40. def _convertMetadataToInsertBatch(self, metadata):
  41. global_quality = False
  42. if "global_quality" in metadata:
  43. global_quality = metadata["global_quality"]
  44. material = ""
  45. if "material" in metadata:
  46. material = metadata["material"]
  47. variant = ""
  48. if "variant" in metadata:
  49. variant = metadata["variant"]
  50. return metadata["id"], metadata["name"], metadata["quality_type"], material, variant, global_quality, metadata["definition"], metadata["version"], metadata["setting_version"]