src/eric7/Project/UserProjectFile.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9278
36448ca469c2
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
23 23
24 class UserProjectFile(QObject): 24 class UserProjectFile(QObject):
25 """ 25 """
26 Class representing the user project JSON file. 26 Class representing the user project JSON file.
27 """ 27 """
28
28 def __init__(self, project: Project, parent: QObject = None): 29 def __init__(self, project: Project, parent: QObject = None):
29 """ 30 """
30 Constructor 31 Constructor
31 32
32 @param project reference to the project object 33 @param project reference to the project object
33 @type Project 34 @type Project
34 @param parent reference to the parent object (defaults to None) 35 @param parent reference to the parent object (defaults to None)
35 @type QObject (optional) 36 @type QObject (optional)
36 """ 37 """
37 super().__init__(parent) 38 super().__init__(parent)
38 self.__project = project 39 self.__project = project
39 40
40 def writeFile(self, filename: str) -> bool: 41 def writeFile(self, filename: str) -> bool:
41 """ 42 """
42 Public method to write the user project data to a user project 43 Public method to write the user project data to a user project
43 JSON file. 44 JSON file.
44 45
45 @param filename name of the user project file 46 @param filename name of the user project file
46 @type str 47 @type str
47 @return flag indicating a successful write 48 @return flag indicating a successful write
48 @rtype bool 49 @rtype bool
49 """ 50 """
50 userProjectDict = {} 51 userProjectDict = {}
51 userProjectDict["header"] = { 52 userProjectDict["header"] = {
52 "comment": "eric user project file for project {0}".format( 53 "comment": "eric user project file for project {0}".format(
53 self.__project.getProjectName()), 54 self.__project.getProjectName()
55 ),
54 } 56 }
55 57
56 if Preferences.getProject("TimestampFile"): 58 if Preferences.getProject("TimestampFile"):
57 userProjectDict["header"]["saved"] = ( 59 userProjectDict["header"]["saved"] = time.strftime("%Y-%m-%d, %H:%M:%S")
58 time.strftime('%Y-%m-%d, %H:%M:%S') 60
59 )
60
61 userProjectDict["user_data"] = self.__project.pudata 61 userProjectDict["user_data"] = self.__project.pudata
62 62
63 try: 63 try:
64 jsonString = json.dumps(userProjectDict, indent=2) 64 jsonString = json.dumps(userProjectDict, indent=2)
65 with open(filename, "w") as f: 65 with open(filename, "w") as f:
66 f.write(jsonString) 66 f.write(jsonString)
67 except (TypeError, OSError) as err: 67 except (TypeError, OSError) as err:
71 self.tr("Save User Project Properties"), 71 self.tr("Save User Project Properties"),
72 self.tr( 72 self.tr(
73 "<p>The user specific project properties file" 73 "<p>The user specific project properties file"
74 " <b>{0}</b> could not be written.</p>" 74 " <b>{0}</b> could not be written.</p>"
75 "<p>Reason: {1}</p>" 75 "<p>Reason: {1}</p>"
76 ).format(filename, str(err)) 76 ).format(filename, str(err)),
77 ) 77 )
78 return False 78 return False
79 79
80 return True 80 return True
81 81
82 def readFile(self, filename: str) -> bool: 82 def readFile(self, filename: str) -> bool:
83 """ 83 """
84 Public method to read the user project data from a user project 84 Public method to read the user project data from a user project
85 JSON file. 85 JSON file.
86 86
87 @param filename name of the project file 87 @param filename name of the project file
88 @type str 88 @type str
89 @return flag indicating a successful read 89 @return flag indicating a successful read
90 @rtype bool 90 @rtype bool
91 """ 91 """
98 None, 98 None,
99 self.tr("Read User Project Properties"), 99 self.tr("Read User Project Properties"),
100 self.tr( 100 self.tr(
101 "<p>The user specific project properties file <b>{0}</b>" 101 "<p>The user specific project properties file <b>{0}</b>"
102 " could not be read.</p><p>Reason: {1}</p>" 102 " could not be read.</p><p>Reason: {1}</p>"
103 ).format(filename, str(err)) 103 ).format(filename, str(err)),
104 ) 104 )
105 return False 105 return False
106 106
107 self.__project.pudata = userProjectDict["user_data"] 107 self.__project.pudata = userProjectDict["user_data"]
108 108
109 return True 109 return True

eric ide

mercurial