customDataContract.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import types
  2. from algorithmContract.dataSource import DataSource
  3. from algorithmContract.dataFilter import DataFilter
  4. from algorithmContract.customFilter import CustomFilter
  5. from algorithmContract.configAnalysis import ConfigAnalysis
  6. from algorithmContract.graphSet import GraphSet
  7. class DataContract:
  8. def __init__(self,autoOrManual:str , dataFilter: DataFilter, configAnalysis: list[ConfigAnalysis], graphSets: dict[str,GraphSet]):
  9. self.autoOrManual=autoOrManual
  10. # self.dataSource = dataSource
  11. self.dataFilter = dataFilter
  12. self.configAnalysis = configAnalysis
  13. self.graphSets = graphSets
  14. def _graph_sets_to_dict(self, graph_sets):
  15. result = {}
  16. for key, value in graph_sets.items():
  17. if isinstance(value, GraphSet):
  18. result[key] = value.to_dict()
  19. elif isinstance(value, dict):
  20. result[key] = self._graph_sets_to_dict(value)
  21. else:
  22. raise TypeError(f"Unsupported type for graph set value: {type(value)}")
  23. return result
  24. def to_dict(self):
  25. return {
  26. "autoOrManual":self.autoOrManual,
  27. # "dataSource": self.dataSource.to_dict(),
  28. "dataFilter": self.dataFilter.to_dict(),
  29. "configAnalysis": [analysis.to_dict() for analysis in self.configAnalysis], # 修改这一行
  30. "graphSets": {key: graph.to_dict() for key, graph in self.graphSets.items()} # 假设 graphSets 是一个字典 # self._graph_sets_to_dict(self.graphSets) #
  31. }