From e8dd7af92a3ff7753ec9b935e089b91b7e062746 Mon Sep 17 00:00:00 2001 From: Jeff Knupp Date: Sun, 11 Aug 2013 15:26:23 -0400 Subject: [PATCH] update docs --- docs/Makefile | 177 ++++ docs/_build/doctrees/environment.pickle | Bin 0 -> 8327 bytes docs/_build/doctrees/index.doctree | Bin 0 -> 5492 bytes docs/_build/doctrees/sandman.doctree | Bin 0 -> 8088 bytes docs/_build/doctrees/sandman.test.doctree | Bin 0 -> 4825 bytes docs/_build/html/.buildinfo | 4 + docs/_build/html/_sources/index.txt | 23 + docs/_build/html/_sources/sandman.test.txt | 19 + docs/_build/html/_sources/sandman.txt | 42 + docs/_build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes docs/_build/html/_static/basic.css | 540 ++++++++++++ docs/_build/html/_static/comment-bright.png | Bin 0 -> 3500 bytes docs/_build/html/_static/comment-close.png | Bin 0 -> 3578 bytes docs/_build/html/_static/comment.png | Bin 0 -> 3445 bytes docs/_build/html/_static/default.css | 256 ++++++ docs/_build/html/_static/doctools.js | 235 +++++ docs/_build/html/_static/down-pressed.png | Bin 0 -> 368 bytes docs/_build/html/_static/down.png | Bin 0 -> 363 bytes docs/_build/html/_static/file.png | Bin 0 -> 392 bytes docs/_build/html/_static/jquery.js | 4 + docs/_build/html/_static/minus.png | Bin 0 -> 199 bytes docs/_build/html/_static/plus.png | Bin 0 -> 199 bytes docs/_build/html/_static/pygments.css | 62 ++ docs/_build/html/_static/searchtools.js | 622 ++++++++++++++ docs/_build/html/_static/sidebar.js | 159 ++++ docs/_build/html/_static/underscore.js | 31 + docs/_build/html/_static/up-pressed.png | Bin 0 -> 372 bytes docs/_build/html/_static/up.png | Bin 0 -> 363 bytes docs/_build/html/_static/websupport.js | 808 ++++++++++++++++++ docs/_build/html/genindex.html | 92 ++ docs/_build/html/index.html | 136 +++ docs/_build/html/objects.inv | Bin 0 -> 200 bytes docs/_build/html/sandman.html | 148 ++++ docs/_build/html/sandman.test.html | 118 +++ docs/_build/html/search.html | 99 +++ docs/_build/html/searchindex.js | 1 + docs/generated/.doctrees/environment.pickle | Bin 28610 -> 46247 bytes docs/generated/.doctrees/index.doctree | Bin 5563 -> 5557 bytes docs/generated/.doctrees/installation.doctree | Bin 3877 -> 3871 bytes docs/generated/.doctrees/modules.doctree | Bin 2819 -> 2811 bytes docs/generated/.doctrees/quickstart.doctree | Bin 5355 -> 5349 bytes docs/generated/.doctrees/sandman.doctree | Bin 81341 -> 81288 bytes docs/generated/.doctrees/sandman.test.doctree | Bin 0 -> 47299 bytes docs/generated/_modules/index.html | 11 +- .../generated/_modules/sandman/exception.html | 10 +- docs/generated/_modules/sandman/model.html | 10 +- docs/generated/_modules/sandman/sandman.html | 12 +- .../_modules/sandman/test/test_sandman.html | 285 ++++++ docs/generated/_sources/sandman.test.txt | 19 + docs/generated/_static/default.css | 256 ++++++ docs/generated/_static/sidebar.js | 159 ++++ docs/generated/genindex.html | 156 +++- docs/generated/index.html | 10 +- docs/generated/installation.html | 10 +- docs/generated/modules.html | 10 +- docs/generated/objects.inv | Bin 440 -> 749 bytes docs/generated/py-modindex.html | 15 +- docs/generated/quickstart.html | 10 +- docs/generated/sandman.html | 10 +- docs/generated/sandman.test.html | 262 ++++++ docs/generated/search.html | 10 +- docs/generated/searchindex.js | 2 +- docs/make.bat | 242 ++++++ docs/sandman.test.rst | 19 + 64 files changed, 5031 insertions(+), 63 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/_build/doctrees/environment.pickle create mode 100644 docs/_build/doctrees/index.doctree create mode 100644 docs/_build/doctrees/sandman.doctree create mode 100644 docs/_build/doctrees/sandman.test.doctree create mode 100644 docs/_build/html/.buildinfo create mode 100644 docs/_build/html/_sources/index.txt create mode 100644 docs/_build/html/_sources/sandman.test.txt create mode 100644 docs/_build/html/_sources/sandman.txt create mode 100644 docs/_build/html/_static/ajax-loader.gif create mode 100644 docs/_build/html/_static/basic.css create mode 100644 docs/_build/html/_static/comment-bright.png create mode 100644 docs/_build/html/_static/comment-close.png create mode 100644 docs/_build/html/_static/comment.png create mode 100644 docs/_build/html/_static/default.css create mode 100644 docs/_build/html/_static/doctools.js create mode 100644 docs/_build/html/_static/down-pressed.png create mode 100644 docs/_build/html/_static/down.png create mode 100644 docs/_build/html/_static/file.png create mode 100644 docs/_build/html/_static/jquery.js create mode 100644 docs/_build/html/_static/minus.png create mode 100644 docs/_build/html/_static/plus.png create mode 100644 docs/_build/html/_static/pygments.css create mode 100644 docs/_build/html/_static/searchtools.js create mode 100644 docs/_build/html/_static/sidebar.js create mode 100644 docs/_build/html/_static/underscore.js create mode 100644 docs/_build/html/_static/up-pressed.png create mode 100644 docs/_build/html/_static/up.png create mode 100644 docs/_build/html/_static/websupport.js create mode 100644 docs/_build/html/genindex.html create mode 100644 docs/_build/html/index.html create mode 100644 docs/_build/html/objects.inv create mode 100644 docs/_build/html/sandman.html create mode 100644 docs/_build/html/sandman.test.html create mode 100644 docs/_build/html/search.html create mode 100644 docs/_build/html/searchindex.js create mode 100644 docs/generated/.doctrees/sandman.test.doctree create mode 100644 docs/generated/_modules/sandman/test/test_sandman.html create mode 100644 docs/generated/_sources/sandman.test.txt create mode 100644 docs/generated/_static/default.css create mode 100644 docs/generated/_static/sidebar.js create mode 100644 docs/generated/sandman.test.html create mode 100644 docs/make.bat create mode 100644 docs/sandman.test.rst diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..4dbcec4 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,177 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/sandman.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/sandman.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/sandman" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/sandman" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..62aa74faf9e55deecf2d9963afea0f7c00d681f3 GIT binary patch literal 8327 zcmb7Jd4L>6x!)XnO*Xq(NB~`d!2y}T9$YG*pb0q)Yc{x{$SRC&PfyQOPkOtjs=Je2 z*b<^{NWAa+z7@|H4?GaX18+f40r9}wclh4(J$dhW{=TZ7*_oYP0`tdI)mPtD-}lwm zUsc_(GVeq+?gcZWZm`djVKD6mab|Pk`K7H*0I?zzE0tK4XWb>g?D=jaR@VuW*z+^n z01NDCmj#~K;yH0fbZ$H#x*W?Yf>-PXmX(QIfV&IxlcJ}{R@t?h=$&A_)_z+Cg(v}i0q&=Z3m;V8^vO+QwklD7mWsC$&E4^JtO)dYe0#0dDbiK z{ZW`m#}$LDgJtYEmR>OdwKz_RlHO)>E{dz0xg5;)DWQ z<&`3FVu5uU)RPJc>v1@YBHchdsvsV{SdlB;87yu{t4yk9uK+i@;)=)29}p)iaY~*K zwojhQx@tC9#v;oHlA_JJW4l5k#c8ZluT4BQDNc354qi}lXGD(EQcqXn4De$e9BX=9 zp06+P4F!HefuC65P?bZ$Gx^X|4rF^=-wCJPY#e4&OP(2J$%y1{*OtFRhBLDnv1t*?^lZhAV;xVMS>MjEl=yCThj#yE2M>rXd^5jnUTi&B zype0Y_$I!YbsB_iK-dn1ZS&%3gm5Xp6j4G5Yj$hhVPpj54xn8Qv>o$e9B2uaF2hP# zqj-qK)0NoCy2E1Cb>c`&D6uPHD;y=R$a4&y!C}dSt*p(8NhNk`*p;jshJ&7wU`kw- zVpJosM~Nwo@k|3-C9#X2rNq@5cufj)kO~S)JX-@T4NTbDiXRrOICNs^g70&<&Kx#d zD_!Z@CCm2r+q01<0xq09U(1JGWR?;|gC;3?Qn*tWBEH5rcEDKGEtkg}WR03+H?#y}K}>0DK!zL8mG>(l7*f(r11l1CO2mBXyp@yzy#1Xs}bEQEw~NTxTHe*`i` zm34t}*{g`X^*Au&%w-y!5k7YOv=Tv{_19)Av~MFTif4USgb=Eex2Ul}9#8w+^=nqq zj&v#(f@RX>VMQ!M2v*EpWEY7v?w0Muk43~X({>cQ(gKo*S*MA3*x#g4D@w{`Z$|86 zt4HBHHi*ddf^tacI*CMLe?iRT>x8qcI~6Lfo!Zc}ySFqa9dX@M7v?r4F%PAf36NNxh z6K|PFipaliZ0pSZRwdqsZLD}s@nMy){&ed(+z!avZ&z&4s>`wJ>E<1Z4IoEYK{9P& zZPEkgJC%4BIE}C3x$%{Jc)SZa+MCucdpD=D+L_nFD}vrIWm zf)cqX5+9%}^FhioIg@8@Vi`XSDrvd$AtgRclLMGOoe$&d#QI8Z%|+4<98&2cimgji zndJpK?jrF~B|ettxq|q3OK2Xk`EWseqP_Y#YA39hqR7$)`=ny4!7~z{QsUE)zPKbQ zCcf{+77UNd@k##NlAq+yFJ?m2mIt93@ddEBMTsvqSlrsqBFk^4>f=j| zs?si%Or?e@q-HxYqE^}!Y1ep0d>IUHQ{pQPhF@KZ;Vs1QYm4^n%?A9FI|Jxbi$K)!D&OeYI+pb|VqN?@ zxRDqBsKkFXZ1tZ@>8ic(U)l?QQsTcG$p5nx@*inof7V`jP>KI-Apc*h7uM$}_(swX z!6Wp=pGe04=Q-K@FG~ECmS2x&D`iQR|JzauK1jrWZ`uKM3h|Hm1F~a9M~9Lt@NYEF z^1o=y@iybjl|TZ;DowH4P&9i%b^-=RJh+4-IIIuvur*ByOm+d^;9?fusu}?DE%uh| z)^d7`9DOX3y?W4oGLjiR0q@E+nyRmvYVDF#*(wQuZDhZm$DWe|=qb5QkIhL;4(h>T zk=ZKAA>!kx#TJyuqod?{jh@nOpusX}EBBCTt4f*>`xB^r*rz^uBGBQYlh7#nDEz~z z9LKsUX=nVpus^hwAFWY`463p6WAtG8C7+D>dRg1}6r>-*j64OiFvqEAl+0>YsX0!g z0qd!MopE$a56V2p%%MNRL2mXiTTQ2g!;1~not6Rx`B*TT;71P196C1Z;$8{g=}HaV?Mr`^`&2AeXmiFrvsB8!9gPhrzH47RLKG`HG;D{U4%RXpyr6AyppC5`8doe zc_#krTV3Y$pxt2g0NaRp$|mwGO?!4T?eH?RB!&WDgj$NPQFN3X)99%|&!Is}d>x-d zrSCazG=dwJk=QQc^wvoD#|Sx6jwGH-?aFiPkccVG6W>w!O!Sm|mL8j8V&Ow7uh!spO-V6ga}BkoG)bvs0U)^M z*=Urs@Nd#Xwn~DGYs@FLhw7H}CQ&}eP}!QQXsD)IFdP8kV3NGdcUA9!lIGwV4#v-A zJ!oG<-BlILYgchi>owC>m!TywWPrWYlB;}ll$_S+sjC7Sw76<8hjTd+Gmf8&E1zTd zjZ`Cfp%y@XtD&c)(Br|WUKq2%8zqpGdZK;Nq$e?os2yshlQDqsU4ll*efY2Yj)XP) zuBqmf`wh{ICYm)wE#=U)fWdPl`Jp^_on|m+7#PnfJ!oG<-E+^yy!PDnn)Zff+5^kb zk{B|;^Qa}yJs%wwii)K&$dMkQLzDXYVmY@6|-_Gej*udp}_C8OePppM5|x_@H56e0Gx_v@fCVvk&Qc`i^~A6Mv+c z_@m1ZlN?(A$EYQzeHbKj#4``wFYT$ z_W~FBNq}MQPoYur)A)zE+mJp(wAm^tX*{s#XmGQp{;Z)kX8W8Tw41HI^3P+wdJ6uq z_%EPQ@)k{zF8+%&Sn>og{K!rKw}R0GKYCDp37w@*0GIy*zr}}uF9Vq$UGfk>YlS^= z20a5kZH}}sO>2KNt$>B|D((gK{d#&nk+*?^l3&3;F7OJt3&hnQo*Hf6*Y}R{t9t%x zW`6soyAJ&M*8A@KJI|T!y~QjaPNA3F1Ug)-;;FR~$**g=+lh{CaQx8TYq@wM^DP|0 zq)Shp@*9{u#7@SQ>9kc2!#D_I*J@m7SrNj_mEQ!?VLTn+{@L=~eXcLR1;}_Ou7v4v zC@Ja-P-~_f%4zv+jl9mqjcUofP~ghfjpcVVysze(w+SnezWgp=>{K4dwTs8b_V3?6 zTARgFKrkB0%2>(WHwNTrOn#5B`f&r>Eav-~T|Ye=)3Z#3w;Fp|-T`R+q)9Kt=>zc| zgSA^DW#pZ}LcIL|jgoiaA8&Ol;dV zw`bGj#EyyWb6Y1TcTLXi-g?#6$*mj5u0Chvg2FW$<&Quy-f?hJ{+LL6>d)Hp9tK)#9@f%ZO@I%+8A`>KPG=d7$?vH71zg+E2%uf zeK#H2O7eb89%2LOtD#;3Zd&C}HMrjkYDo-ST+hQ?@@K@UH;Kz57mh?;MgAP)gsszO zUtEI281!IYlD`04$p`SC=SOk-Eq{qFAGYTw<*%rBgkZm>UXEbDK@WHKI2Bun40CRe hI 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 MFR46)-=sSHAIX4!`v3p{ literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/sandman.doctree b/docs/_build/doctrees/sandman.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9729ead490120582c4db0d5e0095097513b41720 GIT binary patch literal 8088 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 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/sandman.test.doctree b/docs/_build/doctrees/sandman.test.doctree new file mode 100644 index 0000000000000000000000000000000000000000..98f814d3b000a5e473dff03e6146170d0d938b89 GIT binary patch literal 4825 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 B&tm`p literal 0 HcmV?d00001 diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo new file mode 100644 index 0000000..f18014d --- /dev/null +++ b/docs/_build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 8ecaff8f3ac3748fcfdc971c46993703 +tags: a205e9ed8462ae86fdd2f73488852ba9 diff --git a/docs/_build/html/_sources/index.txt b/docs/_build/html/_sources/index.txt new file mode 100644 index 0000000..f32bc06 --- /dev/null +++ b/docs/_build/html/_sources/index.txt @@ -0,0 +1,23 @@ +.. sandman documentation master file, created by + sphinx-quickstart on Sun Aug 11 14:41:23 2013. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to sandman's documentation! +=================================== + +Contents: + +.. toctree:: + :maxdepth: 4 + + sandman + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/_build/html/_sources/sandman.test.txt b/docs/_build/html/_sources/sandman.test.txt new file mode 100644 index 0000000..8b4ebe1 --- /dev/null +++ b/docs/_build/html/_sources/sandman.test.txt @@ -0,0 +1,19 @@ +test Package +============ + +:mod:`models` Module +-------------------- + +.. automodule:: sandman.test.models + :members: + :undoc-members: + :show-inheritance: + +:mod:`test_sandman` Module +-------------------------- + +.. automodule:: sandman.test.test_sandman + :members: + :undoc-members: + :show-inheritance: + diff --git a/docs/_build/html/_sources/sandman.txt b/docs/_build/html/_sources/sandman.txt new file mode 100644 index 0000000..805e796 --- /dev/null +++ b/docs/_build/html/_sources/sandman.txt @@ -0,0 +1,42 @@ +sandman Package +=============== + +:mod:`sandman` Package +---------------------- + +.. automodule:: sandman.__init__ + :members: + :undoc-members: + :show-inheritance: + +:mod:`exception` Module +----------------------- + +.. automodule:: sandman.exception + :members: + :undoc-members: + :show-inheritance: + +:mod:`model` Module +------------------- + +.. automodule:: sandman.model + :members: + :undoc-members: + :show-inheritance: + +:mod:`sandman` Module +--------------------- + +.. automodule:: sandman.sandman + :members: + :undoc-members: + :show-inheritance: + +Subpackages +----------- + +.. toctree:: + + sandman.test + diff --git a/docs/_build/html/_static/ajax-loader.gif b/docs/_build/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css new file mode 100644 index 0000000..a04c8e1 --- /dev/null +++ b/docs/_build/html/_static/basic.css @@ -0,0 +1,540 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + 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 { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + 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 { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_build/html/_static/comment-bright.png b/docs/_build/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903 GIT binary patch literal 3500 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/comment.png b/docs/_build/html/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95 GIT binary patch literal 3445 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 Xn!ZpXD%P(H00000NkvXXu0mjf= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/_build/html/_static/down-pressed.png b/docs/_build/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z23@f-Ava~9&<9T!#}JFtXD=!G zGdl{fK6ro2OGiOl+hKvH6i=D3%%Y^j`yIkRn!8O>@bG)IQR0{Kf+mxNd=_WScA8u_ z3;8(7x2){m9`nt+U(Nab&1G)!{`SPVpDX$w8McLTzAJ39wprG3p4XLq$06M`%}2Yk zRPPsbES*dnYm1wkGL;iioAUB*Or2kz6(-M_r_#Me-`{mj$Z%( literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/down.png b/docs/_build/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaV3tUZ$qnrLa#kt978NlpS`ru z&)HFc^}^>{UOEce+71h5nn>6&w6A!ieNbu1wh)UGh{8~et^#oZ1# z>T7oM=FZ~xXWnTo{qnXm$ZLOlqGswI_m2{XwVK)IJmBjW{J3-B3x@C=M{ShWt#fYS9M?R;8K$~YwlIqwf>VA7q=YKcwf2DS4Zj5inDKXXB1zl=(YO3ST6~rDq)&z z*o>z)=hxrfG-cDBW0G$!?6{M<$@{_4{m1o%Ub!naEtn|@^frU1tDnm{r-UW|!^@B8 literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/file.png b/docs/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/jquery.js b/docs/_build/html/_static/jquery.js new file mode 100644 index 0000000..198b3ff --- /dev/null +++ b/docs/_build/html/_static/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/docs/_build/html/_static/minus.png b/docs/_build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/docs/_build/html/_static/pygments.css b/docs/_build/html/_static/pygments.css new file mode 100644 index 0000000..d79caa1 --- /dev/null +++ b/docs/_build/html/_static/pygments.css @@ -0,0 +1,62 @@ +.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: #333333 } /* 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: #0044DD } /* 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 */ \ No newline at end of file diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js new file mode 100644 index 0000000..56676b2 --- /dev/null +++ b/docs/_build/html/_static/searchtools.js @@ -0,0 +1,622 @@ +/* + * searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + + +/** + * Porter Stemmer + */ +var Stemmer = 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); + return w; + } +} + + + +/** + * Simple result scoring code. + */ +var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [filename, title, anchor, descr, score] + // and returns the new score. + /* + score: function(result) { + return result[4]; + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: {0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5}, // used to be unimportantResults + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + // query found in terms + term: 5 +}; + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, + dataType: "script", cache: true, + complete: function(jqxhr, textstatus) { + if (textstatus != "success") { + document.getElementById("searchindexloader").src = url; + } + }}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + var i; + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + } + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('
'); + } + // 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 = '\ +
\ +

\ + Sort by:\ + best rated\ + newest\ + oldest\ +

\ +
Comments
\ +
\ + loading comments...
\ +
    \ +
    \ +

    Add a comment\ + (markup):

    \ +
    \ + reStructured text markup: *emph*, **strong**, \ + ``code``, \ + code blocks: :: and an indented block after blank line
    \ +
    \ + \ +

    \ + \ + Propose a change ▹\ + \ + \ + Propose a change ▿\ + \ +

    \ + \ + \ + \ + \ + \ +
    \ +
    '; + + var commentTemplate = '\ +
    \ +
    \ +
    \ + \ + \ + \ + \ + \ + \ +
    \ +
    \ + \ + \ + \ + \ + \ + \ +
    \ +
    \ +
    \ +

    \ + <%username%>\ + <%pretty_rating%>\ + <%time.delta%>\ +

    \ +
    <#text#>
    \ +

    \ + \ + reply ▿\ + proposal ▹\ + proposal ▿\ + \ + \ +

    \ +
    \
    +<#proposal_diff#>\
    +        
    \ +
      \ +
      \ +
      \ +
      \ + '; + + var replyTemplate = '\ +
    • \ +
      \ +
      \ + \ + \ + \ + \ + \ + \ +
      \ +
    • '; + + $(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); + } +}); diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html new file mode 100644 index 0000000..8ed615f --- /dev/null +++ b/docs/_build/html/genindex.html @@ -0,0 +1,92 @@ + + + + + + + + + Index — sandman documentation + + + + + + + + + + + + + +
      +
      +
      +
      + + +

      Index

      + +
      + +
      + + +
      +
      +
      +
      +
      + + + + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html new file mode 100644 index 0000000..ddee25b --- /dev/null +++ b/docs/_build/html/index.html @@ -0,0 +1,136 @@ + + + + + + + + Welcome to sandman’s documentation! — sandman documentation + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Welcome to sandman’s documentation!

      +

      Contents:

      + +
      +
      +

      Indices and tables

      + +
      + + +
      +
      +
      +
      +
      +

      Table Of Contents

      + + +

      Next topic

      +

      sandman Package

      +

      This Page

      + + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..cc3831164543c57593dc48f3bb802732882016ef GIT binary patch literal 200 zcmY#Z2rkIT%&Sny%qvUHE6FdaR47X=D$dN$Q!wIERtPA{&q_@$u~H~b%uC5l%mWIA zL8Pq|fb5WrRE46{+{Dbhl++@H{4|A_v`Geb!LcsEb| literal 0 HcmV?d00001 diff --git a/docs/_build/html/sandman.html b/docs/_build/html/sandman.html new file mode 100644 index 0000000..e2fa17f --- /dev/null +++ b/docs/_build/html/sandman.html @@ -0,0 +1,148 @@ + + + + + + + + sandman Package — sandman documentation + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      sandman Package

      +
      +

      sandman Package

      +
      +
      +

      exception Module

      +
      +
      +

      model Module

      +
      +
      +

      sandman Module

      +
      +
      +

      Subpackages

      + +
      +
      + + +
      +
      +
      +
      +
      +

      Table Of Contents

      + + +

      Previous topic

      +

      Welcome to sandman’s documentation!

      +

      Next topic

      +

      test Package

      +

      This Page

      + + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/docs/_build/html/sandman.test.html b/docs/_build/html/sandman.test.html new file mode 100644 index 0000000..ae1bd2c --- /dev/null +++ b/docs/_build/html/sandman.test.html @@ -0,0 +1,118 @@ + + + + + + + + test Package — sandman documentation + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      test Package

      +
      +

      models Module

      +
      +
      +

      test_sandman Module

      +
      +
      + + +
      +
      +
      +
      +
      +

      Table Of Contents

      + + +

      Previous topic

      +

      sandman Package

      +

      This Page

      + + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html new file mode 100644 index 0000000..677e3ca --- /dev/null +++ b/docs/_build/html/search.html @@ -0,0 +1,99 @@ + + + + + + + + Search — sandman documentation + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +

      Search

      +
      + +

      + Please activate JavaScript to enable the search + functionality. +

      +
      +

      + From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

      +
      + + + + + +
      + +
      + +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js new file mode 100644 index 0000000..764b9d9 --- /dev/null +++ b/docs/_build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({envversion:42,terms:{subpackag:1,index:1,search:1,modul:1,except:1,content:1,packag:1,test_sandman:[1,2],test:[1,2],model:1,page:1},objtypes:{},objnames:{},filenames:["sandman.test","index","sandman"],titles:["test Package","Welcome to sandman’s documentation!","sandman Package"],objects:{},titleterms:{subpackag:2,welcom:1,modul:[0,2],tabl:1,sandman:[1,2],indic:1,except:2,packag:[0,2],test_sandman:0,test:0,model:[0,2],document:1}}) \ No newline at end of file diff --git a/docs/generated/.doctrees/environment.pickle b/docs/generated/.doctrees/environment.pickle index d7bc1a343c5c852069f1a210f37cbe7e60091ed6..828b7f37a96f3c9f508d94f188b50c8f8cc7bd6a 100644 GIT binary patch literal 46247 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 O$75gs*n4g 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 delta 54 zcmdn0y<2-j1(TpD0|SG8XmM&$v3^!|UTHzW<~F9o0(_<@Vw2mLG&a`=TQUIv^t}>T diff --git a/docs/generated/.doctrees/installation.doctree b/docs/generated/.doctrees/installation.doctree index 444882087126d9dadfda4a28a8928a167701b07a..028c212d1946dcb60f3580188e1e8aef8e0dfef8 100644 GIT binary patch delta 48 wcmZ1~H(zdpJ0qVZ0|SG8Mt*LpepYH)+U5wxjojRp2!Y8Fj0T(CdG9d-0Af`S5&!@I delta 54 ycmbO)w^VL}JENct0|SG8XmM&$v3^!|UTHzWWI`$+z) z7bTX*r{*Ol<)o$*uJdLL5pEh)*&OD`^5Ke>`insSU)Q}ue6|Gvp3^Bc0O|yvB}XIH;?ktzlFX7)u!(tzxv9m4TWSlpX2@n}X2{nT dZkv37OI>7pY~hYjwxZNDkmjAWg}X|V^Z@;oOHcp+ diff --git a/docs/generated/.doctrees/quickstart.doctree b/docs/generated/.doctrees/quickstart.doctree index 0a3b8ff1d05a71cc8d14aeb34a569e631e9e4e3e..a5c7373c6a7b6192ecf39bbf250006898b195c7b 100644 GIT binary patch delta 47 ucmaE@`BZa*Gb5il0|SG8Mt*LpepYH)+U5|(0zqzbguvtwM!ikKuNeVp&JQvG delta 54 zcmaE=`C4;>Gozpt0|SG8XmM&$v3^!|UTHzW=0L^*K|U)KvB`mqdYgXZGcHH=V zNB59~ganU2*yQu5zIpSsmdb2>U4_!MtxqR_Gmi&*X&bZ3+JcTLPPgyBu!^?6>1TCt z2ijq68?!ofaksQ4q0}5_*xTm$l+x{%OJK0^`u3h`Htg!8uQH^f*8F5%! zOXX{w-E-sGFsMmwt7d%P)m_)FU9)%S+V*wrt!eJs_Sh69x$VHBE-CK$?Xb4VD~7rL zL#OSNHMPCm_3ikp&rfOF@XQ^_?xuE-_OX)Pw&~3aI(HHy?Fk85#kPK_qi_)sqfr+7 z2UI2aheyO1EoE1RwrX2q!B}cmU$-SBlq?nFm^t3coIp$mnedm)7AM&C^#w{=&WWgB zzEqsV{F6<-M;&L^w-+essS_DF#YE8Osbs0hurvvfe<}K`WaeZma|$st$prOz8p(6O zoXX5;+S=`f8PloJqmr_}e5!w_e+~_6hBo2dTrD@F$acD2n|}XL?-_*qp?fClR-wck zsH_eCSzND}?H@T?%;f7P^>oPUL`-b+;{J7w-cU$Xqs8YRHQPUWwtwvGR&-0AkZWh# z^_C1JGv^%CF&(oYBH~<>a-u!znRfl5LZw7oBHW3y8J%O-Hm*w5rvK2%R%6$c>|AB8 zHfP6p#jCB|k)Bw~oI2uU+3M~3x=dw2u@8;@n^h96{_#`&6Z|&nd>-n>{#!A)`K;yF z2J9S}M;83${h1tTc9bTQALOn)%d763&Va3w4@;MG$*sislmVH_)22dFMT{?&xEh4S>{^U(CgbND#+3`Sy&v?bybv_lj+%5xPhG8G&Puy>rhIo9X;wzcFj9Iw{SfpcbJGrwZ!)^8q}T9HMDnYt)-b*1TXJmt-E78?H;+)?$s{( zc)YTKciMf-xu17h>I2-tn&p1I8aG1heDR=NySA;M{2>6?dL*n{?_uWC)_Vk35wVf$ z1FCyz%AQm$xH~nQ%v-nNqs+iId`!D-cV2!Qsu=j=5E1bN%J?1lq_$^wp7Ip$z^7T0 zcHlG2epc>4>e#vipEF|F_PpGIFMxn9HnGx+D2?DDGqD}`662dCu092cb+;Jj9r&_g zTzN(N>ysXpuYv~Kud(jyQkQoiS&Qw!EsVcm!7YY)2fk?-PT9&V+7@rI*4x^uJz2^- zz%v|VheGIGySDw_)RW&s6}@j`-gcD6$Vk)N7QDsYXU-1EsqTQaUEo_xVY8DA`whb% zfPmPH;^IS8(ZMcO{zxkG@W`CmfwAvCX4-BGO^(vscb~|8w+9T~cb~GtXQl$&*(>)Q zO+W2BGD!peoFwhLeYl8-FHoBM?n|!7efJgdj@x(C3)%RZSW{L090DB*W?C#-5|U1O+} zZ2eB_I*{lz_CH9fPeVJXX6?~P2+zvDc=@YHgL3gN}GE_0>e$4BS(in7K$8{Sr zD+Wl|!*IC;CNqcvN_Gb_ILHJsErT7}j19%zhM=v=E`0OqgH7IsfQm;|*OT%*bl))C z7z&E9S%$Hp;nI*w%CyiU$nBxj3AtTCva-4}mM#<)4T1S$Bw8?nQ4lyfpfpA>3?uaC zFB!wYSPKyKy|Nl}pOD|bf4&$86gI{)b;5s9F`WtCd~t##p2)Rz^AyyKLC4Mjr#dw6rb)I*4mtqLtt1W|04B5Q6qFc=%Bq-#)3`2gqEq?0 zNu2~4e*l<aue+tsREbIj*HN90C9xQV&=J4=4@hm$OO4Ehae+DYnVM(vW@2&t-F_W z29Yt+sU;bE?$x1+anwUZgb$@Ljv9n*)(DBtXVh;&$y#)Q8W>bf5IruSs4b!U#{UUg z!OA|k>l4gUiiv}0QtIL`t^UAF}7 zLZGm*h^dRMRITMeZ}<5UzJTEiwL1^=vWo~Rh{IV}(R6L^fj+4hF}eh$xvCeF>*kGh zDM7}e`x0hfYGq$WYzLX4fnM&Ahwdv-hig|df0@bmsFy@Nuyhq5 zj;5=bd5x8MEqh2NsLxdl$=T&o@JO*5P3ZnQ2%IIf=?7EO$PAuETXEyS7Q3F28??m- z`zmY5nw@a6rqedbz7aJTxQS^uqcoQ1dhPFnBf8we?YC;%e@Nrw@of%19^bCD{xH_I z)}gK2k=A7$bJl~Coq7jbuqN$yIw)x`z6$`7b`sX4{ch${(tZ!FBH~`{)I%lNWYLnfgYiKkDGKGWBN7 z)E~pt$g^^rgU`y3gMdDsV5KKf8uLPCWHwD_<);{bTH@-%kO(@9an97AF^v13B|>F& zGTqbt!G$$-!Nx{kUAQ3_5YGWZhtESq#0w~m4yg;-AswJMG5(?jxAey8`%6Y|T{nZp z8TZSq^a?*4U!@>$kQoYs*ZA2u<8@Tg`4;BAfzs%lG|l9iUJ%fs_D!a3wa}ywW^((lOkwm4(bw{$($Rv{O|9B%AuyxL~to&XgM$_)kxfi6}wtd()D|#h= z0T7OV2@w%rIkcBn^iHR4V~O|I41I%eugg^S)9MZ*0?ov?B;`z;?h7>s10kRI4s9@a zfVI9yX)N{E+Eu@dcOR7S4-6mDcKH!wP>fU|mksrlhE!6fR3VSt z9!i~%+xaBpQiTGvUlS`}1=~po)=JKt#kyl*Viga&m$@O5&p#ALHZ% z*P$Kzt7qz1ZW?E*z^CzXF**Sd$LI;nJkiQLiI^TTLB5T7MRRM<90fOGfWTzI$g%?8EE@Iacj79 zCMZVSR1*DQ;(S+)^jxel^LsxIG&!7{NIZ5itv;F@h?N+i~YIFxvt|eYeEz z9H6jK!_>KPRBc_8C)q3UTE^>~+GkDW-7Pav&+R@$#>~>pd8i;pd4RDPoiAe)KR3{i zFb%|^7*$zw0ZNKdR>hDTxh`Y0iLaYfKV*E22G9~8qvQuoQc%WdGpZO>3q(W+l*Y`c zPHkzh*P1k?Fg3(r*aXpgD^0lhNH~umBQamd>_t}gVq!bU4E21zQzqsYppLFDWPZft zd(?$a`HtfvMwXZe`n{Me6&aS60^(h82{SLXGA|=$7MY+vFDFSa2(Dn}l}>Hl_FkFG zs1*kR60v1i?$nfw3APoy40Bf!NXu{)YhI0#mVs5_&^26_%Wy4UH>oQixUI3E9W{?F&7#{L|l*3Sca>dv7f?jV04Ys{3%R_r}!!CM*TLMGTL?%2DKwC z@n&Y-LaeORTiKK~+rQ1p+5YVSknNMOX8UWIPuc!DTt&osJHZx|L%M$_ z0jc!!*qFO;i6Pt#5fS&GjL-S+Wv17^p*qRPt&N|E#0Dpy1nvVx{%UqV8+pLVCjs)r zdJ=dLD=SX|4jjxJY@&#DkRb|; z7ddA*`6X1*{bnYi|fDRU9k_Nn; zBpoc?#|6$3DCJn8vXd)vmwlkG@1k@cPKHVCLz2gxC3c|=WBLdpB0ffGOxpXn!{Ya` z-3)wU0W1N|XNf(=Vx@e_EJ_DIW39dVtVCsc8kxY^!HZaq`*dTH7O=V9;&XzdCx(4& zi%tw*VDI6?@FhUF_Z8dw+Q}ydG9EiIe8bRwYzv$izNO_GMg$t~cO;KHF&sb}41UjA z2T>a1{YKAmC?niINc<4vKk8nG;$eGnXNI2`J#5jIW3-+bem171;0W=IGs7>e`m3pm z75j~xE+L!b^zY1$o*DjN_McYvU&O8;GsHehvfY{CZ?s~N|3E~i`dEOd^Og*(FHqPhW@^cQQKKh^Qb{ahVn0cY zog6H)(w`XvTzqoK@Suhp5|28T4wUPgyDOEpfiBL<1`&tSfx)ag1SLkIvMT0bDA(nU zY8YQPsRJS7(}Ce=iBAW}5t_IWEgoubyD2>?~?BbKdXo-(ue5{L34mPLj zx}&+N#)>d8#?kP-4`B4I|Hp2GA~CEfaXnZ!zi$Q&tE zl8hZ5CZmd>Oo6};2Plo9oWij?Rl?I4o^FB3Tr_rPFnGENVoYbq*gX?%|0i}0cd9@! zV)raIG*cQA^AuK5n0f=$KiWF&`DgDUUD~r+yiy4Khwu;!vC}V9iF9 z6sN3;F*k8t#%X}Bo74u#_&5!sB|c8c51OQA8K*6%VpIYGUo)XJW@drQJUxUNY&Ajj zejd-b`E*!Fm~nhq#Pr2h`uR+^lOgK+0(~96mCL>mRrDQU{zWDq-!tjk3Y3i0B@A3_ z0_b-s8!9pkT>^}E!lg{T%u2nSsaa%%`n-Z9ogc1b>M|FdA2OCxt4Aeu%lTmiErk4@ zZY3|q+^dK{i*Yq;UxShsgVo{IwOp5rv5K#o)RmC&i?JFl@ryyekaO4R%^5gDXsBXB zu7`+-8&DdHakVRUhFHU>?lR91H@f%?ag*L76L-0rF)*AVZeiA~#L7}`)7NGyp5oil zMkfY{xDx~F@_V{q{QiCu7#x-_vcgNI0-|cOi{IbVXeiAllN2m3lcY5J6>OEH3CRM6enQ!l%dU>wWl13Jhg9qE?;H!V?;TGEoji%u5ljU@6 zTz7|Uhl_LYoj~F42M`hQp^I~H>MoXp?_%g9L?3eSkNI{moES6#yGb6GgnxoISlq*E zpQ1DZVHd`~vN-iKiSK3nbBSv$D>M3IapHU4$CNK5MSiF=q8`+oykvPgC9BO8h&<59q#pW!^B^wdLEG?-@O4(U$XUJqP^2 zE0uo;B;yS5Bdh&nsv(>Xv$G{+kS6VC!i?Me5vKoQrT@xwI~gMSZ}K+(JE|DdAI$&L zl0OQ;Izf3)5r6%YT`YIV&WQ6)u@NRn61`Wc)4Og_ihR zJo!P6B_;7E)7fs+F&oJc5z!T;5oC$_gN4e7E-4Ij)0g&EBB`78-GXCtVg1LqF16>7Pd?toQd^rs4kHlK^}q zj}NBva0zGgAtIsxW&HiUm%g}2$+ZzzHssMMDhDQT7ExJDNPAtGWB zN}~%h8oS32W_*YRx7g=<{7}<=$uOqTOQ7MbHbSa#Ko~E^C_Am-2(^=K3WSlmx3AKD z;wV(%(P&m3BUO2)lQDRN8=vvL^jPMMlN|ocsNNg)lIihmy1_6#0TkR!=tCr8h!app zA1AW@Nm8HtAd6-n#+#v&nKscvlY=)OS*IlNBkNQ!c#BP9g-TNa4oyztM;0v(J+jCo zjd==5dSso3i-?$tQZ4{grg24Xtm(u%?vX{kkc}B6k9%aDjy4SN42Xz06Q#6@N7iXc z{K%?eG7Q}V5kwB z8jsB;?rn+DTL4&e5zJq^gVJI%tF@psdL%;}W$nN66ig0DviX&#^uzKb3p1@XDK}cAmL{`3u1}9%qYKcd_gOQIAkNp9fPyR%z-kAk282UC8u^m3|S^E65Phmym4t zQtM*0V!oF`M8qX1jnQA2B!2_Bl#$C!1b$r3hKmiuR{%3!YF)|fWmfib={4CQH&zg4 zywqCB^sB7&tC?OzhKPO*NlL}8W$G#`bv09mkP)I@N0{-lKx6v#lHTr~b^~kL$tG#8 z;d@%PjwfT3&2@QuxreWt)b)_@&+U8B693#LKWJzh z^zG$JLC$@sVrch6M8pFqjb*+wNlVU5?-35>*ZT5Xo3TxO_2NOveu&u*>*EG0J#5z| z(c7IzxM`zl03JRXzhI96;{|JD>f=`G6HF~9BjnqYgc%F=6w{xUbn_WNVgC$k4I+D_ z^(;xt9pgFFF|_9)@KqE_V`xwDs%3AI_=}9cWWn3?YX>Q%?#&W^nekWjErXOY5A_wh zoxRG?Ybas58lQ9|lo}66zNNh`qsee^i;Si>z=vONvhr4`%+d6!9vH059rzZSrdB1* z3kJi1VAxlKFM~tkZDzlNvMLb`0ep@f67O>3d-}1#N_x>YRPb8`F;cv(;b6S}`;6|; zM-D;KwUa9!5Y=AS5cbkXWFhe(x9-wghA8PvK0;+`RkyJ4214_KqNxV`g}n38>Bmgl zP0H}3IVkX1xcG$Wi4FBNAv~YMVh`$*m8vAGBO&oAtA0kRNk+eNcze+n5uX#%wINX7 zP$=+eTMbOj_k}}ZAM1TVXky404&#I7koZzB8LH&<{R*u?@ioeb_y%QhRX20wwcfe~ zjSYbXA+cW%4pnl}z6D`wl}pU4tEu&dd^N42QGBPb9jX+h8~{{h$9U^}q$a-Cw+~g) zmKGntTB`^aHmhg@a_r=;IJs=mcCW7C+K;QlmF8zZH`P#d@FkiP~(w zfH+JScG^*xtfpr1GwS3OPi9S{?>t|lID)pxwyNQ-ntHGr0=!1z7iK#A-o|j0_bc%_ zRV76or2lWk8vUl{HUyem!!=L~*3%dGDMYigO8*eX(T(cKHT4Z4 zZ*3!m2#>Bi>)NrAn$c^+B9TfoicD{9&BBKIuwSIP6UHV?PONfc-vvdigLGncsycHb ze9EBfE;Z6Akx8{7alZ!gKXRum$s!~fn=I^G6sGuY_F|#4(Ymb4KHnGc2`|lV4jM4$ zyvVV+>%pzAP!o21O-n28RUwg!w&hhWENX0r^+a1$o^{J7V~tLA&AbK#yXcF?*;VOOL0I4;N4gneQfX1@ zMKRE2RZihuXf~CgiEeE?8Rp%nRIeDN^z2?nU_w=ghWe1`hwF&wuOmw=a1THQ&vFm9 zmFqWwoHh^@dX5c(ET(_g#UXXD{`M%PqKH3=wfk@LJLKCwr~D^cms*DZj`A1zr~2LM zBYNp*rPmVvnLABA8?RdY>FOVZXUOAYrkaN%lfREz08A~SBI?Evc4H{_OaDRcVG2&O z7vR5)47Y|^+!~H+wm|<2TGgo`)D)~=hX1nmkJaBAt@IuiwL60CR>bVW(RiaHEk;M_ vMPrmv-AA+17?e0+OrQxFtB1xYrTOE~G+T^ES=E^~1LkxBb5B6oT07u>BBT|; delta 16434 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 - Overview: module code — sandman 0.2.3.1 documentation + Overview: module code — sandman 0.2.3.5 documentation @@ -14,7 +14,7 @@ - + @@ -48,6 +48,7 @@

      All modules for which code is available

      @@ -81,7 +82,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • @@ -100,7 +100,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • Module code »
    • diff --git a/docs/generated/_modules/sandman/model.html b/docs/generated/_modules/sandman/model.html index 3f9ac09..c0637a0 100644 --- a/docs/generated/_modules/sandman/model.html +++ b/docs/generated/_modules/sandman/model.html @@ -6,7 +6,7 @@ - sandman.model — sandman 0.2.3.1 documentation + sandman.model — sandman 0.2.3.5 documentation @@ -14,7 +14,7 @@ - + @@ -36,7 +36,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • Module code »
    • @@ -210,7 +210,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • Module code »
    • diff --git a/docs/generated/_modules/sandman/sandman.html b/docs/generated/_modules/sandman/sandman.html index eb6fa63..be69658 100644 --- a/docs/generated/_modules/sandman/sandman.html +++ b/docs/generated/_modules/sandman/sandman.html @@ -6,7 +6,7 @@ - sandman.sandman — sandman 0.2.3.1 documentation + sandman.sandman — sandman 0.2.3.5 documentation @@ -14,7 +14,7 @@ - + @@ -36,7 +36,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • Module code »
    • @@ -77,7 +77,7 @@

      Source code for sandman.sandman

       
       def _single_resource_json_response(resource):
           """Return the JSON representation of *resource*"""
      -    return jsonify(resource.as_dict())
      +    return jsonify(**resource.as_dict())
          
       def _single_resource_html_response(resource):
           """Return the HTML representation of *resource*"""
      @@ -386,7 +386,7 @@ 

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • Module code »
    • diff --git a/docs/generated/_modules/sandman/test/test_sandman.html b/docs/generated/_modules/sandman/test/test_sandman.html new file mode 100644 index 0000000..ef26bc5 --- /dev/null +++ b/docs/generated/_modules/sandman/test/test_sandman.html @@ -0,0 +1,285 @@ + + + + + + + + sandman.test.test_sandman — sandman 0.2.3.5 documentation + + + + + + + + + + + + + + +
      +
      +
      +
      + +

      Source code for sandman.test.test_sandman

      +"""Main test class for sandman"""
      +
      +from sandman import app, db
      +import unittest
      +import os
      +import shutil
      +import json
      +
      +
      [docs]class TestSandman: + DB_LOCATION = os.path.join(os.getcwd(), 'sandman', 'test', 'chinook') + +
      [docs] def setup_method(self, method): + shutil.copy(os.path.join(os.getcwd(), 'sandman', 'test', 'data', 'chinook'), self.DB_LOCATION) + app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////' + self.DB_LOCATION + app.config['TESTING'] = True + self.app = app.test_client() + from . import models +
      +
      [docs] def teardown_method(self, method): + os.unlink(self.DB_LOCATION) + self.app = None +
      +
      [docs] def get_response(self, uri, status_code, has_data=True, headers=None): + if headers is None: + headers = {} + response = self.app.get(uri, headers=headers) + assert response.status_code == status_code + if has_data: + assert response.data + return response +
      +
      [docs] def post_response(self): + response = self.app.post('/artists', + content_type='application/json', + data=json.dumps({u'Name': u'Jeff Knupp'})) + assert response.status_code == 201 + assert json.loads(response.data)[u'Name'] == u'Jeff Knupp' + return response +
      + @staticmethod +
      [docs] def is_html_response(response): + return '<!DOCTYPE html>' in response.data +
      +
      [docs] def test_get(self): + response = self.get_response('/artists', 200) + assert len(json.loads(response.data)[u'resources']) == 275 +
      +
      [docs] def test_post(self): + response = self.post_response() + assert json.loads(response.data)[u'Name'] == u'Jeff Knupp' + assert json.loads(response.data)[u'links'] == [{u'rel': u'self', u'uri': u'/artists/276'}] +
      +
      [docs] def test_posted_location(self): + post_response = self.post_response() + location = post_response.headers['Location'] + response = self.get_response(location, 200) +
      +
      [docs] def test_posted_uri(self): + post_response = self.post_response() + as_json = json.loads(post_response.data) + uri = as_json[u'links'][0][u'uri'] + response = self.app.get(uri) + assert as_json[u'Name'] == u'Jeff Knupp' +
      +
      [docs] def test_patch_new_resource(self): + response = self.app.patch('/artists/276', + content_type='application/json', + data=json.dumps({u'Name': u'Jeff Knupp'})) + assert response.status_code == 201 + assert type(response.data) == str + assert json.loads(response.data)['Name'] == u'Jeff Knupp' + assert json.loads(response.data)['links'] == [{u'rel': u'self', u'uri': u'/artists/276'}] +
      +
      [docs] def test_patch_existing_resource(self): + response = self.app.patch('/artists/275', + content_type='application/json', + data=json.dumps({u'Name': u'Jeff Knupp'})) + assert response.status_code == 204 + response = self.get_response('/artists/275', 200) + assert json.loads(response.data.decode('utf-8'))[u'Name'] == u'Jeff Knupp' + assert json.loads(response.data.decode('utf-8'))[u'ArtistId'] == 275 +
      +
      [docs] def test_delete_resource(self): + response = self.app.delete('/artists/275') + assert response.status_code == 204 + response = self.get_response('/artists/275', 404, False) +
      +
      [docs] def test_delete_non_existant_resource(self): + response = self.app.delete('/artists/404') + assert response.status_code == 404 +
      +
      [docs] def test_delete_not_supported(self): + response = self.app.delete('/playlists/1') + assert response.status_code == 403 +
      +
      [docs] def test_unsupported_patch_resource(self): + response = self.app.patch('/styles/26', + content_type='application/json', + data=json.dumps({u'Name': u'Hip-Hop'})) + assert response.status_code == 403 +
      +
      [docs] def test_unsupported_get_resource(self): + self.get_response('/playlists', 403, False) +
      +
      [docs] def test_unsupported_collection_method(self): + response = self.app.post('/styles', + content_type='application/json', + data=json.dumps({u'Name': u'Jeff Knupp'})) + assert response.status_code == 403 +
      +
      [docs] def test_user_defined_endpoint(self): + response = self.get_response('/styles', 200) + assert len(json.loads(response.data)[u'resources']) == 25 +
      +
      [docs] def test_user_validation_reject(self): + self.get_response('/styles/1', 403, False) +
      +
      [docs] def test_user_validation_accept(self): + self.get_response('/styles/2', 200) +
      +
      [docs] def test_get_html(self): + response = self.get_response('/artists/1', 200, headers={'Accept': 'text/html'}) + assert self.is_html_response(response) +
      +
      [docs] def test_get_html_collection(self): + response = self.app.get('/artists', 200, headers={'Accept': 'text/html'}) + assert self.is_html_response(response) + assert 'Aerosmith' in response.data +
      +
      [docs] def test_get_json(self): + response = self.get_response('/artists', 200, headers={'Accept': 'application/json'}) + assert len(json.loads(response.data)[u'resources']) == 275 +
      +
      [docs] def test_post_html_response(self): + response = self.app.post('/artists', + content_type='application/json', + headers={'Accept': 'text/html'}, + data=json.dumps({u'Name': u'Jeff Knupp'})) + assert response.status_code == 201 + assert 'Jeff Knupp' in response.data +
      +
      [docs] def test_put_resource(self): + response = self.app.put('/tracks/1', + content_type='application/json', + data=json.dumps( + {'Name': 'Some New Album', + 'AlbumId': 1, + 'GenreId': 1, + 'MediaTypeId': 1, + 'Milliseconds': 343719, + 'TrackId': 1, + 'UnitPrice': 0.99,})) + assert response.status_code == 204 + response = self.get_response('/tracks/1', 200) + assert json.loads(response.data.decode('utf-8'))[u'Name'] == u'Some New Album' + assert json.loads(response.data.decode('utf-8'))[u'Composer'] is None +
      +
      [docs] def test_put_unknown_resource(self): + response = self.app.put('/tracks/99999', + content_type='application/json', + data=json.dumps( + {'Name': 'Some New Album', + 'AlbumId': 1, + 'GenreId': 1, + 'MediaTypeId': 1, + 'Milliseconds': 343719, + 'TrackId': 99999, + 'UnitPrice': 0.99,})) + assert response.status_code == 404 + +
      +
      [docs] def test_put_invalid_foreign_key(self): + response = self.app.put('/tracks/998', + content_type='application/json', + data=json.dumps( + {'Name': 'Some New Album', + 'Milliseconds': 343719, + 'TrackId': 998, + 'UnitPrice': 0.99,})) + assert response.status_code == 422 +
      +
      [docs] def test_put_fail_validation(self): + response = self.app.put('/tracks/999', + content_type='application/json', + data=json.dumps( + {'Name': 'Some New Album', + 'GenreId': 1, + 'AlbumId': 1, + 'MediaTypeId': 1, + 'Milliseconds': 343719, + 'TrackId': 999, + 'UnitPrice': 0.99,})) + assert response.status_code == 403
      +
      + +
      +
      +
      +
      +
      + + +
      +
      +
      +
      + + + + \ No newline at end of file diff --git a/docs/generated/_sources/sandman.test.txt b/docs/generated/_sources/sandman.test.txt new file mode 100644 index 0000000..8b4ebe1 --- /dev/null +++ b/docs/generated/_sources/sandman.test.txt @@ -0,0 +1,19 @@ +test Package +============ + +:mod:`models` Module +-------------------- + +.. automodule:: sandman.test.models + :members: + :undoc-members: + :show-inheritance: + +:mod:`test_sandman` Module +-------------------------- + +.. automodule:: sandman.test.test_sandman + :members: + :undoc-members: + :show-inheritance: + diff --git a/docs/generated/_static/default.css b/docs/generated/_static/default.css new file mode 100644 index 0000000..e534a07 --- /dev/null +++ b/docs/generated/_static/default.css @@ -0,0 +1,256 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} \ No newline at end of file diff --git a/docs/generated/_static/sidebar.js b/docs/generated/_static/sidebar.js new file mode 100644 index 0000000..5adf895 --- /dev/null +++ b/docs/generated/_static/sidebar.js @@ -0,0 +1,159 @@ +/* + * sidebar.js + * ~~~~~~~~~~ + * + * This script makes the Sphinx sidebar collapsible. + * + * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds + * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton + * used to collapse and expand the sidebar. + * + * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden + * and the width of the sidebar and the margin-left of the document + * are decreased. When the sidebar is expanded the opposite happens. + * This script saves a per-browser/per-session cookie used to + * remember the position of the sidebar among the pages. + * Once the browser is closed the cookie is deleted and the position + * reset to the default (expanded). + * + * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +$(function() { + + + + + + + + + // global elements used by the functions. + // the 'sidebarbutton' element is defined as global after its + // creation, in the add_sidebar_button function + var bodywrapper = $('.bodywrapper'); + 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'); + var ssb_width_expanded = sidebar.width(); + + // margin-left of the bodywrapper and width of the sidebar + // with the sidebar collapsed + var bw_margin_collapsed = '.8em'; + var ssb_width_collapsed = '.8em'; + + // colors used by the current theme + var dark_color = $('.related').css('background-color'); + var light_color = $('.document').css('background-color'); + + function sidebar_is_collapsed() { + return sidebarwrapper.is(':not(:visible)'); + } + + function toggle_sidebar() { + if (sidebar_is_collapsed()) + expand_sidebar(); + else + collapse_sidebar(); + } + + function collapse_sidebar() { + sidebarwrapper.hide(); + sidebar.css('width', ssb_width_collapsed); + bodywrapper.css('margin-left', bw_margin_collapsed); + sidebarbutton.css({ + 'margin-left': '0', + 'height': bodywrapper.height() + }); + sidebarbutton.find('span').text('»'); + sidebarbutton.attr('title', _('Expand sidebar')); + document.cookie = 'sidebar=collapsed'; + } + + function expand_sidebar() { + bodywrapper.css('margin-left', bw_margin_expanded); + sidebar.css('width', ssb_width_expanded); + sidebarwrapper.show(); + sidebarbutton.css({ + 'margin-left': ssb_width_expanded-12, + 'height': bodywrapper.height() + }); + sidebarbutton.find('span').text('«'); + sidebarbutton.attr('title', _('Collapse sidebar')); + document.cookie = 'sidebar=expanded'; + } + + function add_sidebar_button() { + sidebarwrapper.css({ + 'float': 'left', + 'margin-right': '0', + 'width': ssb_width_expanded - 28 + }); + // create the button + sidebar.append( + '
      «
      ' + ); + var sidebarbutton = $('#sidebarbutton'); + light_color = sidebarbutton.css('background-color'); + // find the height of the viewport to center the '<<' in the page + var viewport_height; + if (window.innerHeight) + viewport_height = window.innerHeight; + else + viewport_height = $(window).height(); + sidebarbutton.find('span').css({ + 'display': 'block', + 'margin-top': (viewport_height - sidebar.position().top - 20) / 2 + }); + + sidebarbutton.click(toggle_sidebar); + sidebarbutton.attr('title', _('Collapse sidebar')); + sidebarbutton.css({ + 'color': '#FFFFFF', + 'border-left': '1px solid ' + dark_color, + 'font-size': '1.2em', + 'cursor': 'pointer', + 'height': bodywrapper.height(), + 'padding-top': '1px', + 'margin-left': ssb_width_expanded - 12 + }); + + sidebarbutton.hover( + function () { + $(this).css('background-color', dark_color); + }, + function () { + $(this).css('background-color', light_color); + } + ); + } + + function set_position_from_cookie() { + if (!document.cookie) + return; + var items = document.cookie.split(';'); + for(var k=0; k - Index — sandman 0.2.3.1 documentation + Index — sandman 0.2.3.5 documentation @@ -15,7 +15,7 @@ - + @@ -53,12 +53,14 @@

      Index

      | D | E | G + | I | J | M | N | P | R | S + | T | U @@ -76,6 +78,12 @@

      D

      + +
      +
      DB_LOCATION (sandman.test.test_sandman.TestSandman attribute) +
      + +
      +
      delete_resource() (in module sandman.sandman)
      @@ -99,10 +107,24 @@

      G

      get_body() (sandman.exception.JSONException method)
      + +
      get_headers() (sandman.exception.JSONException method) +
      +
      -
      get_headers() (sandman.exception.JSONException method) +
      get_response() (sandman.test.test_sandman.TestSandman method) +
      + +
      + +

      I

      + + @@ -145,6 +167,12 @@

      P

      patch_resource() (in module sandman.sandman)
      + +
      + +
      is_html_response() (sandman.test.test_sandman.TestSandman static method)
      + +
      post_response() (sandman.test.test_sandman.TestSandman method) +
      +
      @@ -191,9 +219,17 @@

      S

      sandman.sandman (module)
      + +
      sandman.test.test_sandman (module) +
      +
      +
      setup_method() (sandman.test.test_sandman.TestSandman method) +
      + +
      show_collection() (in module sandman.sandman)
      @@ -204,6 +240,114 @@

      S

      +

      T

      + + + +
      + +
      teardown_method() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_delete_non_existant_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_delete_not_supported() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_delete_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_get() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_get_html() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_get_html_collection() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_get_json() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_patch_existing_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_patch_new_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_post() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_post_html_response() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_posted_location() (sandman.test.test_sandman.TestSandman method) +
      + +
      + +
      test_posted_uri() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_put_fail_validation() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_put_invalid_foreign_key() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_put_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_put_unknown_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_unsupported_collection_method() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_unsupported_get_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_unsupported_patch_resource() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_user_defined_endpoint() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_user_validation_accept() (sandman.test.test_sandman.TestSandman method) +
      + + +
      test_user_validation_reject() (sandman.test.test_sandman.TestSandman method) +
      + + +
      TestSandman (class in sandman.test.test_sandman) +
      + +
      +

      U

      + + +
      @@ -256,7 +400,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • @@ -124,7 +124,7 @@

      Navigation

    • next |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • @@ -114,7 +114,7 @@

      Navigation

    • previous |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • @@ -79,6 +79,11 @@

      Python Module Index

          sandman.sandman
          + sandman.test.test_sandman +
      @@ -113,7 +118,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • @@ -125,7 +125,7 @@

      Navigation

    • previous |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • @@ -393,7 +393,7 @@

      Navigation

    • previous |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »
    • @@ -94,7 +94,7 @@

      Navigation

    • modules |
    • -
    • sandman 0.2.3.1 documentation »
    • +
    • sandman 0.2.3.5 documentation »