103 self.parametersListEntryTemplate = ( |
103 self.parametersListEntryTemplate = ( |
104 TemplatesListsStyleCSS.parametersListEntryTemplate) |
104 TemplatesListsStyleCSS.parametersListEntryTemplate) |
105 self.returnsTemplate = TemplatesListsStyleCSS.returnsTemplate |
105 self.returnsTemplate = TemplatesListsStyleCSS.returnsTemplate |
106 self.returnTypesTemplate = ( |
106 self.returnTypesTemplate = ( |
107 TemplatesListsStyleCSS.returnTypesTemplate) |
107 TemplatesListsStyleCSS.returnTypesTemplate) |
|
108 self.yieldsTemplate = TemplatesListsStyleCSS.yieldsTemplate |
|
109 self.yieldTypesTemplate = ( |
|
110 TemplatesListsStyleCSS.yieldTypesTemplate) |
108 self.exceptionsListTemplate = ( |
111 self.exceptionsListTemplate = ( |
109 TemplatesListsStyleCSS.exceptionsListTemplate) |
112 TemplatesListsStyleCSS.exceptionsListTemplate) |
110 self.exceptionsListEntryTemplate = ( |
113 self.exceptionsListEntryTemplate = ( |
111 TemplatesListsStyleCSS.exceptionsListEntryTemplate) |
114 TemplatesListsStyleCSS.exceptionsListEntryTemplate) |
112 self.signalsListTemplate = ( |
115 self.signalsListTemplate = ( |
168 **colors)) |
171 **colors)) |
169 self.returnsTemplate = ( |
172 self.returnsTemplate = ( |
170 TemplatesListsStyle.returnsTemplate.format(**colors)) |
173 TemplatesListsStyle.returnsTemplate.format(**colors)) |
171 self.returnTypesTemplate = ( |
174 self.returnTypesTemplate = ( |
172 TemplatesListsStyle.returnTypesTemplate.format(**colors)) |
175 TemplatesListsStyle.returnTypesTemplate.format(**colors)) |
|
176 self.yieldsTemplate = ( |
|
177 TemplatesListsStyle.yieldsTemplate.format(**colors)) |
|
178 self.yieldTypesTemplate = ( |
|
179 TemplatesListsStyle.yieldTypesTemplate.format(**colors)) |
173 self.exceptionsListTemplate = ( |
180 self.exceptionsListTemplate = ( |
174 TemplatesListsStyle.exceptionsListTemplate.format(**colors)) |
181 TemplatesListsStyle.exceptionsListTemplate.format(**colors)) |
175 self.exceptionsListEntryTemplate = ( |
182 self.exceptionsListEntryTemplate = ( |
176 TemplatesListsStyle.exceptionsListEntryTemplate.format( |
183 TemplatesListsStyle.exceptionsListEntryTemplate.format( |
177 **colors)) |
184 **colors)) |
959 |
968 |
960 dlist = descr.splitlines() |
969 dlist = descr.splitlines() |
961 while dlist and not dlist[0]: |
970 while dlist and not dlist[0]: |
962 del dlist[0] |
971 del dlist[0] |
963 lastTag = "" |
972 lastTag = "" |
|
973 buffer = "" |
964 for ditem in dlist: |
974 for ditem in dlist: |
965 ditem = self.__processInlineTags(ditem) |
975 ditem = self.__processInlineTags(ditem) |
966 desc = ditem.strip() |
976 desc = ditem.strip() |
|
977 if buffer: |
|
978 if desc.startswith("@"): |
|
979 buffer = "" |
|
980 raise TagError( |
|
981 "Wrong format in {0} line.\n".format(lastTag)) |
|
982 else: |
|
983 desc = buffer + desc |
967 if desc: |
984 if desc: |
968 if desc.startswith(("@param", "@keyparam")): |
985 if desc.startswith(("@param", "@keyparam")): |
969 inTagSection = True |
986 inTagSection = True |
970 parts = desc.split(None, 2) |
987 parts = desc.split(None, 2) |
971 lastTag = parts[0] |
988 lastTag = parts[0] |
1019 lastItem = returns |
1036 lastItem = returns |
1020 elif desc.startswith("@rtype"): |
1037 elif desc.startswith("@rtype"): |
1021 parts = desc.split(None, 1) |
1038 parts = desc.split(None, 1) |
1022 if lastTag not in ["@return", "@ireturn"]: |
1039 if lastTag not in ["@return", "@ireturn"]: |
1023 raise TagError( |
1040 raise TagError( |
1024 "{0} line must be preceded by a return line\n" |
1041 "{0} line must be preceded by a @return line\n" |
1025 .format(parts[0])) |
1042 .format(parts[0])) |
1026 inTagSection = True |
1043 inTagSection = True |
1027 lastTag = parts[0] |
1044 lastTag = parts[0] |
1028 if len(parts) < 2: |
1045 if len(parts) < 2: |
1029 raise TagError( |
1046 raise TagError( |
1030 "Wrong format in {0} line.\n".format(parts[0])) |
1047 "Wrong format in {0} line.\n".format(parts[0])) |
1031 returnTypes = [parts[1]] |
1048 returnTypes = [parts[1]] |
1032 lastItem = returnTypes |
1049 lastItem = returnTypes |
|
1050 elif desc.startswith("@yield"): |
|
1051 inTagSection = True |
|
1052 parts = desc.split(None, 1) |
|
1053 lastTag = parts[0] |
|
1054 if len(parts) < 2: |
|
1055 raise TagError( |
|
1056 "Wrong format in {0} line.\n".format(parts[0])) |
|
1057 yields = [parts[1]] |
|
1058 lastItem = yields |
|
1059 elif desc.startswith("@ytype"): |
|
1060 parts = desc.split(None, 1) |
|
1061 if lastTag != "@yield": |
|
1062 raise TagError( |
|
1063 "{0} line must be preceded by a @yield line\n" |
|
1064 .format(parts[0])) |
|
1065 inTagSection = True |
|
1066 lastTag = parts[0] |
|
1067 if len(parts) < 2: |
|
1068 raise TagError( |
|
1069 "Wrong format in {0} line.\n".format(parts[0])) |
|
1070 yieldTypes = [parts[1]] |
|
1071 lastItem = yieldTypes |
1033 elif desc.startswith(("@exception", "@throws", "@raise")): |
1072 elif desc.startswith(("@exception", "@throws", "@raise")): |
1034 inTagSection = True |
1073 inTagSection = True |
1035 parts = desc.split(None, 2) |
1074 parts = desc.split(None, 2) |
1036 lastTag = parts[0] |
1075 lastTag = parts[0] |
1037 if len(parts) < 2: |
1076 if len(parts) < 2: |
1046 elif desc.startswith("@signal"): |
1085 elif desc.startswith("@signal"): |
1047 inTagSection = True |
1086 inTagSection = True |
1048 lastTag = desc.split(None, 1)[0] |
1087 lastTag = desc.split(None, 1)[0] |
1049 m = _signal(desc, 0) |
1088 m = _signal(desc, 0) |
1050 if m is None: |
1089 if m is None: |
1051 raise TagError("Wrong format in @signal line.\n") |
1090 buffer = desc |
1052 signalName = ( |
1091 else: |
1053 1 and m.group("SignalName1") or m.group("SignalName2") |
1092 buffer = "" |
1054 ) |
1093 signalName = ( |
1055 signalDesc = ( |
1094 m.group("SignalName1") or m.group("SignalName2") |
1056 1 and m.group("SignalDescription1") or |
1095 ) |
1057 m.group("SignalDescription2") |
1096 signalDesc = ( |
1058 ) |
1097 m.group("SignalDescription1") or |
1059 signalDict[signalName] = [] |
1098 m.group("SignalDescription2") |
1060 if signalDesc is not None: |
1099 ) |
1061 signalDict[signalName].append(signalDesc) |
1100 signalDict[signalName] = [] |
1062 lastItem = signalDict[signalName] |
1101 if signalDesc is not None: |
|
1102 signalDict[signalName].append(signalDesc) |
|
1103 lastItem = signalDict[signalName] |
1063 elif desc.startswith("@event"): |
1104 elif desc.startswith("@event"): |
1064 inTagSection = True |
1105 inTagSection = True |
1065 lastTag = desc.split(None, 1)[0] |
1106 lastTag = desc.split(None, 1)[0] |
1066 m = _event(desc, 0) |
1107 m = _event(desc, 0) |
1067 if m is None: |
1108 if m is None: |
1068 raise TagError( |
1109 buffer = desc |
1069 "Wrong format in {0} line.\n".format(parts[0])) |
1110 else: |
1070 eventName = ( |
1111 buffer = "" |
1071 1 and m.group("EventName1") or m.group("EventName2") |
1112 eventName = ( |
1072 ) |
1113 m.group("EventName1") or m.group("EventName2") |
1073 eventDesc = ( |
1114 ) |
1074 1 and m.group("EventDescription1") or |
1115 eventDesc = ( |
1075 m.group("EventDescription2") |
1116 m.group("EventDescription1") or |
1076 ) |
1117 m.group("EventDescription2") |
1077 eventDict[eventName] = [] |
1118 ) |
1078 if eventDesc is not None: |
1119 eventDict[eventName] = [] |
1079 eventDict[eventName].append(eventDesc) |
1120 if eventDesc is not None: |
1080 lastItem = eventDict[eventName] |
1121 eventDict[eventName].append(eventDesc) |
|
1122 lastItem = eventDict[eventName] |
1081 elif desc.startswith("@deprecated"): |
1123 elif desc.startswith("@deprecated"): |
1082 inTagSection = True |
1124 inTagSection = True |
1083 parts = desc.split(None, 1) |
1125 parts = desc.split(None, 1) |
1084 lastTag = parts[0] |
1126 lastTag = parts[0] |
1085 if len(parts) < 2: |
1127 if len(parts) < 2: |
1147 returnTypesSect = self.returnTypesTemplate.format( |
1189 returnTypesSect = self.returnTypesTemplate.format( |
1148 html_uencode('\n'.join(returnTypes))) |
1190 html_uencode('\n'.join(returnTypes))) |
1149 else: |
1191 else: |
1150 returnTypesSect = "" |
1192 returnTypesSect = "" |
1151 |
1193 |
|
1194 if yields: |
|
1195 yieldSect = self.yieldsTemplate.format( |
|
1196 html_uencode('\n'.join(yields))) |
|
1197 else: |
|
1198 yieldSect = "" |
|
1199 |
|
1200 if yieldTypes: |
|
1201 yieldTypesSect = self.yieldTypesTemplate.format( |
|
1202 html_uencode('\n'.join(yieldTypes))) |
|
1203 else: |
|
1204 yieldTypesSect = "" |
|
1205 |
1152 if exceptionDict: |
1206 if exceptionDict: |
1153 exceptionSect = self.exceptionsListTemplate.format( |
1207 exceptionSect = self.exceptionsListTemplate.format( |
1154 **{'Exceptions': self.__genDescriptionListSection( |
1208 **{'Exceptions': self.__genDescriptionListSection( |
1155 exceptionDict, self.exceptionsListEntryTemplate)}) |
1209 exceptionDict, self.exceptionsListEntryTemplate)}) |
1156 else: |
1210 else: |
1193 **{'Links': self.__genSeeListSection( |
1247 **{'Links': self.__genSeeListSection( |
1194 seeList, self.seeListEntryTemplate)}) |
1248 seeList, self.seeListEntryTemplate)}) |
1195 else: |
1249 else: |
1196 seeSect = '' |
1250 seeSect = '' |
1197 |
1251 |
1198 return "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}".format( |
1252 return "".join([ |
1199 deprecatedSect, description, parameterSect, returnSect, |
1253 deprecatedSect, description, parameterSect, returnSect, |
1200 returnTypesSect, exceptionSect, signalSect, eventSect, |
1254 returnTypesSect, yieldSect, yieldTypesSect, exceptionSect, |
1201 authorInfoSect, seeSect, sinceInfoSect, |
1255 signalSect, eventSect, authorInfoSect, seeSect, sinceInfoSect, |
1202 ) |
1256 ]) |
1203 |
1257 |
1204 def getQtHelpKeywords(self): |
1258 def getQtHelpKeywords(self): |
1205 """ |
1259 """ |
1206 Public method to retrieve the parts for the QtHelp keywords section. |
1260 Public method to retrieve the parts for the QtHelp keywords section. |
1207 |
1261 |