diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-06-27 18:07:56 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-06-27 18:07:56 -0400 |
commit | 863a7619a39724e0c0ecee2d70e61ea538c273fc (patch) | |
tree | 052603ef5e41f291180ed182664f39c5163a6567 | |
parent | e5309b128d28c94d7905bb37541c3c3b88f00555 (diff) | |
download | askbot-863a7619a39724e0c0ecee2d70e61ea538c273fc.tar.gz askbot-863a7619a39724e0c0ecee2d70e61ea538c273fc.tar.bz2 askbot-863a7619a39724e0c0ecee2d70e61ea538c273fc.zip |
made autodoc work project-wide, tweaked some doc strings
145 files changed, 1919 insertions, 1147 deletions
diff --git a/askbot/__init__.py b/askbot/__init__.py index 8368ecf4..4550ba40 100644 --- a/askbot/__init__.py +++ b/askbot/__init__.py @@ -1,15 +1,3 @@ """ -.. askbot-module: - -:mod:`askbot` -- the Django Q&A forum application -================================================= - -This module encapsulates the askbot application and consists of the following sub-modules: - -* :ref:`admin <askbot.admin>` - connector of models to Django admin interface -* :ref:`views <askbot.views>` - all view functions (controllers in MVC terminology) - -.. moduleauthor:: Mike Chen -.. moduleauthor:: Evgeny Fadeev <evgeny.fadeev@gmail.com> - +:synopsis: the Django Q&A forum application """ diff --git a/askbot/admin.py b/askbot/admin.py index 58e03102..f8478c02 100644 --- a/askbot/admin.py +++ b/askbot/admin.py @@ -1,11 +1,8 @@ # -*- coding: utf-8 -*- """ -.. _askbot.admin: +:synopsis: connector to standard Django admin interface -:mod:`askbot.admin` - connector to standard Django admin interface -=================================================================== - -Add more classes subclassing ``django.contrib.admin.Model`` +To make more models accessible in the Django admin interface, add more classes subclassing ``django.contrib.admin.Model`` Names of the classes must be like `SomeModelAdmin`, where `SomeModel` must exactly match name of the model used in the project diff --git a/askbot/bin/generate_modules.py b/askbot/bin/generate_modules.py index 9ff7ba68..f101a69b 100644..100755 --- a/askbot/bin/generate_modules.py +++ b/askbot/bin/generate_modules.py @@ -1,1065 +1,319 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" - "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title> - etienned / sphinx-autopackage-script / source — bitbucket.org -</title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <meta name="description" content="Mercurial hosting - we're here to serve." /> - <meta name="keywords" content="mercurial,hg,hosting,bitbucket,etienned,This,script,parse,a,directory,tree,looking,for,python,modules,and,packages,and,create,ReST,files,appropriately,to,create,code,documentation,with,Sphinx.,It,also,create,a,modules,index.,source,sourcecode,generate_modules.py@d20aab0a12b8" /> - <link rel="stylesheet" type="text/css" href="http://bitbucket-assets.s3.amazonaws.com/css/layout.css" /> - <link rel="stylesheet" type="text/css" href="http://bitbucket-assets.s3.amazonaws.com/css/screen.css" /> - <link rel="stylesheet" type="text/css" href="http://bitbucket-assets.s3.amazonaws.com/css/print.css" media="print" /> - <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Bitbucket" /> - <link rel="icon" href="http://bitbucket-assets.s3.amazonaws.com/img/logo_new.png" type="image/png"/> - <script type="text/javascript">var MEDIA_URL = "http://bitbucket-assets.s3.amazonaws.com/"</script> - <script type="text/javascript" src="http://bitbucket-assets.s3.amazonaws.com/js/lib/bundle.020510May.js"></script> - - <script type="text/javascript"> - $(document).ready(function() { - Dropdown.init(); - $(".tooltip").tipsy({gravity:'s'}); - }); - </script> - <noscript> - <style type="text/css"> - .dropdown-container-text .dropdown { - position: static !important; - } - </style> - </noscript> - - <!--[if lt IE 7]> - <style type="text/css"> - body { - behavior: url(http://bitbucket-assets.s3.amazonaws.com/css/csshover.htc); - } - - #issues-issue pre { - white-space: normal !important; - } - - .changeset-description { - white-space: normal !important; - } - </style> - <script type="text/javascript"> - $(document).ready(function(){ - $('#header-wrapper').pngFix(); - $('#sourcelist').pngFix(); - $('.promo-signup-screenshot').pngFix(); - }); - </script> - <![endif]--> - - <link rel="stylesheet" href="http://bitbucket-assets.s3.amazonaws.com/css/highlight/trac.css" type="text/css" /> - - -</head> -<body class=""> - <div id="main-wrapper"> - <div id="header-wrapper"> - <div id="header"> - <a href="/"><img src="http://bitbucket-assets.s3.amazonaws.com/img/logo_myriad.png" alt="Bitbucket" id="header-wrapper-logo" /></a> - - <div id="header-nav"> - <ul class="right"> - <li><a href="/">Home</a></li> - <li><a href="/plans"><b>Plans & Signup</b></a></li> - <li><a href="/repo/all">Repositories</a></li> - <li><a href="/news">News</a></li> - <li><a href="/help">Help</a></li> - <li><a href="/account/signin/">Sign in</a></li> - </ul> - </div> - - </div> - </div> - <div id="content-wrapper"> - - - - - - - - - - - - - - - <script type="text/javascript" src="http://bitbucket-assets.s3.amazonaws.com/js/lib/jquery.cookie.js"></script> <!--REMOVE WHEN NEWER BUNDLE THAN 030309Mar --> - <script type="text/javascript"> - var date = new Date(); - date.setTime(date.getTime() + (365 * 24 * 60 * 60 * 1000)); - var cookieoptions = { path: '/', expires: date }; - - window._shard = 'fe01 (ID 1)'; - - $(document).ready(function(){ - $('#toggle-repo-content').click(function(){ - $('#repo-desc-cloneinfo').toggle('fast'); - $('#repo-menu').toggle(); - $('#repo-menu-links-mini').toggle(100); - $('.repo-desc-description').toggle('fast'); - var avatar_new_width = ($('.repo-avatar').width() == 35) ? 16 : 35; - $('.repo-avatar').animate({ width: avatar_new_width }, 250); - - if ($.cookie('toggle_status') == 'hide') { - $.cookie('toggle_status', 'show', cookieoptions); - $(this).css('background-image','url(http://bitbucket-assets.s3.amazonaws.com/img/repo-toggle-up.png)'); - } else { - $.cookie('toggle_status', 'hide', cookieoptions); - $(this).css('background-image','url(http://bitbucket-assets.s3.amazonaws.com/img/repo-toggle-down.png)'); - } - }); - - if ($.cookie('toggle_status') == 'hide') { - $('#toggle-repo-content').css('background-image','url(http://bitbucket-assets.s3.amazonaws.com/img/repo-toggle-down.png)'); - $('#repo-desc-cloneinfo').hide(); - $('#repo-menu').hide(); - $('#repo-menu-links-mini').show(); - $('.repo-desc-description').hide(); - $('.repo-avatar').css({ width: '16px' }); - } else { - $('#toggle-repo-content').css('background-image','url(http://bitbucket-assets.s3.amazonaws.com/img/repo-toggle-up.png)'); - $('#repo-desc-cloneinfo').show(); - $('#repo-menu').show(); - $('#repo-menu-links-mini').hide(); - $('.repo-desc-description').show(); - $('.repo-avatar').css({ width: '35px' }); - } - }); - </script> - - -<div id="tabs"> - <ul class="ui-tabs-nav"> - <li> - <a href="/etienned/sphinx-autopackage-script/overview"><span>Overview</span></a> - </li> - - <li> - <a href="/etienned/sphinx-autopackage-script/downloads"><span>Downloads (0)</span></a> - </li> - - - - <li class="ui-tabs-selected"> - - <a href="/etienned/sphinx-autopackage-script/src/d20aab0a12b8"><span>Source</span></a> - - </li> - - <li> - <a href="/etienned/sphinx-autopackage-script/changesets"><span>Changesets</span></a> - </li> - - - - <li class="ui-tabs-nav-issues"> - <a href="/etienned/sphinx-autopackage-script/wiki"><span>Wiki</span></a> - </li> - - - - - - <li class="ui-tabs-nav-issues"> - <a href="/etienned/sphinx-autopackage-script/issues?status=new&status=open"><span>Issues (1) »</span></a> - <ul> - <li><a href="/etienned/sphinx-autopackage-script/issues?status=new">New issues</a></li> - <li><a href="/etienned/sphinx-autopackage-script/issues?status=new&status=open">Open issues</a></li> - <li><a href="/etienned/sphinx-autopackage-script/issues?status=resolved&status=invalid&status=duplicate">Closed issues</a></li> - - <li><a href="/etienned/sphinx-autopackage-script/issues">All issues</a></li> - <li><a href="/etienned/sphinx-autopackage-script/issues/query">Advanced query</a></li> - <li><a href="/etienned/sphinx-autopackage-script/issues/new">Create new issue</a></li> - </ul> - </li> - - - - - - - - <li class="tabs-right tabs-far-right"> - <a href="/etienned/sphinx-autopackage-script/descendants"><span>Forks/Queues (0)</span></a> - </li> - - <li class="tabs-right"> - <a href="/etienned/sphinx-autopackage-script/zealots"><span>Followers (2)</span></a> - </li> - </ul> -</div> - -<div id="repo-menu"> - <div id="repo-menu-links"> - <ul> - <li> - <a href="/etienned/sphinx-autopackage-script/rss" class="noborder repo-menu-rss" title="RSS Feed for sphinx-autopackage-script">RSS</a> - </li> - <li> - <a href="/etienned/sphinx-autopackage-script/atom" class="noborder repo-menu-atom" title="Atom Feed for sphinx-autopackage-script">Atom</a> - </li> - - <li> - <a href="/etienned/sphinx-autopackage-script/pull" class="link-request-pull"> - pull request - </a> - </li> - - <li><a href="/etienned/sphinx-autopackage-script/fork" class="link-fork">fork</a></li> - - <li><a href="/etienned/sphinx-autopackage-script/hack" class="link-hack">patch queue</a></li> - - <li> - - <a rel="nofollow" href="/etienned/sphinx-autopackage-script/follow" class="link-follow">follow</a> - - </li> - <li><a class="link-download">get source »</a> - - <ul> - - <li><a rel="nofollow" href="/etienned/sphinx-autopackage-script/get/d20aab0a12b8.zip" class="zip">zip</a></li> - <li><a rel="nofollow" href="/etienned/sphinx-autopackage-script/get/d20aab0a12b8.gz" class="compressed">gz</a></li> - <li><a rel="nofollow" href="/etienned/sphinx-autopackage-script/get/d20aab0a12b8.bz2" class="compressed">bz2</a></li> - - </ul> - </li> - </ul> - </div> - - - <div id="repo-menu-branches-tags"> - <ul> - <li class="icon-branches"> - branches » - - <ul> - - <li><a href="/etienned/sphinx-autopackage-script/src/d20aab0a12b8">default</a></li> - - </ul> - - </li> - <li class="icon-tags"> - tags » - - <ul> - - <li><a href="/etienned/sphinx-autopackage-script/src/d20aab0a12b8">tip</a></li> - - </ul> - </li> - </ul> - </div> - - - <div class="cb"></div> - </div> - <div id="repo-desc" class="layout-box"> - - - <div id="repo-menu-links-mini" class="right"> - <ul> - <li> - <a href="/etienned/sphinx-autopackage-script/rss" class="noborder repo-menu-rss" title="RSS Feed for sphinx-autopackage-script"></a> - </li> - <li> - <a href="/etienned/sphinx-autopackage-script/atom" class="noborder repo-menu-atom" title="Atom Feed for sphinx-autopackage-script"></a> - </li> - - <li> - <a href="/etienned/sphinx-autopackage-script/pull" class="tooltip noborder link-request-pull" title="Pull request"></a> - </li> - - <li><a href="/etienned/sphinx-autopackage-script/fork" class="tooltip noborder link-fork" title="Fork"></a></li> - - <li><a href="/etienned/sphinx-autopackage-script/hack" class="tooltip noborder link-hack" title="Patch queue"></a></li> - - <li><a class="tooltip noborder link-download" title="Get source"></a> - - <ul> - - <li><a rel="nofollow" href="/etienned/sphinx-autopackage-script/get/d20aab0a12b8.zip" class="zip">zip</a></li> - <li><a rel="nofollow" href="/etienned/sphinx-autopackage-script/get/d20aab0a12b8.gz" class="compressed">gz</a></li> - <li><a rel="nofollow" href="/etienned/sphinx-autopackage-script/get/d20aab0a12b8.bz2" class="compressed">bz2</a></li> - - </ul> - </li> - </ul> - </div> - - <h3> - <a href="/etienned">etienned</a> / - <a href="/etienned/sphinx-autopackage-script">sphinx-autopackage-script</a> - - - </h3> - - - - - - <p class="repo-desc-description">This script parse a directory tree looking for python modules and packages and
-create ReST files appropriately to create code documentation with Sphinx.
-It also create a modules index. </p> - - <div id="repo-desc-cloneinfo">Clone this repository (size: 5.8 KB): <a href="http://bitbucket.org/etienned/sphinx-autopackage-script" onclick="$('#clone-url-ssh').hide();$('#clone-url-https').toggle();return(false);"><small>HTTPS</small></a> / <a href="ssh://hg@bitbucket.org/etienned/sphinx-autopackage-script" onclick="$('#clone-url-https').hide();$('#clone-url-ssh').toggle();return(false);"><small>SSH</small></a><br/> - <pre id="clone-url-https">$ hg clone <a href="http://bitbucket.org/etienned/sphinx-autopackage-script">http://bitbucket.org/etienned/sphinx-autopackage-script</a></pre> - - <pre id="clone-url-ssh" style="display:none;">$ hg clone <a href="ssh://hg@bitbucket.org/etienned/sphinx-autopackage-script">ssh://hg@bitbucket.org/etienned/sphinx-autopackage-script</a></pre></div> - - <div class="cb"></div> - <a href="#" id="toggle-repo-content"></a> - - - - </div> - - - - - - - - - -<div id="source-summary" class="layout-box"> - <div class="right"> - <table> - <tr> - <td>commit 0:</td> - <td>d20aab0a12b8</td> - </tr> - - - <tr> - <td>branch: </td> - <td>default</td> - </tr> - - <tr> - <td>tags:</td> - <td>tip</td> - </tr> - - </table> - </div> - -<div class="changeset-description">Initial commit</div> - - <div> - - - - -<div class="dropdown-container"> - - - <img src="http://www.gravatar.com/avatar/6fc6e07b4af580b1424c082536570dd4?d=identicon&s=32" class="avatar dropdown" /> - - - - <ul class="dropdown-list"> - <li> - - <a href="/etienne">View etienne's profile</a> - - </li> - <li> - <a href="">etienne's public repos »</a> - - - - </li> - - <li> - <a href="/account/notifications/send/?receiver=etienne">Send message</a> - </li> - - </ul> -</div> - - - - - <span class="dropdown-right"> - - - <a href="/etienne">Etienne Lawlor</a> / - - <a href="/etienne">etienne</a> - - <br/> - <small class="dropdown-right">2 months ago</small> - </span> - - </div> - - <div class="cb"></div> -</div> - - - - -<div id="source-path" class="layout-box"> - <a href="/etienned/sphinx-autopackage-script/src">sphinx-autopackage-script</a> / - - - - generate_modules.py - - - - -</div> - - -<div id="source-view" class="scroll-x"> - <table class="info-table"> - <tr> - <th>r0:d20aab0a12b8</th> - <th>287 loc</th> - <th>10.7 KB</th> - <th class="source-view-links"> - <a id="embed-link" href="#" onclick="makeEmbed('#embed-link', 'http://bitbucket.org/etienned/sphinx-autopackage-script/src/d20aab0a12b8/generate_modules.py?embed=t');">embed</a> / - <a href='/etienned/sphinx-autopackage-script/history/generate_modules.py'>history</a> / - <a href='/etienned/sphinx-autopackage-script/annotate/d20aab0a12b8/generate_modules.py'>annotate</a> / - <a href='/etienned/sphinx-autopackage-script/raw/d20aab0a12b8/generate_modules.py'>raw</a> / - <form action="/etienned/sphinx-autopackage-script/diff/generate_modules.py" method="get" class="source-view-form"> - - <select name='nothing' class="smaller" disabled="disabled"> - <option>No previous changes</option> - </select> - - </form> - </th> - </tr> - </table> - - - <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#cl-1"> 1</a> -<a href="#cl-2"> 2</a> -<a href="#cl-3"> 3</a> -<a href="#cl-4"> 4</a> -<a href="#cl-5"> 5</a> -<a href="#cl-6"> 6</a> -<a href="#cl-7"> 7</a> -<a href="#cl-8"> 8</a> -<a href="#cl-9"> 9</a> -<a href="#cl-10"> 10</a> -<a href="#cl-11"> 11</a> -<a href="#cl-12"> 12</a> -<a href="#cl-13"> 13</a> -<a href="#cl-14"> 14</a> -<a href="#cl-15"> 15</a> -<a href="#cl-16"> 16</a> -<a href="#cl-17"> 17</a> -<a href="#cl-18"> 18</a> -<a href="#cl-19"> 19</a> -<a href="#cl-20"> 20</a> -<a href="#cl-21"> 21</a> -<a href="#cl-22"> 22</a> -<a href="#cl-23"> 23</a> -<a href="#cl-24"> 24</a> -<a href="#cl-25"> 25</a> -<a href="#cl-26"> 26</a> -<a href="#cl-27"> 27</a> -<a href="#cl-28"> 28</a> -<a href="#cl-29"> 29</a> -<a href="#cl-30"> 30</a> -<a href="#cl-31"> 31</a> -<a href="#cl-32"> 32</a> -<a href="#cl-33"> 33</a> -<a href="#cl-34"> 34</a> -<a href="#cl-35"> 35</a> -<a href="#cl-36"> 36</a> -<a href="#cl-37"> 37</a> -<a href="#cl-38"> 38</a> -<a href="#cl-39"> 39</a> -<a href="#cl-40"> 40</a> -<a href="#cl-41"> 41</a> -<a href="#cl-42"> 42</a> -<a href="#cl-43"> 43</a> -<a href="#cl-44"> 44</a> -<a href="#cl-45"> 45</a> -<a href="#cl-46"> 46</a> -<a href="#cl-47"> 47</a> -<a href="#cl-48"> 48</a> -<a href="#cl-49"> 49</a> -<a href="#cl-50"> 50</a> -<a href="#cl-51"> 51</a> -<a href="#cl-52"> 52</a> -<a href="#cl-53"> 53</a> -<a href="#cl-54"> 54</a> -<a href="#cl-55"> 55</a> -<a href="#cl-56"> 56</a> -<a href="#cl-57"> 57</a> -<a href="#cl-58"> 58</a> -<a href="#cl-59"> 59</a> -<a href="#cl-60"> 60</a> -<a href="#cl-61"> 61</a> -<a href="#cl-62"> 62</a> -<a href="#cl-63"> 63</a> -<a href="#cl-64"> 64</a> -<a href="#cl-65"> 65</a> -<a href="#cl-66"> 66</a> -<a href="#cl-67"> 67</a> -<a href="#cl-68"> 68</a> -<a href="#cl-69"> 69</a> -<a href="#cl-70"> 70</a> -<a href="#cl-71"> 71</a> -<a href="#cl-72"> 72</a> -<a href="#cl-73"> 73</a> -<a href="#cl-74"> 74</a> -<a href="#cl-75"> 75</a> -<a href="#cl-76"> 76</a> -<a href="#cl-77"> 77</a> -<a href="#cl-78"> 78</a> -<a href="#cl-79"> 79</a> -<a href="#cl-80"> 80</a> -<a href="#cl-81"> 81</a> -<a href="#cl-82"> 82</a> -<a href="#cl-83"> 83</a> -<a href="#cl-84"> 84</a> -<a href="#cl-85"> 85</a> -<a href="#cl-86"> 86</a> -<a href="#cl-87"> 87</a> -<a href="#cl-88"> 88</a> -<a href="#cl-89"> 89</a> -<a href="#cl-90"> 90</a> -<a href="#cl-91"> 91</a> -<a href="#cl-92"> 92</a> -<a href="#cl-93"> 93</a> -<a href="#cl-94"> 94</a> -<a href="#cl-95"> 95</a> -<a href="#cl-96"> 96</a> -<a href="#cl-97"> 97</a> -<a href="#cl-98"> 98</a> -<a href="#cl-99"> 99</a> -<a href="#cl-100">100</a> -<a href="#cl-101">101</a> -<a href="#cl-102">102</a> -<a href="#cl-103">103</a> -<a href="#cl-104">104</a> -<a href="#cl-105">105</a> -<a href="#cl-106">106</a> -<a href="#cl-107">107</a> -<a href="#cl-108">108</a> -<a href="#cl-109">109</a> -<a href="#cl-110">110</a> -<a href="#cl-111">111</a> -<a href="#cl-112">112</a> -<a href="#cl-113">113</a> -<a href="#cl-114">114</a> -<a href="#cl-115">115</a> -<a href="#cl-116">116</a> -<a href="#cl-117">117</a> -<a href="#cl-118">118</a> -<a href="#cl-119">119</a> -<a href="#cl-120">120</a> -<a href="#cl-121">121</a> -<a href="#cl-122">122</a> -<a href="#cl-123">123</a> -<a href="#cl-124">124</a> -<a href="#cl-125">125</a> -<a href="#cl-126">126</a> -<a href="#cl-127">127</a> -<a href="#cl-128">128</a> -<a href="#cl-129">129</a> -<a href="#cl-130">130</a> -<a href="#cl-131">131</a> -<a href="#cl-132">132</a> -<a href="#cl-133">133</a> -<a href="#cl-134">134</a> -<a href="#cl-135">135</a> -<a href="#cl-136">136</a> -<a href="#cl-137">137</a> -<a href="#cl-138">138</a> -<a href="#cl-139">139</a> -<a href="#cl-140">140</a> -<a href="#cl-141">141</a> -<a href="#cl-142">142</a> -<a href="#cl-143">143</a> -<a href="#cl-144">144</a> -<a href="#cl-145">145</a> -<a href="#cl-146">146</a> -<a href="#cl-147">147</a> -<a href="#cl-148">148</a> -<a href="#cl-149">149</a> -<a href="#cl-150">150</a> -<a href="#cl-151">151</a> -<a href="#cl-152">152</a> -<a href="#cl-153">153</a> -<a href="#cl-154">154</a> -<a href="#cl-155">155</a> -<a href="#cl-156">156</a> -<a href="#cl-157">157</a> -<a href="#cl-158">158</a> -<a href="#cl-159">159</a> -<a href="#cl-160">160</a> -<a href="#cl-161">161</a> -<a href="#cl-162">162</a> -<a href="#cl-163">163</a> -<a href="#cl-164">164</a> -<a href="#cl-165">165</a> -<a href="#cl-166">166</a> -<a href="#cl-167">167</a> -<a href="#cl-168">168</a> -<a href="#cl-169">169</a> -<a href="#cl-170">170</a> -<a href="#cl-171">171</a> -<a href="#cl-172">172</a> -<a href="#cl-173">173</a> -<a href="#cl-174">174</a> -<a href="#cl-175">175</a> -<a href="#cl-176">176</a> -<a href="#cl-177">177</a> -<a href="#cl-178">178</a> -<a href="#cl-179">179</a> -<a href="#cl-180">180</a> -<a href="#cl-181">181</a> -<a href="#cl-182">182</a> -<a href="#cl-183">183</a> -<a href="#cl-184">184</a> -<a href="#cl-185">185</a> -<a href="#cl-186">186</a> -<a href="#cl-187">187</a> -<a href="#cl-188">188</a> -<a href="#cl-189">189</a> -<a href="#cl-190">190</a> -<a href="#cl-191">191</a> -<a href="#cl-192">192</a> -<a href="#cl-193">193</a> -<a href="#cl-194">194</a> -<a href="#cl-195">195</a> -<a href="#cl-196">196</a> -<a href="#cl-197">197</a> -<a href="#cl-198">198</a> -<a href="#cl-199">199</a> -<a href="#cl-200">200</a> -<a href="#cl-201">201</a> -<a href="#cl-202">202</a> -<a href="#cl-203">203</a> -<a href="#cl-204">204</a> -<a href="#cl-205">205</a> -<a href="#cl-206">206</a> -<a href="#cl-207">207</a> -<a href="#cl-208">208</a> -<a href="#cl-209">209</a> -<a href="#cl-210">210</a> -<a href="#cl-211">211</a> -<a href="#cl-212">212</a> -<a href="#cl-213">213</a> -<a href="#cl-214">214</a> -<a href="#cl-215">215</a> -<a href="#cl-216">216</a> -<a href="#cl-217">217</a> -<a href="#cl-218">218</a> -<a href="#cl-219">219</a> -<a href="#cl-220">220</a> -<a href="#cl-221">221</a> -<a href="#cl-222">222</a> -<a href="#cl-223">223</a> -<a href="#cl-224">224</a> -<a href="#cl-225">225</a> -<a href="#cl-226">226</a> -<a href="#cl-227">227</a> -<a href="#cl-228">228</a> -<a href="#cl-229">229</a> -<a href="#cl-230">230</a> -<a href="#cl-231">231</a> -<a href="#cl-232">232</a> -<a href="#cl-233">233</a> -<a href="#cl-234">234</a> -<a href="#cl-235">235</a> -<a href="#cl-236">236</a> -<a href="#cl-237">237</a> -<a href="#cl-238">238</a> -<a href="#cl-239">239</a> -<a href="#cl-240">240</a> -<a href="#cl-241">241</a> -<a href="#cl-242">242</a> -<a href="#cl-243">243</a> -<a href="#cl-244">244</a> -<a href="#cl-245">245</a> -<a href="#cl-246">246</a> -<a href="#cl-247">247</a> -<a href="#cl-248">248</a> -<a href="#cl-249">249</a> -<a href="#cl-250">250</a> -<a href="#cl-251">251</a> -<a href="#cl-252">252</a> -<a href="#cl-253">253</a> -<a href="#cl-254">254</a> -<a href="#cl-255">255</a> -<a href="#cl-256">256</a> -<a href="#cl-257">257</a> -<a href="#cl-258">258</a> -<a href="#cl-259">259</a> -<a href="#cl-260">260</a> -<a href="#cl-261">261</a> -<a href="#cl-262">262</a> -<a href="#cl-263">263</a> -<a href="#cl-264">264</a> -<a href="#cl-265">265</a> -<a href="#cl-266">266</a> -<a href="#cl-267">267</a> -<a href="#cl-268">268</a> -<a href="#cl-269">269</a> -<a href="#cl-270">270</a> -<a href="#cl-271">271</a> -<a href="#cl-272">272</a> -<a href="#cl-273">273</a> -<a href="#cl-274">274</a> -<a href="#cl-275">275</a> -<a href="#cl-276">276</a> -<a href="#cl-277">277</a> -<a href="#cl-278">278</a> -<a href="#cl-279">279</a> -<a href="#cl-280">280</a> -<a href="#cl-281">281</a> -<a href="#cl-282">282</a> -<a href="#cl-283">283</a> -<a href="#cl-284">284</a> -<a href="#cl-285">285</a> -<a href="#cl-286">286</a> -<a href="#cl-287">287</a> -<a href="#cl-288">288</a> -</pre></div></td><td class="code"><div class="highlight"><pre><a name="cl-1"></a><span class="c">#!/usr/bin/env python</span> -<a name="cl-2"></a><span class="c"># -*- coding: utf-8 -*-</span> -<a name="cl-3"></a> -<a name="cl-4"></a><span class="c"># Miville</span> -<a name="cl-5"></a><span class="c"># Copyright (C) 2008 Société des arts technologiques (SAT)</span> -<a name="cl-6"></a><span class="c"># http://www.sat.qc.ca</span> -<a name="cl-7"></a><span class="c"># All rights reserved.</span> -<a name="cl-8"></a><span class="c">#</span> -<a name="cl-9"></a><span class="c"># This file is free software: you can redistribute it and/or modify</span> -<a name="cl-10"></a><span class="c"># it under the terms of the GNU General Public License as published by</span> -<a name="cl-11"></a><span class="c"># the Free Software Foundation, either version 2 of the License, or</span> -<a name="cl-12"></a><span class="c"># (at your option) any later version.</span> -<a name="cl-13"></a><span class="c">#</span> -<a name="cl-14"></a><span class="c"># Miville is distributed in the hope that it will be useful,</span> -<a name="cl-15"></a><span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span> -<a name="cl-16"></a><span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> -<a name="cl-17"></a><span class="c"># GNU General Public License for more details.</span> -<a name="cl-18"></a><span class="c">#</span> -<a name="cl-19"></a><span class="c"># You should have received a copy of the GNU General Public License</span> -<a name="cl-20"></a><span class="c"># along with Miville. If not, see <http://www.gnu.org/licenses/>.</span> -<a name="cl-21"></a> -<a name="cl-22"></a><span class="sd">"""</span> -<a name="cl-23"></a><span class="sd">This script parse a directory tree looking for python modules and packages and</span> -<a name="cl-24"></a><span class="sd">create ReST files appropriately to create code documentation with Sphinx.</span> -<a name="cl-25"></a><span class="sd">It also create a modules index. </span> -<a name="cl-26"></a><span class="sd">"""</span> -<a name="cl-27"></a> -<a name="cl-28"></a><span class="kn">import</span> <span class="nn">os</span> -<a name="cl-29"></a><span class="kn">import</span> <span class="nn">optparse</span> -<a name="cl-30"></a> -<a name="cl-31"></a> -<a name="cl-32"></a><span class="c"># automodule options</span> -<a name="cl-33"></a><span class="n">OPTIONS</span> <span class="o">=</span> <span class="p">[</span><span class="s">'members'</span><span class="p">,</span> -<a name="cl-34"></a> <span class="s">'undoc-members'</span><span class="p">,</span> -<a name="cl-35"></a><span class="c"># 'inherited-members', # disable because there's a bug in sphinx</span> -<a name="cl-36"></a> <span class="s">'show-inheritance'</span><span class="p">]</span> -<a name="cl-37"></a> -<a name="cl-38"></a> -<a name="cl-39"></a><span class="k">def</span> <span class="nf">create_file_name</span><span class="p">(</span><span class="n">base</span><span class="p">,</span> <span class="n">opts</span><span class="p">):</span> -<a name="cl-40"></a> <span class="sd">"""Create file name from base name, path and suffix"""</span> -<a name="cl-41"></a> <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">opts</span><span class="o">.</span><span class="n">destdir</span><span class="p">,</span> <span class="s">"</span><span class="si">%s</span><span class="s">.</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">base</span><span class="p">,</span> <span class="n">opts</span><span class="o">.</span><span class="n">suffix</span><span class="p">))</span> -<a name="cl-42"></a> -<a name="cl-43"></a><span class="k">def</span> <span class="nf">write_directive</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">package</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> -<a name="cl-44"></a> <span class="sd">"""Create the automodule directive and add the options"""</span> -<a name="cl-45"></a> <span class="k">if</span> <span class="n">package</span><span class="p">:</span> -<a name="cl-46"></a> <span class="n">directive</span> <span class="o">=</span> <span class="s">'.. automodule:: </span><span class="si">%s</span><span class="s">.</span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">package</span><span class="p">,</span> <span class="n">module</span><span class="p">)</span> -<a name="cl-47"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-48"></a> <span class="n">directive</span> <span class="o">=</span> <span class="s">'.. automodule:: </span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="n">module</span> -<a name="cl-49"></a> <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">OPTIONS</span><span class="p">:</span> -<a name="cl-50"></a> <span class="n">directive</span> <span class="o">+=</span> <span class="s">' :</span><span class="si">%s</span><span class="s">:</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="n">option</span> -<a name="cl-51"></a> <span class="k">return</span> <span class="n">directive</span> -<a name="cl-52"></a> -<a name="cl-53"></a><span class="k">def</span> <span class="nf">write_heading</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s">'Module'</span><span class="p">):</span> -<a name="cl-54"></a> <span class="sd">"""Create the page heading."""</span> -<a name="cl-55"></a> <span class="n">module</span> <span class="o">=</span> <span class="n">module</span><span class="o">.</span><span class="n">title</span><span class="p">()</span> -<a name="cl-56"></a> <span class="n">heading</span> <span class="o">=</span> <span class="n">title_line</span><span class="p">(</span><span class="n">module</span> <span class="o">+</span> <span class="s">' Documentation'</span><span class="p">,</span> <span class="s">'='</span><span class="p">)</span> -<a name="cl-57"></a> <span class="n">heading</span> <span class="o">+=</span> <span class="s">'This page contains the </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> documentation.</span><span class="se">\n\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> -<a name="cl-58"></a> <span class="k">return</span> <span class="n">heading</span> -<a name="cl-59"></a> -<a name="cl-60"></a><span class="k">def</span> <span class="nf">write_sub</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s">'Module'</span><span class="p">):</span> -<a name="cl-61"></a> <span class="sd">"""Create the module subtitle"""</span> -<a name="cl-62"></a> <span class="n">sub</span> <span class="o">=</span> <span class="n">title_line</span><span class="p">(</span><span class="s">'The :mod:`</span><span class="si">%s</span><span class="s">` </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">kind</span><span class="p">),</span> <span class="s">'-'</span><span class="p">)</span> -<a name="cl-63"></a> <span class="k">return</span> <span class="n">sub</span> -<a name="cl-64"></a> -<a name="cl-65"></a><span class="k">def</span> <span class="nf">title_line</span><span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="n">char</span><span class="p">):</span> -<a name="cl-66"></a> <span class="sd">""" Underline the title with the character pass, with the right length."""</span> -<a name="cl-67"></a> <span class="k">return</span> <span class="s">'</span><span class="si">%s</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">title</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="o">*</span> <span class="n">char</span><span class="p">)</span> -<a name="cl-68"></a> -<a name="cl-69"></a><span class="k">def</span> <span class="nf">create_module_file</span><span class="p">(</span><span class="n">package</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">opts</span><span class="p">):</span> -<a name="cl-70"></a> <span class="sd">"""Build the text of the file and write the file."""</span> -<a name="cl-71"></a> <span class="n">name</span> <span class="o">=</span> <span class="n">create_file_name</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span> -<a name="cl-72"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">opts</span><span class="o">.</span><span class="n">force</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">name</span><span class="p">):</span> -<a name="cl-73"></a> <span class="k">print</span> <span class="s">'File </span><span class="si">%s</span><span class="s"> already exists.'</span> <span class="o">%</span> <span class="n">name</span> -<a name="cl-74"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-75"></a> <span class="k">print</span> <span class="s">'Creating file </span><span class="si">%s</span><span class="s"> (module).'</span> <span class="o">%</span> <span class="n">name</span> -<a name="cl-76"></a> <span class="n">text</span> <span class="o">=</span> <span class="n">write_heading</span><span class="p">(</span><span class="n">module</span><span class="p">)</span> -<a name="cl-77"></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">write_sub</span><span class="p">(</span><span class="n">module</span><span class="p">)</span> -<a name="cl-78"></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">write_directive</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="n">package</span><span class="p">)</span> -<a name="cl-79"></a> -<a name="cl-80"></a> <span class="c"># write the file</span> -<a name="cl-81"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">opts</span><span class="o">.</span><span class="n">dryrun</span><span class="p">:</span> -<a name="cl-82"></a> <span class="n">fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="s">'w'</span><span class="p">)</span> -<a name="cl-83"></a> <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> -<a name="cl-84"></a> <span class="n">fd</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> -<a name="cl-85"></a> -<a name="cl-86"></a><span class="k">def</span> <span class="nf">create_package_file</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">master_package</span><span class="p">,</span> <span class="n">subroot</span><span class="p">,</span> <span class="n">py_files</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">subs</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> -<a name="cl-87"></a> <span class="sd">"""Build the text of the file and write the file."""</span> -<a name="cl-88"></a> <span class="n">package</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">root</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> -<a name="cl-89"></a> <span class="n">name</span> <span class="o">=</span> <span class="n">create_file_name</span><span class="p">(</span><span class="n">subroot</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span> -<a name="cl-90"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">opts</span><span class="o">.</span><span class="n">force</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">name</span><span class="p">):</span> -<a name="cl-91"></a> <span class="k">print</span> <span class="s">'File </span><span class="si">%s</span><span class="s"> already exists.'</span> <span class="o">%</span> <span class="n">name</span> -<a name="cl-92"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-93"></a> <span class="k">print</span> <span class="s">'Creating file </span><span class="si">%s</span><span class="s"> (package).'</span> <span class="o">%</span> <span class="n">name</span> -<a name="cl-94"></a> <span class="n">text</span> <span class="o">=</span> <span class="n">write_heading</span><span class="p">(</span><span class="n">package</span><span class="p">,</span> <span class="s">'Package'</span><span class="p">)</span> -<a name="cl-95"></a> <span class="k">if</span> <span class="n">subs</span> <span class="o">==</span> <span class="bp">None</span><span class="p">:</span> -<a name="cl-96"></a> <span class="n">subs</span> <span class="o">=</span> <span class="p">[]</span> -<a name="cl-97"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-98"></a> <span class="c"># build a list of directories that are package (they contain an __init_.py file)</span> -<a name="cl-99"></a> <span class="n">subs</span> <span class="o">=</span> <span class="p">[</span><span class="n">sub</span> <span class="k">for</span> <span class="n">sub</span> <span class="ow">in</span> <span class="n">subs</span> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">sub</span><span class="p">,</span> <span class="s">'__init__.py'</span><span class="p">))]</span> -<a name="cl-100"></a> <span class="c"># if there's some package directories, add a TOC for theses subpackages</span> -<a name="cl-101"></a> <span class="k">if</span> <span class="n">subs</span><span class="p">:</span> -<a name="cl-102"></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">title_line</span><span class="p">(</span><span class="s">'Subpackages'</span><span class="p">,</span> <span class="s">'-'</span><span class="p">)</span> -<a name="cl-103"></a> <span class="n">text</span> <span class="o">+=</span> <span class="s">'.. toctree::</span><span class="se">\n\n</span><span class="s">'</span> -<a name="cl-104"></a> <span class="k">for</span> <span class="n">sub</span> <span class="ow">in</span> <span class="n">subs</span><span class="p">:</span> -<a name="cl-105"></a> <span class="n">text</span> <span class="o">+=</span> <span class="s">' </span><span class="si">%s</span><span class="s">.</span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">subroot</span><span class="p">,</span> <span class="n">sub</span><span class="p">)</span> -<a name="cl-106"></a> <span class="n">text</span> <span class="o">+=</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> -<a name="cl-107"></a> -<a name="cl-108"></a> <span class="c"># add each package's module</span> -<a name="cl-109"></a> <span class="k">for</span> <span class="n">py_file</span> <span class="ow">in</span> <span class="n">py_files</span><span class="p">:</span> -<a name="cl-110"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">check_for_code</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">py_file</span><span class="p">)):</span> -<a name="cl-111"></a> <span class="c"># don't build the file if there's no code in it</span> -<a name="cl-112"></a> <span class="k">continue</span> -<a name="cl-113"></a> <span class="n">py_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">py_file</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> -<a name="cl-114"></a> <span class="n">py_path</span> <span class="o">=</span> <span class="s">'</span><span class="si">%s</span><span class="s">.</span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">subroot</span><span class="p">,</span> <span class="n">py_file</span><span class="p">)</span> -<a name="cl-115"></a> <span class="n">kind</span> <span class="o">=</span> <span class="s">"Module"</span> -<a name="cl-116"></a> <span class="k">if</span> <span class="n">py_file</span> <span class="o">==</span> <span class="s">'__init__'</span><span class="p">:</span> -<a name="cl-117"></a> <span class="n">kind</span> <span class="o">=</span> <span class="s">"Package"</span> -<a name="cl-118"></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">write_sub</span><span class="p">(</span><span class="n">kind</span> <span class="o">==</span> <span class="s">'Package'</span> <span class="ow">and</span> <span class="n">package</span> <span class="ow">or</span> <span class="n">py_file</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> -<a name="cl-119"></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">write_directive</span><span class="p">(</span><span class="n">kind</span> <span class="o">==</span> <span class="s">"Package"</span> <span class="ow">and</span> <span class="n">subroot</span> <span class="ow">or</span> <span class="n">py_path</span><span class="p">,</span> <span class="n">master_package</span><span class="p">)</span> -<a name="cl-120"></a> <span class="n">text</span> <span class="o">+=</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> -<a name="cl-121"></a> -<a name="cl-122"></a> <span class="c"># write the file</span> -<a name="cl-123"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">opts</span><span class="o">.</span><span class="n">dryrun</span><span class="p">:</span> -<a name="cl-124"></a> <span class="n">fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="s">'w'</span><span class="p">)</span> -<a name="cl-125"></a> <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> -<a name="cl-126"></a> <span class="n">fd</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> -<a name="cl-127"></a> -<a name="cl-128"></a><span class="k">def</span> <span class="nf">check_for_code</span><span class="p">(</span><span class="n">module</span><span class="p">):</span> -<a name="cl-129"></a> <span class="sd">"""</span> -<a name="cl-130"></a><span class="sd"> Check if there's at least one class or one function in the module.</span> -<a name="cl-131"></a><span class="sd"> """</span> -<a name="cl-132"></a> <span class="n">fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">module</span><span class="p">,</span> <span class="s">'r'</span><span class="p">)</span> -<a name="cl-133"></a> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">fd</span><span class="p">:</span> -<a name="cl-134"></a> <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'def '</span><span class="p">)</span> <span class="ow">or</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'class '</span><span class="p">):</span> -<a name="cl-135"></a> <span class="n">fd</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> -<a name="cl-136"></a> <span class="k">return</span> <span class="bp">True</span> -<a name="cl-137"></a> <span class="n">fd</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> -<a name="cl-138"></a> <span class="k">return</span> <span class="bp">False</span> -<a name="cl-139"></a> -<a name="cl-140"></a><span class="k">def</span> <span class="nf">recurse_tree</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">excludes</span><span class="p">,</span> <span class="n">opts</span><span class="p">):</span> -<a name="cl-141"></a> <span class="sd">"""</span> -<a name="cl-142"></a><span class="sd"> Look for every file in the directory tree and create the corresponding</span> -<a name="cl-143"></a><span class="sd"> ReST files.</span> -<a name="cl-144"></a><span class="sd"> """</span> -<a name="cl-145"></a> <span class="n">package_name</span> <span class="o">=</span> <span class="bp">None</span> -<a name="cl-146"></a> <span class="c"># check if the base directory is a package and get is name</span> -<a name="cl-147"></a> <span class="k">if</span> <span class="s">'__init__.py'</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> -<a name="cl-148"></a> <span class="n">package_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">path</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">sep</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> -<a name="cl-149"></a> -<a name="cl-150"></a> <span class="n">toc</span> <span class="o">=</span> <span class="p">[]</span> -<a name="cl-151"></a> <span class="n">excludes</span> <span class="o">=</span> <span class="n">format_excludes</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">excludes</span><span class="p">)</span> -<a name="cl-152"></a> <span class="n">tree</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span> -<a name="cl-153"></a> <span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">subs</span><span class="p">,</span> <span class="n">files</span> <span class="ow">in</span> <span class="n">tree</span><span class="p">:</span> -<a name="cl-154"></a> <span class="c"># keep only the Python script files</span> -<a name="cl-155"></a> <span class="n">py_files</span> <span class="o">=</span> <span class="n">check_py_file</span><span class="p">(</span><span class="n">files</span><span class="p">)</span> -<a name="cl-156"></a> <span class="c"># remove hidden ('.') and private ('_') directories</span> -<a name="cl-157"></a> <span class="n">subs</span> <span class="o">=</span> <span class="p">[</span><span class="n">sub</span> <span class="k">for</span> <span class="n">sub</span> <span class="ow">in</span> <span class="n">subs</span> <span class="k">if</span> <span class="n">sub</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s">'.'</span><span class="p">,</span> <span class="s">'_'</span><span class="p">]]</span> -<a name="cl-158"></a> <span class="c"># check if there's valid files to process</span> -<a name="cl-159"></a> <span class="c"># TODO: could add check for windows hidden files</span> -<a name="cl-160"></a> <span class="k">if</span> <span class="s">"/."</span> <span class="ow">in</span> <span class="n">root</span> <span class="ow">or</span> <span class="s">"/_"</span> <span class="ow">in</span> <span class="n">root</span> \ -<a name="cl-161"></a> <span class="ow">or</span> <span class="ow">not</span> <span class="n">py_files</span> \ -<a name="cl-162"></a> <span class="ow">or</span> <span class="n">check_excludes</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">excludes</span><span class="p">):</span> -<a name="cl-163"></a> <span class="k">continue</span> -<a name="cl-164"></a> <span class="n">subroot</span> <span class="o">=</span> <span class="n">root</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">path</span><span class="p">):]</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">sep</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">sep</span><span class="p">,</span> <span class="s">'.'</span><span class="p">)</span> -<a name="cl-165"></a> <span class="k">if</span> <span class="n">root</span> <span class="o">==</span> <span class="n">path</span><span class="p">:</span> -<a name="cl-166"></a> <span class="c"># we are at the root level so we create only modules</span> -<a name="cl-167"></a> <span class="k">for</span> <span class="n">py_file</span> <span class="ow">in</span> <span class="n">py_files</span><span class="p">:</span> -<a name="cl-168"></a> <span class="n">module</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">py_file</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> -<a name="cl-169"></a> <span class="c"># add the module if it contains code</span> -<a name="cl-170"></a> <span class="k">if</span> <span class="n">check_for_code</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s">'</span><span class="si">%s</span><span class="s">.py'</span> <span class="o">%</span> <span class="n">module</span><span class="p">)):</span> -<a name="cl-171"></a> <span class="n">create_module_file</span><span class="p">(</span><span class="n">package_name</span><span class="p">,</span> <span class="n">module</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span> -<a name="cl-172"></a> <span class="n">toc</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">module</span><span class="p">)</span> -<a name="cl-173"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">subs</span> <span class="ow">and</span> <span class="s">"__init__.py"</span> <span class="ow">in</span> <span class="n">py_files</span><span class="p">:</span> -<a name="cl-174"></a> <span class="c"># we are in a package without sub package</span> -<a name="cl-175"></a> <span class="c"># check if there's only an __init__.py file</span> -<a name="cl-176"></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">py_files</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -<a name="cl-177"></a> <span class="c"># check if there's code in the __init__.py file</span> -<a name="cl-178"></a> <span class="k">if</span> <span class="n">check_for_code</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">'__init__.py'</span><span class="p">)):</span> -<a name="cl-179"></a> <span class="n">create_package_file</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">package_name</span><span class="p">,</span> <span class="n">subroot</span><span class="p">,</span> <span class="n">py_files</span><span class="p">,</span> <span class="n">opts</span><span class="o">=</span><span class="n">opts</span><span class="p">)</span> -<a name="cl-180"></a> <span class="n">toc</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">subroot</span><span class="p">)</span> -<a name="cl-181"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-182"></a> <span class="n">create_package_file</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">package_name</span><span class="p">,</span> <span class="n">subroot</span><span class="p">,</span> <span class="n">py_files</span><span class="p">,</span> <span class="n">opts</span><span class="o">=</span><span class="n">opts</span><span class="p">)</span> -<a name="cl-183"></a> <span class="n">toc</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">subroot</span><span class="p">)</span> -<a name="cl-184"></a> <span class="k">elif</span> <span class="s">"__init__.py"</span> <span class="ow">in</span> <span class="n">py_files</span><span class="p">:</span> -<a name="cl-185"></a> <span class="c"># we are in package with subpackage(s)</span> -<a name="cl-186"></a> <span class="n">create_package_file</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">package_name</span><span class="p">,</span> <span class="n">subroot</span><span class="p">,</span> <span class="n">py_files</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">subs</span><span class="p">)</span> -<a name="cl-187"></a> <span class="n">toc</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">subroot</span><span class="p">)</span> -<a name="cl-188"></a> -<a name="cl-189"></a> <span class="c"># create the module's index</span> -<a name="cl-190"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">opts</span><span class="o">.</span><span class="n">notoc</span><span class="p">:</span> -<a name="cl-191"></a> <span class="n">modules_toc</span><span class="p">(</span><span class="n">toc</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span> -<a name="cl-192"></a> -<a name="cl-193"></a><span class="k">def</span> <span class="nf">modules_toc</span><span class="p">(</span><span class="n">modules</span><span class="p">,</span> <span class="n">opts</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s">'modules'</span><span class="p">):</span> -<a name="cl-194"></a> <span class="sd">"""</span> -<a name="cl-195"></a><span class="sd"> Create the module's index.</span> -<a name="cl-196"></a><span class="sd"> """</span> -<a name="cl-197"></a> <span class="n">fname</span> <span class="o">=</span> <span class="n">create_file_name</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span> -<a name="cl-198"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">opts</span><span class="o">.</span><span class="n">force</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">fname</span><span class="p">):</span> -<a name="cl-199"></a> <span class="k">print</span> <span class="s">"File </span><span class="si">%s</span><span class="s"> already exists."</span> <span class="o">%</span> <span class="n">name</span> -<a name="cl-200"></a> <span class="k">return</span> -<a name="cl-201"></a> -<a name="cl-202"></a> <span class="k">print</span> <span class="s">"Creating module's index modules.txt."</span> -<a name="cl-203"></a> <span class="n">text</span> <span class="o">=</span> <span class="n">write_heading</span><span class="p">(</span><span class="n">opts</span><span class="o">.</span><span class="n">header</span><span class="p">,</span> <span class="s">'Modules'</span><span class="p">)</span> -<a name="cl-204"></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">title_line</span><span class="p">(</span><span class="s">'Modules:'</span><span class="p">,</span> <span class="s">'-'</span><span class="p">)</span> -<a name="cl-205"></a> <span class="n">text</span> <span class="o">+=</span> <span class="s">'.. toctree::</span><span class="se">\n</span><span class="s">'</span> -<a name="cl-206"></a> <span class="n">text</span> <span class="o">+=</span> <span class="s">' :maxdepth: </span><span class="si">%s</span><span class="se">\n\n</span><span class="s">'</span> <span class="o">%</span> <span class="n">opts</span><span class="o">.</span><span class="n">maxdepth</span> -<a name="cl-207"></a> -<a name="cl-208"></a> <span class="n">modules</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span> -<a name="cl-209"></a> <span class="n">prev_module</span> <span class="o">=</span> <span class="s">''</span> -<a name="cl-210"></a> <span class="k">for</span> <span class="n">module</span> <span class="ow">in</span> <span class="n">modules</span><span class="p">:</span> -<a name="cl-211"></a> <span class="c"># look if the module is a subpackage and, if yes, ignore it</span> -<a name="cl-212"></a> <span class="k">if</span> <span class="n">module</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">prev_module</span> <span class="o">+</span> <span class="s">'.'</span><span class="p">):</span> -<a name="cl-213"></a> <span class="k">continue</span> -<a name="cl-214"></a> <span class="n">prev_module</span> <span class="o">=</span> <span class="n">module</span> -<a name="cl-215"></a> <span class="n">text</span> <span class="o">+=</span> <span class="s">' </span><span class="si">%s</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="n">module</span> -<a name="cl-216"></a> -<a name="cl-217"></a> <span class="c"># write the file</span> -<a name="cl-218"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">opts</span><span class="o">.</span><span class="n">dryrun</span><span class="p">:</span> -<a name="cl-219"></a> <span class="n">fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">,</span> <span class="s">'w'</span><span class="p">)</span> -<a name="cl-220"></a> <span class="n">fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> -<a name="cl-221"></a> <span class="n">fd</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> -<a name="cl-222"></a> -<a name="cl-223"></a><span class="k">def</span> <span class="nf">format_excludes</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">excludes</span><span class="p">):</span> -<a name="cl-224"></a> <span class="sd">"""</span> -<a name="cl-225"></a><span class="sd"> Format the excluded directory list.</span> -<a name="cl-226"></a><span class="sd"> (verify that the path is not from the root of the volume or the root of the</span> -<a name="cl-227"></a><span class="sd"> package)</span> -<a name="cl-228"></a><span class="sd"> """</span> -<a name="cl-229"></a> <span class="n">f_excludes</span> <span class="o">=</span> <span class="p">[]</span> -<a name="cl-230"></a> <span class="k">for</span> <span class="n">exclude</span> <span class="ow">in</span> <span class="n">excludes</span><span class="p">:</span> -<a name="cl-231"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isabs</span><span class="p">(</span><span class="n">exclude</span><span class="p">)</span> <span class="ow">and</span> <span class="n">exclude</span><span class="p">[:</span><span class="nb">len</span><span class="p">(</span><span class="n">path</span><span class="p">)]</span> <span class="o">!=</span> <span class="n">path</span><span class="p">:</span> -<a name="cl-232"></a> <span class="n">exclude</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">exclude</span><span class="p">)</span> -<a name="cl-233"></a> <span class="c"># remove trailing slash</span> -<a name="cl-234"></a> <span class="n">f_excludes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">exclude</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">sep</span><span class="p">))</span> -<a name="cl-235"></a> <span class="k">return</span> <span class="n">f_excludes</span> -<a name="cl-236"></a> -<a name="cl-237"></a><span class="k">def</span> <span class="nf">check_excludes</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">excludes</span><span class="p">):</span> -<a name="cl-238"></a> <span class="sd">"""</span> -<a name="cl-239"></a><span class="sd"> Check if the directory is in the exclude list.</span> -<a name="cl-240"></a><span class="sd"> """</span> -<a name="cl-241"></a> <span class="k">for</span> <span class="n">exclude</span> <span class="ow">in</span> <span class="n">excludes</span><span class="p">:</span> -<a name="cl-242"></a> <span class="k">if</span> <span class="n">root</span><span class="p">[:</span><span class="nb">len</span><span class="p">(</span><span class="n">exclude</span><span class="p">)]</span> <span class="o">==</span> <span class="n">exclude</span><span class="p">:</span> -<a name="cl-243"></a> <span class="k">return</span> <span class="bp">True</span> -<a name="cl-244"></a> <span class="k">return</span> <span class="bp">False</span> -<a name="cl-245"></a> -<a name="cl-246"></a><span class="k">def</span> <span class="nf">check_py_file</span><span class="p">(</span><span class="n">files</span><span class="p">):</span> -<a name="cl-247"></a> <span class="sd">"""</span> -<a name="cl-248"></a><span class="sd"> Return a list with only the python scripts (remove all other files). </span> -<a name="cl-249"></a><span class="sd"> """</span> -<a name="cl-250"></a> <span class="n">py_files</span> <span class="o">=</span> <span class="p">[</span><span class="n">fich</span> <span class="k">for</span> <span class="n">fich</span> <span class="ow">in</span> <span class="n">files</span> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">fich</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s">'.py'</span><span class="p">]</span> -<a name="cl-251"></a> <span class="k">return</span> <span class="n">py_files</span> -<a name="cl-252"></a> -<a name="cl-253"></a> -<a name="cl-254"></a><span class="k">def</span> <span class="nf">main</span><span class="p">():</span> -<a name="cl-255"></a> <span class="sd">"""</span> -<a name="cl-256"></a><span class="sd"> Parse and check the command line arguments</span> -<a name="cl-257"></a><span class="sd"> """</span> -<a name="cl-258"></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">optparse</span><span class="o">.</span><span class="n">OptionParser</span><span class="p">(</span><span class="n">usage</span><span class="o">=</span><span class="s">"""usage: %prog [options] <package path> [exclude paths, ...]</span> -<a name="cl-259"></a><span class="s"> </span> -<a name="cl-260"></a><span class="s">Note: By default this script will not overwrite already created files."""</span><span class="p">)</span> -<a name="cl-261"></a> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">"-n"</span><span class="p">,</span> <span class="s">"--doc-header"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"header"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"Documentation Header (default=Project)"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s">"Project"</span><span class="p">)</span> -<a name="cl-262"></a> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">"-d"</span><span class="p">,</span> <span class="s">"--dest-dir"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"destdir"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"Output destination directory"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s">""</span><span class="p">)</span> -<a name="cl-263"></a> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">"-s"</span><span class="p">,</span> <span class="s">"--suffix"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"suffix"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"module suffix (default=txt)"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s">"txt"</span><span class="p">)</span> -<a name="cl-264"></a> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">"-m"</span><span class="p">,</span> <span class="s">"--maxdepth"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"maxdepth"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"Maximum depth of submodules to show in the TOC (default=4)"</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="s">"int"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span> -<a name="cl-265"></a> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">"-r"</span><span class="p">,</span> <span class="s">"--dry-run"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store_true"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"dryrun"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"Run the script without creating the files"</span><span class="p">)</span> -<a name="cl-266"></a> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">"-f"</span><span class="p">,</span> <span class="s">"--force"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store_true"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"force"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"Overwrite all the files"</span><span class="p">)</span> -<a name="cl-267"></a> <span class="n">parser</span><span class="o">.</span><span class="n">add_option</span><span class="p">(</span><span class="s">"-t"</span><span class="p">,</span> <span class="s">"--no-toc"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"store_true"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">"notoc"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s">"Don't create the table of content file"</span><span class="p">)</span> -<a name="cl-268"></a> <span class="p">(</span><span class="n">opts</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()</span> -<a name="cl-269"></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span> -<a name="cl-270"></a> <span class="n">parser</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">"package path is required."</span><span class="p">)</span> -<a name="cl-271"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-272"></a> <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span> -<a name="cl-273"></a> <span class="c"># check if the output destination is a valid directory</span> -<a name="cl-274"></a> <span class="k">if</span> <span class="n">opts</span><span class="o">.</span><span class="n">destdir</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">opts</span><span class="o">.</span><span class="n">destdir</span><span class="p">):</span> -<a name="cl-275"></a> <span class="c"># if there's some exclude arguments, build the list of excludes</span> -<a name="cl-276"></a> <span class="n">excludes</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> -<a name="cl-277"></a> <span class="n">recurse_tree</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">excludes</span><span class="p">,</span> <span class="n">opts</span><span class="p">)</span> -<a name="cl-278"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-279"></a> <span class="k">print</span> <span class="s">'</span><span class="si">%s</span><span class="s"> is not a valid output destination directory.'</span> <span class="o">%</span> <span class="n">opts</span><span class="o">.</span><span class="n">destdir</span> -<a name="cl-280"></a> <span class="k">else</span><span class="p">:</span> -<a name="cl-281"></a> <span class="k">print</span> <span class="s">'</span><span class="si">%s</span><span class="s"> is not a valid directory.'</span> <span class="o">%</span> <span class="n">args</span> -<a name="cl-282"></a> -<a name="cl-283"></a> -<a name="cl-284"></a> -<a name="cl-285"></a> -<a name="cl-286"></a><span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span> -<a name="cl-287"></a> <span class="n">main</span><span class="p">()</span> -<a name="cl-288"></a> -</pre></div> -</td></tr></table> - - -</div> - - - - <div class="cb"></div> - </div> - <div class="cb footer-placeholder"></div> - </div> - <div id="footer-wrapper"> - <div id="footer"> - <a href="/site/terms/">TOS</a> | <a href="/site/privacy/">Privacy Policy</a> | <a href="http://blog.bitbucket.org/">Blog</a> | <a href="http://bitbucket.org/jespern/bitbucket/issues/new/">Report Bug</a> | <a href="http://groups.google.com/group/bitbucket-users">Discuss</a> | <a href="http://avantlumiere.com/">© 2008-2010</a> - | We run <small><b> - <a href="http://www.djangoproject.com/">Django 1.2.1</a> / - <a href="http://bitbucket.org/jespern/django-piston/">Piston 0.2.3rc1</a> / - <a href="http://www.selenic.com/mercurial/">Hg 1.3.1</a> / - <a href="http://www.python.org">Python 2.5.2</a> / - r3049| fe02 - </b></small> - </div> - </div> - - <script type="text/javascript"> - var _gaq = _gaq || []; - _gaq.push(['_setAccount', 'UA-2456069-3'], ['_trackPageview']); - - var _gaq = _gaq || []; - _gaq.push(['atl._setAccount', 'UA-6032469-33'], ['atl._trackPageview']); - (function() { - var ga = document.createElement('script'); - ga.src = ('https:' == document.location.protocol ? 'https://ssl' : - 'http://www') + '.google-analytics.com/ga.js'; - ga.setAttribute('async', 'true'); - document.documentElement.firstChild.appendChild(ga); - })(); - </script> - -</body> -</html> +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Miville +# Copyright (C) 2008 Société des arts technologiques (SAT) +# http://www.sat.qc.ca +# All rights reserved. +# +# This file is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# Miville is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Miville. If not, see <http://www.gnu.org/licenses/>. + +""" +This script parse a directory tree looking for python modules and packages and +create ReST files appropriately to create code documentation with Sphinx. +It also create a modules index. +""" + +import os +import optparse + + +# automodule options +OPTIONS = ['members', + 'undoc-members', +# 'inherited-members', # disable because there's a bug in sphinx + 'show-inheritance'] + + +def create_file_name(base, opts): + """Create file name from base name, path and suffix""" + return os.path.join(opts.destdir, "%s.%s" % (base, opts.suffix)) + +def write_automodule_directive(module): + """Create the automodule directive and add the options""" + directive = '.. automodule:: %s\n' % module + for option in OPTIONS: + directive += ' :%s:\n' % option + directive += '\n' + return directive + +def write_heading(module, kind='Module'): + """Create the page heading.""" + heading = '.. _%s:\n' % module + heading += '\n' + heading += title_line(module, '=') + return heading + +def write_sub(module, kind='Module'): + """Create the module subtitle""" + sub = title_line('The :mod:`%s` %s' % (module, kind), '-') + return sub + +def title_line(title, char): + """ Underline the title with the character pass, with the right length.""" + return ':mod:`%s`\n%s\n\n' % (title, len(title) * char) + +def create_module_content(module): + """Build the text of the module file.""" + text = write_heading(module) + #text += write_sub(module) + text += write_automodule_directive(module) + return text + +def is_python_package(path): + """returns True if directory is Python package + - that is - contains the __index__.py file + returns False otherwise + """ + return os.path.isfile(os.path.join(path, '__init__.py')) + +def create_package_content(package, py_files, sub_packages): + """Build the text of the file""" + + text = write_heading(package, 'Package') + text += write_automodule_directive(package) + + #if has py_files or sub_packages + # output Package summary: + # has #modules, #sub-packages, #members + + #create links to sub-module files + if py_files: + text += '.. _modules::\n' + text += '\n' + text += title_line('Modules', '-') + text += '\n' + for py_file in py_files: + if py_file == '__init__.py': + #continue, because this file is being created for + #__init__.py of the current module + continue + py_file = os.path.splitext(py_file)[0] + text += '* :ref:`%s.%s`\n' % (package, py_file) + text += '\n' + + #create links to sub-packages + if sub_packages: + text += '.. _packages::\n' + text += '\n' + text += title_line('Subpackages', '-') + text += '\n' + for sub in sub_packages: + #todo - add description here + text += '* :ref:`%s.%s`\n' % (package, sub) + return text + #build toctree for the package page + #text += '.. toctree::\n\n' + #for sub in subs: + # text += ' %s.%s\n' % (package, sub) + +def write_file(module_name, text_content, opts): + """Saves file for the module uses text_content for content + and information within options to determine where to save + + respects options "dry run" and "force" + """ + file_path = create_file_name(module_name, opts) + if not opts.force and os.path.isfile(file_path): + print 'File %s already exists.' % file_path + else: + print 'Writing file %s' % file_path + # write the file + if not opts.dryrun: + fd = open(file_path, 'w') + fd.write(text_content) + fd.close() + + +def check_for_code(module): + """ + Check if there's at least one class or one function in the module. + """ + fd = open(module, 'r') + for line in fd: + if line.startswith('def ') or line.startswith('class '): + fd.close() + return True + fd.close() + return False + +def select_public_names(name_list): + """goes through the list and discards names + that match pattern for hidden and private directory and file names + returns the list of those items that pass the "publicity" test + """ + public_names = [] + for name in name_list: + if name.startswith('.') or name.startswith('_'): + continue + else: + public_names.append(name) + return public_names + +def select_python_packages(package_path, sub_directory_names): + """returns list of subdimodule_name directories (only basenames) of package_path + which are themselves python packages + """ + python_packages = [] + for sub_name in sub_directory_names: + sub_path = os.path.join(package_path, sub_name) + if is_python_package(sub_path): + python_packages.append(sub_name) + return python_packages + +def recurse_tree(path, excludes, opts): + """ + Look for every file in the directory tree and create the corresponding + ReST files. + """ + print path + base_package_name = None + # check if the base directory is a package and get is name + if '__init__.py' in os.listdir(path): + base_package_name = os.path.basename(path) + + toc = [] + excludes = format_excludes(path, excludes) + tree = os.walk(path, False) + for directory, subs, files in tree: + + py_files = select_py_files(files) + if len(py_files) < 1: + continue + + if is_directory_excluded(directory, excludes): + continue + + # TODO: could add check for windows hidden files + subs = select_public_names(subs) + subs = select_python_packages(directory, subs) + + #calculate dotted python package name - like proj.pack.subpackage + package_name = directory.replace(os.path.sep, '.') + + if is_python_package(directory): + text = create_package_content(package_name, py_files, subs) + write_file(package_name, text, opts) + toc.append(os.path.basename(directory)) + + for py_file in py_files: + if py_file == '__init__.py': + continue + module_name = os.path.splitext(py_file)[0] + module_package_name = package_name + '.' + module_name + text = create_module_content(module_package_name) + write_file(module_package_name, text, opts) + toc.append(module_package_name) + + # create the module's index + if not opts.notoc: + modules_toc(toc, opts) + +def modules_toc(modules, opts, name='modules'): + """ + Create the module's index. + """ + fname = create_file_name(name, opts) + if not opts.force and os.path.exists(fname): + print "File %s already exists." % name + return + + print "Creating module's index modules.txt." + text = write_heading(opts.header, 'Modules') + text += title_line('Modules:', '-') + text += '.. toctree::\n' + text += ' :maxdepth: %s\n\n' % opts.maxdepth + + modules.sort() + prev_module = '' + for module in modules: + # look if the module is a subpackage and, if yes, ignore it + if module.startswith(prev_module + '.'): + continue + prev_module = module + text += ' %s\n' % module + + # write the file + if not opts.dryrun: + fd = open(fname, 'w') + fd.write(text) + fd.close() + +def format_excludes(path, excludes): + """ + Format the excluded directory list. + (verify that the path is not from the root of the volume or the root of the + package) + """ + f_excludes = [] + for exclude in excludes: + #not sure about the "not startswith" part + if not os.path.isabs(exclude) and not exclude.startswith(path): + exclude = os.path.join(path, exclude) + # remove trailing slash + f_excludes.append(exclude.rstrip(os.path.sep)) + return f_excludes + +def is_directory_excluded(directory, excludes): + """Returns true if directory is in the exclude list + otherwise returns false + """ + for exclude in excludes: + if directory.startswith(exclude): + return True + return False + +def select_py_files(files): + """ + Return a list with only the python scripts (remove all other files). + """ + py_files = [fich for fich in files if os.path.splitext(fich)[1] == '.py'] + return py_files + + +def main(): + """ + Parse and check the command line arguments + """ + parser = optparse.OptionParser(usage="""usage: %prog [options] <package path> [exclude paths, ...] + +Note: By default this script will not overwrite already created files.""") + parser.add_option("-n", "--doc-header", action="store", dest="header", help="Documentation Header (default=Project)", default="Project") + parser.add_option("-d", "--dest-dir", action="store", dest="destdir", help="Output destination directory", default="") + parser.add_option("-s", "--suffix", action="store", dest="suffix", help="module suffix (default=txt)", default="txt") + parser.add_option("-m", "--maxdepth", action="store", dest="maxdepth", help="Maximum depth of submodules to show in the TOC (default=4)", type="int", default=4) + parser.add_option("-r", "--dry-run", action="store_true", dest="dryrun", help="Run the script without creating the files") + parser.add_option("-f", "--force", action="store_true", dest="force", help="Overwrite all the files") + parser.add_option("-t", "--no-toc", action="store_true", dest="notoc", help="Don't create the table of content file") + (opts, args) = parser.parse_args() + if len(args) < 1: + parser.error("package path is required.") + else: + if os.path.isdir(args[0]): + # check if the output destination is a valid directory + if opts.destdir and os.path.isdir(opts.destdir): + # if there's some exclude arguments, build the list of excludes + excludes = args[1:] + recurse_tree(args[0], excludes, opts) + else: + print '%s is not a valid output destination directory.' % opts.destdir + else: + print '%s is not a valid directory.' % args + + + + +if __name__ == '__main__': + main() + diff --git a/askbot/doc/source/conf.py b/askbot/doc/source/conf.py index da743b4f..0062228b 100644 --- a/askbot/doc/source/conf.py +++ b/askbot/doc/source/conf.py @@ -46,7 +46,7 @@ print sys.path # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.viewcode'] +extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage',]# 'sphinx.ext.viewcode'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/askbot/doc/source/devel/__init__.rst b/askbot/doc/source/devel/__init__.rst deleted file mode 100644 index 3eae5545..00000000 --- a/askbot/doc/source/devel/__init__.rst +++ /dev/null @@ -1 +0,0 @@ -.. automodule:: askbot diff --git a/askbot/doc/source/devel/admin.rst b/askbot/doc/source/devel/admin.rst deleted file mode 100644 index 0a1337d3..00000000 --- a/askbot/doc/source/devel/admin.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. automodule:: askbot.admin - :members: - :undoc-members: diff --git a/askbot/doc/source/devel/askbot.admin.rst b/askbot/doc/source/devel/askbot.admin.rst new file mode 100644 index 00000000..335ec444 --- /dev/null +++ b/askbot/doc/source/devel/askbot.admin.rst @@ -0,0 +1,10 @@ +.. _askbot.admin: + +:mod:`askbot.admin` +============ + +.. automodule:: askbot.admin + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.auth.rst b/askbot/doc/source/devel/askbot.auth.rst new file mode 100644 index 00000000..90137cb3 --- /dev/null +++ b/askbot/doc/source/devel/askbot.auth.rst @@ -0,0 +1,10 @@ +.. _askbot.auth: + +:mod:`askbot.auth` +=========== + +.. automodule:: askbot.auth + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.bin.generate_modules.rst b/askbot/doc/source/devel/askbot.bin.generate_modules.rst new file mode 100644 index 00000000..ff5c8c91 --- /dev/null +++ b/askbot/doc/source/devel/askbot.bin.generate_modules.rst @@ -0,0 +1,10 @@ +.. _askbot.bin.generate_modules: + +:mod:`askbot.bin.generate_modules` +=========================== + +.. automodule:: askbot.bin.generate_modules + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.bin.rst b/askbot/doc/source/devel/askbot.bin.rst new file mode 100644 index 00000000..84d99ee7 --- /dev/null +++ b/askbot/doc/source/devel/askbot.bin.rst @@ -0,0 +1,19 @@ +.. _askbot.bin: + +:mod:`askbot.bin` +========== + +.. automodule:: askbot.bin + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.bin.generate_modules` +* :ref:`askbot.bin.show_profile_stats` + diff --git a/askbot/doc/source/devel/askbot.bin.show_profile_stats.rst b/askbot/doc/source/devel/askbot.bin.show_profile_stats.rst new file mode 100644 index 00000000..53ba36bf --- /dev/null +++ b/askbot/doc/source/devel/askbot.bin.show_profile_stats.rst @@ -0,0 +1,10 @@ +.. _askbot.bin.show_profile_stats: + +:mod:`askbot.bin.show_profile_stats` +============================= + +.. automodule:: askbot.bin.show_profile_stats + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.email.rst b/askbot/doc/source/devel/askbot.conf.email.rst new file mode 100644 index 00000000..01dd0693 --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.email.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.email: + +:mod:`askbot.conf.email` +================= + +.. automodule:: askbot.conf.email + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.external_keys.rst b/askbot/doc/source/devel/askbot.conf.external_keys.rst new file mode 100644 index 00000000..8c0d5861 --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.external_keys.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.external_keys: + +:mod:`askbot.conf.external_keys` +========================= + +.. automodule:: askbot.conf.external_keys + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.flatpages.rst b/askbot/doc/source/devel/askbot.conf.flatpages.rst new file mode 100644 index 00000000..a33b5f64 --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.flatpages.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.flatpages: + +:mod:`askbot.conf.flatpages` +===================== + +.. automodule:: askbot.conf.flatpages + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.forum_data_rules.rst b/askbot/doc/source/devel/askbot.conf.forum_data_rules.rst new file mode 100644 index 00000000..f373c2a0 --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.forum_data_rules.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.forum_data_rules: + +:mod:`askbot.conf.forum_data_rules` +============================ + +.. automodule:: askbot.conf.forum_data_rules + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.minimum_reputation.rst b/askbot/doc/source/devel/askbot.conf.minimum_reputation.rst new file mode 100644 index 00000000..17a84e0f --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.minimum_reputation.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.minimum_reputation: + +:mod:`askbot.conf.minimum_reputation` +============================== + +.. automodule:: askbot.conf.minimum_reputation + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.reputation_changes.rst b/askbot/doc/source/devel/askbot.conf.reputation_changes.rst new file mode 100644 index 00000000..0d7879bf --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.reputation_changes.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.reputation_changes: + +:mod:`askbot.conf.reputation_changes` +============================== + +.. automodule:: askbot.conf.reputation_changes + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.rst b/askbot/doc/source/devel/askbot.conf.rst new file mode 100644 index 00000000..3aab757d --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.rst @@ -0,0 +1,29 @@ +.. _askbot.conf: + +:mod:`askbot.conf` +=========== + +.. automodule:: askbot.conf + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.conf.email` +* :ref:`askbot.conf.external_keys` +* :ref:`askbot.conf.flatpages` +* :ref:`askbot.conf.forum_data_rules` +* :ref:`askbot.conf.minimum_reputation` +* :ref:`askbot.conf.reputation_changes` +* :ref:`askbot.conf.settings_wrapper` +* :ref:`askbot.conf.site_settings` +* :ref:`askbot.conf.skin_counter_settings` +* :ref:`askbot.conf.skin_general_settings` +* :ref:`askbot.conf.user_settings` +* :ref:`askbot.conf.vote_rules` + diff --git a/askbot/doc/source/devel/askbot.conf.settings_wrapper.rst b/askbot/doc/source/devel/askbot.conf.settings_wrapper.rst new file mode 100644 index 00000000..af95d15c --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.settings_wrapper.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.settings_wrapper: + +:mod:`askbot.conf.settings_wrapper` +============================ + +.. automodule:: askbot.conf.settings_wrapper + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.site_settings.rst b/askbot/doc/source/devel/askbot.conf.site_settings.rst new file mode 100644 index 00000000..0cff38e4 --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.site_settings.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.site_settings: + +:mod:`askbot.conf.site_settings` +========================= + +.. automodule:: askbot.conf.site_settings + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.skin_counter_settings.rst b/askbot/doc/source/devel/askbot.conf.skin_counter_settings.rst new file mode 100644 index 00000000..843a4e5b --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.skin_counter_settings.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.skin_counter_settings: + +:mod:`askbot.conf.skin_counter_settings` +================================= + +.. automodule:: askbot.conf.skin_counter_settings + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.skin_general_settings.rst b/askbot/doc/source/devel/askbot.conf.skin_general_settings.rst new file mode 100644 index 00000000..e6b7070f --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.skin_general_settings.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.skin_general_settings: + +:mod:`askbot.conf.skin_general_settings` +================================= + +.. automodule:: askbot.conf.skin_general_settings + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.user_settings.rst b/askbot/doc/source/devel/askbot.conf.user_settings.rst new file mode 100644 index 00000000..7a02b95e --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.user_settings.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.user_settings: + +:mod:`askbot.conf.user_settings` +========================= + +.. automodule:: askbot.conf.user_settings + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.conf.vote_rules.rst b/askbot/doc/source/devel/askbot.conf.vote_rules.rst new file mode 100644 index 00000000..613af098 --- /dev/null +++ b/askbot/doc/source/devel/askbot.conf.vote_rules.rst @@ -0,0 +1,10 @@ +.. _askbot.conf.vote_rules: + +:mod:`askbot.conf.vote_rules` +====================== + +.. automodule:: askbot.conf.vote_rules + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.const.message_keys.rst b/askbot/doc/source/devel/askbot.const.message_keys.rst new file mode 100644 index 00000000..29e9b8b1 --- /dev/null +++ b/askbot/doc/source/devel/askbot.const.message_keys.rst @@ -0,0 +1,10 @@ +.. _askbot.const.message_keys: + +:mod:`askbot.const.message_keys` +========================= + +.. automodule:: askbot.const.message_keys + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.const.rst b/askbot/doc/source/devel/askbot.const.rst new file mode 100644 index 00000000..c9e77558 --- /dev/null +++ b/askbot/doc/source/devel/askbot.const.rst @@ -0,0 +1,18 @@ +.. _askbot.const: + +:mod:`askbot.const` +============ + +.. automodule:: askbot.const + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.const.message_keys` + diff --git a/askbot/doc/source/devel/askbot.context.rst b/askbot/doc/source/devel/askbot.context.rst new file mode 100644 index 00000000..991e0775 --- /dev/null +++ b/askbot/doc/source/devel/askbot.context.rst @@ -0,0 +1,10 @@ +.. _askbot.context: + +:mod:`askbot.context` +============== + +.. automodule:: askbot.context + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.deployment.dialogs.rst b/askbot/doc/source/devel/askbot.deployment.dialogs.rst new file mode 100644 index 00000000..2389a475 --- /dev/null +++ b/askbot/doc/source/devel/askbot.deployment.dialogs.rst @@ -0,0 +1,10 @@ +.. _askbot.deployment.dialogs: + +:mod:`askbot.deployment.dialogs` +========================= + +.. automodule:: askbot.deployment.dialogs + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.deployment.messages.rst b/askbot/doc/source/devel/askbot.deployment.messages.rst new file mode 100644 index 00000000..b4133d86 --- /dev/null +++ b/askbot/doc/source/devel/askbot.deployment.messages.rst @@ -0,0 +1,10 @@ +.. _askbot.deployment.messages: + +:mod:`askbot.deployment.messages` +========================== + +.. automodule:: askbot.deployment.messages + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.deployment.path_utils.rst b/askbot/doc/source/devel/askbot.deployment.path_utils.rst new file mode 100644 index 00000000..d3fba5a3 --- /dev/null +++ b/askbot/doc/source/devel/askbot.deployment.path_utils.rst @@ -0,0 +1,10 @@ +.. _askbot.deployment.path_utils: + +:mod:`askbot.deployment.path_utils` +============================ + +.. automodule:: askbot.deployment.path_utils + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.deployment.rst b/askbot/doc/source/devel/askbot.deployment.rst new file mode 100644 index 00000000..d2b6fe92 --- /dev/null +++ b/askbot/doc/source/devel/askbot.deployment.rst @@ -0,0 +1,20 @@ +.. _askbot.deployment: + +:mod:`askbot.deployment` +================= + +.. automodule:: askbot.deployment + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.deployment.dialogs` +* :ref:`askbot.deployment.messages` +* :ref:`askbot.deployment.path_utils` + diff --git a/askbot/doc/source/devel/askbot.deps.grapefruit.rst b/askbot/doc/source/devel/askbot.deps.grapefruit.rst new file mode 100644 index 00000000..eaa3dbbe --- /dev/null +++ b/askbot/doc/source/devel/askbot.deps.grapefruit.rst @@ -0,0 +1,10 @@ +.. _askbot.deps.grapefruit: + +:mod:`askbot.deps.grapefruit` +====================== + +.. automodule:: askbot.deps.grapefruit + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.deps.rst b/askbot/doc/source/devel/askbot.deps.rst new file mode 100644 index 00000000..6c0df669 --- /dev/null +++ b/askbot/doc/source/devel/askbot.deps.rst @@ -0,0 +1,28 @@ +.. _askbot.deps: + +:mod:`askbot.deps` +=========== + +.. automodule:: askbot.deps + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.deps.grapefruit` + +.. _packages:: + +:mod:`Subpackages` +----------- + + +* :ref:`askbot.deps.django_authopenid` +* :ref:`askbot.deps.livesettings` +* :ref:`askbot.deps.openid` +* :ref:`askbot.deps.recaptcha_django` diff --git a/askbot/doc/source/devel/askbot.doc.source.conf.rst b/askbot/doc/source/devel/askbot.doc.source.conf.rst new file mode 100644 index 00000000..bf78752b --- /dev/null +++ b/askbot/doc/source/devel/askbot.doc.source.conf.rst @@ -0,0 +1,10 @@ +.. _askbot.doc.source.conf: + +:mod:`askbot.doc.source.conf` +====================== + +.. automodule:: askbot.doc.source.conf + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.feed.rst b/askbot/doc/source/devel/askbot.feed.rst new file mode 100644 index 00000000..96e944a1 --- /dev/null +++ b/askbot/doc/source/devel/askbot.feed.rst @@ -0,0 +1,10 @@ +.. _askbot.feed: + +:mod:`askbot.feed` +=========== + +.. automodule:: askbot.feed + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.forms.rst b/askbot/doc/source/devel/askbot.forms.rst new file mode 100644 index 00000000..20558ec4 --- /dev/null +++ b/askbot/doc/source/devel/askbot.forms.rst @@ -0,0 +1,10 @@ +.. _askbot.forms: + +:mod:`askbot.forms` +============ + +.. automodule:: askbot.forms + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.importers.rst b/askbot/doc/source/devel/askbot.importers.rst new file mode 100644 index 00000000..d1c20053 --- /dev/null +++ b/askbot/doc/source/devel/askbot.importers.rst @@ -0,0 +1,24 @@ +.. _askbot.importers: + +:mod:`askbot.importers` +================ + +.. automodule:: askbot.importers + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + + +.. _packages:: + +:mod:`Subpackages` +----------- + + +* :ref:`askbot.importers.stackexchange` diff --git a/askbot/doc/source/devel/askbot.importers.stackexchange.management.commands.load_stackexchange.rst b/askbot/doc/source/devel/askbot.importers.stackexchange.management.commands.load_stackexchange.rst new file mode 100644 index 00000000..56e2c198 --- /dev/null +++ b/askbot/doc/source/devel/askbot.importers.stackexchange.management.commands.load_stackexchange.rst @@ -0,0 +1,10 @@ +.. _askbot.importers.stackexchange.management.commands.load_stackexchange: + +:mod:`askbot.importers.stackexchange.management.commands.load_stackexchange` +===================================================================== + +.. automodule:: askbot.importers.stackexchange.management.commands.load_stackexchange + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.importers.stackexchange.management.commands.rst b/askbot/doc/source/devel/askbot.importers.stackexchange.management.commands.rst new file mode 100644 index 00000000..c7d5a0e4 --- /dev/null +++ b/askbot/doc/source/devel/askbot.importers.stackexchange.management.commands.rst @@ -0,0 +1,18 @@ +.. _askbot.importers.stackexchange.management.commands: + +:mod:`askbot.importers.stackexchange.management.commands` +================================================== + +.. automodule:: askbot.importers.stackexchange.management.commands + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.importers.stackexchange.management.commands.load_stackexchange` + diff --git a/askbot/doc/source/devel/askbot.importers.stackexchange.management.rst b/askbot/doc/source/devel/askbot.importers.stackexchange.management.rst new file mode 100644 index 00000000..d399d809 --- /dev/null +++ b/askbot/doc/source/devel/askbot.importers.stackexchange.management.rst @@ -0,0 +1,24 @@ +.. _askbot.importers.stackexchange.management: + +:mod:`askbot.importers.stackexchange.management` +========================================= + +.. automodule:: askbot.importers.stackexchange.management + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + + +.. _packages:: + +:mod:`Subpackages` +----------- + + +* :ref:`askbot.importers.stackexchange.management.commands` diff --git a/askbot/doc/source/devel/askbot.importers.stackexchange.models.rst b/askbot/doc/source/devel/askbot.importers.stackexchange.models.rst new file mode 100644 index 00000000..62a77703 --- /dev/null +++ b/askbot/doc/source/devel/askbot.importers.stackexchange.models.rst @@ -0,0 +1,10 @@ +.. _askbot.importers.stackexchange.models: + +:mod:`askbot.importers.stackexchange.models` +===================================== + +.. automodule:: askbot.importers.stackexchange.models + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.importers.stackexchange.parse_models.rst b/askbot/doc/source/devel/askbot.importers.stackexchange.parse_models.rst new file mode 100644 index 00000000..57ffe6c3 --- /dev/null +++ b/askbot/doc/source/devel/askbot.importers.stackexchange.parse_models.rst @@ -0,0 +1,10 @@ +.. _askbot.importers.stackexchange.parse_models: + +:mod:`askbot.importers.stackexchange.parse_models` +=========================================== + +.. automodule:: askbot.importers.stackexchange.parse_models + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.importers.stackexchange.rst b/askbot/doc/source/devel/askbot.importers.stackexchange.rst new file mode 100644 index 00000000..1a38a173 --- /dev/null +++ b/askbot/doc/source/devel/askbot.importers.stackexchange.rst @@ -0,0 +1,26 @@ +.. _askbot.importers.stackexchange: + +:mod:`askbot.importers.stackexchange` +============================== + +.. automodule:: askbot.importers.stackexchange + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.importers.stackexchange.models` +* :ref:`askbot.importers.stackexchange.parse_models` + +.. _packages:: + +:mod:`Subpackages` +----------- + + +* :ref:`askbot.importers.stackexchange.management` diff --git a/askbot/doc/source/devel/askbot.management.commands.add_admin.rst b/askbot/doc/source/devel/askbot.management.commands.add_admin.rst new file mode 100644 index 00000000..e4ea3cfe --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.add_admin.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.add_admin: + +:mod:`askbot.management.commands.add_admin` +==================================== + +.. automodule:: askbot.management.commands.add_admin + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.base_command.rst b/askbot/doc/source/devel/askbot.management.commands.base_command.rst new file mode 100644 index 00000000..85122b16 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.base_command.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.base_command: + +:mod:`askbot.management.commands.base_command` +======================================= + +.. automodule:: askbot.management.commands.base_command + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.clean_award_badges.rst b/askbot/doc/source/devel/askbot.management.commands.clean_award_badges.rst new file mode 100644 index 00000000..6cc9ad43 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.clean_award_badges.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.clean_award_badges: + +:mod:`askbot.management.commands.clean_award_badges` +============================================= + +.. automodule:: askbot.management.commands.clean_award_badges + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.message_to_everyone.rst b/askbot/doc/source/devel/askbot.management.commands.message_to_everyone.rst new file mode 100644 index 00000000..398f3550 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.message_to_everyone.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.message_to_everyone: + +:mod:`askbot.management.commands.message_to_everyone` +============================================== + +.. automodule:: askbot.management.commands.message_to_everyone + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.multi_award_badges.rst b/askbot/doc/source/devel/askbot.management.commands.multi_award_badges.rst new file mode 100644 index 00000000..510763f8 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.multi_award_badges.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.multi_award_badges: + +:mod:`askbot.management.commands.multi_award_badges` +============================================= + +.. automodule:: askbot.management.commands.multi_award_badges + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.once_award_badges.rst b/askbot/doc/source/devel/askbot.management.commands.once_award_badges.rst new file mode 100644 index 00000000..8f270dd6 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.once_award_badges.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.once_award_badges: + +:mod:`askbot.management.commands.once_award_badges` +============================================ + +.. automodule:: askbot.management.commands.once_award_badges + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.pg_base_command.rst b/askbot/doc/source/devel/askbot.management.commands.pg_base_command.rst new file mode 100644 index 00000000..76ec2827 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.pg_base_command.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.pg_base_command: + +:mod:`askbot.management.commands.pg_base_command` +========================================== + +.. automodule:: askbot.management.commands.pg_base_command + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.pg_clean_award_badges.rst b/askbot/doc/source/devel/askbot.management.commands.pg_clean_award_badges.rst new file mode 100644 index 00000000..cda44a1c --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.pg_clean_award_badges.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.pg_clean_award_badges: + +:mod:`askbot.management.commands.pg_clean_award_badges` +================================================ + +.. automodule:: askbot.management.commands.pg_clean_award_badges + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.pg_multi_award_badges.rst b/askbot/doc/source/devel/askbot.management.commands.pg_multi_award_badges.rst new file mode 100644 index 00000000..eba77abe --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.pg_multi_award_badges.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.pg_multi_award_badges: + +:mod:`askbot.management.commands.pg_multi_award_badges` +================================================ + +.. automodule:: askbot.management.commands.pg_multi_award_badges + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.pg_once_award_badges.rst b/askbot/doc/source/devel/askbot.management.commands.pg_once_award_badges.rst new file mode 100644 index 00000000..837b92c9 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.pg_once_award_badges.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.pg_once_award_badges: + +:mod:`askbot.management.commands.pg_once_award_badges` +=============================================== + +.. automodule:: askbot.management.commands.pg_once_award_badges + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.remove_admin.rst b/askbot/doc/source/devel/askbot.management.commands.remove_admin.rst new file mode 100644 index 00000000..aceef408 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.remove_admin.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.remove_admin: + +:mod:`askbot.management.commands.remove_admin` +======================================= + +.. automodule:: askbot.management.commands.remove_admin + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.rst b/askbot/doc/source/devel/askbot.management.commands.rst new file mode 100644 index 00000000..e8dbde06 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.rst @@ -0,0 +1,31 @@ +.. _askbot.management.commands: + +:mod:`askbot.management.commands` +========================== + +.. automodule:: askbot.management.commands + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.management.commands.base_command` +* :ref:`askbot.management.commands.clean_award_badges` +* :ref:`askbot.management.commands.message_to_everyone` +* :ref:`askbot.management.commands.multi_award_badges` +* :ref:`askbot.management.commands.once_award_badges` +* :ref:`askbot.management.commands.pg_base_command` +* :ref:`askbot.management.commands.pg_clean_award_badges` +* :ref:`askbot.management.commands.pg_multi_award_badges` +* :ref:`askbot.management.commands.pg_once_award_badges` +* :ref:`askbot.management.commands.sample_command` +* :ref:`askbot.management.commands.send_email_alerts` +* :ref:`askbot.management.commands.subscribe_everyone` +* :ref:`askbot.management.commands.add_admin` +* :ref:`askbot.management.commands.remove_admin` + diff --git a/askbot/doc/source/devel/askbot.management.commands.sample_command.rst b/askbot/doc/source/devel/askbot.management.commands.sample_command.rst new file mode 100644 index 00000000..87cae37f --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.sample_command.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.sample_command: + +:mod:`askbot.management.commands.sample_command` +========================================= + +.. automodule:: askbot.management.commands.sample_command + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.send_email_alerts.rst b/askbot/doc/source/devel/askbot.management.commands.send_email_alerts.rst new file mode 100644 index 00000000..03319f61 --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.send_email_alerts.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.send_email_alerts: + +:mod:`askbot.management.commands.send_email_alerts` +============================================ + +.. automodule:: askbot.management.commands.send_email_alerts + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.commands.subscribe_everyone.rst b/askbot/doc/source/devel/askbot.management.commands.subscribe_everyone.rst new file mode 100644 index 00000000..7527cb8e --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.commands.subscribe_everyone.rst @@ -0,0 +1,10 @@ +.. _askbot.management.commands.subscribe_everyone: + +:mod:`askbot.management.commands.subscribe_everyone` +============================================= + +.. automodule:: askbot.management.commands.subscribe_everyone + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.management.rst b/askbot/doc/source/devel/askbot.management.rst new file mode 100644 index 00000000..0bc0b21b --- /dev/null +++ b/askbot/doc/source/devel/askbot.management.rst @@ -0,0 +1,24 @@ +.. _askbot.management: + +:mod:`askbot.management` +================= + +.. automodule:: askbot.management + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + + +.. _packages:: + +:mod:`Subpackages` +----------- + + +* :ref:`askbot.management.commands` diff --git a/askbot/doc/source/devel/askbot.middleware.anon_user.rst b/askbot/doc/source/devel/askbot.middleware.anon_user.rst new file mode 100644 index 00000000..5dc10faf --- /dev/null +++ b/askbot/doc/source/devel/askbot.middleware.anon_user.rst @@ -0,0 +1,10 @@ +.. _askbot.middleware.anon_user: + +:mod:`askbot.middleware.anon_user` +=========================== + +.. automodule:: askbot.middleware.anon_user + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.middleware.cancel.rst b/askbot/doc/source/devel/askbot.middleware.cancel.rst new file mode 100644 index 00000000..f00cab02 --- /dev/null +++ b/askbot/doc/source/devel/askbot.middleware.cancel.rst @@ -0,0 +1,10 @@ +.. _askbot.middleware.cancel: + +:mod:`askbot.middleware.cancel` +======================== + +.. automodule:: askbot.middleware.cancel + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.middleware.pagesize.rst b/askbot/doc/source/devel/askbot.middleware.pagesize.rst new file mode 100644 index 00000000..36170298 --- /dev/null +++ b/askbot/doc/source/devel/askbot.middleware.pagesize.rst @@ -0,0 +1,10 @@ +.. _askbot.middleware.pagesize: + +:mod:`askbot.middleware.pagesize` +========================== + +.. automodule:: askbot.middleware.pagesize + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.middleware.rst b/askbot/doc/source/devel/askbot.middleware.rst new file mode 100644 index 00000000..ce1551fc --- /dev/null +++ b/askbot/doc/source/devel/askbot.middleware.rst @@ -0,0 +1,22 @@ +.. _askbot.middleware: + +:mod:`askbot.middleware` +================= + +.. automodule:: askbot.middleware + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.middleware.anon_user` +* :ref:`askbot.middleware.cancel` +* :ref:`askbot.middleware.pagesize` +* :ref:`askbot.middleware.spaceless` +* :ref:`askbot.middleware.view_log` + diff --git a/askbot/doc/source/devel/askbot.middleware.spaceless.rst b/askbot/doc/source/devel/askbot.middleware.spaceless.rst new file mode 100644 index 00000000..e75f217f --- /dev/null +++ b/askbot/doc/source/devel/askbot.middleware.spaceless.rst @@ -0,0 +1,10 @@ +.. _askbot.middleware.spaceless: + +:mod:`askbot.middleware.spaceless` +=========================== + +.. automodule:: askbot.middleware.spaceless + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.middleware.view_log.rst b/askbot/doc/source/devel/askbot.middleware.view_log.rst new file mode 100644 index 00000000..d0779fc0 --- /dev/null +++ b/askbot/doc/source/devel/askbot.middleware.view_log.rst @@ -0,0 +1,10 @@ +.. _askbot.middleware.view_log: + +:mod:`askbot.middleware.view_log` +========================== + +.. automodule:: askbot.middleware.view_log + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0001_initial.rst b/askbot/doc/source/devel/askbot.migrations.0001_initial.rst new file mode 100644 index 00000000..f0a8907d --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0001_initial.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0001_initial: + +:mod:`askbot.migrations.0001_initial` +============================== + +.. automodule:: askbot.migrations.0001_initial + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0002_auto__add_field_answer_text__chg_field_answer_html__add_field_question.rst b/askbot/doc/source/devel/askbot.migrations.0002_auto__add_field_answer_text__chg_field_answer_html__add_field_question.rst new file mode 100644 index 00000000..50cd7f22 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0002_auto__add_field_answer_text__chg_field_answer_html__add_field_question.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0002_auto__add_field_answer_text__chg_field_answer_html__add_field_question: + +:mod:`askbot.migrations.0002_auto__add_field_answer_text__chg_field_answer_html__add_field_question` +============================================================================================= + +.. automodule:: askbot.migrations.0002_auto__add_field_answer_text__chg_field_answer_html__add_field_question + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0003_copy_denorm_text_record_to_posts_for_fulltext_search.rst b/askbot/doc/source/devel/askbot.migrations.0003_copy_denorm_text_record_to_posts_for_fulltext_search.rst new file mode 100644 index 00000000..e5c50e94 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0003_copy_denorm_text_record_to_posts_for_fulltext_search.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0003_copy_denorm_text_record_to_posts_for_fulltext_search: + +:mod:`askbot.migrations.0003_copy_denorm_text_record_to_posts_for_fulltext_search` +=========================================================================== + +.. automodule:: askbot.migrations.0003_copy_denorm_text_record_to_posts_for_fulltext_search + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0004_install_full_text_indexes_for_mysql.rst b/askbot/doc/source/devel/askbot.migrations.0004_install_full_text_indexes_for_mysql.rst new file mode 100644 index 00000000..6a58f829 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0004_install_full_text_indexes_for_mysql.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0004_install_full_text_indexes_for_mysql: + +:mod:`askbot.migrations.0004_install_full_text_indexes_for_mysql` +========================================================== + +.. automodule:: askbot.migrations.0004_install_full_text_indexes_for_mysql + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0005_install_badges.rst b/askbot/doc/source/devel/askbot.migrations.0005_install_badges.rst new file mode 100644 index 00000000..763913a0 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0005_install_badges.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0005_install_badges: + +:mod:`askbot.migrations.0005_install_badges` +===================================== + +.. automodule:: askbot.migrations.0005_install_badges + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0006_add_subscription_setting_for_comments_and_mentions.rst b/askbot/doc/source/devel/askbot.migrations.0006_add_subscription_setting_for_comments_and_mentions.rst new file mode 100644 index 00000000..fc4528fc --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0006_add_subscription_setting_for_comments_and_mentions.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0006_add_subscription_setting_for_comments_and_mentions: + +:mod:`askbot.migrations.0006_add_subscription_setting_for_comments_and_mentions` +========================================================================= + +.. automodule:: askbot.migrations.0006_add_subscription_setting_for_comments_and_mentions + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0007_install_mentions_model.rst b/askbot/doc/source/devel/askbot.migrations.0007_install_mentions_model.rst new file mode 100644 index 00000000..f8126b25 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0007_install_mentions_model.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0007_install_mentions_model: + +:mod:`askbot.migrations.0007_install_mentions_model` +============================================= + +.. automodule:: askbot.migrations.0007_install_mentions_model + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0008_add_html_field_to_comments.rst b/askbot/doc/source/devel/askbot.migrations.0008_add_html_field_to_comments.rst new file mode 100644 index 00000000..66194d8a --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0008_add_html_field_to_comments.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0008_add_html_field_to_comments: + +:mod:`askbot.migrations.0008_add_html_field_to_comments` +================================================= + +.. automodule:: askbot.migrations.0008_add_html_field_to_comments + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0009_calculate_html_field_for_comments.rst b/askbot/doc/source/devel/askbot.migrations.0009_calculate_html_field_for_comments.rst new file mode 100644 index 00000000..ac7b0454 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0009_calculate_html_field_for_comments.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0009_calculate_html_field_for_comments: + +:mod:`askbot.migrations.0009_calculate_html_field_for_comments` +======================================================== + +.. automodule:: askbot.migrations.0009_calculate_html_field_for_comments + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0010_add_receiving_user_to_activity_model.rst b/askbot/doc/source/devel/askbot.migrations.0010_add_receiving_user_to_activity_model.rst new file mode 100644 index 00000000..e57701a6 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0010_add_receiving_user_to_activity_model.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0010_add_receiving_user_to_activity_model: + +:mod:`askbot.migrations.0010_add_receiving_user_to_activity_model` +=========================================================== + +.. automodule:: askbot.migrations.0010_add_receiving_user_to_activity_model + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0011_merge_mentions_into_activity.rst b/askbot/doc/source/devel/askbot.migrations.0011_merge_mentions_into_activity.rst new file mode 100644 index 00000000..58dd8304 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0011_merge_mentions_into_activity.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0011_merge_mentions_into_activity: + +:mod:`askbot.migrations.0011_merge_mentions_into_activity` +=================================================== + +.. automodule:: askbot.migrations.0011_merge_mentions_into_activity + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0012_delete_some_unused_models.rst b/askbot/doc/source/devel/askbot.migrations.0012_delete_some_unused_models.rst new file mode 100644 index 00000000..b7c25ed4 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0012_delete_some_unused_models.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0012_delete_some_unused_models: + +:mod:`askbot.migrations.0012_delete_some_unused_models` +================================================ + +.. automodule:: askbot.migrations.0012_delete_some_unused_models + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0013_add_response_count__to_user.rst b/askbot/doc/source/devel/askbot.migrations.0013_add_response_count__to_user.rst new file mode 100644 index 00000000..e594d785 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0013_add_response_count__to_user.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0013_add_response_count__to_user: + +:mod:`askbot.migrations.0013_add_response_count__to_user` +================================================== + +.. automodule:: askbot.migrations.0013_add_response_count__to_user + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0014_rename_schema_from_forum_to_askbot.rst b/askbot/doc/source/devel/askbot.migrations.0014_rename_schema_from_forum_to_askbot.rst new file mode 100644 index 00000000..bad3504b --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0014_rename_schema_from_forum_to_askbot.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0014_rename_schema_from_forum_to_askbot: + +:mod:`askbot.migrations.0014_rename_schema_from_forum_to_askbot` +========================================================= + +.. automodule:: askbot.migrations.0014_rename_schema_from_forum_to_askbot + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0015_rename_forum_contenttypes_to_askbot.rst b/askbot/doc/source/devel/askbot.migrations.0015_rename_forum_contenttypes_to_askbot.rst new file mode 100644 index 00000000..632d0144 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0015_rename_forum_contenttypes_to_askbot.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0015_rename_forum_contenttypes_to_askbot: + +:mod:`askbot.migrations.0015_rename_forum_contenttypes_to_askbot` +========================================================== + +.. automodule:: askbot.migrations.0015_rename_forum_contenttypes_to_askbot + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0016_auto__del_validationhash.rst b/askbot/doc/source/devel/askbot.migrations.0016_auto__del_validationhash.rst new file mode 100644 index 00000000..2b572d80 --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0016_auto__del_validationhash.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0016_auto__del_validationhash: + +:mod:`askbot.migrations.0016_auto__del_validationhash` +=============================================== + +.. automodule:: askbot.migrations.0016_auto__del_validationhash + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.0017_add_group__moderators.rst b/askbot/doc/source/devel/askbot.migrations.0017_add_group__moderators.rst new file mode 100644 index 00000000..d36165ab --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.0017_add_group__moderators.rst @@ -0,0 +1,10 @@ +.. _askbot.migrations.0017_add_group__moderators: + +:mod:`askbot.migrations.0017_add_group__moderators` +============================================ + +.. automodule:: askbot.migrations.0017_add_group__moderators + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.migrations.rst b/askbot/doc/source/devel/askbot.migrations.rst new file mode 100644 index 00000000..bffa748b --- /dev/null +++ b/askbot/doc/source/devel/askbot.migrations.rst @@ -0,0 +1,34 @@ +.. _askbot.migrations: + +:mod:`askbot.migrations` +================= + +.. automodule:: askbot.migrations + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.migrations.0001_initial` +* :ref:`askbot.migrations.0002_auto__add_field_answer_text__chg_field_answer_html__add_field_question` +* :ref:`askbot.migrations.0003_copy_denorm_text_record_to_posts_for_fulltext_search` +* :ref:`askbot.migrations.0004_install_full_text_indexes_for_mysql` +* :ref:`askbot.migrations.0005_install_badges` +* :ref:`askbot.migrations.0006_add_subscription_setting_for_comments_and_mentions` +* :ref:`askbot.migrations.0007_install_mentions_model` +* :ref:`askbot.migrations.0008_add_html_field_to_comments` +* :ref:`askbot.migrations.0009_calculate_html_field_for_comments` +* :ref:`askbot.migrations.0010_add_receiving_user_to_activity_model` +* :ref:`askbot.migrations.0011_merge_mentions_into_activity` +* :ref:`askbot.migrations.0012_delete_some_unused_models` +* :ref:`askbot.migrations.0013_add_response_count__to_user` +* :ref:`askbot.migrations.0014_rename_schema_from_forum_to_askbot` +* :ref:`askbot.migrations.0015_rename_forum_contenttypes_to_askbot` +* :ref:`askbot.migrations.0016_auto__del_validationhash` +* :ref:`askbot.migrations.0017_add_group__moderators` + diff --git a/askbot/doc/source/devel/askbot.models.answer.rst b/askbot/doc/source/devel/askbot.models.answer.rst new file mode 100644 index 00000000..e1db344c --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.answer.rst @@ -0,0 +1,10 @@ +.. _askbot.models.answer: + +:mod:`askbot.models.answer` +==================== + +.. automodule:: askbot.models.answer + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.base.rst b/askbot/doc/source/devel/askbot.models.base.rst new file mode 100644 index 00000000..85c2715d --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.base.rst @@ -0,0 +1,10 @@ +.. _askbot.models.base: + +:mod:`askbot.models.base` +================== + +.. automodule:: askbot.models.base + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.content.rst b/askbot/doc/source/devel/askbot.models.content.rst new file mode 100644 index 00000000..5d919add --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.content.rst @@ -0,0 +1,10 @@ +.. _askbot.models.content: + +:mod:`askbot.models.content` +===================== + +.. automodule:: askbot.models.content + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.meta.rst b/askbot/doc/source/devel/askbot.models.meta.rst new file mode 100644 index 00000000..b048a180 --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.meta.rst @@ -0,0 +1,10 @@ +.. _askbot.models.meta: + +:mod:`askbot.models.meta` +================== + +.. automodule:: askbot.models.meta + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.question.rst b/askbot/doc/source/devel/askbot.models.question.rst new file mode 100644 index 00000000..e7f3ecd3 --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.question.rst @@ -0,0 +1,10 @@ +.. _askbot.models.question: + +:mod:`askbot.models.question` +====================== + +.. automodule:: askbot.models.question + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.repute.rst b/askbot/doc/source/devel/askbot.models.repute.rst new file mode 100644 index 00000000..d3d69865 --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.repute.rst @@ -0,0 +1,10 @@ +.. _askbot.models.repute: + +:mod:`askbot.models.repute` +==================== + +.. automodule:: askbot.models.repute + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.rst b/askbot/doc/source/devel/askbot.models.rst new file mode 100644 index 00000000..148f2dd5 --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.rst @@ -0,0 +1,26 @@ +.. _askbot.models: + +:mod:`askbot.models` +============= + +.. automodule:: askbot.models + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.models.answer` +* :ref:`askbot.models.base` +* :ref:`askbot.models.content` +* :ref:`askbot.models.meta` +* :ref:`askbot.models.question` +* :ref:`askbot.models.repute` +* :ref:`askbot.models.signals` +* :ref:`askbot.models.tag` +* :ref:`askbot.models.user` + diff --git a/askbot/doc/source/devel/askbot.models.signals.rst b/askbot/doc/source/devel/askbot.models.signals.rst new file mode 100644 index 00000000..2b57a61e --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.signals.rst @@ -0,0 +1,10 @@ +.. _askbot.models.signals: + +:mod:`askbot.models.signals` +===================== + +.. automodule:: askbot.models.signals + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.tag.rst b/askbot/doc/source/devel/askbot.models.tag.rst new file mode 100644 index 00000000..4c7d74f5 --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.tag.rst @@ -0,0 +1,10 @@ +.. _askbot.models.tag: + +:mod:`askbot.models.tag` +================= + +.. automodule:: askbot.models.tag + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.models.user.rst b/askbot/doc/source/devel/askbot.models.user.rst new file mode 100644 index 00000000..ac62f9bc --- /dev/null +++ b/askbot/doc/source/devel/askbot.models.user.rst @@ -0,0 +1,10 @@ +.. _askbot.models.user: + +:mod:`askbot.models.user` +================== + +.. automodule:: askbot.models.user + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.rst b/askbot/doc/source/devel/askbot.rst new file mode 100644 index 00000000..df988cdc --- /dev/null +++ b/askbot/doc/source/devel/askbot.rst @@ -0,0 +1,48 @@ +.. _askbot: + +:mod:`askbot` +====== + +.. automodule:: askbot + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.admin` +* :ref:`askbot.auth` +* :ref:`askbot.context` +* :ref:`askbot.feed` +* :ref:`askbot.forms` +* :ref:`askbot.sitemap` +* :ref:`askbot.tests` +* :ref:`askbot.urls` + +.. _packages:: + +:mod:`Subpackages` +----------- + + +* :ref:`askbot.bin` +* :ref:`askbot.conf` +* :ref:`askbot.const` +* :ref:`askbot.deployment` +* :ref:`askbot.importers` +* :ref:`askbot.management` +* :ref:`askbot.middleware` +* :ref:`askbot.migrations` +* :ref:`askbot.models` +* :ref:`askbot.search` +* :ref:`askbot.skins` +* :ref:`askbot.templatetags` +* :ref:`askbot.user_messages` +* :ref:`askbot.utils` +* :ref:`askbot.views` +* :ref:`askbot.deps` +* :ref:`askbot.setup_templates` diff --git a/askbot/doc/source/devel/askbot.search.indexer.rst b/askbot/doc/source/devel/askbot.search.indexer.rst new file mode 100644 index 00000000..dc7cac21 --- /dev/null +++ b/askbot/doc/source/devel/askbot.search.indexer.rst @@ -0,0 +1,10 @@ +.. _askbot.search.indexer: + +:mod:`askbot.search.indexer` +===================== + +.. automodule:: askbot.search.indexer + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.search.rst b/askbot/doc/source/devel/askbot.search.rst new file mode 100644 index 00000000..cdfa3f6d --- /dev/null +++ b/askbot/doc/source/devel/askbot.search.rst @@ -0,0 +1,19 @@ +.. _askbot.search: + +:mod:`askbot.search` +============= + +.. automodule:: askbot.search + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.search.indexer` +* :ref:`askbot.search.state_manager` + diff --git a/askbot/doc/source/devel/askbot.search.state_manager.rst b/askbot/doc/source/devel/askbot.search.state_manager.rst new file mode 100644 index 00000000..a315f954 --- /dev/null +++ b/askbot/doc/source/devel/askbot.search.state_manager.rst @@ -0,0 +1,10 @@ +.. _askbot.search.state_manager: + +:mod:`askbot.search.state_manager` +=========================== + +.. automodule:: askbot.search.state_manager + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.setup_templates.manage.rst b/askbot/doc/source/devel/askbot.setup_templates.manage.rst new file mode 100644 index 00000000..e9c4775e --- /dev/null +++ b/askbot/doc/source/devel/askbot.setup_templates.manage.rst @@ -0,0 +1,10 @@ +.. _askbot.setup_templates.manage: + +:mod:`askbot.setup_templates.manage` +============================= + +.. automodule:: askbot.setup_templates.manage + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.setup_templates.rst b/askbot/doc/source/devel/askbot.setup_templates.rst new file mode 100644 index 00000000..58d0b704 --- /dev/null +++ b/askbot/doc/source/devel/askbot.setup_templates.rst @@ -0,0 +1,20 @@ +.. _askbot.setup_templates: + +:mod:`askbot.setup_templates` +====================== + +.. automodule:: askbot.setup_templates + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.setup_templates.manage` +* :ref:`askbot.setup_templates.settings` +* :ref:`askbot.setup_templates.urls` + diff --git a/askbot/doc/source/devel/askbot.setup_templates.settings.rst b/askbot/doc/source/devel/askbot.setup_templates.settings.rst new file mode 100644 index 00000000..230a1474 --- /dev/null +++ b/askbot/doc/source/devel/askbot.setup_templates.settings.rst @@ -0,0 +1,10 @@ +.. _askbot.setup_templates.settings: + +:mod:`askbot.setup_templates.settings` +=============================== + +.. automodule:: askbot.setup_templates.settings + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.setup_templates.urls.rst b/askbot/doc/source/devel/askbot.setup_templates.urls.rst new file mode 100644 index 00000000..4844502d --- /dev/null +++ b/askbot/doc/source/devel/askbot.setup_templates.urls.rst @@ -0,0 +1,10 @@ +.. _askbot.setup_templates.urls: + +:mod:`askbot.setup_templates.urls` +=========================== + +.. automodule:: askbot.setup_templates.urls + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.sitemap.rst b/askbot/doc/source/devel/askbot.sitemap.rst new file mode 100644 index 00000000..373d88c7 --- /dev/null +++ b/askbot/doc/source/devel/askbot.sitemap.rst @@ -0,0 +1,10 @@ +.. _askbot.sitemap: + +:mod:`askbot.sitemap` +============== + +.. automodule:: askbot.sitemap + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.skins.loaders.rst b/askbot/doc/source/devel/askbot.skins.loaders.rst new file mode 100644 index 00000000..e55c8472 --- /dev/null +++ b/askbot/doc/source/devel/askbot.skins.loaders.rst @@ -0,0 +1,10 @@ +.. _askbot.skins.loaders: + +:mod:`askbot.skins.loaders` +==================== + +.. automodule:: askbot.skins.loaders + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.skins.rst b/askbot/doc/source/devel/askbot.skins.rst new file mode 100644 index 00000000..ad2b3368 --- /dev/null +++ b/askbot/doc/source/devel/askbot.skins.rst @@ -0,0 +1,19 @@ +.. _askbot.skins: + +:mod:`askbot.skins` +============ + +.. automodule:: askbot.skins + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.skins.loaders` +* :ref:`askbot.skins.utils` + diff --git a/askbot/doc/source/devel/askbot.skins.utils.rst b/askbot/doc/source/devel/askbot.skins.utils.rst new file mode 100644 index 00000000..71a989e5 --- /dev/null +++ b/askbot/doc/source/devel/askbot.skins.utils.rst @@ -0,0 +1,10 @@ +.. _askbot.skins.utils: + +:mod:`askbot.skins.utils` +================== + +.. automodule:: askbot.skins.utils + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.templatetags.extra_filters.rst b/askbot/doc/source/devel/askbot.templatetags.extra_filters.rst new file mode 100644 index 00000000..75933393 --- /dev/null +++ b/askbot/doc/source/devel/askbot.templatetags.extra_filters.rst @@ -0,0 +1,10 @@ +.. _askbot.templatetags.extra_filters: + +:mod:`askbot.templatetags.extra_filters` +================================= + +.. automodule:: askbot.templatetags.extra_filters + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.templatetags.extra_tags.rst b/askbot/doc/source/devel/askbot.templatetags.extra_tags.rst new file mode 100644 index 00000000..c4a2fca3 --- /dev/null +++ b/askbot/doc/source/devel/askbot.templatetags.extra_tags.rst @@ -0,0 +1,10 @@ +.. _askbot.templatetags.extra_tags: + +:mod:`askbot.templatetags.extra_tags` +============================== + +.. automodule:: askbot.templatetags.extra_tags + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.templatetags.rst b/askbot/doc/source/devel/askbot.templatetags.rst new file mode 100644 index 00000000..c3887952 --- /dev/null +++ b/askbot/doc/source/devel/askbot.templatetags.rst @@ -0,0 +1,20 @@ +.. _askbot.templatetags: + +:mod:`askbot.templatetags` +=================== + +.. automodule:: askbot.templatetags + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.templatetags.extra_filters` +* :ref:`askbot.templatetags.extra_tags` +* :ref:`askbot.templatetags.smart_if` + diff --git a/askbot/doc/source/devel/askbot.templatetags.smart_if.rst b/askbot/doc/source/devel/askbot.templatetags.smart_if.rst new file mode 100644 index 00000000..ea43b691 --- /dev/null +++ b/askbot/doc/source/devel/askbot.templatetags.smart_if.rst @@ -0,0 +1,10 @@ +.. _askbot.templatetags.smart_if: + +:mod:`askbot.templatetags.smart_if` +============================ + +.. automodule:: askbot.templatetags.smart_if + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.tests.rst b/askbot/doc/source/devel/askbot.tests.rst new file mode 100644 index 00000000..3bf28167 --- /dev/null +++ b/askbot/doc/source/devel/askbot.tests.rst @@ -0,0 +1,10 @@ +.. _askbot.tests: + +:mod:`askbot.tests` +============ + +.. automodule:: askbot.tests + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.urls.rst b/askbot/doc/source/devel/askbot.urls.rst new file mode 100644 index 00000000..17ebd08d --- /dev/null +++ b/askbot/doc/source/devel/askbot.urls.rst @@ -0,0 +1,10 @@ +.. _askbot.urls: + +:mod:`askbot.urls` +=========== + +.. automodule:: askbot.urls + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.user_messages.context_processors.rst b/askbot/doc/source/devel/askbot.user_messages.context_processors.rst new file mode 100644 index 00000000..f6499f2e --- /dev/null +++ b/askbot/doc/source/devel/askbot.user_messages.context_processors.rst @@ -0,0 +1,10 @@ +.. _askbot.user_messages.context_processors: + +:mod:`askbot.user_messages.context_processors` +======================================= + +.. automodule:: askbot.user_messages.context_processors + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.user_messages.rst b/askbot/doc/source/devel/askbot.user_messages.rst new file mode 100644 index 00000000..3426b363 --- /dev/null +++ b/askbot/doc/source/devel/askbot.user_messages.rst @@ -0,0 +1,18 @@ +.. _askbot.user_messages: + +:mod:`askbot.user_messages` +==================== + +.. automodule:: askbot.user_messages + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.user_messages.context_processors` + diff --git a/askbot/doc/source/devel/askbot.utils.cache.rst b/askbot/doc/source/devel/askbot.utils.cache.rst new file mode 100644 index 00000000..583c7ec9 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.cache.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.cache: + +:mod:`askbot.utils.cache` +================== + +.. automodule:: askbot.utils.cache + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.colors.rst b/askbot/doc/source/devel/askbot.utils.colors.rst new file mode 100644 index 00000000..df271c9a --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.colors.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.colors: + +:mod:`askbot.utils.colors` +=================== + +.. automodule:: askbot.utils.colors + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.decorators.rst b/askbot/doc/source/devel/askbot.utils.decorators.rst new file mode 100644 index 00000000..7c7468c1 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.decorators.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.decorators: + +:mod:`askbot.utils.decorators` +======================= + +.. automodule:: askbot.utils.decorators + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.diff.rst b/askbot/doc/source/devel/askbot.utils.diff.rst new file mode 100644 index 00000000..0d3fb719 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.diff.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.diff: + +:mod:`askbot.utils.diff` +================= + +.. automodule:: askbot.utils.diff + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.email.rst b/askbot/doc/source/devel/askbot.utils.email.rst new file mode 100644 index 00000000..02ef238c --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.email.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.email: + +:mod:`askbot.utils.email` +================== + +.. automodule:: askbot.utils.email + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.forms.rst b/askbot/doc/source/devel/askbot.utils.forms.rst new file mode 100644 index 00000000..3e24bad4 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.forms.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.forms: + +:mod:`askbot.utils.forms` +================== + +.. automodule:: askbot.utils.forms + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.functions.rst b/askbot/doc/source/devel/askbot.utils.functions.rst new file mode 100644 index 00000000..f1fa1c12 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.functions.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.functions: + +:mod:`askbot.utils.functions` +====================== + +.. automodule:: askbot.utils.functions + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.html.rst b/askbot/doc/source/devel/askbot.utils.html.rst new file mode 100644 index 00000000..50ce9854 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.html.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.html: + +:mod:`askbot.utils.html` +================= + +.. automodule:: askbot.utils.html + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.lists.rst b/askbot/doc/source/devel/askbot.utils.lists.rst new file mode 100644 index 00000000..080e696b --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.lists.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.lists: + +:mod:`askbot.utils.lists` +================== + +.. automodule:: askbot.utils.lists + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.markup.rst b/askbot/doc/source/devel/askbot.utils.markup.rst new file mode 100644 index 00000000..fd4627e5 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.markup.rst @@ -0,0 +1,10 @@ +.. _askbot.utils.markup: + +:mod:`askbot.utils.markup` +=================== + +.. automodule:: askbot.utils.markup + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.utils.rst b/askbot/doc/source/devel/askbot.utils.rst new file mode 100644 index 00000000..0ba8ed25 --- /dev/null +++ b/askbot/doc/source/devel/askbot.utils.rst @@ -0,0 +1,27 @@ +.. _askbot.utils: + +:mod:`askbot.utils` +============ + +.. automodule:: askbot.utils + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.utils.cache` +* :ref:`askbot.utils.colors` +* :ref:`askbot.utils.decorators` +* :ref:`askbot.utils.diff` +* :ref:`askbot.utils.email` +* :ref:`askbot.utils.forms` +* :ref:`askbot.utils.functions` +* :ref:`askbot.utils.html` +* :ref:`askbot.utils.lists` +* :ref:`askbot.utils.markup` + diff --git a/askbot/doc/source/devel/askbot.views.commands.rst b/askbot/doc/source/devel/askbot.views.commands.rst new file mode 100644 index 00000000..610c32ae --- /dev/null +++ b/askbot/doc/source/devel/askbot.views.commands.rst @@ -0,0 +1,10 @@ +.. _askbot.views.commands: + +:mod:`askbot.views.commands` +===================== + +.. automodule:: askbot.views.commands + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.views.meta.rst b/askbot/doc/source/devel/askbot.views.meta.rst new file mode 100644 index 00000000..493dbfb4 --- /dev/null +++ b/askbot/doc/source/devel/askbot.views.meta.rst @@ -0,0 +1,10 @@ +.. _askbot.views.meta: + +:mod:`askbot.views.meta` +================= + +.. automodule:: askbot.views.meta + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.views.readers.rst b/askbot/doc/source/devel/askbot.views.readers.rst new file mode 100644 index 00000000..f264d1e4 --- /dev/null +++ b/askbot/doc/source/devel/askbot.views.readers.rst @@ -0,0 +1,10 @@ +.. _askbot.views.readers: + +:mod:`askbot.views.readers` +==================== + +.. automodule:: askbot.views.readers + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.views.rst b/askbot/doc/source/devel/askbot.views.rst new file mode 100644 index 00000000..e47782d5 --- /dev/null +++ b/askbot/doc/source/devel/askbot.views.rst @@ -0,0 +1,22 @@ +.. _askbot.views: + +:mod:`askbot.views` +============ + +.. automodule:: askbot.views + :members: + :undoc-members: + :show-inheritance: + +.. _modules:: + +:mod:`Modules` +------- + + +* :ref:`askbot.views.commands` +* :ref:`askbot.views.meta` +* :ref:`askbot.views.readers` +* :ref:`askbot.views.users` +* :ref:`askbot.views.writers` + diff --git a/askbot/doc/source/devel/askbot.views.users.rst b/askbot/doc/source/devel/askbot.views.users.rst new file mode 100644 index 00000000..fd2d47bf --- /dev/null +++ b/askbot/doc/source/devel/askbot.views.users.rst @@ -0,0 +1,10 @@ +.. _askbot.views.users: + +:mod:`askbot.views.users` +================== + +.. automodule:: askbot.views.users + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/askbot.views.writers.rst b/askbot/doc/source/devel/askbot.views.writers.rst new file mode 100644 index 00000000..5f643f32 --- /dev/null +++ b/askbot/doc/source/devel/askbot.views.writers.rst @@ -0,0 +1,10 @@ +.. _askbot.views.writers: + +:mod:`askbot.views.writers` +==================== + +.. automodule:: askbot.views.writers + :members: + :undoc-members: + :show-inheritance: + diff --git a/askbot/doc/source/devel/models.rst b/askbot/doc/source/devel/models.rst deleted file mode 100644 index 81ee38f5..00000000 --- a/askbot/doc/source/devel/models.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. automodule:: askbot.models - :members: - :undoc-members: diff --git a/askbot/doc/source/devel/modules.rst b/askbot/doc/source/devel/modules.rst new file mode 100644 index 00000000..71f888f5 --- /dev/null +++ b/askbot/doc/source/devel/modules.rst @@ -0,0 +1,33 @@ +.. _Project: + +:mod:`Project` +======= + +:mod:`Modules:` +-------- + +.. toctree:: + :maxdepth: 4 + + askbot + bin + commands + commands + conf + const + deployment + deps + importers + management + management + middleware + migrations + models + search + setup_templates + skins + stackexchange + templatetags + user_messages + utils + views diff --git a/askbot/doc/source/devel/views/__init__.rst b/askbot/doc/source/devel/views/__init__.rst deleted file mode 100644 index bd1f79e5..00000000 --- a/askbot/doc/source/devel/views/__init__.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. automodule:: askbot.views - :members: - :undoc-members: diff --git a/askbot/doc/source/devel/views/commands.rst b/askbot/doc/source/devel/views/commands.rst deleted file mode 100644 index 565ce5c4..00000000 --- a/askbot/doc/source/devel/views/commands.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. automodule:: askbot.views.commands - :members: - :undoc-members: diff --git a/askbot/doc/source/devel/views/meta.rst b/askbot/doc/source/devel/views/meta.rst deleted file mode 100644 index 452dac10..00000000 --- a/askbot/doc/source/devel/views/meta.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. automodule:: askbot.views.meta - :members: - :undoc-members: diff --git a/askbot/doc/source/devel/views/readers.rst b/askbot/doc/source/devel/views/readers.rst deleted file mode 100644 index 63a99eb4..00000000 --- a/askbot/doc/source/devel/views/readers.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. automodule:: askbot.views.readers - :members: - :undoc-members: diff --git a/askbot/doc/source/devel/views/users.rst b/askbot/doc/source/devel/views/users.rst deleted file mode 100644 index e6271404..00000000 --- a/askbot/doc/source/devel/views/users.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. automodule:: askbot.views.users - :members: - :undoc-members: - diff --git a/askbot/doc/source/devel/views/writers.rst b/askbot/doc/source/devel/views/writers.rst deleted file mode 100644 index 1e5f8a7d..00000000 --- a/askbot/doc/source/devel/views/writers.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. automodule:: askbot.views.writers - :members: - :undoc-members: - diff --git a/askbot/views/__init__.py b/askbot/views/__init__.py index 05fb0319..578bd1a5 100644 --- a/askbot/views/__init__.py +++ b/askbot/views/__init__.py @@ -1,19 +1,5 @@ """ -.. _askbot.views: - -:mod:`askbot.views` - Django views for askbot -============================================= - -This module provides `django view functions`_ necessary for the askbot project. - -Askbot views are subdivided into the following sub-modules: - -* :ref:`readers <askbot.views.readers>` - views that display but do not modify main textual content (Questions, Answers, Comments and Tag) -* :ref:`writers <askbot.views.writers>` - generate forms that change main content -* :ref:`commands <askbot.views.commands>` - most Ajax command processors -* :ref:`users <askbot.views.users>` - views generating user-specific content and the listing of site users -* :ref:`meta <askbot.views.meta>` - remaining views (for example - badges, faq, privacy, etc. - may require some cleanup) - +:synopsis: django view functions for the askbot project """ from askbot.views import readers from askbot.views import writers diff --git a/askbot/views/commands.py b/askbot/views/commands.py index 7151ead1..8d49ec9e 100644 --- a/askbot/views/commands.py +++ b/askbot/views/commands.py @@ -1,8 +1,5 @@ """ -.. _askbot.views.commands: - -:mod:`askbot.views.commands` - most ajax processors for askbot -=============================================================== +:synopsis: most ajax processors for askbot This module contains most (but not all) processors for Ajax requests. Not so clear if this subdivision was necessary as separation of Ajax and non-ajax views diff --git a/askbot/views/meta.py b/askbot/views/meta.py index aa806096..b4a22932 100644 --- a/askbot/views/meta.py +++ b/askbot/views/meta.py @@ -1,8 +1,5 @@ """ -.. _askbot.views.meta: - -:mod:`askbot.views.meta` - "secondary" views for askbot -=============================================================== +:synopsis: remaining "secondary" views for askbot This module contains a collection of views displaying all sorts of secondary and mostly static content. """ diff --git a/askbot/views/readers.py b/askbot/views/readers.py index 9bcd435f..592f8bd5 100644 --- a/askbot/views/readers.py +++ b/askbot/views/readers.py @@ -1,9 +1,6 @@ # encoding:utf-8 """ -.. _askbot.views.readers: - -:mod:`askbot.views.readers` - read-only views for main textual content -======================================================================== +:synopsis: views "read-only" for main textual content By main textual content is meant - text of Questions, Answers and Comments. The "read-only" requirement here is not 100% strict, as for example "question" view does diff --git a/askbot/views/users.py b/askbot/views/users.py index ca71328c..2b20ccc7 100644 --- a/askbot/views/users.py +++ b/askbot/views/users.py @@ -1,8 +1,5 @@ """ -.. _askbot.views.users: - -:mod:`askbot.views.users` - user-centric views for askbot -=========================================================== +:synopsis: user-centric views for askbot This module includes all views that are specific to a given user - his or her profile, and other views showing profile-related information. diff --git a/askbot/views/writers.py b/askbot/views/writers.py index 2aa77a2c..03707205 100644 --- a/askbot/views/writers.py +++ b/askbot/views/writers.py @@ -1,9 +1,6 @@ # encoding:utf-8 """ -.. _askbot.views.writers: - -:mod:`askbot.views.writers` - views diplaying and processing post forms -========================================================================= +:synopsis: views diplaying and processing main content post forms This module contains views that allow adding, editing, and deleting main textual content. """ @@ -20,7 +20,7 @@ if sys.platform not in WIN_PLATFORMS: setup( name = "askbot", - version = "0.6.4", + version = "0.6.5", description = 'Question and Answer forum, like StackOverflow, written in python and Django', packages = find_packages(), author = 'Evgeny.Fadeev', |