Shinya Okano avatar Shinya Okano committed f1accc2

ハッカソン資料を更新

Comments (0)

Files changed (25)

python-hackathon201011/_sources/intro.txt

    >>> import sys
    >>> sys.platform
    'win32'
+
 日本語の扱い
 ============
 

python-hackathon201011/_sources/problem.txt

 参考ページ
 ~~~~~~~~~~
 
-* http://www.python.jp/doc/release/lib/module-sqlite3.html
-* http://www.python.jp/doc/release/lib/module-sys.html#l2h-5117
+* http://www.python.jp/doc/release/library/sqlite3.html
+* http://www.python.jp/doc/release/library/sys.html
 
 feedparserモジュールでTwitter検索結果のAtomフィードを取得してみる
 -----------------------------------------------------------------
Add a comment to this file

python-hackathon201011/_static/ajax-loader.gif

Added
New image

python-hackathon201011/_static/basic.css

  *
  * Sphinx stylesheet -- basic theme.
  *
- * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
     font-size: 1em;
 }
 
+div.sphinxsidebar #searchbox input[type="text"] {
+    width: 170px;
+}
+
+div.sphinxsidebar #searchbox input[type="submit"] {
+    width: 30px;
+}
+
 img {
     border: 0;
 }
     font-weight: bold;
 }
 
+img.align-left, .figure.align-left, object.align-left {
+    clear: left;
+    float: left;
+    margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+    clear: right;
+    float: right;
+    margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+
 .align-left {
     text-align: left;
 }
 
 .align-center {
-    clear: both;
     text-align: center;
 }
 
 }
 
 .footnote:target  {
-    background-color: #ffa
+    background-color: #ffa;
 }
 
 .line-block {
     font-style: oblique;
 }
 
+abbr, acronym {
+    border-bottom: dotted 1px;
+    cursor: help;
+}
+
 /* -- code displays --------------------------------------------------------- */
 
 pre {
     overflow: auto;
+    overflow-y: hidden;  /* fixes display issues on Chrome browsers */
 }
 
 td.linenos pre {
     #top-link {
         display: none;
     }
-}
+}
Add a comment to this file

python-hackathon201011/_static/comment-bright.png

Added
New image
Add a comment to this file

python-hackathon201011/_static/comment-close.png

Added
New image
Add a comment to this file

python-hackathon201011/_static/comment.png

Added
New image

python-hackathon201011/_static/default.css

  *
  * Sphinx stylesheet -- default theme.
  *
- * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */

python-hackathon201011/_static/doctools.js

  * doctools.js
  * ~~~~~~~~~~~
  *
- * Sphinx JavaScript utilties for all documentation.
+ * Sphinx JavaScript utilities for all documentation.
  *
- * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
           body.highlightText(this.toLowerCase(), 'highlighted');
         });
       }, 10);
-      $('<li class="highlight-link"><a href="javascript:Documentation.' +
-        'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
-          .appendTo($('.sidebar .this-page-menu'));
+      $('<p class="highlight-link"><a href="javascript:Documentation.' +
+        'hideSearchWords()">' + _('Hide Search Matches') + '</a></p>')
+          .appendTo($('#searchbox'));
     }
   },
 
    * helper function to hide the search marks again
    */
   hideSearchWords : function() {
-    $('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
+    $('#searchbox .highlight-link').fadeOut(300);
     $('span.highlighted').removeClass('highlighted');
   },
 
Add a comment to this file

python-hackathon201011/_static/down-pressed.png

Added
New image
Add a comment to this file

python-hackathon201011/_static/down.png

Added
New image

python-hackathon201011/_static/pygments.css

-.highlight .hll { background-color: #ffffcc }
-.highlight  { background: #eeffcc; }
-.highlight .c { color: #408090; font-style: italic } /* Comment */
-.highlight .err { border: 1px solid #FF0000 } /* Error */
-.highlight .k { color: #007020; font-weight: bold } /* Keyword */
-.highlight .o { color: #666666 } /* Operator */
-.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
-.highlight .cp { color: #007020 } /* Comment.Preproc */
-.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
-.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
-.highlight .gd { color: #A00000 } /* Generic.Deleted */
-.highlight .ge { font-style: italic } /* Generic.Emph */
-.highlight .gr { color: #FF0000 } /* Generic.Error */
-.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #303030 } /* Generic.Output */
-.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
-.highlight .gs { font-weight: bold } /* Generic.Strong */
-.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0040D0 } /* Generic.Traceback */
-.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #007020 } /* Keyword.Pseudo */
-.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #902000 } /* Keyword.Type */
-.highlight .m { color: #208050 } /* Literal.Number */
-.highlight .s { color: #4070a0 } /* Literal.String */
-.highlight .na { color: #4070a0 } /* Name.Attribute */
-.highlight .nb { color: #007020 } /* Name.Builtin */
-.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
-.highlight .no { color: #60add5 } /* Name.Constant */
-.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
-.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
-.highlight .ne { color: #007020 } /* Name.Exception */
-.highlight .nf { color: #06287e } /* Name.Function */
-.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
-.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
-.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #bb60d5 } /* Name.Variable */
-.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
-.highlight .w { color: #bbbbbb } /* Text.Whitespace */
-.highlight .mf { color: #208050 } /* Literal.Number.Float */
-.highlight .mh { color: #208050 } /* Literal.Number.Hex */
-.highlight .mi { color: #208050 } /* Literal.Number.Integer */
-.highlight .mo { color: #208050 } /* Literal.Number.Oct */
-.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
-.highlight .sc { color: #4070a0 } /* Literal.String.Char */
-.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
-.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
-.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
-.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
-.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
-.highlight .sx { color: #c65d09 } /* Literal.String.Other */
-.highlight .sr { color: #235388 } /* Literal.String.Regex */
-.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
-.highlight .ss { color: #517918 } /* Literal.String.Symbol */
-.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
-.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
-.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.highlight .hll { background-color: #ffffcc }
+.highlight  { background: #eeffcc; }
+.highlight .c { color: #408090; font-style: italic } /* Comment */
+.highlight .err { border: 1px solid #FF0000 } /* Error */
+.highlight .k { color: #007020; font-weight: bold } /* Keyword */
+.highlight .o { color: #666666 } /* Operator */
+.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
+.highlight .cp { color: #007020 } /* Comment.Preproc */
+.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
+.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
+.highlight .gd { color: #A00000 } /* Generic.Deleted */
+.highlight .ge { font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #FF0000 } /* Generic.Error */
+.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.highlight .gi { color: #00A000 } /* Generic.Inserted */
+.highlight .go { color: #303030 } /* Generic.Output */
+.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.highlight .gs { font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.highlight .gt { color: #0040D0 } /* Generic.Traceback */
+.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.highlight .kp { color: #007020 } /* Keyword.Pseudo */
+.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.highlight .kt { color: #902000 } /* Keyword.Type */
+.highlight .m { color: #208050 } /* Literal.Number */
+.highlight .s { color: #4070a0 } /* Literal.String */
+.highlight .na { color: #4070a0 } /* Name.Attribute */
+.highlight .nb { color: #007020 } /* Name.Builtin */
+.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.highlight .no { color: #60add5 } /* Name.Constant */
+.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.highlight .ne { color: #007020 } /* Name.Exception */
+.highlight .nf { color: #06287e } /* Name.Function */
+.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
+.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.highlight .nv { color: #bb60d5 } /* Name.Variable */
+.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.highlight .w { color: #bbbbbb } /* Text.Whitespace */
+.highlight .mf { color: #208050 } /* Literal.Number.Float */
+.highlight .mh { color: #208050 } /* Literal.Number.Hex */
+.highlight .mi { color: #208050 } /* Literal.Number.Integer */
+.highlight .mo { color: #208050 } /* Literal.Number.Oct */
+.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
+.highlight .sc { color: #4070a0 } /* Literal.String.Char */
+.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
+.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.highlight .sx { color: #c65d09 } /* Literal.String.Other */
+.highlight .sr { color: #235388 } /* Literal.String.Regex */
+.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
+.highlight .ss { color: #517918 } /* Literal.String.Symbol */
+.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
+.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
+.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
 .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */

python-hackathon201011/_static/searchtools.js

 /*
- * searchtools.js
- * ~~~~~~~~~~~~~~
+ * searchtools.js_t
+ * ~~~~~~~~~~~~~~~~
  *
  * Sphinx JavaScript utilties for the full-text search.
  *
- * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
   return rv;
 }
 
+
 /**
- * Porter Stemmer
+ * Dummy stemmer for languages without stemming rules.
  */
-var PorterStemmer = function() {
-
-  var step2list = {
-    ational: 'ate',
-    tional: 'tion',
-    enci: 'ence',
-    anci: 'ance',
-    izer: 'ize',
-    bli: 'ble',
-    alli: 'al',
-    entli: 'ent',
-    eli: 'e',
-    ousli: 'ous',
-    ization: 'ize',
-    ation: 'ate',
-    ator: 'ate',
-    alism: 'al',
-    iveness: 'ive',
-    fulness: 'ful',
-    ousness: 'ous',
-    aliti: 'al',
-    iviti: 'ive',
-    biliti: 'ble',
-    logi: 'log'
-  };
-
-  var step3list = {
-    icate: 'ic',
-    ative: '',
-    alize: 'al',
-    iciti: 'ic',
-    ical: 'ic',
-    ful: '',
-    ness: ''
-  };
-
-  var c = "[^aeiou]";          // consonant
-  var v = "[aeiouy]";          // vowel
-  var C = c + "[^aeiouy]*";    // consonant sequence
-  var V = v + "[aeiou]*";      // vowel sequence
-
-  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
-  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
-  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
-  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
-
-  this.stemWord = function (w) {
-    var stem;
-    var suffix;
-    var firstch;
-    var origword = w;
-
-    if (w.length < 3)
-      return w;
-
-    var re;
-    var re2;
-    var re3;
-    var re4;
-
-    firstch = w.substr(0,1);
-    if (firstch == "y")
-      w = firstch.toUpperCase() + w.substr(1);
-
-    // Step 1a
-    re = /^(.+?)(ss|i)es$/;
-    re2 = /^(.+?)([^s])s$/;
-
-    if (re.test(w))
-      w = w.replace(re,"$1$2");
-    else if (re2.test(w))
-      w = w.replace(re2,"$1$2");
-
-    // Step 1b
-    re = /^(.+?)eed$/;
-    re2 = /^(.+?)(ed|ing)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      re = new RegExp(mgr0);
-      if (re.test(fp[1])) {
-        re = /.$/;
-        w = w.replace(re,"");
-      }
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1];
-      re2 = new RegExp(s_v);
-      if (re2.test(stem)) {
-        w = stem;
-        re2 = /(at|bl|iz)$/;
-        re3 = new RegExp("([^aeiouylsz])\\1$");
-        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-        if (re2.test(w))
-          w = w + "e";
-        else if (re3.test(w)) {
-          re = /.$/;
-          w = w.replace(re,"");
-        }
-        else if (re4.test(w))
-          w = w + "e";
-      }
-    }
-
-    // Step 1c
-    re = /^(.+?)y$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(s_v);
-      if (re.test(stem))
-        w = stem + "i";
-    }
-
-    // Step 2
-    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step2list[suffix];
-    }
-
-    // Step 3
-    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step3list[suffix];
-    }
-
-    // Step 4
-    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
-    re2 = /^(.+?)(s|t)(ion)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      if (re.test(stem))
-        w = stem;
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1] + fp[2];
-      re2 = new RegExp(mgr1);
-      if (re2.test(stem))
-        w = stem;
-    }
-
-    // Step 5
-    re = /^(.+?)e$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      re2 = new RegExp(meq1);
-      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
-        w = stem;
-    }
-    re = /ll$/;
-    re2 = new RegExp(mgr1);
-    if (re.test(w) && re2.test(w)) {
-      re = /.$/;
-      w = w.replace(re,"");
-    }
-
-    // and turn initial Y back to y
-    if (firstch == "y")
-      w = firstch.toLowerCase() + w.substr(1);
+var Stemmer = function() {
+  this.stemWord = function(w) {
     return w;
   }
 }
   },
 
   query : function(query) {
-    var stopwords = ['and', 'then', 'into', 'it', 'as', 'are', 'in',
-                     'if', 'for', 'no', 'there', 'their', 'was', 'is',
-                     'be', 'to', 'that', 'but', 'they', 'not', 'such',
-                     'with', 'by', 'a', 'on', 'these', 'of', 'will',
-                     'this', 'near', 'the', 'or', 'at'];
+    var stopwords = [];
 
-    // stem the searchterms and add them to the correct list
-    var stemmer = new PorterStemmer();
+    // Stem the searchterms and add them to the correct list
+    var stemmer = new Stemmer();
     var searchterms = [];
     var excluded = [];
     var hlterms = [];
     var tmp = query.split(/\s+/);
-    var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
+    var objectterms = [];
     for (var i = 0; i < tmp.length; i++) {
+      if (tmp[i] != "") {
+          objectterms.push(tmp[i].toLowerCase());
+      }
+
       if ($u.indexOf(stopwords, tmp[i]) != -1 || tmp[i].match(/^\d+$/) ||
           tmp[i] == "") {
         // skip this "word"
     var filenames = this._index.filenames;
     var titles = this._index.titles;
     var terms = this._index.terms;
-    var objects = this._index.objects;
-    var objtypes = this._index.objtypes;
-    var objnames = this._index.objnames;
     var fileMap = {};
     var files = null;
     // different result priorities
     $('#search-progress').empty();
 
     // lookup as object
-    if (object != null) {
-      for (var prefix in objects) {
-        for (var name in objects[prefix]) {
-          var fullname = (prefix ? prefix + '.' : '') + name;
-          if (fullname.toLowerCase().indexOf(object) > -1) {
-            match = objects[prefix][name];
-            descr = objnames[match[1]] + _(', in ') + titles[match[0]];
-            // XXX the generated anchors are not generally correct
-            // XXX there may be custom prefixes
-            result = [filenames[match[0]], fullname, '#'+fullname, descr];
-            switch (match[2]) {
-            case 1: objectResults.push(result); break;
-            case 0: importantResults.push(result); break;
-            case 2: unimportantResults.push(result); break;
-            }
-          }
-        }
-      }
+    for (var i = 0; i < objectterms.length; i++) {
+      var others = [].concat(objectterms.slice(0,i),
+                             objectterms.slice(i+1, objectterms.length))
+      var results = this.performObjectSearch(objectterms[i], others);
+      // Assume first word is most likely to be the object,
+      // other words more likely to be in description.
+      // Therefore put matches for earlier words first.
+      // (Results are eventually used in reverse order).
+      objectResults = results[0].concat(objectResults);
+      importantResults = results[1].concat(importantResults);
+      unimportantResults = results[2].concat(unimportantResults);
     }
 
-    // sort results descending
-    objectResults.sort(function(a, b) {
-      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
-    });
-
-    importantResults.sort(function(a, b) {
-      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
-    });
-
-    unimportantResults.sort(function(a, b) {
-      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
-    });
-
-
     // perform the search on the required terms
     for (var i = 0; i < searchterms.length; i++) {
       var word = searchterms[i];
             listItem.slideDown(5, function() {
               displayNextItem();
             });
-          });
+          }, "text");
         } else {
           // no source available, just display title
           Search.output.append(listItem);
       }
     }
     displayNextItem();
+  },
+
+  performObjectSearch : function(object, otherterms) {
+    var filenames = this._index.filenames;
+    var objects = this._index.objects;
+    var objnames = this._index.objnames;
+    var titles = this._index.titles;
+
+    var importantResults = [];
+    var objectResults = [];
+    var unimportantResults = [];
+
+    for (var prefix in objects) {
+      for (var name in objects[prefix]) {
+        var fullname = (prefix ? prefix + '.' : '') + name;
+        if (fullname.toLowerCase().indexOf(object) > -1) {
+          var match = objects[prefix][name];
+          var objname = objnames[match[1]][2];
+          var title = titles[match[0]];
+          // If more than one term searched for, we require other words to be
+          // found in the name/title/description
+          if (otherterms.length > 0) {
+            var haystack = (prefix + ' ' + name + ' ' +
+                            objname + ' ' + title).toLowerCase();
+            var allfound = true;
+            for (var i = 0; i < otherterms.length; i++) {
+              if (haystack.indexOf(otherterms[i]) == -1) {
+                allfound = false;
+                break;
+              }
+            }
+            if (!allfound) {
+              continue;
+            }
+          }
+          var descr = objname + _(', in ') + title;
+          anchor = match[3];
+          if (anchor == '')
+            anchor = fullname;
+          else if (anchor == '-')
+            anchor = objnames[match[1]][1] + '-' + fullname;
+          result = [filenames[match[0]], fullname, '#'+anchor, descr];
+          switch (match[2]) {
+          case 1: objectResults.push(result); break;
+          case 0: importantResults.push(result); break;
+          case 2: unimportantResults.push(result); break;
+          }
+        }
+      }
+    }
+
+    // sort results descending
+    objectResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
+    });
+
+    importantResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
+    });
+
+    unimportantResults.sort(function(a, b) {
+      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
+    });
+
+    return [importantResults, objectResults, unimportantResults]
   }
 }
 
 $(document).ready(function() {
   Search.init();
-});
+});

python-hackathon201011/_static/sidebar.js

  * Once the browser is closed the cookie is deleted and the position
  * reset to the default (expanded).
  *
- * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
  * :license: BSD, see LICENSE for details.
  *
  */
   var sidebar = $('.sphinxsidebar');
   var sidebarwrapper = $('.sphinxsidebarwrapper');
 
+  // for some reason, the document has no sidebar; do not run into errors
+  if (!sidebar.length) return;
+
   // original margin-left of the bodywrapper and width of the sidebar
   // with the sidebar expanded
   var bw_margin_expanded = bodywrapper.css('margin-left');

python-hackathon201011/_static/translations.js

-Documentation.addTranslations({"locale": "ja", "plural_expr": "0", "messages": {"Search Results": "\u691c\u7d22\u7d50\u679c", "Preparing search...": "\u691c\u7d22\u306e\u6e96\u5099\u4e2d...", "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u691c\u7d22\u6761\u4ef6\u306b\u4e00\u81f4\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u691c\u7d22\u3057\u305f\u3044\u8a00\u8449\u3092\u6b63\u3057\u3044\u3064\u3065\u308a\u3067\u5165\u529b\u3057\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u307e\u305f\u3001\u6b63\u3057\u3044\u30ab\u30c6\u30b4\u30ea\u306e\u691c\u7d22\u3092\u884c\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Search finished, found %s page(s) matching the search query.": "\u691c\u7d22\u304c\u7d42\u4e86\u3057\u3001\u6761\u4ef6\u306b\u4e00\u81f4\u3059\u308b\u30da\u30fc\u30b8\u304c %s \u500b\u307f\u3064\u304b\u308a\u307e\u3057\u305f\u3002", ", in ": "", "Expand sidebar": "", "Permalink to this headline": "\u3053\u306e\u30d8\u30c3\u30c9\u30e9\u30a4\u30f3\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Searching": "\u691c\u7d22\u4e2d", "Collapse sidebar": "", "Permalink to this definition": "\u3053\u306e\u5b9a\u7fa9\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Hide Search Matches": "\u691c\u7d22\u7d50\u679c\u3092\u96a0\u3059"}});
+Documentation.addTranslations({"locale": "ja", "plural_expr": "0", "messages": {"Hide Search Matches": "\u691c\u7d22\u7d50\u679c\u3092\u96a0\u3059", "Permalink to this definition": "\u3053\u306e\u5b9a\u7fa9\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Expand sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u5c55\u958b", "Permalink to this headline": "\u3053\u306e\u30d8\u30c3\u30c9\u30e9\u30a4\u30f3\u3078\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af", "Collapse sidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u305f\u305f\u3080"}});

python-hackathon201011/_static/underscore.js

+// Underscore.js 0.5.5
+// (c) 2009 Jeremy Ashkenas, DocumentCloud Inc.
+// Underscore is freely distributable under the terms of the MIT license.
+// Portions of Underscore are inspired by or borrowed from Prototype.js,
+// Oliver Steele's Functional, and John Resig's Micro-Templating.
+// For all details and documentation:
+// http://documentcloud.github.com/underscore/
 (function(){var j=this,n=j._,i=function(a){this._wrapped=a},m=typeof StopIteration!=="undefined"?StopIteration:"__break__",b=j._=function(a){return new i(a)};if(typeof exports!=="undefined")exports._=b;var k=Array.prototype.slice,o=Array.prototype.unshift,p=Object.prototype.toString,q=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;b.VERSION="0.5.5";b.each=function(a,c,d){try{if(a.forEach)a.forEach(c,d);else if(b.isArray(a)||b.isArguments(a))for(var e=0,f=a.length;e<f;e++)c.call(d,
 a[e],e,a);else{var g=b.keys(a);f=g.length;for(e=0;e<f;e++)c.call(d,a[g[e]],g[e],a)}}catch(h){if(h!=m)throw h;}return a};b.map=function(a,c,d){if(a&&b.isFunction(a.map))return a.map(c,d);var e=[];b.each(a,function(f,g,h){e.push(c.call(d,f,g,h))});return e};b.reduce=function(a,c,d,e){if(a&&b.isFunction(a.reduce))return a.reduce(b.bind(d,e),c);b.each(a,function(f,g,h){c=d.call(e,c,f,g,h)});return c};b.reduceRight=function(a,c,d,e){if(a&&b.isFunction(a.reduceRight))return a.reduceRight(b.bind(d,e),c);
 var f=b.clone(b.toArray(a)).reverse();b.each(f,function(g,h){c=d.call(e,c,g,h,a)});return c};b.detect=function(a,c,d){var e;b.each(a,function(f,g,h){if(c.call(d,f,g,h)){e=f;b.breakLoop()}});return e};b.select=function(a,c,d){if(a&&b.isFunction(a.filter))return a.filter(c,d);var e=[];b.each(a,function(f,g,h){c.call(d,f,g,h)&&e.push(f)});return e};b.reject=function(a,c,d){var e=[];b.each(a,function(f,g,h){!c.call(d,f,g,h)&&e.push(f)});return e};b.all=function(a,c,d){c=c||b.identity;if(a&&b.isFunction(a.every))return a.every(c,
Add a comment to this file

python-hackathon201011/_static/up-pressed.png

Added
New image
Add a comment to this file

python-hackathon201011/_static/up.png

Added
New image

python-hackathon201011/_static/websupport.js

+/*
+ * websupport.js
+ * ~~~~~~~~~~~~~
+ *
+ * sphinx.websupport utilties for all documentation.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+(function($) {
+  $.fn.autogrow = function() {
+    return this.each(function() {
+    var textarea = this;
+
+    $.fn.autogrow.resize(textarea);
+
+    $(textarea)
+      .focus(function() {
+        textarea.interval = setInterval(function() {
+          $.fn.autogrow.resize(textarea);
+        }, 500);
+      })
+      .blur(function() {
+        clearInterval(textarea.interval);
+      });
+    });
+  };
+
+  $.fn.autogrow.resize = function(textarea) {
+    var lineHeight = parseInt($(textarea).css('line-height'), 10);
+    var lines = textarea.value.split('\n');
+    var columns = textarea.cols;
+    var lineCount = 0;
+    $.each(lines, function() {
+      lineCount += Math.ceil(this.length / columns) || 1;
+    });
+    var height = lineHeight * (lineCount + 1);
+    $(textarea).css('height', height);
+  };
+})(jQuery);
+
+(function($) {
+  var comp, by;
+
+  function init() {
+    initEvents();
+    initComparator();
+  }
+
+  function initEvents() {
+    $('a.comment-close').live("click", function(event) {
+      event.preventDefault();
+      hide($(this).attr('id').substring(2));
+    });
+    $('a.vote').live("click", function(event) {
+      event.preventDefault();
+      handleVote($(this));
+    });
+    $('a.reply').live("click", function(event) {
+      event.preventDefault();
+      openReply($(this).attr('id').substring(2));
+    });
+    $('a.close-reply').live("click", function(event) {
+      event.preventDefault();
+      closeReply($(this).attr('id').substring(2));
+    });
+    $('a.sort-option').live("click", function(event) {
+      event.preventDefault();
+      handleReSort($(this));
+    });
+    $('a.show-proposal').live("click", function(event) {
+      event.preventDefault();
+      showProposal($(this).attr('id').substring(2));
+    });
+    $('a.hide-proposal').live("click", function(event) {
+      event.preventDefault();
+      hideProposal($(this).attr('id').substring(2));
+    });
+    $('a.show-propose-change').live("click", function(event) {
+      event.preventDefault();
+      showProposeChange($(this).attr('id').substring(2));
+    });
+    $('a.hide-propose-change').live("click", function(event) {
+      event.preventDefault();
+      hideProposeChange($(this).attr('id').substring(2));
+    });
+    $('a.accept-comment').live("click", function(event) {
+      event.preventDefault();
+      acceptComment($(this).attr('id').substring(2));
+    });
+    $('a.delete-comment').live("click", function(event) {
+      event.preventDefault();
+      deleteComment($(this).attr('id').substring(2));
+    });
+    $('a.comment-markup').live("click", function(event) {
+      event.preventDefault();
+      toggleCommentMarkupBox($(this).attr('id').substring(2));
+    });
+  }
+
+  /**
+   * Set comp, which is a comparator function used for sorting and
+   * inserting comments into the list.
+   */
+  function setComparator() {
+    // If the first three letters are "asc", sort in ascending order
+    // and remove the prefix.
+    if (by.substring(0,3) == 'asc') {
+      var i = by.substring(3);
+      comp = function(a, b) { return a[i] - b[i]; };
+    } else {
+      // Otherwise sort in descending order.
+      comp = function(a, b) { return b[by] - a[by]; };
+    }
+
+    // Reset link styles and format the selected sort option.
+    $('a.sel').attr('href', '#').removeClass('sel');
+    $('a.by' + by).removeAttr('href').addClass('sel');
+  }
+
+  /**
+   * Create a comp function. If the user has preferences stored in
+   * the sortBy cookie, use those, otherwise use the default.
+   */
+  function initComparator() {
+    by = 'rating'; // Default to sort by rating.
+    // If the sortBy cookie is set, use that instead.
+    if (document.cookie.length > 0) {
+      var start = document.cookie.indexOf('sortBy=');
+      if (start != -1) {
+        start = start + 7;
+        var end = document.cookie.indexOf(";", start);
+        if (end == -1) {
+          end = document.cookie.length;
+          by = unescape(document.cookie.substring(start, end));
+        }
+      }
+    }
+    setComparator();
+  }
+
+  /**
+   * Show a comment div.
+   */
+  function show(id) {
+    $('#ao' + id).hide();
+    $('#ah' + id).show();
+    var context = $.extend({id: id}, opts);
+    var popup = $(renderTemplate(popupTemplate, context)).hide();
+    popup.find('textarea[name="proposal"]').hide();
+    popup.find('a.by' + by).addClass('sel');
+    var form = popup.find('#cf' + id);
+    form.submit(function(event) {
+      event.preventDefault();
+      addComment(form);
+    });
+    $('#s' + id).after(popup);
+    popup.slideDown('fast', function() {
+      getComments(id);
+    });
+  }
+
+  /**
+   * Hide a comment div.
+   */
+  function hide(id) {
+    $('#ah' + id).hide();
+    $('#ao' + id).show();
+    var div = $('#sc' + id);
+    div.slideUp('fast', function() {
+      div.remove();
+    });
+  }
+
+  /**
+   * Perform an ajax request to get comments for a node
+   * and insert the comments into the comments tree.
+   */
+  function getComments(id) {
+    $.ajax({
+     type: 'GET',
+     url: opts.getCommentsURL,
+     data: {node: id},
+     success: function(data, textStatus, request) {
+       var ul = $('#cl' + id);
+       var speed = 100;
+       $('#cf' + id)
+         .find('textarea[name="proposal"]')
+         .data('source', data.source);
+
+       if (data.comments.length === 0) {
+         ul.html('<li>No comments yet.</li>');
+         ul.data('empty', true);
+       } else {
+         // If there are comments, sort them and put them in the list.
+         var comments = sortComments(data.comments);
+         speed = data.comments.length * 100;
+         appendComments(comments, ul);
+         ul.data('empty', false);
+       }
+       $('#cn' + id).slideUp(speed + 200);
+       ul.slideDown(speed);
+     },
+     error: function(request, textStatus, error) {
+       showError('Oops, there was a problem retrieving the comments.');
+     },
+     dataType: 'json'
+    });
+  }
+
+  /**
+   * Add a comment via ajax and insert the comment into the comment tree.
+   */
+  function addComment(form) {
+    var node_id = form.find('input[name="node"]').val();
+    var parent_id = form.find('input[name="parent"]').val();
+    var text = form.find('textarea[name="comment"]').val();
+    var proposal = form.find('textarea[name="proposal"]').val();
+
+    if (text == '') {
+      showError('Please enter a comment.');
+      return;
+    }
+
+    // Disable the form that is being submitted.
+    form.find('textarea,input').attr('disabled', 'disabled');
+
+    // Send the comment to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.addCommentURL,
+      dataType: 'json',
+      data: {
+        node: node_id,
+        parent: parent_id,
+        text: text,
+        proposal: proposal
+      },
+      success: function(data, textStatus, error) {
+        // Reset the form.
+        if (node_id) {
+          hideProposeChange(node_id);
+        }
+        form.find('textarea')
+          .val('')
+          .add(form.find('input'))
+          .removeAttr('disabled');
+	var ul = $('#cl' + (node_id || parent_id));
+        if (ul.data('empty')) {
+          $(ul).empty();
+          ul.data('empty', false);
+        }
+        insertComment(data.comment);
+        var ao = $('#ao' + node_id);
+        ao.find('img').attr({'src': opts.commentBrightImage});
+        if (node_id) {
+          // if this was a "root" comment, remove the commenting box
+          // (the user can get it back by reopening the comment popup)
+          $('#ca' + node_id).slideUp();
+        }
+      },
+      error: function(request, textStatus, error) {
+        form.find('textarea,input').removeAttr('disabled');
+        showError('Oops, there was a problem adding the comment.');
+      }
+    });
+  }
+
+  /**
+   * Recursively append comments to the main comment list and children
+   * lists, creating the comment tree.
+   */
+  function appendComments(comments, ul) {
+    $.each(comments, function() {
+      var div = createCommentDiv(this);
+      ul.append($(document.createElement('li')).html(div));
+      appendComments(this.children, div.find('ul.comment-children'));
+      // To avoid stagnating data, don't store the comments children in data.
+      this.children = null;
+      div.data('comment', this);
+    });
+  }
+
+  /**
+   * After adding a new comment, it must be inserted in the correct
+   * location in the comment tree.
+   */
+  function insertComment(comment) {
+    var div = createCommentDiv(comment);
+
+    // To avoid stagnating data, don't store the comments children in data.
+    comment.children = null;
+    div.data('comment', comment);
+
+    var ul = $('#cl' + (comment.node || comment.parent));
+    var siblings = getChildren(ul);
+
+    var li = $(document.createElement('li'));
+    li.hide();
+
+    // Determine where in the parents children list to insert this comment.
+    for(i=0; i < siblings.length; i++) {
+      if (comp(comment, siblings[i]) <= 0) {
+        $('#cd' + siblings[i].id)
+          .parent()
+          .before(li.html(div));
+        li.slideDown('fast');
+        return;
+      }
+    }
+
+    // If we get here, this comment rates lower than all the others,
+    // or it is the only comment in the list.
+    ul.append(li.html(div));
+    li.slideDown('fast');
+  }
+
+  function acceptComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.acceptCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        $('#cm' + id).fadeOut('fast');
+        $('#cd' + id).removeClass('moderate');
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem accepting the comment.');
+      }
+    });
+  }
+
+  function deleteComment(id) {
+    $.ajax({
+      type: 'POST',
+      url: opts.deleteCommentURL,
+      data: {id: id},
+      success: function(data, textStatus, request) {
+        var div = $('#cd' + id);
+        if (data == 'delete') {
+          // Moderator mode: remove the comment and all children immediately
+          div.slideUp('fast', function() {
+            div.remove();
+          });
+          return;
+        }
+        // User mode: only mark the comment as deleted
+        div
+          .find('span.user-id:first')
+          .text('[deleted]').end()
+          .find('div.comment-text:first')
+          .text('[deleted]').end()
+          .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id +
+                ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id)
+          .remove();
+        var comment = div.data('comment');
+        comment.username = '[deleted]';
+        comment.text = '[deleted]';
+        div.data('comment', comment);
+      },
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem deleting the comment.');
+      }
+    });
+  }
+
+  function showProposal(id) {
+    $('#sp' + id).hide();
+    $('#hp' + id).show();
+    $('#pr' + id).slideDown('fast');
+  }
+
+  function hideProposal(id) {
+    $('#hp' + id).hide();
+    $('#sp' + id).show();
+    $('#pr' + id).slideUp('fast');
+  }
+
+  function showProposeChange(id) {
+    $('#pc' + id).hide();
+    $('#hc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val(textarea.data('source'));
+    $.fn.autogrow.resize(textarea[0]);
+    textarea.slideDown('fast');
+  }
+
+  function hideProposeChange(id) {
+    $('#hc' + id).hide();
+    $('#pc' + id).show();
+    var textarea = $('#pt' + id);
+    textarea.val('').removeAttr('disabled');
+    textarea.slideUp('fast');
+  }
+
+  function toggleCommentMarkupBox(id) {
+    $('#mb' + id).toggle();
+  }
+
+  /** Handle when the user clicks on a sort by link. */
+  function handleReSort(link) {
+    var classes = link.attr('class').split(/\s+/);
+    for (var i=0; i<classes.length; i++) {
+      if (classes[i] != 'sort-option') {
+	by = classes[i].substring(2);
+      }
+    }
+    setComparator();
+    // Save/update the sortBy cookie.
+    var expiration = new Date();
+    expiration.setDate(expiration.getDate() + 365);
+    document.cookie= 'sortBy=' + escape(by) +
+                     ';expires=' + expiration.toUTCString();
+    $('ul.comment-ul').each(function(index, ul) {
+      var comments = getChildren($(ul), true);
+      comments = sortComments(comments);
+      appendComments(comments, $(ul).empty());
+    });
+  }
+
+  /**
+   * Function to process a vote when a user clicks an arrow.
+   */
+  function handleVote(link) {
+    if (!opts.voting) {
+      showError("You'll need to login to vote.");
+      return;
+    }
+
+    var id = link.attr('id');
+    if (!id) {
+      // Didn't click on one of the voting arrows.
+      return;
+    }
+    // If it is an unvote, the new vote value is 0,
+    // Otherwise it's 1 for an upvote, or -1 for a downvote.
+    var value = 0;
+    if (id.charAt(1) != 'u') {
+      value = id.charAt(0) == 'u' ? 1 : -1;
+    }
+    // The data to be sent to the server.
+    var d = {
+      comment_id: id.substring(2),
+      value: value
+    };
+
+    // Swap the vote and unvote links.
+    link.hide();
+    $('#' + id.charAt(0) + (id.charAt(1) == 'u' ? 'v' : 'u') + d.comment_id)
+      .show();
+
+    // The div the comment is displayed in.
+    var div = $('div#cd' + d.comment_id);
+    var data = div.data('comment');
+
+    // If this is not an unvote, and the other vote arrow has
+    // already been pressed, unpress it.
+    if ((d.value !== 0) && (data.vote === d.value * -1)) {
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'u' + d.comment_id).hide();
+      $('#' + (d.value == 1 ? 'd' : 'u') + 'v' + d.comment_id).show();
+    }
+
+    // Update the comments rating in the local data.
+    data.rating += (data.vote === 0) ? d.value : (d.value - data.vote);
+    data.vote = d.value;
+    div.data('comment', data);
+
+    // Change the rating text.
+    div.find('.rating:first')
+      .text(data.rating + ' point' + (data.rating == 1 ? '' : 's'));
+
+    // Send the vote information to the server.
+    $.ajax({
+      type: "POST",
+      url: opts.processVoteURL,
+      data: d,
+      error: function(request, textStatus, error) {
+        showError('Oops, there was a problem casting that vote.');
+      }
+    });
+  }
+
+  /**
+   * Open a reply form used to reply to an existing comment.
+   */
+  function openReply(id) {
+    // Swap out the reply link for the hide link
+    $('#rl' + id).hide();
+    $('#cr' + id).show();
+
+    // Add the reply li to the children ul.
+    var div = $(renderTemplate(replyTemplate, {id: id})).hide();
+    $('#cl' + id)
+      .prepend(div)
+      // Setup the submit handler for the reply form.
+      .find('#rf' + id)
+      .submit(function(event) {
+        event.preventDefault();
+        addComment($('#rf' + id));
+        closeReply(id);
+      })
+      .find('input[type=button]')
+      .click(function() {
+        closeReply(id);
+      });
+    div.slideDown('fast', function() {
+      $('#rf' + id).find('textarea').focus();
+    });
+  }
+
+  /**
+   * Close the reply form opened with openReply.
+   */
+  function closeReply(id) {
+    // Remove the reply div from the DOM.
+    $('#rd' + id).slideUp('fast', function() {
+      $(this).remove();
+    });
+
+    // Swap out the hide link for the reply link
+    $('#cr' + id).hide();
+    $('#rl' + id).show();
+  }
+
+  /**
+   * Recursively sort a tree of comments using the comp comparator.
+   */
+  function sortComments(comments) {
+    comments.sort(comp);
+    $.each(comments, function() {
+      this.children = sortComments(this.children);
+    });
+    return comments;
+  }
+
+  /**
+   * Get the children comments from a ul. If recursive is true,
+   * recursively include childrens' children.
+   */
+  function getChildren(ul, recursive) {
+    var children = [];
+    ul.children().children("[id^='cd']")
+      .each(function() {
+        var comment = $(this).data('comment');
+        if (recursive)
+          comment.children = getChildren($(this).find('#cl' + comment.id), true);
+        children.push(comment);
+      });
+    return children;
+  }
+
+  /** Create a div to display a comment in. */
+  function createCommentDiv(comment) {
+    if (!comment.displayed && !opts.moderator) {
+      return $('<div class="moderate">Thank you!  Your comment will show up '
+               + 'once it is has been approved by a moderator.</div>');
+    }
+    // Prettify the comment rating.
+    comment.pretty_rating = comment.rating + ' point' +
+      (comment.rating == 1 ? '' : 's');
+    // Make a class (for displaying not yet moderated comments differently)
+    comment.css_class = comment.displayed ? '' : ' moderate';
+    // Create a div for this comment.
+    var context = $.extend({}, opts, comment);
+    var div = $(renderTemplate(commentTemplate, context));
+
+    // If the user has voted on this comment, highlight the correct arrow.
+    if (comment.vote) {
+      var direction = (comment.vote == 1) ? 'u' : 'd';
+      div.find('#' + direction + 'v' + comment.id).hide();
+      div.find('#' + direction + 'u' + comment.id).show();
+    }
+
+    if (opts.moderator || comment.text != '[deleted]') {
+      div.find('a.reply').show();
+      if (comment.proposal_diff)
+        div.find('#sp' + comment.id).show();
+      if (opts.moderator && !comment.displayed)
+        div.find('#cm' + comment.id).show();
+      if (opts.moderator || (opts.username == comment.username))
+        div.find('#dc' + comment.id).show();
+    }
+    return div;
+  }
+
+  /**
+   * A simple template renderer. Placeholders such as <%id%> are replaced
+   * by context['id'] with items being escaped. Placeholders such as <#id#>
+   * are not escaped.
+   */
+  function renderTemplate(template, context) {
+    var esc = $(document.createElement('div'));
+
+    function handle(ph, escape) {
+      var cur = context;
+      $.each(ph.split('.'), function() {
+        cur = cur[this];
+      });
+      return escape ? esc.text(cur || "").html() : cur;
+    }
+
+    return template.replace(/<([%#])([\w\.]*)\1>/g, function() {
+      return handle(arguments[2], arguments[1] == '%' ? true : false);
+    });
+  }
+
+  /** Flash an error message briefly. */
+  function showError(message) {
+    $(document.createElement('div')).attr({'class': 'popup-error'})
+      .append($(document.createElement('div'))
+               .attr({'class': 'error-message'}).text(message))
+      .appendTo('body')
+      .fadeIn("slow")
+      .delay(2000)
+      .fadeOut("slow");
+  }
+
+  /** Add a link the user uses to open the comments popup. */
+  $.fn.comment = function() {
+    return this.each(function() {
+      var id = $(this).attr('id').substring(1);
+      var count = COMMENT_METADATA[id];
+      var title = count + ' comment' + (count == 1 ? '' : 's');
+      var image = count > 0 ? opts.commentBrightImage : opts.commentImage;
+      var addcls = count == 0 ? ' nocomment' : '';
+      $(this)
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-open' + addcls,
+            id: 'ao' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: image,
+              alt: 'comment',
+              title: title
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              show($(this).attr('id').substring(2));
+            })
+        )
+        .append(
+          $(document.createElement('a')).attr({
+            href: '#',
+            'class': 'sphinx-comment-close hidden',
+            id: 'ah' + id
+          })
+            .append($(document.createElement('img')).attr({
+              src: opts.closeCommentImage,
+              alt: 'close',
+              title: 'close'
+            }))
+            .click(function(event) {
+              event.preventDefault();
+              hide($(this).attr('id').substring(2));
+            })
+        );
+    });
+  };
+
+  var opts = {
+    processVoteURL: '/_process_vote',
+    addCommentURL: '/_add_comment',
+    getCommentsURL: '/_get_comments',
+    acceptCommentURL: '/_accept_comment',
+    deleteCommentURL: '/_delete_comment',
+    commentImage: '/static/_static/comment.png',
+    closeCommentImage: '/static/_static/comment-close.png',
+    loadingImage: '/static/_static/ajax-loader.gif',
+    commentBrightImage: '/static/_static/comment-bright.png',
+    upArrow: '/static/_static/up.png',
+    downArrow: '/static/_static/down.png',
+    upArrowPressed: '/static/_static/up-pressed.png',
+    downArrowPressed: '/static/_static/down-pressed.png',
+    voting: false,
+    moderator: false
+  };
+
+  if (typeof COMMENT_OPTIONS != "undefined") {
+    opts = jQuery.extend(opts, COMMENT_OPTIONS);
+  }
+
+  var popupTemplate = '\
+    <div class="sphinx-comments" id="sc<%id%>">\
+      <p class="sort-options">\
+        Sort by:\
+        <a href="#" class="sort-option byrating">best rated</a>\
+        <a href="#" class="sort-option byascage">newest</a>\
+        <a href="#" class="sort-option byage">oldest</a>\
+      </p>\
+      <div class="comment-header">Comments</div>\
+      <div class="comment-loading" id="cn<%id%>">\
+        loading comments... <img src="<%loadingImage%>" alt="" /></div>\
+      <ul id="cl<%id%>" class="comment-ul"></ul>\
+      <div id="ca<%id%>">\
+      <p class="add-a-comment">Add a comment\
+        (<a href="#" class="comment-markup" id="ab<%id%>">markup</a>):</p>\
+      <div class="comment-markup-box" id="mb<%id%>">\
+        reStructured text markup: <i>*emph*</i>, <b>**strong**</b>, \
+        <tt>``code``</tt>, \
+        code blocks: <tt>::</tt> and an indented block after blank line</div>\
+      <form method="post" id="cf<%id%>" class="comment-form" action="">\
+        <textarea name="comment" cols="80"></textarea>\
+        <p class="propose-button">\
+          <a href="#" id="pc<%id%>" class="show-propose-change">\
+            Propose a change &#9657;\
+          </a>\
+          <a href="#" id="hc<%id%>" class="hide-propose-change">\
+            Propose a change &#9663;\
+          </a>\
+        </p>\
+        <textarea name="proposal" id="pt<%id%>" cols="80"\
+                  spellcheck="false"></textarea>\
+        <input type="submit" value="Add comment" />\
+        <input type="hidden" name="node" value="<%id%>" />\
+        <input type="hidden" name="parent" value="" />\
+      </form>\
+      </div>\
+    </div>';
+
+  var commentTemplate = '\
+    <div id="cd<%id%>" class="sphinx-comment<%css_class%>">\
+      <div class="vote">\
+        <div class="arrow">\
+          <a href="#" id="uv<%id%>" class="vote" title="vote up">\
+            <img src="<%upArrow%>" />\
+          </a>\
+          <a href="#" id="uu<%id%>" class="un vote" title="vote up">\
+            <img src="<%upArrowPressed%>" />\
+          </a>\
+        </div>\
+        <div class="arrow">\
+          <a href="#" id="dv<%id%>" class="vote" title="vote down">\
+            <img src="<%downArrow%>" id="da<%id%>" />\
+          </a>\
+          <a href="#" id="du<%id%>" class="un vote" title="vote down">\
+            <img src="<%downArrowPressed%>" />\
+          </a>\
+        </div>\
+      </div>\
+      <div class="comment-content">\
+        <p class="tagline comment">\
+          <span class="user-id"><%username%></span>\
+          <span class="rating"><%pretty_rating%></span>\
+          <span class="delta"><%time.delta%></span>\
+        </p>\
+        <div class="comment-text comment"><#text#></div>\
+        <p class="comment-opts comment">\
+          <a href="#" class="reply hidden" id="rl<%id%>">reply &#9657;</a>\
+          <a href="#" class="close-reply" id="cr<%id%>">reply &#9663;</a>\
+          <a href="#" id="sp<%id%>" class="show-proposal">proposal &#9657;</a>\
+          <a href="#" id="hp<%id%>" class="hide-proposal">proposal &#9663;</a>\
+          <a href="#" id="dc<%id%>" class="delete-comment hidden">delete</a>\
+          <span id="cm<%id%>" class="moderation hidden">\
+            <a href="#" id="ac<%id%>" class="accept-comment">accept</a>\
+          </span>\
+        </p>\
+        <pre class="proposal" id="pr<%id%>">\
+<#proposal_diff#>\
+        </pre>\
+          <ul class="comment-children" id="cl<%id%>"></ul>\
+        </div>\
+        <div class="clearleft"></div>\
+      </div>\
+    </div>';
+
+  var replyTemplate = '\
+    <li>\
+      <div class="reply-div" id="rd<%id%>">\
+        <form id="rf<%id%>">\
+          <textarea name="comment" cols="80"></textarea>\
+          <input type="submit" value="Add reply" />\
+          <input type="button" value="Cancel" />\
+          <input type="hidden" name="parent" value="<%id%>" />\
+          <input type="hidden" name="node" value="" />\
+        </form>\
+      </div>\
+    </li>';
+
+  $(document).ready(function() {
+    init();
+  });
+})(jQuery);
+
+$(document).ready(function() {
+  // add comment anchors for all paragraphs that are commentable
+  $('.sphinx-has-comment').comment();
+
+  // highlight search words in search results
+  $("div.context").each(function() {
+    var params = $.getQueryParameters();
+    var terms = (params.q) ? params.q[0].split(/\s+/) : [];
+    var result = $(this);
+    $.each(terms, function() {
+      result.highlightText(this.toLowerCase(), 'highlighted');
+    });
+  });
+
+  // directly open comment window if requested
+  var anchor = document.location.hash;
+  if (anchor.substring(0, 9) == '#comment-') {
+    $('#ao' + anchor.substring(9)).click();
+    document.location.hash = '#s' + anchor.substring(9);
+  }
+});

python-hackathon201011/genindex.html

+
+
 
 
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
+
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>索引 &mdash; Python Hack-a-thon 2010.11 v1.0 documentation</title>
+    <title>索引 &mdash; Python Hack-a-thon 2010.11 1.0 documentation</title>
+    
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/translations.js"></script>
-    <link rel="top" title="Python Hack-a-thon 2010.11 v1.0 documentation" href="index.html" /> 
+    <link rel="top" title="Python Hack-a-thon 2010.11 1.0 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
         <li class="right" style="margin-right: 10px">
           <a href="#" title="総合索引"
              accesskey="I">索引</a></li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>  
 
           <div class="body">
             
 
-   <h1 id="index">索引</h1>
+<h1 id="index">索引</h1>
 
-   <div class="genindex-jumpbox">
-   
-   </div>
+<div class="genindex-jumpbox">
+ 
+</div>
 
 
           </div>
 <div id="searchbox" style="display: none">
   <h3>クイック検索</h3>
     <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
+      <input type="text" name="q" />
       <input type="submit" value="検索" />
       <input type="hidden" name="check_keywords" value="yes" />
       <input type="hidden" name="area" value="default" />
         <li class="right" style="margin-right: 10px">
           <a href="#" title="総合索引"
              >索引</a></li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>
     <div class="footer">
         &copy; Copyright 2010, Shinya Okano.
-      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.4 で生成しました。
+      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。
     </div>
   </body>
 </html>

python-hackathon201011/index.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
+
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Python Hack-a-thon 2010.11 ハンズオン 初級 &mdash; Python Hack-a-thon 2010.11 v1.0 documentation</title>
+    <title>Python Hack-a-thon 2010.11 ハンズオン 初級 &mdash; Python Hack-a-thon 2010.11 1.0 documentation</title>
+    
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/translations.js"></script>
-    <link rel="top" title="Python Hack-a-thon 2010.11 v1.0 documentation" href="#" />
+    <link rel="top" title="Python Hack-a-thon 2010.11 1.0 documentation" href="#" />
     <link rel="next" title="Pythonのインストール" href="intro.html" /> 
   </head>
   <body>
         <li class="right" >
           <a href="intro.html" title="Pythonのインストール"
              accesskey="N">次へ</a> |</li>
-        <li><a href="#">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="#">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>  
 
 <li class="toctree-l1"><a class="reference internal" href="problem.html">課題</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="problem.html#socket">socketモジュールを使ってネットワーク通信</a></li>
 <li class="toctree-l2"><a class="reference internal" href="problem.html#sqlite3">sqlite3モジュールを使ってデータベース作成</a></li>
-<li class="toctree-l2"><a class="reference internal" href="problem.html#feedparser-twitter-atom">feedparserモジュールでTwitter検索結果のAtomフィードを取得してみる</a></li>
+<li class="toctree-l2"><a class="reference internal" href="problem.html#feedparsertwitteratom">feedparserモジュールでTwitter検索結果のAtomフィードを取得してみる</a></li>
 </ul>
 </li>
 </ul>
 <div id="searchbox" style="display: none">
   <h3>クイック検索</h3>
     <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
+      <input type="text" name="q" />
       <input type="submit" value="検索" />
       <input type="hidden" name="check_keywords" value="yes" />
       <input type="hidden" name="area" value="default" />
         <li class="right" >
           <a href="intro.html" title="Pythonのインストール"
              >次へ</a> |</li>
-        <li><a href="#">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="#">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>
     <div class="footer">
         &copy; Copyright 2010, Shinya Okano.
-      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.4 で生成しました。
+      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。
     </div>
   </body>
 </html>

python-hackathon201011/intro.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
+
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Pythonのインストール &mdash; Python Hack-a-thon 2010.11 v1.0 documentation</title>
+    <title>Pythonのインストール &mdash; Python Hack-a-thon 2010.11 1.0 documentation</title>
+    
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/translations.js"></script>
-    <link rel="top" title="Python Hack-a-thon 2010.11 v1.0 documentation" href="index.html" />
+    <link rel="top" title="Python Hack-a-thon 2010.11 1.0 documentation" href="index.html" />
     <link rel="next" title="課題" href="problem.html" />
     <link rel="prev" title="Python Hack-a-thon 2010.11 ハンズオン 初級" href="index.html" /> 
   </head>
         <li class="right" >
           <a href="index.html" title="Python Hack-a-thon 2010.11 ハンズオン 初級"
              accesskey="P">前へ</a> |</li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>  
 
 <col class="field-name" />
 <col class="field-body" />
 <tbody valign="top">
-<tr class="field"><th class="field-name">入手先:</th><td class="field-body"><a class="reference external" href="http://www.python.org/download/">http://www.python.org/download/</a></td>
+<tr class="field-odd field"><th class="field-name">入手先:</th><td class="field-body"><a class="reference external" href="http://www.python.org/download/">http://www.python.org/download/</a></td>
 </tr>
 </tbody>
 </table>
 <li>環境変数のPathにPythonをインストールしたディレクトリとScriptsディレクトリを追加してください</li>
 </ol>
 <blockquote>
-XPの場合、[マイコンピュータ]のプロパティの[詳細設定]タブの[環境変数]から設定できます。</blockquote>
+<div>XPの場合、[マイコンピュータ]のプロパティの[詳細設定]タブの[環境変数]から設定できます。</div></blockquote>
 </div>
 <div class="section" id="macosx">
 <h2>MacOSXの場合<a class="headerlink" href="#macosx" title="このヘッドラインへのパーマリンク">¶</a></h2>
   File <span class="nb">&quot;&lt;stdin&gt;&quot;</span>, line <span class="m">3</span>
     <span class="k">print</span> <span class="s">&quot;bar&quot;</span>
               <span class="o">^</span>
-<span class="nc">IndentationError</span>: <span class="n-Identifier">unindent does not match any outer indentation level</span>
+<span class="gr">IndentationError</span>: <span class="n">unindent does not match any outer indentation level</span>
 </pre></div>
 </div>
 </div>
 <div id="searchbox" style="display: none">
   <h3>クイック検索</h3>
     <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
+      <input type="text" name="q" />
       <input type="submit" value="検索" />
       <input type="hidden" name="check_keywords" value="yes" />
       <input type="hidden" name="area" value="default" />
         <li class="right" >
           <a href="index.html" title="Python Hack-a-thon 2010.11 ハンズオン 初級"
              >前へ</a> |</li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>
     <div class="footer">
         &copy; Copyright 2010, Shinya Okano.
-      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.4 で生成しました。
+      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。
     </div>
   </body>
 </html>

python-hackathon201011/problem.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
+
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>課題 &mdash; Python Hack-a-thon 2010.11 v1.0 documentation</title>
+    <title>課題 &mdash; Python Hack-a-thon 2010.11 1.0 documentation</title>
+    
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
     <script type="text/javascript" src="_static/underscore.js"></script>
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/translations.js"></script>
-    <link rel="top" title="Python Hack-a-thon 2010.11 v1.0 documentation" href="index.html" />
+    <link rel="top" title="Python Hack-a-thon 2010.11 1.0 documentation" href="index.html" />
     <link rel="prev" title="Pythonのインストール" href="intro.html" /> 
   </head>
   <body>
         <li class="right" >
           <a href="intro.html" title="Pythonのインストール"
              accesskey="P">前へ</a> |</li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>  
 
 <div class="section" id="id3">
 <h3>参考ページ<a class="headerlink" href="#id3" title="このヘッドラインへのパーマリンク">¶</a></h3>
 <ul class="simple">
-<li><a class="reference external" href="http://www.python.jp/doc/release/lib/module-sqlite3.html">http://www.python.jp/doc/release/lib/module-sqlite3.html</a></li>
-<li><a class="reference external" href="http://www.python.jp/doc/release/lib/module-sys.html#l2h-5117">http://www.python.jp/doc/release/lib/module-sys.html#l2h-5117</a></li>
+<li><a class="reference external" href="http://www.python.jp/doc/release/library/sqlite3.html">http://www.python.jp/doc/release/library/sqlite3.html</a></li>
+<li><a class="reference external" href="http://www.python.jp/doc/release/library/sys.html">http://www.python.jp/doc/release/library/sys.html</a></li>
 </ul>
 </div>
 </div>
-<div class="section" id="feedparser-twitter-atom">
-<h2>feedparserモジュールでTwitter検索結果のAtomフィードを取得してみる<a class="headerlink" href="#feedparser-twitter-atom" title="このヘッドラインへのパーマリンク">¶</a></h2>
+<div class="section" id="feedparsertwitteratom">
+<h2>feedparserモジュールでTwitter検索結果のAtomフィードを取得してみる<a class="headerlink" href="#feedparsertwitteratom" title="このヘッドラインへのパーマリンク">¶</a></h2>
 <ol class="arabic simple">
 <li>対象のAtomフィードは <a class="reference external" href="http://search.twitter.com/search.atom?q=%23shibukawa">http://search.twitter.com/search.atom?q=%23shibukawa</a> です。これをfeedparserで取得して発言を一覧表示してみてください。</li>
 </ol>
 <li><a class="reference internal" href="#id3">参考ページ</a></li>
 </ul>
 </li>
-<li><a class="reference internal" href="#feedparser-twitter-atom">feedparserモジュールでTwitter検索結果のAtomフィードを取得してみる</a><ul>
+<li><a class="reference internal" href="#feedparsertwitteratom">feedparserモジュールでTwitter検索結果のAtomフィードを取得してみる</a><ul>
 <li><a class="reference internal" href="#id4">参考ページ</a></li>
 </ul>
 </li>
 <div id="searchbox" style="display: none">
   <h3>クイック検索</h3>
     <form class="search" action="search.html" method="get">
-      <input type="text" name="q" size="18" />
+      <input type="text" name="q" />
       <input type="submit" value="検索" />
       <input type="hidden" name="check_keywords" value="yes" />
       <input type="hidden" name="area" value="default" />
         <li class="right" >
           <a href="intro.html" title="Pythonのインストール"
              >前へ</a> |</li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>
     <div class="footer">
         &copy; Copyright 2010, Shinya Okano.
-      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.4 で生成しました。
+      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。
     </div>
   </body>
 </html>

python-hackathon201011/search.html

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
+
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>検索 &mdash; Python Hack-a-thon 2010.11 v1.0 documentation</title>
+    <title>検索 &mdash; Python Hack-a-thon 2010.11 1.0 documentation</title>
+    
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="_static/translations.js"></script>
     <script type="text/javascript" src="_static/searchtools.js"></script>
-    <link rel="top" title="Python Hack-a-thon 2010.11 v1.0 documentation" href="index.html" />
+    <link rel="top" title="Python Hack-a-thon 2010.11 1.0 documentation" href="index.html" />
   <script type="text/javascript">
     jQuery(function() { Search.loadIndex("searchindex.js"); });
   </script>
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="総合索引"
              accesskey="I">索引</a></li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>  
 
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="総合索引"
              >索引</a></li>
-        <li><a href="index.html">Python Hack-a-thon 2010.11 v1.0 documentation</a> &raquo;</li> 
+        <li><a href="index.html">Python Hack-a-thon 2010.11 1.0 documentation</a> &raquo;</li> 
       </ul>
     </div>
     <div class="footer">
         &copy; Copyright 2010, Shinya Okano.
-      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.4 で生成しました。
+      このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3 で生成しました。
     </div>
   </body>
 </html>

python-hackathon201011/searchindex.js

-Search.setIndex({objects:{},terms:{cde:2,"\u66f8\u304d\u8fbc\u307f":[0,2],"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8":0,x97:2,"\u6587\u6cd5\u3068\u3057\u3066\u610f\u5473\u304c\u3042\u308a\u307e\u3059":2,"\u95a2\u6570\u3084\u5236\u5fa1\u69cb\u9020\u306a\u3069\u3067\u8907\u6570\u306e\u547d\u4ee4\u306e\u307e\u3068\u307e\u308a\u306e\u7bc4\u56f2\u3092\u793a\u3059\u305f\u3081\u306b\u4f7f\u3044\u307e\u3059":2,"macosx\u306e\u5834\u5408":[0,2],"macports\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u308amacpython\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044":2,"\u3068\u5165\u529b\u3057\u3066\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046":2,"\u304b\u3089\u8a2d\u5b9a\u3067\u304d\u307e\u3059":2,code:2,"\u65e5\u672c\u8a9e":2,hack:[0,2],cp932:2,"\u8aad\u307f\u65b9\u3084\u6ce8\u610f\u70b9\u306a\u3069":0,"\u304b\u3089\u5b9f\u884c\u3057\u305f\u7d50\u679c\u3092\u793a\u3057\u307e\u3059":2,"\u5f15\u6570\u304b\u3089\u5165\u529b\u3055\u308c\u305f\u54c1\u540d\u3068\u91d1\u984d\u3092sqlite3\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044":1,"\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306e":2,"\u6587\u306e\u547d\u4ee4\u3092\u5165\u529b\u3057\u3066\u5b9f\u884c\u3057\u3066\u307f\u307e\u3059":2,"\u7570\u306a\u308b\u578b\u306e\u5024\u3067\u3082\u540c\u3058\u30ea\u30b9\u30c8\u306b\u5165\u308c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,outer:2,doe:2,"\u30cf\u30f3\u30ba\u30aa\u30f3":0,"true":2,"\u30de\u30a4\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf":2,"indentationerror\u3068\u306a\u308a\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u52d5\u4f5c\u3057\u307e\u305b\u3093":2,platform:2,add:[1,2],other:2,"python\u3067\u306f\u30a4\u30f3\u30c7\u30f3\u30c8\u306f":2,"xp\u306e\u5834\u5408":2,"python\u306e\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u305f\u3081\u306e\u30c4\u30fc\u30eb\u306e\u4e00\u7a2e\u3067\u3059":2,els:2,"\u6587\u5b57\u5217\u306fascii\u306e\u30d0\u30a4\u30c8\u5217\u304bunicode\u3067\u6587\u5b57\u5217\u3067\u6587\u5b57\u5217\u3092\u6271\u3044\u307e\u3059":2,modul:1,match:2,"\u6761\u4ef6\u5206\u5c90":[0,2],"\u691c\u7d22\u30da\u30fc\u30b8":0,"\u30cf\u30a4\u30d5\u30f3\u306f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u3067\u306f\u30de\u30a4\u30ca\u30b9\u3068\u3057\u3066\u89e3\u91c8\u3055\u308c\u3066\u3057\u307e\u3046\u305f\u3081":2,"\u3068\u3057\u307e\u3059":0,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u884c\u3063\u3066\u304f\u3060\u3055\u3044":1,"\u53c2\u8003\u8cc7\u6599\u3068\u3057\u3066\u8aad\u3093\u3067\u304f\u3060\u3055\u3044":0,python:[0,1,2],"\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u5185\u3067\u306e\u6271\u3044\u304c\u7570\u306a\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044":2,"\u30bf\u30fc\u30df\u30ca\u30eb":2,pypi:[0,2],repr:2,"\u6700\u521d\u304b\u3089python\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u307e\u3059":2,"\u30e6\u30cb\u30b3\u30fc\u30c9":[0,2],sqlite3:1,xe6:2,"\u3063\u3066\u6642\u306f\u9060\u616e\u306a\u304f\u8b1b\u5e2b\u306e\u4eba\u306b\u8cea\u554f\u3057\u3066\u304f\u3060\u3055\u3044":0,x9e:2,"\u30af\u30e9\u30b9":[0,2],"unicode\u6587\u5b57\u5217\u3067\u306f1\u6587\u5b57\u306f2\u30d0\u30a4\u30c8\u3067\u8868\u73fe\u3057\u307e\u3059":2,"5\u4ee5\u4e0a\u3067\u3042\u308c\u3070":2,world:[0,2],"\u3082\u3061\u308d\u3093\u3053\u308c\u4ee5\u5916\u306b\u81ea\u5206\u3067\u8ab2\u984c\u3092\u6301\u3063\u3066\u3044\u308b\u306a\u3089\u3070":1,"\u8a73\u7d30\u8a2d\u5b9a":2,"\u7e70\u308a\u8fd4\u3057":[0,2],bigger:2,python2:2,"\u5024\u304c\u306a\u3044\u3053\u3068\u3092\u8868\u3059\u3068\u304d\u306b\u4f7f\u3044\u307e\u3059":2,"\u30ea\u30f3\u30b4":1,bar:2,"\u6587\u5b57\u30b3\u30fc\u30c9":[0,2],"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u306f\u305f\u304f\u3055\u3093\u306e\u60c5\u5831\u304c\u3042\u308a\u307e\u3059":0,level:2,"ubuntu\u306e\u5834\u5408":[0,2],"\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u306f":0,hello:[0,2],"\u30df\u30ab\u30f3":1,"\u3068\u3044\u3046\u540d\u524d\u3067\u4fdd\u5b58\u3057\u307e\u3059":2,"try":1,"\u65e5\u672c\u8a9e\u306a\u3069\u306e\u6587\u5b57\u306e\u7a2e\u985e\u304c\u591a\u3044\u8a00\u8a9e\u3092\u6271\u3046\u5834\u5408\u306f\u305d\u308c\u3067\u306f\u8db3\u308a\u307e\u305b\u3093":2,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u306b\u65e5\u672c\u8a9e\u3092\u8a18\u8ff0\u3059\u308b\u5834\u5408\u306f":2,sample1:2,"\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092":2,"\u3053\u306e\u8cc7\u6599\u306f":0,output:2,unicod:[0,2],"\u3067\u4f5c\u6210\u3057\u305f\u30b5\u30fc\u30d0\u306b\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3057\u3066":1,"3\u30d0\u30a4\u30c8\u7a0b\u5ea6\u3067\u8868\u73fe\u3057\u307e\u3059":2,"a\u306e\u5185\u90e8\u8868\u73fe":2,"wikipedia\u306a\u3069\u3067\u6587\u5b57\u30b3\u30fc\u30c9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8f09\u3063\u3066\u3044\u308b\u306e\u3067":2,"x\u3067\u306f":2,www:[1,2],"python\u3067\u306f\u65e5\u672c\u8a9e\u306e\u6587\u5b57\u5217\u3082\u6271\u3048\u307e\u3059":2,"\u771f\u507d\u5024":[0,2],"50\u5186":1,l2h:1,twitter:1,"\u9806\u5e8f\u3092\u3082\u3063\u305f\u5024\u306e\u96c6\u5408\u3067\u3059":2,xa5:2,"\u6f14\u7b97\u5b50":[0,2],"\u8cc7\u6599\u306b\u9593\u9055\u3044\u304c\u3042\u308b\u53ef\u80fd\u6027\u3082\u3042\u308b\u306e\u3067":0,connect:1,"\u30bf\u30d7\u30eb":[0,2],download:2,"windows\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306f":2,"\u3068\u3044\u3046\u6587\u5b57\u30b3\u30fc\u30c9\u3082\u6271\u3046\u3053\u3068\u306b\u306a\u308b\u306e\u3067\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044":2,indentationerror:2,"telnet\u30b3\u30de\u30f3\u30c9\u3067\u6b21\u306e\u3088\u3046\u306b":1,index:[0,2],win32:2,abc:2,"\u3068\u3044\u3046\u6587\u5b57\u5217\u304c\u8868\u793a\u3055\u308c\u308c\u3070":2,"\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3067\u304d\u308b\u96c6\u5408\u3067\u3059":2,"\u5165\u624b\u5148":2,u65e5:2,feedpars:1,"1\u30d0\u30a4\u30c8\u5358\u4f4d\u3067\u30c7\u30fc\u30bf\u3092\u6271\u3046\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u306e\u5834\u5408":2,"\u30bf\u30d6\u306e":2,"\u30e2\u30b8\u30e5\u30fc\u30eb":[0,2],"\u30d5\u30a1\u30a4\u30eb\u3092\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u3057\u3066\u6271\u3046\u5834\u5408":2,"feedparser\u30e2\u30b8\u30e5\u30fc\u30eb\u3067twitter\u691c\u7d22\u7d50\u679c\u306eatom\u30d5\u30a3\u30fc\u30c9\u3092\u53d6\u5f97\u3057\u3066\u307f\u308b":[0,1],"sqlite3\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u4f5c\u6210":[0,1],"\u53c2\u8003\u30da\u30fc\u30b8":1,print:2,condit:2,"0x00cc0c30":2,foo:2,localhost:1,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u306e\u30a4\u30f3\u30c7\u30f3\u30c8\u306b\u554f\u984c\u304c\u3042\u308b\u5834\u5408":2,u8a9:2,"\u306e\u3088\u3046\u306b\u9001\u4fe1\u3059\u308b\u3068\u8db3\u3057\u7b97\u306e\u7d50\u679c\u3092\u8fd4\u3059\u30b5\u30fc\u30d0\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044":1,"socket\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3063\u3066":1,"\u306a\u3069\u306f\u4f7f\u3048\u307e\u305b\u3093":2,"8\u30a8\u30f3\u30b3\u30fc\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089\u5b9f\u884c\u3057\u305f\u7d50\u679c\u3092\u793a\u3057\u307e\u3059":2,len:2,"\u30d5\u30a1\u30a4\u30eb\u306e\u5148\u982d\u306e\u884c\u306b":2,"python\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":[0,2],escap:1,"\u65e5\u672c\u8a9e\u306f\u4f55\u30d0\u30a4\u30c8\u304b\u306e\u30c7\u30fc\u30bf\u5217\u3067\u6587\u5b57\u3092\u8868\u73fe\u3057\u307e\u3059":2,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u306b":2,releas:1,org:[0,1,2],"\u8868\u73fe\u306e\u7a2e\u985e\u306f\u6b74\u53f2\u7684\u306a\u4e8b\u60c5\u3082\u3042\u3063\u3066":2,"\u30b3\u30de\u30f3\u30c9\u304c\u4f7f\u3048\u307e\u3059":2,search:1,xac:2,indent:2,"\u6700\u8fd1\u306futf":2,"\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044":0,"bitbucket\u306e\u516c\u958b\u5834\u6240\u304b\u3089\u5165\u624b\u3057\u3066\u304f\u3060\u3055\u3044":0,"\u9762\u767d\u305d\u3046\u3060\u3068\u601d\u3063\u305f\u8ab2\u984c\u306b\u30c1\u30e3\u30ec\u30f3\u30b8\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":1,"\u8aad\u307f\u8fbc\u307e\u305b\u3066\u5b9f\u884c\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,"\u5bfe\u8c61\u306eatom\u30d5\u30a3\u30fc\u30c9\u306f":1,"\u305d\u308c\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3":2,"\u81ea\u5206\u3067\u30d3\u30eb\u30c9\u3057\u305f\u3044\u65b9\u306f":0,"\u30c7\u30fc\u30bf\u3092\u518d\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u540d\u524d\u3092\u4ed8\u3051\u3066\u4fdd\u6301\u3057\u3066\u304a\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,"2\u30d0\u30a4\u30c8\u6587\u5b57":2,com:1,"\u8f9e\u66f8\u306e\u30ad\u30fc\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,comment:2,wikipedia:2,"\u30ea\u30b9\u30c8\u3068\u540c\u69d8\u306b\u6dfb\u3048\u5b57\u3067\u5024\u3092\u53d6\u308a\u51fa\u305b\u307e\u3059":2,"\u3067\u4f7f\u7528\u3055\u308c\u305f\u8cc7\u6599\u3067\u3059":0,"\u30ce\u30fc\u30c8":[1,2],"\u8868\u793a\u3055\u308c\u307e\u3057\u305f\u304b":2,"\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u5bfe\u8a71\u30e2\u30fc\u30c9\u3067\u5165\u529b\u3059\u308b\u5834\u5408\u3068":2,encod:2,easy_instal:2,"\u4e0d\u660e\u70b9\u306f\u8cea\u554f\u3059\u308b\u306a\u3069\u3057\u3066\u304f\u3060\u3055\u3044":0,"\u4e00\u3064\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u8907\u6570\u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3067\u69cb\u6210\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059":2,"\u6587\u5b57\u5217":[0,2],"\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u66f8\u304d\u3059\u308b":2,inputdb:1,"\u6587\u5b57\u30b3\u30fc\u30c9\u306e\u4e00\u7a2e\u3067\u3059":2,"\u30b7\u30f3\u30b0\u30eb\u30af\u30a9\u30fc\u30c8\u3068\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c8\u3067\u610f\u5473\u306e\u9055\u3044\u306f\u3042\u308a\u307e\u305b\u3093":2,"import":2,txt:2,open:2,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u6587\u5b57\u30b3\u30fc\u30c9\u65b9\u5f0f":2,"\u5236\u5fa1\u69cb\u9020":[0,2],"6\u3092\u524d\u63d0\u306b\u66f8\u3044\u3066\u3044\u307e\u3059":0,thon:[0,2],"\u3054\u81ea\u7531\u306b\u3069\u3046\u305e":0,"\u3053\u306e\u8cc7\u6599\u306b\u6cbf\u3063\u3066\u3084\u3089\u306a\u3044\u3068\u3044\u3051\u306a\u3044\u3063\u3066\u3053\u3068\u306f\u306a\u3044\u3067\u3059":0,"\u524d\u56de\u306epython":0,"\u4f8b\u5916\u3082\u3042\u308a\u307e\u3059":2,"\u306e\u3088\u3046\u306b\u30d5\u30a1\u30a4\u30eb\u306e\u6587\u5b57\u30b3\u30fc\u30c9\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059":2,"\u306f\u307e\u308a\u3084\u3059\u3044\u30dd\u30a4\u30f3\u30c8\u306a\u306e\u3067":2,"\u6dfb\u3048\u5b57\u306b\u6587\u5b57\u5217\u3084\u6570\u5024":2,name:2,"\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u306e\u30e2\u30b8\u30e5\u30fc\u30eb":[0,2],"\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\u306b\u306f\u30cf\u30a4\u30d5\u30f3\u306f\u4f7f\u308f\u306a\u3044\u307b\u3046\u304c\u3088\u3044\u3067\u3059":2,"\u3053\u306e\u4f8b\u306fwindows\u3067\u3082\u6b63\u5e38\u306b\u8868\u793a\u3055\u308c\u307e\u3059":2,read:2,xaa:2,calc:1,"1\u6587\u5b57\u306f1":2,"function":2,"\u8208\u5473\u306e\u3042\u308b\u65b9\u306f\u8abf\u3079\u3066\u307f\u3066\u304f\u3060\u3055\u3044":2,"\u306e\u3088\u3046\u306b\u66f8\u304f\u3068":2,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u518d\u5229\u7528\u3068\u30e2\u30b8\u30e5\u30fc\u30eb":[0,2],"\u306a\u3069\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059":2,"11\u306epython\u30cf\u30f3\u30ba\u30aa\u30f3\u521d\u7d1a\u5411\u3051\u306e\u8cc7\u6599\u3067\u3059":0,"python\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u307e\u3059":2,setuptool:[0,2],telnet:1,ani:2,"\u3053\u306e\u4f8b\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u6587\u5b57\u5316\u3051\u3057\u307e\u3059":2,"windows\u306e\u5834\u5408\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u3067\u306e\u6587\u5b57\u30b3\u30fc\u30c9\u304ccp932\u306b\u306a\u308b\u306e\u3067":2,func:2,atom:1,shiftji:2,line:2,"\u30b9\u30e9\u30a4\u30b9":[0,2],"\u3092\u8d77\u52d5\u3057\u3066":2,than:2,tokibito:[0,2],"ascii\u30d0\u30a4\u30c8\u5217\u3067\u306f":2,unind:2,none:[0,2],"\u6163\u308c\u308b\u307e\u3067\u306f\u907f\u3051\u3066\u304a\u304f\u306e\u304c\u7121\u96e3\u304b\u3082\u3057\u308c\u307e\u305b\u3093":2,"\u304b\u3089python\u3092\u8d77\u52d5\u3059\u308b\u3068\u304d\u306b":2,elif:2,"python\u3067\u306f\u30ea\u30b9\u30c8\u306b\u5bfe\u3057\u3066\u7bc4\u56f2\u3092\u6307\u5b9a\u3057\u3066\u65b0\u3057\u3044\u30ea\u30b9\u30c8\u3068\u3057\u3066\u5207\u308a\u51fa\u3057\u305f\u308a\u3067\u304d\u307e\u3059":2,sample2:2,"\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3046\u3068":2,"23shibukawa":1,"python\u304c\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5b9f\u884c\u3067\u304d\u308b\u72b6\u614b\u306b\u306a\u3063\u3066\u3044\u307e\u3059":2,charact:1,listdb:1,"thon\u306e\u30cf\u30f3\u30ba\u30aa\u30f3":0,"\u5b9f\u884c\u3059\u308b\u306b\u306f":2,"\u5bfe\u8a71\u30e2\u30fc\u30c9\u3067\u306e\u65e5\u672c\u8a9e\u5165\u529b\u306f":2,utf:2,"\u3044\u304f\u3064\u3082\u5b58\u5728\u3057\u307e\u3059":2,"socket\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u8db3\u3057\u7b97\u3092\u884c\u3046\u30b5\u30fc\u30d0\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044":1,def:2,abcd:2,"\u30df\u30ab\u30f3\u306f3\u500b\u3067150\u5186\u3067\u3059":1,sai:2,"\u6587\u5b57\u5217\u306f\u30b7\u30f3\u30b0\u30eb\u30af\u30a9\u30fc\u30c8\u304b\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c8\u3067\u56f2\u307f\u307e\u3059":2,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304a\u304f\u3068":2,"\u8ab2\u984c\u306f\u9806\u756a\u306b\u3053\u306a\u3059\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093":1,"\u5f15\u6570\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u307e\u3059":2,"\u7d50\u679c\u3092\u53d6\u5f97\u3057\u3066\u753b\u9762\u306b\u8868\u793a\u3057\u3066\u304f\u3060\u3055\u3044":1,"\u3053\u306e\u8cc7\u6599\u306b\u3064\u3044\u3066":0,"\u65e5\u672c\u8a9e\u306e\u6271\u3044":[0,2],"\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059":[],"\u5024\u3092\u5909\u66f4\u3067\u304d\u306a\u3044\u96c6\u5408\u3067\u3059":2,indic:0,"8\u3068\u3044\u3046\u6587\u5b57\u30b3\u30fc\u30c9\u3067\u6271\u3048\u3070\u5927\u62b5\u554f\u984c\u306f\u306a\u3044\u306e\u3067":2,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u3092\u4f7f\u7528\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059":2,"8\u30a8\u30f3\u30b3\u30fc\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u30bf\u30fc\u30df\u30ca\u30eb":2,"feedparser\u306f\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u30e2\u30b8\u30e5\u30fc\u30eb\u306a\u306e\u3067":1,file:2,tabl:0,close:2,"\u3068\u3044\u3046\u6587\u5b57\u5217\u3092\u753b\u9762\u306b\u51fa\u529b\u3059\u308b":2,"python\u3067\u306f\u5916\u90e8\u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb":2,"__init__":2,"socket\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u901a\u4fe1":[0,1],packag:[0,2],write:2,abcdef:2,"0\u304b\u3089\u59cb\u307e\u308b\u6dfb\u3048\u5b57\u3092\u4f7f\u3063\u3066\u30ea\u30b9\u30c8\u4e2d\u306e\u5024\u3092\u53d6\u308a\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,"\u307e\u305f\u306f\u6700\u65b0\u7248\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u306f":2,lib:1,"\u3082\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044":2,u672c:2,"\u3053\u306e\u540d\u524d\u3092\u899a\u3048\u3066\u304a\u3051\u3070\u3088\u3044\u3067\u3057\u3087\u3046":2,self:2,"1\u3067\u4f5c\u6210\u3057\u305f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u5185\u5bb9\u3092\u4e00\u89a7\u8868\u793a\u3057\u3066\u304f\u3060\u3055\u3044":1,abcefg:2,"\u30b3\u30e1\u30f3\u30c8":[0,2],"\u3053\u3093\u306b\u3061\u306f":2,fals:2,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u82f1\u6570\u3068":2,html:1,"while":2,"\u30ea\u30b9\u30c8":[0,2],"\u5927\u304d\u306a\u9055\u3044\u306f\u6587\u5b57\u306e\u9577\u3055\u30681\u6587\u5b57\u3042\u305f\u308a\u306e\u3068\u4f7f\u7528\u30d0\u30a4\u30c8\u6570\u306e\u6271\u3044\u3067\u3059":2,"100\u5186":1,test:2,"\u305d\u306e\u4ed6\u53c2\u8003\u8cc7\u6599":0,hackathon201011:0,"\u305d\u308c\u3092\u3084\u3063\u3066\u307f\u308b\u306e\u3082\u826f\u3044\u3067\u3057\u3087\u3046":1,"\u3055\u307e\u3056\u307e\u306a\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u308b\u30da\u30fc\u30b8\u3067\u3059":2,efg:2,xe8:2,aodag:0,"python\u3067\u306f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u5165\u529b\u3057\u3066":2,"\u30c7\u30fc\u30bf\u578b":[0,2],http:[0,1,2],"\u8aad\u307f\u8fbc\u307f":[0,2],"\u304b\u3089\u884c\u672b\u307e\u3067\u306e\u6587\u5b57\u5217\u306f\u30b3\u30e1\u30f3\u30c8\u3068\u3057\u3066\u6271\u308f\u308c\u307e\u3059":2,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u3064\u3044\u3066\u306fgoogle\u3067\u691c\u7d22\u3059\u308c\u3070\u3053\u3068\u8db3\u308a\u308b\u3068\u601d\u3046\u306e\u3067":2,"\u82f1\u6570\u3060\u3051\u306a\u30891\u30d0\u30a4\u30c8\u3067\u3059\u3079\u3066\u306e\u6587\u5b57\u3092\u8868\u305b\u307e\u3059":2,"return":2,"\u3046\u307e\u304f\u52d5\u304b\u306a\u3044":0,osx10:2,"class":2,rang:2,socket:1,"\u3053\u308c\u3092feedparser\u3067\u53d6\u5f97\u3057\u3066\u767a\u8a00\u3092\u4e00\u89a7\u8868\u793a\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":1,"\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8":2,"python\u306e\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u62e1\u5f35\u5b50\u306f":2,"\u6587\u5b57\u30b3\u30fc\u30c9\u306b\u3088\u3063\u3066\u4f7f\u7528\u3059\u308b\u30d0\u30a4\u30c8\u6570\u3084\u6587\u5b57\u8868\u73fe\u304c\u5909\u308f\u308a\u307e\u3059":2,"\u30cf\u30a4\u30d5\u30f3":2,debian02:1,"python\u304c\u5bfe\u8a71\u30e2\u30fc\u30c9\u3067\u8d77\u52d5\u3057\u307e\u3059":2,nhello:2,bitbucket:0,ababab:2,"\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u66f8\u304d":[0,2],"\u8aad\u307f\u307e\u3057\u3087\u3046":0,doc:1,"\u5f15\u6570\u3092\u6e21\u3057\u3066\u5b9f\u884c\u3092\u884c\u3046\u3068\u7d50\u679c\u3092\u8fd4\u3057\u3066\u304f\u308c\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044":1,stdin:2,"\u6587\u5b57\u5217\u306b\u5bfe\u3057\u3066\u3082\u30b9\u30e9\u30a4\u30b9\u306f\u4f7f\u3048\u307e\u3059":2,object:2,"\u74b0\u5883\u5909\u6570\u306epath\u306bpython\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068scripts\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044":2,person:2,"\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2":2,x9c:2,"\u306b\u66f8\u304b\u308c\u305f\u95a2\u6570\u306a\u3069\u3092\u8aad\u307f\u8fbc\u3093\u3067\u4f7f\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,"\u3042\u307e\u308a\u8a73\u3057\u3044\u8aac\u660e\u306f\u3053\u3053\u3067\u306f\u3057\u307e\u305b\u3093":2,"pypi\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u7c21\u5358\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059":2,"\u5f15\u6570\u304b\u3089\u5165\u529b\u3055\u308c\u305f\u54c1\u540d\u3068\u500b\u6570\u3067\u5408\u8a08\u91d1\u984d\u3092\u8868\u793a\u3057\u3066\u304f\u3060\u3055\u3044":1,easy_intal:2,"\u30a4\u30f3\u30c7\u30f3\u30c8":[0,2],"\u74b0\u5883\u5909\u6570":2,"\u3057\u304b\u3057":2,"windows\u306e\u5834\u5408":[0,2]},objtypes:{},titles:["Python Hack-a-thon 2010.11 \u30cf\u30f3\u30ba\u30aa\u30f3 \u521d\u7d1a","\u8ab2\u984c","Python\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb"],objnames:{},filenames:["index","problem","intro"]})
+Search.setIndex({objects:{},terms:{":-":2,"\u6587\u6cd5":2,":/":[0,1,2]," f":2,func:2,cde:2," i":2,": ":[0,2],"\u5927\u62b5":2," indentation":2,"\u5408\u8a08":1," a":2,"::":2,"\u6761\u4ef6":[0,2]," x":2," y":2,"\u3042\u307e\u308a":2,"-a":[0,2],":\n":2,"\u30cf\u30f3\u30ba\u30aa\u30f3":0,"\u4e00\u7a2e":2,"\u901a\u4fe1":[0,1],"\u3067\u3059":[0,1,2],".write":2,init:2,feedparser:[0,1],".twitter":1,"\u3067\u304f":0," [":2,"\u3067\u304d":2,"/search":1," _":2,".name":2,"\u30e9\u30a4\u30bb\u30f3\u30b9":0," \"":2,"  ":2," '":[1,2]," %":2," *":2," +":2," (":[0,2],"\u9060\u616e":0," /":2," -":2," 3":2,"\u6b63\u5e38":2," 6":2," 4":2," 5":2,"/tokibito":0," >":2,"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb":[0,1,2]," <":2," =":2,"\u52d5\u4f5c":2,False:2,"\u3068\u3057\u3066":[0,2],"\u8208\u5473":2,"-hackathon":0,":]":2,"\u5909\u308f\u308a":2,"\u7c21\u5358":2,"\u771f\u507d\u5024":[0,2]," u":2,"\u8003\u8cc7":0,None:[0,2],"\u6f14\u7b97\u5b50":[0,2],".py":[1,2],"\u30bf\u30d7\u30eb":[0,2],"\u6dfb\u3048":2,"@tokibito":0,"  a":2,abc:2,"\u5165\u624b\u5148":2,"\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9":[0,2],"\u6cbf\u3063":0,"\u30dd\u30a4\u30f3\u30c8":2,"\u6700\u65b0":2,"\u8aad\u30