summaryrefslogtreecommitdiffstats
path: root/bindings
diff options
context:
space:
mode:
authorTodd Zullinger <tmzullinger@users.sourceforge.net>2007-01-15 02:12:04 +0000
committerTodd Zullinger <tmzullinger@users.sourceforge.net>2007-01-15 02:12:04 +0000
commit8f9bbb12960b2f0edf90a3f3b5c38d6b016abefa (patch)
treecfe2fc1ddbff341d32720873c46baeaf770bc8d9 /bindings
parent9379659ad648265bde97bc5bec27c7b2e0225888 (diff)
downloadlibgpod-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.in86
-rw-r--r--bindings/python/gtkdoc-to-swig.xsl54
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>&#10;&#10;Parameters&#10;</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,'&#160;','')"/>
+ </xsl:call-template>
+ <xsl:call-template name="CleanQuotes">
+ <xsl:with-param name="body" select="translate(listitem,'&#160;','')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:text>") </xsl:text>
+ <xsl:value-of select="substring-before(./title[./anchor/@role='function'],' ')"/>
+ <xsl:text>; &#10;</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, '&quot;')">
+ <xsl:value-of select="substring-before($body, '&quot;')" />
+ <xsl:text>\&quot;</xsl:text>
+ <xsl:call-template name="CleanQuotes">
+ <xsl:with-param name="body" select="substring-after($body,'&quot;')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$body"/><!-- finished recursing -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>