src/eric7/Project/ProjectFile.py

branch
eric7
changeset 9514
2b104ad132a4
parent 9473
3f23dbf37dbe
child 9527
8601253e7633
equal deleted inserted replaced
9513:6e260b424396 9514:2b104ad132a4
6 """ 6 """
7 Module implementing a class representing the project JSON file. 7 Module implementing a class representing the project JSON file.
8 """ 8 """
9 9
10 import contextlib 10 import contextlib
11 import copy 11
12 ##import copy
12 import json 13 import json
13 import time 14 import time
14 import typing 15 import typing
15 16
16 from PyQt6.QtCore import QObject 17 from PyQt6.QtCore import QObject
53 "comment": "eric project file for project {0}".format( 54 "comment": "eric project file for project {0}".format(
54 self.__project.getProjectName() 55 self.__project.getProjectName()
55 ), 56 ),
56 "copyright": "Copyright (C) {0} {1}, {2}".format( 57 "copyright": "Copyright (C) {0} {1}, {2}".format(
57 time.strftime("%Y"), 58 time.strftime("%Y"),
58 self.__project.pdata["AUTHOR"], 59 self.__project.getProjectData(dataKey="AUTHOR"),
59 self.__project.pdata["EMAIL"], 60 self.__project.getProjectData(dataKey="EMAIL"),
60 ), 61 ),
61 } 62 }
62 } 63 }
63 64
64 if Preferences.getProject("TimestampFile"): 65 if Preferences.getProject("TimestampFile"):
65 projectDict["header"]["saved"] = time.strftime("%Y-%m-%d, %H:%M:%S") 66 projectDict["header"]["saved"] = time.strftime("%Y-%m-%d, %H:%M:%S")
66 67
67 projectDict["project"] = copy.deepcopy(self.__project.pdata) 68 projectDict["project"] = self.__project.getProjectData()
68 69
69 # modify paths to contain universal separators 70 # modify paths to contain universal separators
70 for key in ( 71 for key in self.__project.getFileCategories() + ["TRANSLATIONEXCEPTIONS"]:
71 "SOURCES", 72 ##for key in (
72 "FORMS", 73 ##"SOURCES",
73 "TRANSLATIONS", 74 ##"FORMS",
74 "TRANSLATIONEXCEPTIONS", 75 ##"TRANSLATIONS",
75 "RESOURCES", 76 ##"TRANSLATIONEXCEPTIONS",
76 "INTERFACES", 77 ##"RESOURCES",
77 "PROTOCOLS", 78 ##"INTERFACES",
78 "OTHERS", 79 ##"PROTOCOLS",
79 ): 80 ##"OTHERS",
81 ##):
80 with contextlib.suppress(KeyError): 82 with contextlib.suppress(KeyError):
81 projectDict["project"][key] = sorted( 83 projectDict["project"][key] = sorted(
82 [ 84 [
83 Utilities.fromNativeSeparators(f) 85 Utilities.fromNativeSeparators(f)
84 for f in projectDict["project"][key] 86 for f in projectDict["project"][key]
138 ).format(filename, str(err)), 140 ).format(filename, str(err)),
139 ) 141 )
140 return False 142 return False
141 143
142 # modify paths to contain native separators 144 # modify paths to contain native separators
143 for key in ( 145 for key in self.__project.getFileCategories() + ["TRANSLATIONEXCEPTIONS"]:
144 "SOURCES", 146 ##(
145 "FORMS", 147 ##"SOURCES",
146 "TRANSLATIONS", 148 ##"FORMS",
147 "TRANSLATIONEXCEPTIONS", 149 ##"TRANSLATIONS",
148 "RESOURCES", 150 ##"TRANSLATIONEXCEPTIONS",
149 "INTERFACES", 151 ##"RESOURCES",
150 "PROTOCOLS", 152 ##"INTERFACES",
151 "OTHERS", 153 ##"PROTOCOLS",
152 ): 154 ##"OTHERS",
155 ##):
153 with contextlib.suppress(KeyError): 156 with contextlib.suppress(KeyError):
154 projectDict["project"][key] = [ 157 projectDict["project"][key] = [
155 Utilities.toNativeSeparators(f) for f in projectDict["project"][key] 158 Utilities.toNativeSeparators(f) for f in projectDict["project"][key]
156 ] 159 ]
157 for key in ( 160 for key in (
165 with contextlib.suppress(KeyError): 168 with contextlib.suppress(KeyError):
166 projectDict["project"][key] = Utilities.toNativeSeparators( 169 projectDict["project"][key] = Utilities.toNativeSeparators(
167 projectDict["project"][key] 170 projectDict["project"][key]
168 ) 171 )
169 172
170 self.__project.pdata.update(projectDict["project"]) 173 self.__project.setProjectData(projectDict["project"])
171 174
172 return True 175 return True

eric ide

mercurial