diff options
author | Todd Zullinger <tmzullinger@users.sourceforge.net> | 2007-01-15 02:12:04 +0000 |
---|---|---|
committer | Todd Zullinger <tmzullinger@users.sourceforge.net> | 2007-01-15 02:12:04 +0000 |
commit | 8f9bbb12960b2f0edf90a3f3b5c38d6b016abefa (patch) | |
tree | cfe2fc1ddbff341d32720873c46baeaf770bc8d9 /bindings | |
parent | 9379659ad648265bde97bc5bec27c7b2e0225888 (diff) | |
download | libgpod-tmz-8f9bbb12960b2f0edf90a3f3b5c38d6b016abefa.tar.gz libgpod-tmz-8f9bbb12960b2f0edf90a3f3b5c38d6b016abefa.tar.xz libgpod-tmz-8f9bbb12960b2f0edf90a3f3b5c38d6b016abefa.zip |
add support files for converting gtk-docs to python docstrings
git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1372 f01d2545-417e-4e96-918e-98f8d0dbbcb6
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/python/gpod_doc.i.in | 86 | ||||
-rw-r--r-- | bindings/python/gtkdoc-to-swig.xsl | 54 |
2 files changed, 140 insertions, 0 deletions
diff --git a/bindings/python/gpod_doc.i.in b/bindings/python/gpod_doc.i.in new file mode 100644 index 0000000..fa25c12 --- /dev/null +++ b/bindings/python/gpod_doc.i.in @@ -0,0 +1,86 @@ +%feature("autodoc", "1"); + +%feature("autodoc", "sw_get_tracks(Itdb_iTunesDB itdb) -> [Itdb_Track, ...]") sw_get_tracks; +%feature("docstring", " +Get tracks in itdb. + +Parameters +itdb: an Itdb_iTunesDB +Returns: a list of Itdb_Track objects +") sw_get_tracks; + +%feature("autodoc", "sw_get_track(GList list, gint index) -> Itdb_Track") sw_get_track; +%feature("docstring", " +Get a track + +Parameters +list: a GList +index: position of the track +Returns: an Itdb_Track +") sw_get_track; + +%feature("autodoc", "sw_get_rule(GList list, gint index) -> SPLRule") sw_get_rule; +%feature("docstring", " +Get a rule + +Parameters +list: a GList +index: position of the rule +Returns: an SPLRule +") sw_get_rule; + +%feature("autodoc", "sw_get_playlist(GList list, gint index) -> Itdb_Playlist") sw_get_playlist; +%feature("docstring", " +Get a playlist + +Parameters +list: a GList +index: position of the playlist +Returns: an Itdb_Playlist +") sw_get_playlist; + +%feature("autodoc", "sw_get_list_len(GList list) -> Int") sw_get_list_len; +%feature("docstring", " +Get the length of list + +Parameters +list: a GList +Returns: length of list +") sw_get_list_len; + +%feature("autodoc", "sw_get_playlists(Itdb_iTunesDB itdb) -> [Itdb_Playlist, ...]") sw_get_playlists; +%feature("docstring", " +Get playlists + +Parameters +itdb: an Itdb_iTunesDB +Returns: a list of Itdb_Playlist objects +") sw_get_playlists; + +%feature("autodoc", "sw_get_playlist_tracks(Itdb_Playlist pl) -> [Itdb_Track, ...]") sw_get_playlist_tracks; +%feature("docstring", " +Get tracks in playlist + +pl: an Itdb_Playlist +Returns: a list of Itdb_Track objects +") sw_get_playlist_tracks; + +%feature("autodoc", "sw_set_track_userdata(Itdb_Track track, Dictionary userdata)") sw_set_track_userdata; +%feature("docstring", " +Set a tracks userdata + +Parameters +track: an Itdb_Track +userdata: a dictionary. Note that userdata can be None, in order to +clear all userdata. +") sw_set_track_userdata; + +%feature("autodoc", "sw_get_track_userdata(Itdb_Track track) -> Dictionary") sw_get_track_userdata; +%feature("docstring", " +Get track userdata + +Parameters +track: an Itdb_Track +Returns: a dictionary containing any userdata for track +") sw_get_track_userdata; + diff --git a/bindings/python/gtkdoc-to-swig.xsl b/bindings/python/gtkdoc-to-swig.xsl new file mode 100644 index 0000000..520ceb7 --- /dev/null +++ b/bindings/python/gtkdoc-to-swig.xsl @@ -0,0 +1,54 @@ +<?xml version="1.0"?> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + <xsl:output + encoding="ASCII" + method="text"/> + + <xsl:template match="/"> + <xsl:for-each select="//refsect2[./title/anchor/@role='function']"> + <xsl:text>%feature("docstring", "</xsl:text> + <xsl:call-template name="CleanQuotes"> + <xsl:with-param name="body" select="para"/> + </xsl:call-template> + <xsl:if test="variablelist[@role='params']"> + <xsl:text> Parameters </xsl:text> + <xsl:for-each select="variablelist[@role='params']/varlistentry"> + <xsl:call-template name="CleanQuotes"> + <!-- We're going to remove the nbsp chars as we're rendering to python docstrings --> + <xsl:with-param name="body" select="translate(term,' ','')"/> + </xsl:call-template> + <xsl:call-template name="CleanQuotes"> + <xsl:with-param name="body" select="translate(listitem,' ','')"/> + </xsl:call-template> + </xsl:for-each> + </xsl:if> + <xsl:text>") </xsl:text> + <xsl:value-of select="substring-before(./title[./anchor/@role='function'],' ')"/> + <xsl:text>; </xsl:text> + </xsl:for-each> + </xsl:template> + + <!-- recursive cleaner, matches string to first quote then recurses to + process the rest + Note how it uses a When to test if the termination condition of no + quotes has been reached + --> + + + <xsl:template name="CleanQuotes"><xsl:param name="body"/> + <xsl:choose> + <xsl:when test="contains($body, '"')"> + <xsl:value-of select="substring-before($body, '"')" /> + <xsl:text>\"</xsl:text> + <xsl:call-template name="CleanQuotes"> + <xsl:with-param name="body" select="substring-after($body,'"')"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$body"/><!-- finished recursing --> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> |