From dea89800f20062e6423ba48e7a5f98236898131d Mon Sep 17 00:00:00 2001 From: William Wang Date: Tue, 11 Apr 2023 16:42:47 -0400 Subject: [PATCH 1/4] revamping docs --- .gitignore | 6 + .vscode/launch.json | 7 + Makefile | 8 +- dist/fantasyfootball-crawler-0.1.0.tar.gz | Bin 18189 -> 0 bytes {website/docs => docs}/Makefile | 2 +- {website/docs/source => docs}/conf.py | 2 +- {website/docs/source => docs}/index.rst | 2 +- {website/docs/source => docs}/intro.rst | 0 {website/docs => docs}/make.bat | 0 {website/docs => docs}/modules.rst | 0 fantasyfootball-crawler/tests/__init__.py | 0 .../__init__.py | 0 .../__main__.py | 0 .../_version.py | 0 .../ff_functions.py | 0 .../tests}/__init__.py | 0 .../tests/test_all.py | 0 website/.DS_Store | Bin 8196 -> 0 bytes website/docs/.DS_Store | Bin 6148 -> 0 bytes website/docs/build/.DS_Store | Bin 6148 -> 0 bytes .../docs/build/doctrees/environment.pickle | Bin 83987 -> 0 bytes website/docs/build/doctrees/index.doctree | Bin 47876 -> 0 bytes website/docs/build/doctrees/intro.doctree | Bin 5884 -> 0 bytes website/docs/build/html/.buildinfo | 4 - .../build/html/.doctrees/environment.pickle | Bin 17145 -> 0 bytes .../docs/build/html/.doctrees/index.doctree | Bin 4954 -> 0 bytes .../docs/build/html/_sources/index.rst.txt | 8 - .../docs/build/html/_sources/intro.rst.txt | 25 - website/docs/build/html/_static/alabaster.css | 703 -------------- website/docs/build/html/_static/basic.css | 903 ------------------ website/docs/build/html/_static/custom.css | 1 - website/docs/build/html/_static/doctools.js | 156 --- .../html/_static/documentation_options.js | 14 - website/docs/build/html/_static/file.png | Bin 286 -> 0 bytes .../docs/build/html/_static/language_data.js | 199 ---- website/docs/build/html/_static/minus.png | Bin 90 -> 0 bytes website/docs/build/html/_static/plus.png | Bin 90 -> 0 bytes website/docs/build/html/_static/pygments.css | 83 -- .../docs/build/html/_static/searchtools.js | 566 ----------- .../build/html/_static/sphinx_highlight.js | 144 --- website/docs/build/html/genindex.html | 170 ---- website/docs/build/html/index.html | 363 ------- website/docs/build/html/intro.html | 119 --- website/docs/build/html/objects.inv | 7 - website/docs/build/html/py-modindex.html | 117 --- website/docs/build/html/search.html | 118 --- website/docs/build/html/searchindex.js | 1 - 47 files changed, 23 insertions(+), 3705 deletions(-) create mode 100644 .vscode/launch.json delete mode 100644 dist/fantasyfootball-crawler-0.1.0.tar.gz rename {website/docs => docs}/Makefile (96%) rename {website/docs/source => docs}/conf.py (93%) rename {website/docs/source => docs}/index.rst (83%) rename {website/docs/source => docs}/intro.rst (100%) rename {website/docs => docs}/make.bat (100%) rename {website/docs => docs}/modules.rst (100%) delete mode 100644 fantasyfootball-crawler/tests/__init__.py rename __init__.py => fantasyfootball_crawler/__init__.py (100%) rename {fantasyfootball-crawler => fantasyfootball_crawler}/__main__.py (100%) rename {fantasyfootball-crawler => fantasyfootball_crawler}/_version.py (100%) rename {fantasyfootball-crawler => fantasyfootball_crawler}/ff_functions.py (100%) rename {fantasyfootball-crawler => fantasyfootball_crawler/tests}/__init__.py (100%) rename {fantasyfootball-crawler => fantasyfootball_crawler}/tests/test_all.py (100%) delete mode 100644 website/.DS_Store delete mode 100644 website/docs/.DS_Store delete mode 100644 website/docs/build/.DS_Store delete mode 100644 website/docs/build/doctrees/environment.pickle delete mode 100644 website/docs/build/doctrees/index.doctree delete mode 100644 website/docs/build/doctrees/intro.doctree delete mode 100644 website/docs/build/html/.buildinfo delete mode 100644 website/docs/build/html/.doctrees/environment.pickle delete mode 100644 website/docs/build/html/.doctrees/index.doctree delete mode 100644 website/docs/build/html/_sources/index.rst.txt delete mode 100644 website/docs/build/html/_sources/intro.rst.txt delete mode 100644 website/docs/build/html/_static/alabaster.css delete mode 100644 website/docs/build/html/_static/basic.css delete mode 100644 website/docs/build/html/_static/custom.css delete mode 100644 website/docs/build/html/_static/doctools.js delete mode 100644 website/docs/build/html/_static/documentation_options.js delete mode 100644 website/docs/build/html/_static/file.png delete mode 100644 website/docs/build/html/_static/language_data.js delete mode 100644 website/docs/build/html/_static/minus.png delete mode 100644 website/docs/build/html/_static/plus.png delete mode 100644 website/docs/build/html/_static/pygments.css delete mode 100644 website/docs/build/html/_static/searchtools.js delete mode 100644 website/docs/build/html/_static/sphinx_highlight.js delete mode 100644 website/docs/build/html/genindex.html delete mode 100644 website/docs/build/html/index.html delete mode 100644 website/docs/build/html/intro.html delete mode 100644 website/docs/build/html/objects.inv delete mode 100644 website/docs/build/html/py-modindex.html delete mode 100644 website/docs/build/html/search.html delete mode 100644 website/docs/build/html/searchindex.js diff --git a/.gitignore b/.gitignore index b6e4761..22b7dfe 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ __pycache__/ build/ develop-eggs/ dist/ +*.tar.gz downloads/ eggs/ .eggs/ @@ -127,3 +128,8 @@ dmypy.json # Pyre type checker .pyre/ + + +# Mac files +.DS_Store + diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..5c7247b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,7 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [] +} \ No newline at end of file diff --git a/Makefile b/Makefile index 84ee2d0..7cd2819 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,12 @@ dist: clean build dist-build dist-check ## Build dists publish: # Upload python assets echo "would usually run python -m twine upload dist/* --skip-existing" +######## +# DOCS # +######## +docs: ## build the documentation + make -C docs html + ######### # CLEAN # ######### @@ -96,4 +102,4 @@ help: print-%: @echo '$*=$($*)' -.PHONY: develop build install lint lints format fix check checks annotate test coverage show-coverage tests show-version patch minor major dist-build dist-check dist publish deep-clean clean help +.PHONY: develop build install lint lints format fix check checks annotate test coverage show-coverage tests show-version patch minor major dist-build dist-check dist publish deep-clean clean help docs diff --git a/dist/fantasyfootball-crawler-0.1.0.tar.gz b/dist/fantasyfootball-crawler-0.1.0.tar.gz deleted file mode 100644 index 07c4d6df5ad083493b99b86bf1b8b75c6fb6e8af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18189 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ΝiVfv~LLfE@ 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 Sr~dqsKK~E%;=0iQxB&o5P!84r diff --git a/website/docs/Makefile b/docs/Makefile similarity index 96% rename from website/docs/Makefile rename to docs/Makefile index d0c3cbf..ed88099 100644 --- a/website/docs/Makefile +++ b/docs/Makefile @@ -5,7 +5,7 @@ # from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build -SOURCEDIR = source +SOURCEDIR = . BUILDDIR = build # Put it first so that "make" without argument is like "make help". diff --git a/website/docs/source/conf.py b/docs/conf.py similarity index 93% rename from website/docs/source/conf.py rename to docs/conf.py index 758a7c8..5141d82 100644 --- a/website/docs/source/conf.py +++ b/docs/conf.py @@ -5,7 +5,7 @@ import os import sys import bs4 -sys.path.insert(0, os.path.abspath('../../../fantasyfootball-crawler')) +sys.path.insert(0, os.path.abspath('../')) # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information diff --git a/website/docs/source/index.rst b/docs/index.rst similarity index 83% rename from website/docs/source/index.rst rename to docs/index.rst index 13c1764..d16aa3a 100644 --- a/website/docs/source/index.rst +++ b/docs/index.rst @@ -4,5 +4,5 @@ contain the root `toctree` directive. .. include:: intro.rst -.. automodule:: ff_functions +.. automodule:: fantasyfootball_crawler.ff_functions :members: \ No newline at end of file diff --git a/website/docs/source/intro.rst b/docs/intro.rst similarity index 100% rename from website/docs/source/intro.rst rename to docs/intro.rst diff --git a/website/docs/make.bat b/docs/make.bat similarity index 100% rename from website/docs/make.bat rename to docs/make.bat diff --git a/website/docs/modules.rst b/docs/modules.rst similarity index 100% rename from website/docs/modules.rst rename to docs/modules.rst diff --git a/fantasyfootball-crawler/tests/__init__.py b/fantasyfootball-crawler/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/__init__.py b/fantasyfootball_crawler/__init__.py similarity index 100% rename from __init__.py rename to fantasyfootball_crawler/__init__.py diff --git a/fantasyfootball-crawler/__main__.py b/fantasyfootball_crawler/__main__.py similarity index 100% rename from fantasyfootball-crawler/__main__.py rename to fantasyfootball_crawler/__main__.py diff --git a/fantasyfootball-crawler/_version.py b/fantasyfootball_crawler/_version.py similarity index 100% rename from fantasyfootball-crawler/_version.py rename to fantasyfootball_crawler/_version.py diff --git a/fantasyfootball-crawler/ff_functions.py b/fantasyfootball_crawler/ff_functions.py similarity index 100% rename from fantasyfootball-crawler/ff_functions.py rename to fantasyfootball_crawler/ff_functions.py diff --git a/fantasyfootball-crawler/__init__.py b/fantasyfootball_crawler/tests/__init__.py similarity index 100% rename from fantasyfootball-crawler/__init__.py rename to fantasyfootball_crawler/tests/__init__.py diff --git a/fantasyfootball-crawler/tests/test_all.py b/fantasyfootball_crawler/tests/test_all.py similarity index 100% rename from fantasyfootball-crawler/tests/test_all.py rename to fantasyfootball_crawler/tests/test_all.py diff --git a/website/.DS_Store b/website/.DS_Store deleted file mode 100644 index cc65af20cd97830bd387c66e2e4b019911fdef82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMTWl3Y7@lui=1Du}12MeZrm(i@lKIcFETVY^$-?l}bs zu?qU2#%Q8Z6D1n;QM?;tqR}^^#s@=GG%;QhU-ZETo=g<~+1XRt0xyOb5_XcAf99Y6 zpPl*U`*+UlVT>VNH1A}rmNCXD3#m_|;wnk>i+n{=B26VpkUz_f_`^BJ%TfEoE39Kh zj6jS)j6jS)j6jUQjer21*&^|4ocppjE@K2@1a3+M#QPyhS;$l*N2Ls39aMx@0FvSg z5GJbYqCzqm$y6jqrKBE8kgg=9E21j~q&w-8kzFd1qf$zDhUoHv=*fs~Ch?S*SFUGsJ+?KH(QDd0H^|zqRR|qy(;}1oy|!z5BWbVbnttfpB|Esv)r?+y z;zV;xYh!XvQ_IQ5AOL~0#dK|yh zF26@q%qy?wyYhNeZJN>3tMzB}*(I8E=Wt+quHR!7e3BV`mQRb@miOG<1xxhz<~^r4 zoh*t&D~`57~3>6$jDrnhAKcFwW-vwq%kP1`-Zcf>Y>!2v?f z4eUd>K;?-p~-O$Cqj&-Ojmw?x1+~&a5AF4qNWntkPRJAMgjW z1*>y}_*M4U!Fjl6q!%umO*`-k5|E_P$$7sRtj#oO9DRQ6y!-YT2JMjTmTY1(ZMY=0 z{x#>kF11|lPY9}7muiZ(i!+0*q?2$f+s`aE%ucZ<*h}mTdxL$zK4ItBSL_1&p8ddn zWWTaM*hTgiDlr9B;Hbs|+=7Kzga)iZ3)Uiy9oUIo=tMUT;2<){;t)Ix<0yO_$HO>< z(|8n5;yFBz7w{rp$636Ix9|==!{_({U*cQ*grD&XF5++egG-94%vP2tcPPu0dS$uN ztgKgB<;<0GvmDElucCiSe>opJ+(v3I&>Mu1qv(dIg1%8u~UT8Z;eTHr8panqEl(C7T(Po0 z*oe*8g00w2RP9C&deM&oS5T3PZn_7e(6nYGJEf{Sp6fdFH7cim+mD)5xgE3p0)*MP9XMG``#OHBl zcMGXi5Cj#w1GC>`ev-}yyW0T()}8wM05t$GQ3;JrTs{zrldi~y@{|ync!%$$$;gYi zx00(JngPwg-(!IGZV^0~LI@G$_wS20io#@K+plb+U=&Mbvusw)Yxj<)?qo2TCf&jK zlAg{ukGzFF@Xo^^?bo)Cc{~|}aWEDIp&ww%)kPTlJniyn>?fkul>xJ2R{FL2Y}Rad z8dl40&l}dPb6}(0Jet_*$irVq={fhK zJB}kB-=dcyB}jlH31b*SkUPYFhXk7%Z+(}9rJnLMECt>Xfm~==69&`{GOKISuWnN_ zpc(i&19U!EsDzHfOrkhCa1kQ_qJeH9Xwxh~HI_n0VI~nHC`^_j%2K9A3?|FbZ>c;- zVJ1I19K$mRWqO&SZ1IgA8T~~pL{<5FBj=2&46a$UopUp zp4;nUOX_Z2X^!q%3-tz-gz_?pq68Op9Sei5;yS7jj9FwLItnw1=t0qc1OyFw(G2`3 F18-aDljHyZ diff --git a/website/docs/build/.DS_Store b/website/docs/build/.DS_Store deleted file mode 100644 index b7302322dfcda016e85abb1017199a6a2e514954..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 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 diff --git a/website/docs/build/doctrees/index.doctree b/website/docs/build/doctrees/index.doctree deleted file mode 100644 index d08a0d8e4e9272737e73868fd4f32dd78089fe28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47876 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 GR{j@7_wR)O diff --git a/website/docs/build/html/.doctrees/index.doctree b/website/docs/build/html/.doctrees/index.doctree deleted file mode 100644 index 8ef1ffeaee60ec1cf04ddd06ce1041132d1ba83f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4954 zcmds5TZ2Y*%FJ<~I5t>iprVV0>=r%s(Z=R3Fg zMdS02ZmhXKv!hbR<7uCSVVs0i<)$4bK^D|%s)RUg%Zt^*sHE6RuNH}N^iskz2^mz5=}#IIO`Uw z^&V$Dm?%x8_Hgt=eBMi?cX;1BJUlvl_vpd*ya)FmywmUgB+0yh#2yJrsy)rPaw0vb zlM1S-n0Y$!W_X7u_=Lyfd)_e99@m~?NhU&%Xire+(hZVW6COhb^<35uz6W&4S9o zIUOpl=>WpjpycIoNT+?NbZ)K-9@G4|kqzPGma<+?;(1K425VXX9ALAdxfZmxW$u1L z1z<-l;FgeoM=fLj^#VnE-{eH$6IkXD&S2ky2iPk>;;Z=F#^*cuy#6rH*c)sBrhDv7 zw$ARb19tbg<=)b^0g+^JSkt(83|oWk3#4D(d)7tlmT5S%0RX^=cFLFc&Lv4xDs!@G&hIaq^CTP6 zx%th(dExS&PI?twU3%-O)S=HUf}Y6MKJq6 zh(jJw<&ik_G#Oflxa76>wOez1J$?~<#Wg*49lkb(nLxhv1xFZFHDsYz$8_wDkI;*1 z+h*qodEw~Mn8prGkE;CILGB@A_=MHC*;Ds`HM5C050T6LDNbKz=$IytT_D#KDbDVh zc6C=ifASwzpL}4hJIQ8U=@1CV|DL^xu7V?nPkz4&sydTt;vBr3vyV_v?bir3CTD*# zEv)n`MHXDQqRj^W(`hPrz%_7fx6g@;^QZ0{3gMU{KP|Mk*#2#a?R}_Wu2RD?|GLKf ztLHKQ5)waMI2ovCPv+1nofakV0WxRlwBJ$blEOa1Mt%j>qc%zt?v^Od&WDgs7PA_I2G^8Z<}e6e0w zzF6;}oVxQ1yMOt=+Wm{GUh@pQpEj?pq3FD50KoK>zIDUD3|s#9s@v;^x6J>39`j|x zFH(J#zN?IEnnl9P&9%2&+5LGfyj*%*Dir&O6q}8E$i}@g8!t*iwOh~CSLS}?+^bY8 znoU@2br{;oL|yU%w|P#S@OiR71bIE6_dc8tx2x4A4ylFkpPcXaDfip5584N5^g!LnN}GbymzLc#TIKWKMxUBeddS#I`irxqug z);5o?nJwFbq5AvNQ6i%plx>A>BlXL1LqX)L1%(P~2N30-bIts!E5(iFfwE1-<0VZK ziBd(+sIYxWmk}{vHq0KKa@a}}ovDhcVHzPFW@B8pZPT(XK9EaE1WHFsw6pe6$ky9D zPBZP(II!t)j9w?xqu#qc#qs^MV;tM8dV`TLK++M#dBt4^ga|=}a@*!rj0~l*rIW zcZXt(t85E+VwxDEMtCZ$!b2bZ{fJL<)->BB(}}+znU^?#wH0Pj>d(Ok<2nLIb0}jX ztiT;dfrVpbA+R8&ie_QrW1IljE=p&js9!(nkP>MBjHBasFx~M(u52rW$CO&Os-R#8 zW)qK52m{x_LFiV==Fi*NTlO0+!3bg-S$Nq>3*q(+G@kP%V7g}`3+Rc*0Hfd$iu#AU zcg%K5Q{Ps4#3RxHEhg0g8|5@Ul_Ze$nhXIH!Y`A0GvJ=DY!_x zDT=1OH|~EI_S}}EU`4#8EX2QAiATT^3)=~meNOer-GR^_FdYe8)^U&I`&>`aK$lPpC?WPfsSt$&#dFeiY*;}I}WC5L^RE>t#L;p347ut-P|k#@+N z= zQVL=iP_(Ju{$Ai0O`Ds8_MjA?rIA?y8w^Nxh&KC6)M8!+8PZ1cg>4}1s116{5{vH# zY{J;-A%gw1kAIoz*ge}%y6K!vF5Kot#$K_bB4hU)AB!`yRd=J4yM>n1VctTgpx9`w z_=*SADFq(}ez-jvCSr~Z$NKULan9XYlGv$kb%*wsHaFV4wwH z&^!kTrVlr)qo%apFX^AbYESYXA}%maAj0tDgaQ(Z3+E|iiM%l .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Georgia, serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: Georgia, serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -div.sphinxsidebar .badge { - border-bottom: none; -} - -div.sphinxsidebar .badge:hover { - border-bottom: none; -} - -/* To address an issue with donation coming after search */ -div.sphinxsidebar h3.donation { - margin-top: 10px; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Georgia, serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: Georgia, serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: #fff; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin-left: 0; - margin-right: 0; - margin-top: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - - -/* relbar */ - -.related { - line-height: 30px; - width: 100%; - font-size: 0.9rem; -} - -.related.top { - border-bottom: 1px solid #EEE; - margin-bottom: 20px; -} - -.related.bottom { - border-top: 1px solid #EEE; -} - -.related ul { - padding: 0; - margin: 0; - list-style: none; -} - -.related li { - display: inline; -} - -nav#rellinks { - float: right; -} - -nav#rellinks li+li:before { - content: "|"; -} - -nav#breadcrumbs li+li:before { - content: "\00BB"; -} - -/* Hide certain items when printing */ -@media print { - div.related { - display: none; - } -} \ No newline at end of file diff --git a/website/docs/build/html/_static/basic.css b/website/docs/build/html/_static/basic.css deleted file mode 100644 index 7577acb..0000000 --- a/website/docs/build/html/_static/basic.css +++ /dev/null @@ -1,903 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- 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%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -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 form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- 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 p.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%; - margin-left: auto; - margin-right: auto; -} - -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 ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -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; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -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, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 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; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -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; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- 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; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.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; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - 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; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- 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/website/docs/build/html/_static/custom.css b/website/docs/build/html/_static/custom.css deleted file mode 100644 index 2a924f1..0000000 --- a/website/docs/build/html/_static/custom.css +++ /dev/null @@ -1 +0,0 @@ -/* This file intentionally left blank. */ diff --git a/website/docs/build/html/_static/doctools.js b/website/docs/build/html/_static/doctools.js deleted file mode 100644 index d06a71d..0000000 --- a/website/docs/build/html/_static/doctools.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (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: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/website/docs/build/html/_static/documentation_options.js b/website/docs/build/html/_static/documentation_options.js deleted file mode 100644 index ea65d36..0000000 --- a/website/docs/build/html/_static/documentation_options.js +++ /dev/null @@ -1,14 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1', - LANGUAGE: 'python', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/website/docs/build/html/_static/file.png b/website/docs/build/html/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/website/docs/build/html/_static/language_data.js b/website/docs/build/html/_static/language_data.js deleted file mode 100644 index 250f566..0000000 --- a/website/docs/build/html/_static/language_data.js +++ /dev/null @@ -1,199 +0,0 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, is available */ - -/** - * 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; - } -} - diff --git a/website/docs/build/html/_static/minus.png b/website/docs/build/html/_static/minus.png deleted file mode 100644 index d96755fdaf8bb2214971e0db9c1fd3077d7c419d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK diff --git a/website/docs/build/html/_static/plus.png b/website/docs/build/html/_static/plus.png deleted file mode 100644 index 7107cec93a979b9a5f64843235a16651d563ce2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz diff --git a/website/docs/build/html/_static/pygments.css b/website/docs/build/html/_static/pygments.css deleted file mode 100644 index 9abe04b..0000000 --- a/website/docs/build/html/_static/pygments.css +++ /dev/null @@ -1,83 +0,0 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #8f5902; font-style: italic } /* Comment */ -.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ -.highlight .g { color: #000000 } /* Generic */ -.highlight .k { color: #004461; font-weight: bold } /* Keyword */ -.highlight .l { color: #000000 } /* Literal */ -.highlight .n { color: #000000 } /* Name */ -.highlight .o { color: #582800 } /* Operator */ -.highlight .x { color: #000000 } /* Other */ -.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ -.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #8f5902 } /* Comment.Preproc */ -.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #a40000 } /* Generic.Deleted */ -.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #ef2929 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #745334 } /* Generic.Prompt */ -.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ -.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */ -.highlight .ld { color: #000000 } /* Literal.Date */ -.highlight .m { color: #990000 } /* Literal.Number */ -.highlight .s { color: #4e9a06 } /* Literal.String */ -.highlight .na { color: #c4a000 } /* Name.Attribute */ -.highlight .nb { color: #004461 } /* Name.Builtin */ -.highlight .nc { color: #000000 } /* Name.Class */ -.highlight .no { color: #000000 } /* Name.Constant */ -.highlight .nd { color: #888888 } /* Name.Decorator */ -.highlight .ni { color: #ce5c00 } /* Name.Entity */ -.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #000000 } /* Name.Function */ -.highlight .nl { color: #f57900 } /* Name.Label */ -.highlight .nn { color: #000000 } /* Name.Namespace */ -.highlight .nx { color: #000000 } /* Name.Other */ -.highlight .py { color: #000000 } /* Name.Property */ -.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #000000 } /* Name.Variable */ -.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ -.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ -.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ -.highlight .mb { color: #990000 } /* Literal.Number.Bin */ -.highlight .mf { color: #990000 } /* Literal.Number.Float */ -.highlight .mh { color: #990000 } /* Literal.Number.Hex */ -.highlight .mi { color: #990000 } /* Literal.Number.Integer */ -.highlight .mo { color: #990000 } /* Literal.Number.Oct */ -.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ -.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ -.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ -.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ -.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ -.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ -.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ -.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ -.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ -.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ -.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ -.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ -.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #000000 } /* Name.Function.Magic */ -.highlight .vc { color: #000000 } /* Name.Variable.Class */ -.highlight .vg { color: #000000 } /* Name.Variable.Global */ -.highlight .vi { color: #000000 } /* Name.Variable.Instance */ -.highlight .vm { color: #000000 } /* Name.Variable.Magic */ -.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/website/docs/build/html/_static/searchtools.js b/website/docs/build/html/_static/searchtools.js deleted file mode 100644 index 97d56a7..0000000 --- a/website/docs/build/html/_static/searchtools.js +++ /dev/null @@ -1,566 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename] = result - return score - }, - */ - - // 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, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - - const [docName, title, anchor, descr, score, _filename] = item; - - let listItem = document.createElement("li"); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) - ); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; - console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - // array of [docname, title, anchor, descr, score, filename] - let results = []; - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // lookup as object - objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - results = results.reverse(); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - const arr = [ - { files: terms[word], score: Scorer.term }, - { files: titleTerms[word], score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, {}); - scoreMap.get(file)[word] = record.score; - }); - }); - - // create the mapping - files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/website/docs/build/html/_static/sphinx_highlight.js b/website/docs/build/html/_static/sphinx_highlight.js deleted file mode 100644 index aae669d..0000000 --- a/website/docs/build/html/_static/sphinx_highlight.js +++ /dev/null @@ -1,144 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - parent.insertBefore( - span, - parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(SphinxHighlight.highlightSearchWords); -_ready(SphinxHighlight.initEscapeListener); diff --git a/website/docs/build/html/genindex.html b/website/docs/build/html/genindex.html deleted file mode 100644 index 8fba39e..0000000 --- a/website/docs/build/html/genindex.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - Index — Documentation 1 documentation - - - - - - - - - - - - - - - - -
- - -
-
- - - - - - - \ No newline at end of file diff --git a/website/docs/build/html/index.html b/website/docs/build/html/index.html deleted file mode 100644 index 14702ab..0000000 --- a/website/docs/build/html/index.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - Welcome to fantasyfootball-crawler's documentation! — Documentation 1 documentation - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Welcome to fantasyfootball-crawler's documentation!

-

Fantasy football is a game played by many Americans, -however most are uneducated when it comes to the various in-depth statistics -that are needed to "level up" your team, and potentially win big. Most websites -gloss over important statistics, or don't include all of the information needed -(think FantasyPros), or perhaps include too much information (think pro-football-reference). -I want to build a one-stop-shop for these important statistics. Essentially, this -open source library will give you the best players at each position and filter based -off of statistics that I deem most important to each position in FF.

-
-

Note

-

This project is under active development.

-
-

How to Install Library -To install the library, navigate to your console/terminal and run the command -pip install fantasyfootball_crawler.tar.gz

-

How to Use Library -To use the library, call the functions in FF_functions after you've installed -the library. Make sure to import them into your code files first.

-

Functions and Docstrings

-
-
-ff_functions.getAggregateTopPlayers(results)
-

Returns the best NFL players for Fantasy regardless of position

-
-

Parameters

-
-
resultsstr[]

The results object that can be dissected for the players

-
-
-
-
-

Returns

-
-
str[]

A list of the top players

-
-
-
-
-

Examples

-
>>> getAggregateTopPlayers(results)
-[Joe Burrow, Tom Brady, ...]
-
-
-
-
- -
-
-ff_functions.getQBData()
-

Returns a DataFrame of the best QB's and their various stats, filtered and ordered on specific variables

-
-

Parameters

-

None

-
-
-

Returns

-
-
DataFrame

A a DataFrame of the best QB's and their various stats, filtered and ordered on specific variables

-
-
-
-
-

Examples

-
>>> getQBData()
-              Player Age   QBR  Cmp%   Yds  TD Int                                                                                                                      
-                0  Patrick Mahomes*+  27  77.6  67.1  5250  41  12
-                4        Joe Burrow*  26  58.7  68.3  4475  35  12
-                6        Josh Allen*  26  71.4  63.3  4283  35  14
-                7        Geno Smith*  32  60.8  69.8  4282  30  11
-                3      Kirk Cousins*  34  49.9  65.9  4547  29  14
-
-
-
-
- -
-
-ff_functions.getRBData()
-

Returns a DataFrame of the best RB's and their various stats, filtered and ordered on specific variables

-
-

Parameters

-

None

-
-
-

Returns

-
-
DataFrame

A a DataFrame of the best RB's and their various stats, filtered and ordered on specific variables

-
-
-
-
-

Examples

-
>>> getRBData()
-            Player   Tm  Age Pos   G  GS  Att   Yds  TD  1D Lng  Y/A   Y/G Fmb
-            1    Josh Jacobs*+  LVR   24  RB  17  17  340  1653  12  93  86  4.9  97.2   3
-            0  Derrick Henry *  TEN   28  RB  16  16  349  1538  13  65  56  4.4  96.1   6
-            2      Nick Chubb*  CLE   27  RB  17  17  302  1525  12  69  41  5.0  89.7   1
-            3  Saquon Barkley*  NYG   25  RB  16  16  295  1312  10  62  68  4.4  82.0   1
-            7   Miles Sanders*  PHI   25  RB  17  15  259  1269  11  62  40  4.9  74.6   2
-
-
-
-
- -
-
-ff_functions.getResults(label1, hrefBool, soup)
-

A results table of a soup query

-
-

Parameters

-
-
label1str

The label used to query the HTML result

-
-
hrefBoolstr

Another label to query the desired results

-
-
soupBeautifulSoup

The soup object to query the website

-
-
-
-
-

Returns

-
-
str[]

A list of strings that depict the results queried

-
-
-
-
-

Examples

-
>>> getResults("ref", "hi", soup)
-str[] containing results of the website
-
-
-
-
- -
-
-ff_functions.getWRData()
-

Returns a DataFrame of the best WR's and their various stats, filtered and ordered on specific variables

-
-

Parameters

-

None

-
-
-

Returns

-
-
DataFrame

A a DataFrame of the best WR's and their various stats, filtered and ordered on specific variables

-
-
-
-
-

Examples

-
>>> getWRData()
-            Player Age Pos  Tgt  Rec   Yds  TD
-            7   Davante Adams*+  30  WR  180  100  1516  14
-            0     Tyreek Hill*+  28  WR  170  119  1710   7
-            4      CeeDee Lamb*  23  WR  156  107  1359   9
-            2     Stefon Diggs*  29  WR  154  108  1429  11
-            14  Diontae Johnson  26  WR  147   86   882   0
-
-
-
-
- -
-
-ff_functions.read_dict()
-

Returns a string of the keys in the website dict

-
-

Parameters

-

None

-
-
-

Returns

-
-
str

A concactenated string that contains all of the key values

-
-
-
-
-

Examples

-
>>> read_dict()
-"main container"
-
-
-
-
- -
-
-ff_functions.read_nextgen()
-

Returns the results for the nextGen website specifically

-
-

Parameters

-

None

-
-
-

Returns

-
-
str[]

A results list that contains players

-
-
-
-
-

Examples

-
>>> read_nextgen()
-[Joe Burrow, Tom Brady, ...]
-
-
-
-
- -
-
-ff_functions.read_pff()
-

Returns the results for the PFF website specifically

-
-

Parameters

-

None

-
-
-

Returns

-
-
str[]

A results list that contains players

-
-
-
-
-

Examples

-
>>> read_pff()
-[Joe Burrow, Tom Brady, ...]
-
-
-
-
- -
-
-ff_functions.soupInit(URL)
-

Returns a BeautifulSoup object

-
-

Parameters

-
-
URLstr

The URL of the page desired to be queried

-
-
-
-
-

Returns

-
-
BeautifulSoup

A BeautifulSoup object that queries the specified URL

-
-
-
-
-

Examples

-
>>> soupInit("bing.com")
-BeautifulSoup object
-
-
-
-
- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/website/docs/build/html/intro.html b/website/docs/build/html/intro.html deleted file mode 100644 index 35682bd..0000000 --- a/website/docs/build/html/intro.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - Welcome to fantasyfootball-crawler's documentation! — Documentation 1 documentation - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Welcome to fantasyfootball-crawler's documentation!

-

Fantasy football is a game played by many Americans, -however most are uneducated when it comes to the various in-depth statistics -that are needed to "level up" your team, and potentially win big. Most websites -gloss over important statistics, or don't include all of the information needed -(think FantasyPros), or perhaps include too much information (think pro-football-reference). -I want to build a one-stop-shop for these important statistics. Essentially, this -open source library will give you the best players at each position and filter based -off of statistics that I deem most important to each position in FF.

-
-

Note

-

This project is under active development.

-
-

How to Install Library -To install the library, navigate to your console/terminal and run the command -pip install fantasyfootball_crawler.tar.gz

-

How to Use Library -To use the library, call the functions in FF_functions after you've installed -the library. Make sure to import them into your code files first.

-

Functions and Docstrings

-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/website/docs/build/html/objects.inv b/website/docs/build/html/objects.inv deleted file mode 100644 index b04e570..0000000 --- a/website/docs/build/html/objects.inv +++ /dev/null @@ -1,7 +0,0 @@ -# Sphinx inventory version 2 -# Project: Documentation -# Version: -# The remainder of this file is compressed using zlib. -xڝ1k0w+-trhl-]2ܴ1\l%#i+[&޽靐Rg[a:7h<'|P FkI#ӏ*)evs+# pf1"O(ϲX&uJe 6w [Xۤi8%` --cs|AcJא 8< \ No newline at end of file diff --git a/website/docs/build/html/py-modindex.html b/website/docs/build/html/py-modindex.html deleted file mode 100644 index 0f51ec0..0000000 --- a/website/docs/build/html/py-modindex.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - Python Module Index — Documentation 1 documentation - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- - -

Python Module Index

- -
- f -
- - - - - - - -
 
- f
- ff_functions -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/website/docs/build/html/search.html b/website/docs/build/html/search.html deleted file mode 100644 index 78d0254..0000000 --- a/website/docs/build/html/search.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - Search — Documentation 1 documentation - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -

Search

- - - - -

- Searching for multiple words only shows matches that contain - all words. -

- - -
- - - -
- - - -
- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/website/docs/build/html/searchindex.js b/website/docs/build/html/searchindex.js deleted file mode 100644 index fc609ec..0000000 --- a/website/docs/build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"docnames": ["index", "intro"], "filenames": ["index.rst", "intro.rst"], "titles": ["Welcome to fantasyfootball-crawler's documentation!", "Welcome to fantasyfootball-crawler's documentation!"], "terms": {"index": [], "modul": [], "search": [], "page": 0, "lumach": [], "lu": [], "make": [0, 1], "i": [0, 1], "python": [], "librari": [0, 1], "cook": [], "food": [], "lover": [], "creat": [], "recip": [], "mix": [], "random": [], "ingredi": [], "It": [], "pull": [], "data": [], "from": [], "open": [0, 1], "fact": [], "databas": [], "offer": [], "simpl": [], "intuit": [], "api": [], "thi": [0, 1], "project": [0, 1], "under": [0, 1], "activ": [0, 1], "develop": [0, 1], "fantasi": [0, 1], "footbal": [0, 1], "game": [0, 1], "plai": [0, 1], "mani": [0, 1], "american": [0, 1], "howev": [0, 1], "most": [0, 1], "ar": [0, 1], "uneduc": [0, 1], "when": [0, 1], "come": [0, 1], "variou": [0, 1], "depth": [0, 1], "statist": [0, 1], "need": [0, 1], "level": [0, 1], "up": [0, 1], "your": [0, 1], "team": [0, 1], "potenti": [0, 1], "win": [0, 1], "big": [0, 1], "websit": [0, 1], "gloss": [0, 1], "over": [0, 1], "import": [0, 1], "don": [0, 1], "t": [0, 1], "includ": [0, 1], "all": [0, 1], "inform": [0, 1], "think": [0, 1], "fantasypro": [0, 1], "perhap": [0, 1], "too": [0, 1], "much": [0, 1], "pro": [0, 1], "refer": [0, 1], "want": [0, 1], "build": [0, 1], "one": [0, 1], "stop": [0, 1], "shop": [0, 1], "essenti": [0, 1], "sourc": [0, 1], "give": [0, 1], "you": [0, 1], "best": [0, 1], "player": [0, 1], "each": [0, 1], "posit": [0, 1], "filter": [0, 1], "base": [0, 1], "off": [0, 1], "deem": [0, 1], "ff": [0, 1], "how": [0, 1], "instal": [0, 1], "automodul": [], "ff_function": [0, 1], "py": [], "member": [], "To": [0, 1], "navig": [0, 1], "consol": [0, 1], "termin": [0, 1], "run": [0, 1], "command": [0, 1], "pip": [0, 1], "fantasyfootball_crawl": [0, 1], "tar": [0, 1], "gz": [0, 1], "us": [0, 1], "call": [0, 1], "function": [0, 1], "after": [0, 1], "ve": [0, 1], "sure": [0, 1], "them": [0, 1], "code": [0, 1], "file": [0, 1], "first": [0, 1], "soupinit": 0, "url": 0, "take": [], "name": [], "input": [], "return": [], "greet": [], "messag": [], "paramet": [], "str": 0, "A": 0, "string": 0, "repres": [], "person": [], "getaggregatetopplay": 0, "result": 0, "nfl": 0, "regardless": 0, "The": 0, "object": 0, "can": 0, "dissect": 0, "list": 0, "top": 0, "joe": 0, "burrow": 0, "tom": 0, "bradi": 0, "getqbdata": 0, "datafram": 0, "qb": 0, "stat": 0, "order": 0, "specif": 0, "variabl": 0, "ag": 0, "qbr": 0, "cmp": 0, "yd": 0, "td": 0, "int": 0, "0": 0, "patrick": 0, "mahom": 0, "27": 0, "77": 0, "6": 0, "67": 0, "1": 0, "5250": 0, "41": 0, "12": 0, "4": 0, "26": 0, "58": 0, "7": 0, "68": 0, "3": 0, "4475": 0, "35": 0, "josh": 0, "allen": 0, "71": 0, "63": 0, "4283": 0, "14": 0, "geno": 0, "smith": 0, "32": 0, "60": 0, "8": 0, "69": 0, "4282": 0, "30": 0, "11": 0, "kirk": 0, "cousin": 0, "34": 0, "49": 0, "9": 0, "65": 0, "4547": 0, "29": 0, "getrbdata": 0, "rb": 0, "tm": 0, "po": 0, "g": 0, "att": 0, "1d": 0, "lng": 0, "y": 0, "fmb": 0, "jacob": 0, "lvr": 0, "24": 0, "17": 0, "340": 0, "1653": 0, "93": 0, "86": 0, "97": 0, "2": 0, "derrick": 0, "henri": 0, "ten": 0, "28": 0, "16": 0, "349": 0, "1538": 0, "13": 0, "56": 0, "96": 0, "nick": 0, "chubb": 0, "cle": 0, "302": 0, "1525": 0, "5": 0, "89": 0, "saquon": 0, "barklei": 0, "nyg": 0, "25": 0, "295": 0, "1312": 0, "10": 0, "62": 0, "82": 0, "mile": 0, "sander": 0, "phi": 0, "15": 0, "259": 0, "1269": 0, "40": 0, "74": 0, "getresult": 0, "label1": 0, "hrefbool": 0, "soup": 0, "tabl": 0, "queri": 0, "label": 0, "html": 0, "anoth": 0, "desir": 0, "beautifulsoup": 0, "depict": 0, "ref": 0, "hi": 0, "contain": 0, "getwrdata": 0, "wr": 0, "tgt": 0, "rec": 0, "davant": 0, "adam": 0, "180": 0, "100": 0, "1516": 0, "tyreek": 0, "hill": 0, "170": 0, "119": 0, "1710": 0, "ceede": 0, "lamb": 0, "23": 0, "156": 0, "107": 0, "1359": 0, "stefon": 0, "digg": 0, "154": 0, "108": 0, "1429": 0, "dionta": 0, "johnson": 0, "147": 0, "882": 0, "read_dict": 0, "kei": 0, "dict": 0, "concacten": 0, "valu": 0, "main": 0, "read_nextgen": 0, "nextgen": 0, "read_pff": 0, "pff": 0, "specifi": 0, "bing": 0, "com": 0, "none": 0, "": [], "maxdepth": [], "intro": [], "rst": [], "docstr": [0, 1]}, "objects": {"": [[0, 0, 0, "-", "ff_functions"]], "ff_functions": [[0, 1, 1, "", "getAggregateTopPlayers"], [0, 1, 1, "", "getQBData"], [0, 1, 1, "", "getRBData"], [0, 1, 1, "", "getResults"], [0, 1, 1, "", "getWRData"], [0, 1, 1, "", "read_dict"], [0, 1, 1, "", "read_nextgen"], [0, 1, 1, "", "read_pff"], [0, 1, 1, "", "soupInit"]]}, "objtypes": {"0": "py:module", "1": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "titleterms": {"welcom": [0, 1], "document": [0, 1], "": [0, 1], "indic": [], "tabl": [], "fantasyfootbal": [0, 1], "crawler": [0, 1], "paramet": 0, "return": 0, "exampl": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Welcome to fantasyfootball-crawler's documentation!": [[0, "welcome-to-fantasyfootball-crawler-s-documentation"], [1, "welcome-to-fantasyfootball-crawler-s-documentation"]], "Parameters": [[0, "parameters"], [0, "id1"], [0, "id4"], [0, "id7"], [0, "id10"], [0, "id13"], [0, "id16"], [0, "id19"], [0, "id22"]], "Returns": [[0, "returns"], [0, "id2"], [0, "id5"], [0, "id8"], [0, "id11"], [0, "id14"], [0, "id17"], [0, "id20"], [0, "id23"]], "Examples": [[0, "examples"], [0, "id3"], [0, "id6"], [0, "id9"], [0, "id12"], [0, "id15"], [0, "id18"], [0, "id21"], [0, "id24"]]}, "indexentries": {"ff_functions": [[0, "module-ff_functions"]], "getaggregatetopplayers() (in module ff_functions)": [[0, "ff_functions.getAggregateTopPlayers"]], "getqbdata() (in module ff_functions)": [[0, "ff_functions.getQBData"]], "getrbdata() (in module ff_functions)": [[0, "ff_functions.getRBData"]], "getresults() (in module ff_functions)": [[0, "ff_functions.getResults"]], "getwrdata() (in module ff_functions)": [[0, "ff_functions.getWRData"]], "module": [[0, "module-ff_functions"]], "read_dict() (in module ff_functions)": [[0, "ff_functions.read_dict"]], "read_nextgen() (in module ff_functions)": [[0, "ff_functions.read_nextgen"]], "read_pff() (in module ff_functions)": [[0, "ff_functions.read_pff"]], "soupinit() (in module ff_functions)": [[0, "ff_functions.soupInit"]]}}) \ No newline at end of file From bfcdb138a76a7936868c8dc34750f5b35f8d90d2 Mon Sep 17 00:00:00 2001 From: William Wang Date: Tue, 11 Apr 2023 16:45:04 -0400 Subject: [PATCH 2/4] Add docs workflow --- .github/workflows/docs.yml | 34 ++++++++++++++++++++++++++++++++++ docs/conf.py | 1 - pyproject.toml | 1 + 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..91b18ed --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,34 @@ +name: Docs + +on: + push: + branches: + - main + - docs + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] + python-version: [3.9] + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: "pip" + cache-dependency-path: 'pyproject.toml' + + - name: Install dependencies + run: | + make develop + + - name: Build docs + run: | + make docs diff --git a/docs/conf.py b/docs/conf.py index 5141d82..1dbe581 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -4,7 +4,6 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html import os import sys -import bs4 sys.path.insert(0, os.path.abspath('../')) # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information diff --git a/pyproject.toml b/pyproject.toml index 6a41b35..45690b7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,6 +46,7 @@ develop = [ "mypy", "pytest>=4.3.0", "pytest-cov>=2.6.1", + "sphinx", "twine", "wheel", ] From f4b01885f587a295db115443b177f38a6c4be671 Mon Sep 17 00:00:00 2001 From: William Wang Date: Tue, 11 Apr 2023 16:48:19 -0400 Subject: [PATCH 3/4] add deployment step --- .github/workflows/docs.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 91b18ed..7a7bfcd 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -32,3 +32,9 @@ jobs: - name: Build docs run: | make docs + + - name: Deploy to gh-pages branch + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs/build/html \ No newline at end of file From 49b8bd7522c6df929cb7aacda3060a1ded4df847 Mon Sep 17 00:00:00 2001 From: William Wang Date: Tue, 11 Apr 2023 16:49:57 -0400 Subject: [PATCH 4/4] give action write permissions --- .github/workflows/docs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7a7bfcd..67694c4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -9,6 +9,8 @@ on: jobs: build: runs-on: ${{ matrix.os }} + permissions: + contents: write strategy: matrix: