diff --git a/docs/sphinx/rest_substitutions/snippets/python/converted/FileType.1.py b/docs/sphinx/rest_substitutions/snippets/python/converted/FileType.1.py index 06933cc4..f2a2c4e9 100644 --- a/docs/sphinx/rest_substitutions/snippets/python/converted/FileType.1.py +++ b/docs/sphinx/rest_substitutions/snippets/python/converted/FileType.1.py @@ -1,10 +1,10 @@ # provide the message parameters for the MIME type manager - class MailMessageParameters(wx.FileType.MessageParameters): + class MailMessageParameters(wx.MessageParameters): def __init__(self, filename, mimetype): - wx.FileType.MessageParameters.__init__(self, filename, mimetype) + wx.MessageParameters.__init__(self, filename, mimetype) def GetParamValue(self, name): @@ -13,6 +13,6 @@ if name.lower() == "charset": return "US-ASCII" else: - return wx.FileType.MessageParameters.GetParamValue(name) + return wx.MessageParameters.GetParamValue(name) diff --git a/docs/sphinx/rest_substitutions/snippets/python/converted/FontMapper.1.py b/docs/sphinx/rest_substitutions/snippets/python/converted/FontMapper.1.py index fcdb408b..8f648ac3 100644 --- a/docs/sphinx/rest_substitutions/snippets/python/converted/FontMapper.1.py +++ b/docs/sphinx/rest_substitutions/snippets/python/converted/FontMapper.1.py @@ -1,4 +1,4 @@ - + if not wx.FontMapper.Get().IsEncodingAvailable(enc, facename): success, alt = wx.FontMapper.Get().GetAltForEncoding(enc, facename, False) if success: @@ -8,5 +8,6 @@ else: # ...failure (or we may try iso8859-1/7bit ASCII)... + pass # ...display text... diff --git a/docs/sphinx/rest_substitutions/snippets/python/converted/html.HtmlHelpWindow.1.py b/docs/sphinx/rest_substitutions/snippets/python/converted/html.HtmlHelpWindow.1.py index ec6eb7b1..679712d3 100644 --- a/docs/sphinx/rest_substitutions/snippets/python/converted/html.HtmlHelpWindow.1.py +++ b/docs/sphinx/rest_substitutions/snippets/python/converted/html.HtmlHelpWindow.1.py @@ -1,11 +1,12 @@ - - # self.embeddedHelpWindow is a wx.html.HtmlHelpWindow - # self.embeddedHtmlHelp is a wx.html.HtmlHelpController - - # Create embedded HTML Help window - self.embeddedHelpWindow = wx.html.HtmlHelpWindow - self.embeddedHtmlHelp.UseConfig(config, rootPath) # Set your own config object here - self.embeddedHtmlHelp.SetHelpWindow(self.embeddedHelpWindow) - self.embeddedHelpWindow.Create(self, wx.ID_ANY, wx.DefaultPosition, self.GetClientSize(), - wx.TAB_TRAVERSAL|wx.BORDER_NONE, wx.html.HF_DEFAULT_STYLE) - self.embeddedHtmlHelp.AddBook("doc.zip") + + def EmbedHTML(self): + # self.embeddedHelpWindow is a wx.html.HtmlHelpWindow + # self.embeddedHtmlHelp is a wx.html.HtmlHelpController + + # Create embedded HTML Help window + self.embeddedHelpWindow = wx.html.HtmlHelpWindow + self.embeddedHtmlHelp.UseConfig(config, rootPath) # Set your own config object here + self.embeddedHtmlHelp.SetHelpWindow(self.embeddedHelpWindow) + self.embeddedHelpWindow.Create(self, wx.ID_ANY, wx.DefaultPosition, self.GetClientSize(), + wx.TAB_TRAVERSAL|wx.BORDER_NONE, wx.html.HF_DEFAULT_STYLE) + self.embeddedHtmlHelp.AddBook("doc.zip") diff --git a/etgtools/sphinx_generator.py b/etgtools/sphinx_generator.py index 0aa49f45..3f689825 100644 --- a/etgtools/sphinx_generator.py +++ b/etgtools/sphinx_generator.py @@ -523,10 +523,6 @@ class ParameterList(Node): self.py_parameters = odict() for pdef in xml_item.items: - - if pdef.out or pdef.ignored: - continue - name = pdef.name parameter = Parameter(self, pdef) self.py_parameters[name] = parameter @@ -550,10 +546,13 @@ class ParameterList(Node): name = element_name.strip() - if name not in self.py_parameters: - return + if name in self.py_parameters: + return self.py_parameters[name] - return self.py_parameters[name] + if '_' in name: + name = name[0:name.index('_')] + if name in self.py_parameters: + return self.py_parameters[name] # ----------------------------------------------------------------------- @@ -611,7 +610,14 @@ class ParameterList(Node): signature = name + '(%s)'%arguments arguments = arguments.split(',') - py_parameters = list(self.py_parameters.keys()) + + py_parameters = [] + for key, parameter in self.py_parameters.items(): + pdef = parameter.pdef + if pdef.out or pdef.ignored: + continue + + py_parameters.append(key) message = '\nSEVERE: Incompatibility between function/method signature and list of parameters in `%s`:\n\n' \ 'The parameter `%s` appears in the method signature but could not be found in the parameter list.\n\n' \ @@ -675,6 +681,15 @@ class ParameterList(Node): docstrings = '' for name, parameter in list(self.py_parameters.items()): + + pdef = parameter.pdef + + if pdef.out or pdef.ignored: + continue + +## print name +## print parameter.Join() +## print if parameter.type.strip(): docstrings += ':param `%s`: %s\n'%(name, parameter.Join().lstrip('\n')) docstrings += ':type `%s`: %s\n'%(name, parameter.type) @@ -1271,7 +1286,12 @@ class Table(Node): table = '\n\n' + spacer + '.. include:: %s\n\n'%possible_rest_input if self.element.tail and self.element.tail.strip(): - table += ConvertToPython(self.element.tail.rstrip()) + rest = ConvertToPython(self.element.tail.rstrip()) + split = rest.splitlines() + for index, r in enumerate(split): + table += spacer + r + if index < len(split)-1: + table += '\n' return table @@ -1437,7 +1457,13 @@ class Snippet(Node): docstrings += code.rstrip() + '\n\n' if self.element.tail and len(self.element.tail.strip()) > 1: - spacer = ('Section' in self.GetHierarchy() and [' '] or [''])[0] + hierarchy = self.GetHierarchy() + spacer = '' + if 'Section' in hierarchy: + spacer = ' '*4 + elif 'Parameter' in hierarchy: + spacer = ' ' + tail = ConvertToPython(self.element.tail.lstrip()) tail = tail.replace('\n', ' ') docstrings += spacer + tail.replace(' ', ' ') diff --git a/sphinxtools/constants.py b/sphinxtools/constants.py index de02202d..d0e1e6b6 100644 --- a/sphinxtools/constants.py +++ b/sphinxtools/constants.py @@ -102,14 +102,46 @@ NO_MODULE = { # -- wxDataView -- # # Widgets + 'DataViewItemObjectMapper': 'dataview.', + 'PyDataViewModel' : 'dataview.', # Enums/constants 'DataViewCellMode' : 'dataview.', 'DataViewCellRenderState' : 'dataview.', 'DataViewColumnFlags' : 'dataview.', - 'DataViewItemObjectMapper': 'dataview.', - 'PyDataViewModel' : 'dataview.', + # -- wxHTML -- # + # Widgets + + # Enums/constants + 'HTMLCursor' : 'html.', + 'HtmlOpeningStatus' : 'html.', + 'HtmlScriptMode' : 'html.', + 'HtmlSelectionState' : 'html.', + 'HtmlURLType' : 'html.', + + # -- wxHTML2 -- # + # Widgets + + # Enums/constants + 'WebViewBackend' : 'html2.', + 'WebViewNavigationError' : 'html2.', + 'WebViewReloadFlags' : 'html2.', + 'WebViewZoom' : 'html2.', + 'WebViewZoomType' : 'html2.', + + # -- wxXML -- # + # Widgets + + # Enums/constants + 'XmlDocumentLoadFlag' : 'xml.', + 'XmlNodeType' : 'xml.', + + # -- wxXRC -- # + # Widgets + + # Enums/constants + 'XmlResourceFlags' : 'xrc.', } # Other C++ specific things to strip away diff --git a/sphinxtools/postprocess.py b/sphinxtools/postprocess.py index bf4f123d..957fd763 100644 --- a/sphinxtools/postprocess.py +++ b/sphinxtools/postprocess.py @@ -169,11 +169,14 @@ def BuildEnumsAndMethods(sphinxDir): text = text.replace('EmptyString', "''") # Replace ArrayXXX stuff... - for cpp in ['ArrayString()', 'ArrayInt()', 'ArrayDouble()', 'ArrayString']: text = text.replace(cpp, '[]') + # Remove lines with "Event macros" in them... + text = text.replace('Event macros:', '') + text = TooltipsOnInheritance(text, class_summary) + text = AddSpacesToLinks(text) if text != orig_text: fid = textfile_open(input, 'wt') @@ -336,6 +339,17 @@ def RemoveUnreferenced(input, class_summary, enum_base, unreferenced_classes, te # ----------------------------------------------------------------------- # +def AddSpacesToLinks(text): + + regex = re.findall('\w:ref:`(.*?)`', text) + + for reg in regex: + text = text.replace(':ref:`%s`'%reg, ' :ref:`%s`'%reg) + + return text + +# ----------------------------------------------------------------------- # + def ReformatFunctions(file): text_file = os.path.splitext(file)[0] + '.txt' diff --git a/sphinxtools/utilities.py b/sphinxtools/utilities.py index 5d67b38b..f870fa08 100644 --- a/sphinxtools/utilities.py +++ b/sphinxtools/utilities.py @@ -288,8 +288,13 @@ def PythonizeType(ptype): if 'Image.' in ptype: ptype = ptype.split('.')[-1] + if 'FileName' in ptype: + ptype = 'string' + if ptype.endswith('&'): - ptype = ':class:`%s`'%ptype[0:-1] + ptype = ptype[0:-1] + if ' ' not in ptype: + ptype = ':class:`%s`'%ptype return ptype