QualityDatabaseHandler.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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) VALUES (?, ?, ? ,?, ?, ?, ?, ?, ?)",
  7. update_query = "",
  8. select_query = "SELECT * FROM qualities where id = ?",
  9. table_query = """CREATE TABLE qualities
  10. (
  11. id text,
  12. name text,
  13. quality_type text,
  14. material text,
  15. variant text,
  16. global_quality bool,
  17. definition text,
  18. version text,
  19. setting_version text
  20. );
  21. CREATE UNIQUE INDEX idx_qualities_id on qualities (id);"""
  22. )
  23. def _convertRawDataToMetadata(self, data):
  24. return {"id": data[0], "name": data[1], "quality_type": data[2], "material": data[3], "variant": data[4],
  25. "global_quality": data[5], "definition": data[6], "container_type": InstanceContainer,
  26. "version": data[7], "setting_version": data[8], "type": "quality"}
  27. def _convertMetadataToInsertBatch(self, metadata):
  28. global_quality = False
  29. if "global_quality" in metadata:
  30. global_quality = metadata["global_quality"]
  31. material = ""
  32. if "material" in metadata:
  33. material = metadata["material"]
  34. variant = ""
  35. if "variant" in metadata:
  36. variant = metadata["variant"]
  37. return metadata["id"], metadata["name"], metadata["quality_type"], material, variant, global_quality, metadata["definition"], metadata["version"], metadata["setting_version"]