From e6a49c8f9ce33ea6636cfea86961cf6c33f10068 Mon Sep 17 00:00:00 2001 From: Florian Hines Date: Tue, 11 Oct 2022 17:49:26 -0500 Subject: [PATCH] docs: init import docs scaffolding (#29) * Init import docs * Copy .readthedocs.yaml from sdk * Bump for build * Add pr docs previews * initial workflow dance * Update sphinx poetry deps to be optional * Should be dependencies not dev-deps * Bump for readthedocs build * Remove sdk gtag token * Add ga code --- .github/workflows/docs-preview.yml | 20 + .readthedocs.yml | 14 + docs/Makefile | 20 + docs/_static/.gitkeep | 0 docs/_static/css/custom.css | 128 +++++ docs/_static/img/logo.svg | 6 + docs/_static/img/melty-apple-touch-icon.png | Bin 0 -> 16981 bytes docs/_static/img/melty-favicon-16x16.png | Bin 0 -> 5361 bytes docs/_static/img/melty-favicon-32x32.png | Bin 0 -> 6748 bytes docs/_templates/class.rst | 8 + docs/_templates/footer.html | 9 + docs/_templates/layout.html | 7 + .../meltano.edk.extension.DescribeFormat.rst | 8 + .../meltano.edk.extension.ExtensionBase.rst | 8 + docs/classes/meltano.edk.process.Invoker.rst | 8 + docs/conf.py | 65 +++ docs/index.rst | 29 + docs/make.bat | 35 ++ docs/reference.rst | 28 + poetry.lock | 524 +++++++++++++++--- pyproject.toml | 19 +- 21 files changed, 871 insertions(+), 65 deletions(-) create mode 100644 .github/workflows/docs-preview.yml create mode 100644 .readthedocs.yml create mode 100644 docs/Makefile create mode 100644 docs/_static/.gitkeep create mode 100644 docs/_static/css/custom.css create mode 100644 docs/_static/img/logo.svg create mode 100644 docs/_static/img/melty-apple-touch-icon.png create mode 100644 docs/_static/img/melty-favicon-16x16.png create mode 100644 docs/_static/img/melty-favicon-32x32.png create mode 100644 docs/_templates/class.rst create mode 100644 docs/_templates/footer.html create mode 100644 docs/_templates/layout.html create mode 100644 docs/classes/meltano.edk.extension.DescribeFormat.rst create mode 100644 docs/classes/meltano.edk.extension.ExtensionBase.rst create mode 100644 docs/classes/meltano.edk.process.Invoker.rst create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/reference.rst diff --git a/.github/workflows/docs-preview.yml b/.github/workflows/docs-preview.yml new file mode 100644 index 0000000..dc2ff75 --- /dev/null +++ b/.github/workflows/docs-preview.yml @@ -0,0 +1,20 @@ +name: Read the Docs Pull Request Preview + +on: + pull_request_target: + types: + - opened + workflow_dispatch: + inputs: { } + pull_request: + +permissions: + pull-requests: write + +jobs: + pr-preview-links: + runs-on: ubuntu-latest + steps: + - uses: readthedocs/actions/preview@v1 + with: + project-slug: "meltano-edk" diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000..75c91b6 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,14 @@ +version: 2 + +sphinx: + builder: html + configuration: docs/conf.py + fail_on_warning: true + +python: + version: 3.8 + install: + - method: pip + path: . + extra_requirements: + - docs diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_static/.gitkeep b/docs/_static/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 0000000..0a04271 --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,128 @@ +body { + font-family: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", + Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", + "Helvetica Neue", sans-serif; + color: #2c3e50; + -moz-osx-font-smoothing: grayscale; +} + +a, +a:visited { + color: #3438bf; +} +a:hover { + color: #3438bf; + text-decoration: underline; +} + +.wy-nav-top { + background-color: #3438bf; +} + +.wy-nav-top a { + color: white; + text-decoration: none !important; +} + +.wy-nav-side { + background-color: #3438bf; +} + +.wy-side-nav-search { + background-color: #3438bf; +} + +.wy-side-nav-search > a { + color: #fcfcfc; + text-decoration: none !important; + font-size: 24px; + font-weight: bold; +} + +.wy-side-nav-search > a img.logo { + display: inline-block; + height: 2.3rem; + padding: 0; + vertical-align: text-bottom; + position: relative; + top: 1px; +} + +.wy-side-nav-search > div.version { + color: hsla(0, 0%, 100%, 0.7); +} + +.wy-side-nav-search input[type="text"] { + border-color: #3438bf; +} + +.wy-menu-vertical a:hover { + background-color: #3438bf; +} + +.wy-menu-vertical a, +.wy-menu-vertical a:hover, +.wy-menu-vertical a:visited { + color: white; +} + +.wy-menu-vertical li.current > a, +.wy-menu-vertical li.on a { + background-color: white; +} + +.wy-nav-content-wrap, +.wy-nav-content { + background-color: white; +} + +.rst-versions, +.rst-versions .rst-current-version { + background-color: #3438bf; +} + +.rst-versions .rst-current-version { + color: #fbbf52; +} + +.rst-versions .rst-other-versions { + color: white; +} + +.rst-versions a { + color: white; + text-decoration: underline; +} + +.rst-versions .rst-other-versions dl { + margin: 5px 0; +} + +.rst-versions .rst-other-versions dt { + margin-bottom: 3px; +} + +.rst-versions .rst-other-versions dd a { + border: 1px solid white; + border-radius: 5px; + padding: 3px 6px; + text-decoration: none; +} + +.rst-versions .rst-other-versions dd a:hover { + color: #3438bf; + background-color: white; +} + +.rst-content code.literal { + color: #62626e; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: inherit; +} diff --git a/docs/_static/img/logo.svg b/docs/_static/img/logo.svg new file mode 100644 index 0000000..8f4a527 --- /dev/null +++ b/docs/_static/img/logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/_static/img/melty-apple-touch-icon.png b/docs/_static/img/melty-apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7b64991cb8479b413362a10c2b0f0051f59c0acb GIT binary patch literal 16981 zcmeHuWmH?;)@~rULvgp_8a!BVcPK4T+#$GA+$ru(pg2WZ+$qJ2yGwDGLXj4@^gZ&O zGw%22jB)S3lZ>70tTpGe=6u#%z7wUcDu;Cm>j@3mr5fW}2_ZbENMSxX<>cZ}AIL{rYD?|!e@t*-hS)@8TgP2K0sSh0+=Vi|;r zh#FOjkamU5pLk@aDRyC~2 zW{Y00DAjaapWg4g_9g-bK!?^J;<2oj#VO8RnfG1U4~tZdk3uYuX87bB z(k&%IYm|1888f3u2KXv1kQ{SfI%vW?5ar-Fm!WIZ!)vefsf2fS9NA2Y>^*OfS*W;q zAK?=2t`$QpJTe^^QE9(ovCLVzel%c;^i#bV&=X6uGoKM^mX!GE23R5-JUX;=UJ~*s z%e86h%aRqrs9vv&j-6tos`1GY7|$Ng!M}5MKgL_WB2{4GuUp3`%wG~{IYUTT(N#>e z74AkXSjsT~Vuwi1t;&-4YOLQGTM`9-5gudfT`rlGcy6 zADY(~hA7QCb~Aph&rYD#D=Bzf=1dr)Aq;qvy8LQ8GSyC)y$eT%()Ec}98BKWmg?8~+$Qe>_etpk zUX%<2yDL7+5GJ3I1xLz@omtKWe3CmfsOzD#Vu83sV6CcU4hG(L2lMtB{V_b;g~lV0 z^|YQ!L8`rVpq+L$spA~^LzUJ%_7132UUWp{C$nAgo9`75I^8MCZlO*FU3JCnU#cj1 zxa4?Ta$k>z2MmfWm7M-M4-GW-QpANUyeCCv$}nG!&F(ow4J^2>nyS~=Gz%KdG<~~S z4UHHiJ?|OOtXEA>a0Q%7M*FK*q#N@DDq?j+2RrlQ;Hi(w4RzwMy`c6_j61E=>I2W` zA*3)@Ns=>MWKXB+6MNItk7ShrG}$M#Qyw!y3-9^>sI-V zOoAuU(Zh}oV=8S~Ebpfo$8s4Zq=%NB_``yJyV&I;LAvLNR;M^bddg9GA&PC9zll>m5tbqb;zhtguXb5T zEP68|xXPt<6N2lJTagig54hz~gjVpL_@7E+T@y@b zznJgO2=$$lN1h3>7a8DiHVBhIAnnZ~#b;)xlPy#A>VJi_FkCnUx<`~iHID2sCRRTX z&WBc@=OI219YFbgS!Ddn2=0`#QU+2~xMAy4KU==CW1HxtvY_xH?@EYuxs zrB3vA)CM6*X#F6!iV--`M;0B|2#2T|UJS=lxW1TDL%5N07wpS{fUk%~BQ;JwA3tk# z?itPWJs~h;QG&1nFFvza`am%%amLY(+79yb%F9+#{CLcuFqmEb2#40sn;NMW4LL`6 z0|Ug}Lr95-q}9$$bXDJIo za?K}g(LMFIzPp?Ia&RDz=MJlHqj`5lE*0wdf{_wZAT>OB z!iqx3Q#;^^u?(PHxi=(F%!6Xf>bUtQ3_ubyQn+(?$4bmUhZLi-f`zfDEHon_1&k(A z@N||^0=n8yap`fPr^V6g?~=PG<#+}yXW(lI7Ljv+@iXX7!`(FJfJSm{Bfr^jcUp8J z&KXZ1sqIGv)wX%`{r9{|2ubg9NUF^o$x%?=p%Br*584MqwC+PoLV}s&UhIzrr#WEp zKByA`ZzeeTsz4cq23%VhS8J8X5;vC$-MX|4KF$RDD85$L0G#nwn)Ye{fjscQbMFH{ zG-dK!p1Nm|0uCX;nz-l%F8UJ4qjU^W@0`WTqgRV4YHHSy0AZHehv?-~NKLRhJCz7o ztHlej9y0rpbt^*+EjPQSj;p+o&6~J!(Ij$>B_97YkWBZqN;kukgdGV}Bl8bgi<%Y4 zE!+xiqy`)e$ozf-_*G85=EV;Qlgs$2bgQ8}OAarvwKXSsaRhtzbnw*q$%J^g*^b*` zs&d2!5%jS}cO`SGhg`UC#Z%jQ?$tD<=<9gq?P*`-(}Vl~yQI++Vepyfdm2D6$o$XhuHx3c;aCm^+{CHbf$4yyx6?kmVuW`~@TDJX5ti zZ9FesU)G_0uIhq464uWfwPx{wL;yE%+cTJY9=)gS^^w@1&k5U-pOmC^9=(M8P zxBV3DG8BgDHO5GUb0<}`##2;i=-qoo;n9WSqS3(MA`Be%q*hE*(h(9m`gp^vIor_S z#1&PTwR90`cZ?KoMjeJ&7OdV~fxw`+?{2`^9z&*@zK08|pVm#BJsHH5`8U zNmNF-FiJjY_(zF*=m+h!jF4L~H+6$32aT7qMrYK%fFOmnkt8Nl5l^cPZ#svD&)dfE z2OlIfW`!`eC24z%BJzn6T*A(x?jJFN1i@6Is~&g`#>oO+1(REmdWg7kYwART&<=FT z38Z@3Xncy6Z_zpnFD)%}4^|2DEOTrI6$}je>Je{Ie)^z8A)C`|GM$EmICf_^Iz<%aNMAM0 zI_DXSUWYYPg{THg-@g2YROm5;U<7MRnmd>%Av(8R+`Iu*{5-IX#@!(~r!YuGYRTt1 zvJZ$9bcUdF&aiUmSN^u{3OAG*Fi3srQ}(2prmv*$q)jbPw={!i>@8@owH^cGND;Sp znn-zv8T@RgxV1d{rz%iXa|LRhx5`fplkP^X53kq8Yz&lk7HsSRPo< z$AD69!CJ_#hsnff926w?1_MD6QA=TZf@NrAzg0@BlqH(!z17Hkk?uhGSoY9d_N&R} z+9ATtw<7eMHz?x7Zw#+L&HWZ$qPhd3wB@futd~kmtM|W4Ywz~Rg(D^7BGziyG;~cc{M6C<}}{~^=wl@|JReV4=z4%#NH{a z?Al|aR836cJoJcHpn(N-BdXTUseORZsfK>!8o)OGo}_|HFeM_I*Pb3jNstCsNJG8L z6)~F{ho4&pITE59j7H;nKZzfY3ooyn0^7%U52lUZ@K)i7{Y`0@yE8g{;O&=I(J5^I z7QGkq6{p}w4a=k?1FGY>;1nybOKIZDpkO9t0z33w5!ER(`i!OET2`0KDuz8Jl{nAQ zjoHg_KAsL^GTZR7{^n__!LY$*+A*m<_#NZ)FN4iVDj{su?;7$%%aNHe6g_QD>d zfu;3K*2}HwRN6HK3C5BusJ0zb&y%zRX>7{P&uWsu4Hj2i3@#)+jUrBW)@HN7`YD%B zGlCYEn<7c?m522N>538!NNyU{7DwDc&?DJ6w%but5?G7a3@JyC;}_)%6d(5y&f z(_sR@6RA9dt&tL0jb4gzLs{5#xS?EVBc^wOl5lkFEA0e?oce>aZ+cx~A@wgJ&7)`K zpbGdxZ(}li(?Tu|wa_I79GOFLXtQ+RPpEv~!Bv!z%&Cx;GqFB~J=S>G;RG(-aJ!3t z{H#2NaK?VtR%EGBY*)}oX;0%M=)EC?n_ouv3eZU<9y$A!zJNw_gFvx>nj5&YmyfNB z;78x+O$b{h;ZCS83pBNh_v!mcOyB*fd6t)f^avW8K9`7lenr^V%{P%1zgf{t+f4jI zeDii|u9=nadNi@SFEcsp2ix)`e_@pD-1jdw08jKDYz)N2^spAbnz@PWX@kRx<9kC( zrFUDUVJU2d!sx2s8qB^V2<9jb>yQcP_gmWflKb~iNE}}Ad}v`*I4?yF4h5pN_7Nm!yxXgVk=Q!Kqi zM#~b-Yq8z@R)bEUYs#orGP{c98l)y@#V$&4=-}BRL+h_J(`gyZ(83qB>l*Xo+>V@dj~RazYuDh zvJ->@OZ(vURze8Eg1-)O*USQ05+e|l+6i!#Rxt*B@uBO^-P}5G=cgz{fz`7nu(zVr z%{f2hRrF_eUEm`1B0g~a+&{h0lOnXlajO~@Ayk{zqDOuEXgCbkHoW_A*S}$6SygX;F$0SrpzPV>3Ru+MjU^>r1h22WzBK})ct6IbmV<$}< zkZmJUZVj^oLyQDaX3pu>PgyU%r_fz+G`yLFe|VkRZ?&Alz_6a|; zbK=1roW3Pp1i#8-BuZwQU^hqEsX`W~=E<>UtyS3s@PSm-BAN6r>`RyR_u5B>x8t!{ zh%rvD!@2TrnY_@LLt5kC=mX~H@!^L38s?f;gKeDb-0%tO4qqj-?8V_TAHt71H`K-s zBjuwg&LVXPYWiR=2z}LVGw=T*Oy-lDQ}1~72qTL6vf+iw?PC-?#!o-ekT5!;Q|T)A zK2AbW&{0~))mvtvO|oVX?r4IbqRhL>R(sHjKIZ--Q~Y!Td5Nz!ju04#R^0Rpyx8Kv zoeV!g-N#MvF7k9rMN~;?BQWoEWmGug1^E)L9+T2ux%Xi`Y{g{{rav3M&`YVaQUWyUujIL!BXiCnzK~ z4vGkPb%xH4BbJ)m!?~S9xtv^#D4v}#@p)YZPevHP*z)k1R1g6IQEyyzty6ic8M(@KaGH?hzYhB;cBHzsgCl z<*RHytF*FFD>gp<0-N`FAi1RigZc}!YVl!Yj0DN0m`I-Oy}S%^E{)qp$aq@EK|xj9 z_X>|DTp-^ZN3Q;+_&WuogN9bGJa(;{)E~r!5E6^1_dOA`>j!#EIyVV{%*v&QbA@m4 z(9~{TLi~PrbPrsSovyn?8V}K&EXEhPcfk+ypi=wTX~3-Js14(%wDp+pGIv-vPg;Zch?zCD zrvLz4sEw4Ax`LF{KeqdyH~Dk?5=G^|Ldg4!^cyr;&^&OQQC{b=MMewS5=5)h%%D|) zGYsw#RY;TYiR8XCY-|je&VK28ql>I7f%6;S?CPrNmWcP1j<472<+Kv-c|+-W1_bBA!q{~mN-+z}Wp!4BfK)*%U4??R31B+4LOQLYsrD4##4Hiw144XtKfJ7%nJv@xKij2Fg zqq~clg^Y)VgB#tyLYSNVQ{Tzm#r`jM%*{A0>@A?rqOQ-Sa{pVAatbQy|J3+Hft3x^ z=`XEkvj0ue&BpS7$oebO%!SxZ1o*kx`2sb~A2MelsC16G2NplfR(M z&A_sbE>M%_>a>BHSXpp7IavLb@rQ7*gt~$#Er^5be^S)#P24P>6+~%OOw6d&wEibY z+XiZ(TwI?+@ee3B7YB&=??JC+;rzE> ze`^EwHh*PNQ~wpWU=y>y72;~*VPXDPLC<=B%QCYzaj>#@Zs329sDGr}{4cd-&Szo9 z%gtlK&S(1E{&MqP`g>*ke=Ok{`oD$zNBsVmuK&{Y zA2IMB3I8{`{!7QzbcRz|)^M ztfMsfIR({8{*5aDz?Ajpf+GUce11+uc2iK1LEb?_#z7?yU6+0W0LX+Dq$RYymQHfL zGYDogpTr&Afm4AR>RZ*#@r9JIqu{crA?Xj?pV~;j^ft>fIx7W}5*5Z}?ZNA^ z`N>C1!^1ot3aGV$R)^2;bptcIwWW>vH+6n}Y@$U3>$DWC!Ed8>r*LQD>;oQ=Rsi?# zq3HHpue4xVsldZW>e22^0(sRS9qJm1TcuE&ncCj5E8b^4=7Lio2vM-GM}ZUJ0Uc}a zb9BIh&@7xVA~+G)#~gy=hr93zZHN<&QtC>3`8#{L+jrIbyJW`YrCNk56j&YF5H@`O zhs$v1y3$feDNAaEFwyNg%dRo{#;YyMhaAWJR`S%761h9~P;vwiA#p5MGO6hF*cI4J zzeM?`UWzMiLTb8(&F3o2nj%R0b;vLMKn%HS!2~LJzPo^|*ho8l(w>DhXsD4??C)Yp z9?CFlT$YH1Iizg(w@YsVM>Q6y5{-iWdCokl-e9xhh%PjGRefUL8ni?nAVFT~lBJ6c z7K0b42++UEsgtB*P+ABYK2Mji^hejR(PV6{;T3G z%Ir6sJq>z;OGF+Ppu|9kK~DZ`0&RJ=THC4Jo>zV`gy=Fz?pMhEwo3vPK%eM#!3x&4 z-0drF*)c94;Q$CvJ@>7K2qvpOe1I;WcVhDNoJqx!qpl!gFoR;{aIWp&&l?Wkm#N?n zUO&EyG*Dt(lU<3%Jn%`uHZ@P}3L5SLeo*{<*cIZx+~{_)x3p*|oWNK8L_av%{Yj?C zmHr%PtZ7@&WncUgvJIb-+AuOOB1H5hubJRG_gB2M* zHcudC7JlZ1yTf2Eaf&SXL-o3_Lt`4yIiJLJ`M+Fe6rd z+CuRL_O;RCp|ccU2{op7NHP%%Fy3EcrWOS%9qZT;bn2(bhl-#i-3OaqlQj}^!u?kk z%DZZzD|)T{xOriUqP3oIU8f;VNaxvxW(6uGZ%}eOa2SBTsa)%7!IZWkQ*rf5uTB#m zama1xJU><#=tUjoHO~507I{;pt|li)?q!wI-B)RjcuD)aCOMbR6po#s)CC2w*wEp3 zFn{K1^QVXtF|f>l<6!0+Y3WqkgYV)zpZ`@j#t`Kxq}(r#F#Bte;+Cz!us}7NPTy-2 zEd@B7Gi*9BWXDSj2a1f5w(t})A{k+?7%?W8{>XkTQUJY}G5`HdL#Q0^wMB^Z6eyA{ zpZ+z*W-ZiXPj#ai^s=D4oZtGlAN{v8RT8Xwwuz<@g$^Vij6v>hfxw40d99#Kn3!Ml z;@Cc^!wyIps$)ytzI271 zKZs#8NM_eT-8IfR-uwjUSDtT&WEx6&T1pihobL?ab^_*To*i3sj$d zoK%0(GY)z5IQI9T>M44&AWB4 z55IMZX+zTT74Y`J4cv_E#c@fvbUeS3uJTJHE&JEUVe(sAGA}6Z>E~}P37->cU1`5gMC6}fC9Um)S{g4Gn;%Oo+~A~)m-Yf`gKn5Z z*WoEE)h~V`@UvfLnkn~p(Yrv%=GO@)v9^Vc+H(ck!6t+i}mu}6-`ml!SV`LnNt3(;v$UEH*rajW1(aktHlH4u)z!kzL| zi+?kmZND*1liDCx^k0IIqb+W!<3-@@`qS#RzC# zme(0L5qaa^TK2N+yddMniUN)IkDelpu;U-Ch1dZoRgAE0qU*{EG>@T;b)VD zyU+;SsAMS**3LLCrPISK5@v*4u8r1NymV1cqMB~-;~>%+)%!8BN%m$#<^1$?)kadmESb$yUD|*~KK%ov8=k z*u>p-m_(m2{cH2$sCvm>iLPd9nLtaHWE}f7HQa`@^lp~2$48O_BEIvwpi=(xHHlf^ zVw}N5K6crNLnoh4*5&O)6K>T(3#Pk9TOXno8Lu+%K?^Zy31bJ2+1m)VH?Iy2>Q z_|9`jLouu#ng~(f?ayEoXm8ktka-Rtbl*hDb!Uy5Srnz_!~I~LqyYHRT;j)xm>GyC zV_T^gRn9c8H1duW7zv`eiBBk4d|p5^Ftze_Om|baHVDwgQ97+PC%xWt0-84Zg$Xm+0XkG^2>Ealggp|Z3!9fkWIJ)G%;!v^6 zx)UuQ`jInAK|zmEWxop)J2u=Vl%N|bM;atQq1DA*uJprdK>??`c49z(v`u<4-Y~Kw zhgRT~_g#=uPCfbLy(GN19G30;6YAhu*_Cs{tPgy1H&U#tqI%lqUGhmReq*s4iIaFm z`r@maZ=)8P@4`R-njGEY)_H|IxXEvQn=d%#OYAw^6=_>+HH&>Vl>(Wb`IHL36b>#cen{$i`Gi=3@sq}QP|8Lw)z%^G)g0QI2xMy1Y3 zzoId1h3C>-p3!}>I7KJPutT8wH#;|Qz9jKdH>;2O8}bQ~CwuK`y3W=wNU>G}f=_oa zk<0b&PMzG4AOQ{1vdQ#gHcpVfYA!8{i?B8a{Ti5e_ig}bEdquNc#^On0?qM-wo#AJ zY;*9?3Uhftfa!4heK`?+E`%IE)j7k?&0Ta|w5P#y!8yv9oMiLjy!_A2c|0&j5|5rd zHPmzgR{o-A9Z;$}sTojxB0(u|n&LZ>vFo3Rv=noRxGkCFqEI@#X%|)=Eigl~pWEFs z$ra~AdoqU3uoWN2HW7+}ERsY=R1~0zmb|Ps=_OhyUfL63F92KB$h2HJ4juecwSmndXNF9&fWu@nb3E@ZmDMfQ5ic0xg^o=hl z7IthbbqRWC|a=o@LzOxv{d>TlaFW2=;$Fw3;cD z970r;O}`wIJ2F>n1u^w?Qv#;!L63KqUX3LzkdT-UKG`NL1*j!!>->r8$ZKrUXK}9^ z?+aZB8eHNReLrg-S2Zs?mmiU?e|&mDSQUcv^rVII+oRxZ%KK>q3g!CJDR zdF%t@bm_E@X?-ZT9j~>!l-`~smpm49S|BeqcZLj(?^7({C;E;K?k*J(jEEgE7p&o} zk{=S&zw2p!w6s7ZC63WlJDaq&%?YO`9BK5aNkZ=?*73tMx8=BceHSQ}F}$Xz1D%Ea zUW^%b$e*}WdGGbOqAA%y3Cl%4@T;KN7Tda4$eGQg2oZ@x%5;!5|CNewy>&0V8wa~l z^rOfTj)ZoWuG zO@#f_aTb-X=5hF0kC18;pRsd;(R=r%JdiT~`F}zVJPsa(&e>b*%`#n-U-K?mw(eJ> z*Dv~5GRtq|=s-Lccjyhkc}cIK@WLzUw+veWh^g`AwhPM+b_Dxt{O5*ed0`$&&b;NJ zhd=|Av5x+0fvCNNz-coyo|aEJzb9iZe-UBUlkChFx#y7XR9dS~*HAKj~Aix6ij>iX5 zluN6G0cAgrX(p?gW-VEmi-zQ32VueD43Vo^!F~{P4I)|KSDZCoho3W%t)$r@Vi@*G zFrRgdL^AZ2FRaM*ic-V28l)I2HY>-j&+agSxx}^6FPRd0L(sR>N!xzb1GX&pN;%}> zuezvp7hs!?Iw3+^*wQ;D8wm*WKlBA#^K*Bg=Oy~wBmu74yIQY5u4$9a|LEQc-85^g zDmS&dk9i(?UC7Qm4AlqHmthy5W8p+GQVC%J!)8PED9sF>7x819^F1*ne2WEjyLKqp z0R5|^*0*7xkw*S8eesFY6vyC4f-)5$wia+8HpCHN1;X>U)^DdY;;{$$2S_erCuT$B zrhffgU$F@34_E|DESd$17a!{&oc48R!=5tH4LF`4Jy?=p`^qLmR)<4BA@-;gzwNR*S^6?(7j!b+TAqcp^Q3P!30bYzLz|MgO05dKnFp;zVksOk=wLK3 z@2AJ1gUfi>sZY<088h)CM_g44R*tjaTUqM@ysv zGUA-oC9nonqFnnd@3OP(N^ISS;NGDQ7t{X=o-w^@Cl>JKcY2!&!huglxh8)WVf$&4 zeBmj*!@m(p?D3TcS9Gq?>xb_p-t)vOLk{Ra@e(K7)f{M zemQ2lFJu5fCEeaBmB4y%EZCC51zdP_hBV>qEl@%PtlA82$JS?F#qcS@jP~T_zn1`> zSxjtpw-5HP<;cl-wd9I6vQ^gcpMQplzcFhpB7%SW4c=HMY^n|Qik!@g!r~rw7GxPH zg!}QxZsOeMc{F9U=RZG1^q;m1Y8?0ZCSk}Dpm~W=LA20q$N2;K0e|)^u$?SZk1+4$ zj1qK0o8%kGAwljg0#|+2+Akdb1oZEk&E%U%ck>8?Z7^oL8q1s7m3NIfWI^E0!A2h{odR7iO0P0ccyEtaaC?t|Ii&3D3&)kiWSHBOg^MsO+q#!Nmf(2KRoLpkX6nv`I&qM8M&+Co}? zdc{+$yJn~JHT+O^rNC{a*z502U6O;Vllu`@aK;jdTE8)NLYeSak=CAql#eJNN6TZR zggY9Ft=)x9+P1Gge2c&T*hKzDxJNb9ohr9g5WFswBk!=TJk>zD|JziqQJT|GvdmNV zV=Yh6@N1UI%42&@aHTuekHDuRL`c`?u}n$tGWyPvOV;H%{Blvm#=av!M?3uPxzF{s zllJHkMBiPwHuhzctp;)FYIKgiR$GEy%*ylczH;O^w+#+5Z1@RtYG`wE#(o$ul4+S~ zEWWVWXaTjihN!DW-O2^fe}M#;0?!_76~#xCiqmAPyQ z#pFd}@n?NA-(9%~erLh=W3^R6Klw4P7&f=?n}BB*&9fo7v-R+D*rmVpt!iX4aVsSw z=&`MDzY_7=hEV+~FHzn22yfJkHo3R;`h`cD0M*rNm-!b&AAId61Sg*hvc#l!maE%c zB0LM@2pYq_%qyvd7PF#m3EMaV9a;99nC#^Yg$JuXqNv5%JpDH93CyccBUc*K~j zL@z7agW5S4e56HjN8ewgZh}XjClR;ypI8pJMe3dNuQM;<+X8 zk~}GDQ!duZq{}61EAgL;(Rtb*b);l6DUIvjIHI*C^)!0L*KG>z7DuwlvkK^hUBmUv zIKbu3w|so6J&==crmb4nCYa;3y)9aXEW?~RdfpyEnQ53OE+%zfe0MOgwer8yR(EbP zF3%ZA*PVO3xMNYN5OjhG)5GxJka->DGH{?-lkvJyAA!GLYAPzkY;W|pBji$hIy8Ir zjREStuxVQF1>-|GOHz7=B!%fra|1SaVr9M`uJvWp5GA&)AWIS!r}ReeZ+>bVqY+>9 zLY~1~e063v5&oNMU7jW?Lb*d6VV`P?wm!HqjeOrg%8K8K?)+7>qW$l^jv%oMcL6s^ z-4{5kNK1`A!&75*(8?ykmoNFHG3Ywe(e6S=4qHcmLVgy1GC@Q!CfA$2O&0rZP`BBisSH;;>ra zcdQ^P%I}?VE9O%=V~e6EVKv^=f{gIGa6mIX3`B+n*hT*(@q_jxa*LQS@fSMJ?JACb znKy7g?U?Pz-}d^7q8WPW9`tO@^;3+11HDe&P1R|^{sIBnoXis)aNjljFgCcwXS?^>woGvUg0LF+;7R_zs@>25`X#6R!UIKRYu&pT1F zCLSZET*s44AUq!Pv#BVVPNE;~7eF|nT}L0WC2Q#%Pk7p{M!RqlY3aHNY0q$ieQ0%D zltQj_@y%NHry$Qz@lZW1*`02Y_OF)!#y9UJ;_HHLoQhw>wSO}S7u&Cu8Ev8NGBh); zk6zI{$nO3@eMY;fAKGrI-{Hxc)nzi;Ff;VCJFct_xc{@;-+SJK_&n8cS4IU08c6*1Ha3is|D?2~(%{{373z07Ho22oM?Aj!c4@DU;^U`G>IoZY`0`W+8;cBB$opAP7oUysN5`%EFC!$gwz@Qfij z2*+3$ryX?!?ZNve)Sk;}{bS8UWx8jLJS0Zy_cZ3}LS%voE1K@>p@eUO#&Ha#u4Sbu zi?q@g`8l}-xQmwM=8@X5%(Wy%F(S4!NK_o2AXUeG{)@-VZx>cV@KQ^*L7^&AL8$u(omgXQ=1EG zd%*vMrvQFtoXw`pLBAJ|9D(;E*nyIHq5B-&C_2 QlQn>XjH-0Cq;c^70d;Mm0RR91 literal 0 HcmV?d00001 diff --git a/docs/_static/img/melty-favicon-16x16.png b/docs/_static/img/melty-favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..d726fe28c9fc52c7910bf6f31582eed0dc5931c2 GIT binary patch literal 5361 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 mKEh`T$Nw-GGRg~|YT2@1?=Meltano core team and contributors, with + contributions from developers across the Singer open source community. + + +{% endblock %} diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html new file mode 100644 index 0000000..e7de610 --- /dev/null +++ b/docs/_templates/layout.html @@ -0,0 +1,7 @@ +{% extends '!layout.html' %} +{% block extrahead %} + + + + +{% endblock %} diff --git a/docs/classes/meltano.edk.extension.DescribeFormat.rst b/docs/classes/meltano.edk.extension.DescribeFormat.rst new file mode 100644 index 0000000..3b741dc --- /dev/null +++ b/docs/classes/meltano.edk.extension.DescribeFormat.rst @@ -0,0 +1,8 @@ +meltano.edk.extension.DescribeFormat +==================================== + +.. currentmodule:: meltano.edk.extension + +.. autoclass:: DescribeFormat + :members: + :special-members: __init__ \ No newline at end of file diff --git a/docs/classes/meltano.edk.extension.ExtensionBase.rst b/docs/classes/meltano.edk.extension.ExtensionBase.rst new file mode 100644 index 0000000..2e3fdf8 --- /dev/null +++ b/docs/classes/meltano.edk.extension.ExtensionBase.rst @@ -0,0 +1,8 @@ +meltano.edk.extension.ExtensionBase +=================================== + +.. currentmodule:: meltano.edk.extension + +.. autoclass:: ExtensionBase + :members: + :special-members: __init__ \ No newline at end of file diff --git a/docs/classes/meltano.edk.process.Invoker.rst b/docs/classes/meltano.edk.process.Invoker.rst new file mode 100644 index 0000000..9502ed0 --- /dev/null +++ b/docs/classes/meltano.edk.process.Invoker.rst @@ -0,0 +1,8 @@ +meltano.edk.process.Invoker +=========================== + +.. currentmodule:: meltano.edk.process + +.. autoclass:: Invoker + :members: + :special-members: __init__ \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..516abb9 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,65 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys + +sys.path.insert(0, os.path.abspath("..")) + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = "Meltano EDK" +copyright = "2022, Meltano Core Team and Contributors" +author = "Meltano Core Team and Contributors" +release = "0.0.1" + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.napoleon", + "sphinx.ext.autosectionlabel", + "sphinx.ext.autosummary", + "sphinx_rtd_theme", + "sphinx_copybutton", + "myst_parser", +] + +templates_path = ["_templates"] +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# Show typehints in the description, along with parameter descriptions +autodoc_typehints = "signature" +autodoc_class_signature = "separated" + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "sphinx_rtd_theme" +html_theme_options = {"logo_only": True, "analytics_id": "G-NYV2096KBJ"} + +html_logo = "_static/img/logo.svg" + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +html_css_files = [ + "css/custom.css", +] + +# TODO: set this back to 3 after MyST-Parser 0.18.0 is released +myst_heading_anchors = 4 diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..d2457cb --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,29 @@ +.. Meltano EDK documentation master file, created by + sphinx-quickstart on Tue Oct 4 14:30:23 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Meltano EDK's documentation! +======================================= + + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + +Reference +--------- + +.. toctree:: + :maxdepth: 2 + + reference + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..32bb245 --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/reference.rst b/docs/reference.rst new file mode 100644 index 0000000..79633c0 --- /dev/null +++ b/docs/reference.rst @@ -0,0 +1,28 @@ +EDK Reference +============= + +.. currentmodule:: meltano.edk + +Extension Classes +----------------- + +.. autosummary:: + :toctree: classes + :template: class.rst + + extension.DescribeFormat + extension.ExtensionBase + +Process Management +------------------ + +.. autosummary:: + :toctree: classes + :template: class.rst + + process.Invoker + +Logging Utilities +----------------- +.. automodule:: meltano.edk.logging + :members: diff --git a/poetry.lock b/poetry.lock index 25c92c6..0986aae 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,6 +1,14 @@ +[[package]] +name = "alabaster" +version = "0.7.12" +description = "A configurable sidebar-enabled Sphinx theme" +category = "dev" +optional = true +python-versions = "*" + [[package]] name = "arrow" -version = "1.2.2" +version = "1.2.3" description = "Better dates & times for Python" category = "dev" optional = false @@ -46,6 +54,17 @@ docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] +[[package]] +name = "Babel" +version = "2.10.3" +description = "Internationalization utilities" +category = "dev" +optional = true +python-versions = ">=3.6" + +[package.dependencies] +pytz = ">=2015.7" + [[package]] name = "binaryornot" version = "0.4.4" @@ -82,7 +101,7 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2022.6.15" +version = "2022.9.24" description = "Python package for providing Mozilla's CA Bundle." category = "dev" optional = false @@ -167,6 +186,14 @@ executing = ">=0.8.0,<1.0.0" [package.extras] pygments = ["pygments (>=2.2.0)"] +[[package]] +name = "docutils" +version = "0.17.1" +description = "Docutils -- Python Documentation Utilities" +category = "dev" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + [[package]] name = "executing" version = "0.10.0" @@ -216,15 +243,23 @@ pydocstyle = ">=2.1" [[package]] name = "idna" -version = "3.3" +version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" category = "dev" optional = false python-versions = ">=3.5" +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "importlib-metadata" -version = "4.12.0" +version = "5.0.0" description = "Read metadata from Python packages" category = "dev" optional = false @@ -235,9 +270,9 @@ typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] -docs = ["jaraco.packaging (>=9)", "rst.linker (>=1.9)", "sphinx"] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] +testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] [[package]] name = "isort" @@ -254,7 +289,7 @@ plugins = ["setuptools"] requirements_deprecated_finder = ["pip-api", "pipreqs"] [[package]] -name = "jinja2" +name = "Jinja2" version = "3.1.2" description = "A very fast and expressive template engine." category = "dev" @@ -280,7 +315,41 @@ arrow = "*" jinja2 = "*" [[package]] -name = "markupsafe" +name = "livereload" +version = "2.6.3" +description = "Python LiveReload is an awesome tool for web developers" +category = "dev" +optional = true +python-versions = "*" + +[package.dependencies] +six = "*" +tornado = {version = "*", markers = "python_version > \"2.7\""} + +[[package]] +name = "markdown-it-py" +version = "2.1.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +category = "dev" +optional = true +python-versions = ">=3.7" + +[package.dependencies] +mdurl = ">=0.1,<1.0" +typing_extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"] +code_style = ["pre-commit (==2.6)"] +compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.3.6,<3.4.0)", "mistletoe (>=0.8.1,<0.9.0)", "mistune (>=2.0.2,<2.1.0)", "panflute (>=2.1.3,<2.2.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "MarkupSafe" version = "2.1.1" description = "Safely add untrusted strings to HTML/XML markup." category = "dev" @@ -295,6 +364,30 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "mdit-py-plugins" +version = "0.3.1" +description = "Collection of plugins for markdown-it-py" +category = "dev" +optional = true +python-versions = ">=3.7" + +[package.dependencies] +markdown-it-py = ">=1.0.0,<3.0.0" + +[package.extras] +code_style = ["pre-commit"] +rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +category = "dev" +optional = true +python-versions = ">=3.7" + [[package]] name = "more-itertools" version = "8.14.0" @@ -330,6 +423,29 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "myst-parser" +version = "0.18.1" +description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +category = "dev" +optional = true +python-versions = ">=3.7" + +[package.dependencies] +docutils = ">=0.15,<0.20" +jinja2 = "*" +markdown-it-py = ">=1.0.0,<3.0.0" +mdit-py-plugins = ">=0.3.1,<0.4.0" +pyyaml = "*" +sphinx = ">=4,<6" +typing-extensions = "*" + +[package.extras] +code_style = ["pre-commit (>=2.12,<3.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=6,<7)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx (<5.2)", "sphinx-pytest"] + [[package]] name = "packaging" version = "21.3" @@ -343,7 +459,7 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" [[package]] name = "pathspec" -version = "0.10.0" +version = "0.10.1" description = "Utility library for gitignore style pattern matching of file paths." category = "dev" optional = false @@ -393,7 +509,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pydantic" -version = "1.10.1" +version = "1.10.2" description = "Data validation and settings management using python type hints" category = "main" optional = false @@ -428,6 +544,17 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "Pygments" +version = "2.13.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "dev" +optional = true +python-versions = ">=3.6" + +[package.extras] +plugins = ["importlib-metadata"] + [[package]] name = "pyparsing" version = "3.0.9" @@ -488,7 +615,15 @@ text-unidecode = ">=1.3" unidecode = ["Unidecode (>=1.1.1)"] [[package]] -name = "pyyaml" +name = "pytz" +version = "2022.4" +description = "World timezone definitions, modern and historical" +category = "dev" +optional = true +python-versions = "*" + +[[package]] +name = "PyYAML" version = "6.0" description = "YAML parser and emitter for Python" category = "main" @@ -529,6 +664,155 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "Sphinx" +version = "5.2.3" +description = "Python documentation generator" +category = "dev" +optional = true +python-versions = ">=3.6" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=2.9" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.14,<0.20" +imagesize = ">=1.3" +importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} +Jinja2 = ">=3.0" +packaging = ">=21.0" +Pygments = ">=2.12" +requests = ">=2.5.0" +snowballstemmer = ">=2.0" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = ">=2.0.0" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = ">=1.1.5" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-bugbear", "flake8-comprehensions", "flake8-simplify", "isort", "mypy (>=0.981)", "sphinx-lint", "types-requests", "types-typed-ast"] +test = ["cython", "html5lib", "pytest (>=4.6)", "typed_ast"] + +[[package]] +name = "sphinx-autobuild" +version = "2021.3.14" +description = "Rebuild Sphinx documentation on changes, with live-reload in the browser." +category = "dev" +optional = true +python-versions = ">=3.6" + +[package.dependencies] +colorama = "*" +livereload = "*" +sphinx = "*" + +[package.extras] +test = ["pytest", "pytest-cov"] + +[[package]] +name = "sphinx-copybutton" +version = "0.5.0" +description = "Add a copy button to each of your code cells." +category = "dev" +optional = true +python-versions = ">=3.6" + +[package.dependencies] +sphinx = ">=1.8" + +[package.extras] +code_style = ["pre-commit (==2.12.1)"] +rtd = ["ipython", "myst-nb", "sphinx", "sphinx-book-theme"] + +[[package]] +name = "sphinx-rtd-theme" +version = "1.0.0" +description = "Read the Docs theme for Sphinx" +category = "dev" +optional = true +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" + +[package.dependencies] +docutils = "<0.18" +sphinx = ">=1.6" + +[package.extras] +dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +category = "dev" +optional = true +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "dev" +optional = true +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.0" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" +optional = true +python-versions = ">=3.6" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" +optional = true +python-versions = ">=3.5" + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "dev" +optional = true +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "dev" +optional = true +python-versions = ">=3.5" + +[package.extras] +lint = ["docutils-stubs", "flake8", "mypy"] +test = ["pytest"] + [[package]] name = "structlog" version = "21.5.0" @@ -541,9 +825,9 @@ python-versions = ">=3.6" typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -dev = ["cogapp", "coverage", "freezegun (>=0.2.8)", "furo", "pre-commit", "pretend", "pytest (>=6.0)", "pytest-asyncio", "rich", "simplejson", "sphinx", "sphinx-notfound-page", "sphinxcontrib-mermaid", "tomli", "twisted"] +dev = ["cogapp", "coverage[toml]", "freezegun (>=0.2.8)", "furo", "pre-commit", "pretend", "pytest (>=6.0)", "pytest-asyncio", "rich", "simplejson", "sphinx", "sphinx-notfound-page", "sphinxcontrib-mermaid", "tomli", "twisted"] docs = ["furo", "sphinx", "sphinx-notfound-page", "sphinxcontrib-mermaid", "twisted"] -tests = ["coverage", "freezegun (>=0.2.8)", "pretend", "pytest (>=6.0)", "pytest-asyncio", "simplejson"] +tests = ["coverage[toml]", "freezegun (>=0.2.8)", "pretend", "pytest (>=6.0)", "pytest-asyncio", "simplejson"] [[package]] name = "text-unidecode" @@ -561,6 +845,14 @@ category = "dev" optional = false python-versions = ">=3.7" +[[package]] +name = "tornado" +version = "6.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" +optional = true +python-versions = ">= 3.7" + [[package]] name = "typed-ast" version = "1.5.4" @@ -610,15 +902,22 @@ python-versions = ">=3.7" docs = ["jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx"] testing = ["func-timeout", "jaraco.itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +[extras] +docs = [] + [metadata] lock-version = "1.1" python-versions = "<3.11,>=3.7" -content-hash = "9789ae87b8311f5184c99aace9269fcf87715f9568bc13087b8bf1122ba21e20" +content-hash = "a2cf0de1c3dd6a14db162a6a9451bdfa9916561d0e6c8d2903005ed0578bbce7" [metadata.files] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] arrow = [ - {file = "arrow-1.2.2-py3-none-any.whl", hash = "sha256:d622c46ca681b5b3e3574fcb60a04e5cc81b9625112d5fb2b44220c36c892177"}, - {file = "arrow-1.2.2.tar.gz", hash = "sha256:05caf1fd3d9a11a1135b2b6f09887421153b94558e5ef4d090b567b47173ac2b"}, + {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, + {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, ] asttokens = [ {file = "asttokens-2.0.8-py2.py3-none-any.whl", hash = "sha256:e3305297c744ae53ffa032c45dc347286165e4ffce6875dc662b205db0623d86"}, @@ -631,6 +930,10 @@ attrs = [ {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, ] +Babel = [ + {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, + {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, +] binaryornot = [ {file = "binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"}, {file = "binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061"}, @@ -661,8 +964,8 @@ black = [ {file = "black-22.8.0.tar.gz", hash = "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e"}, ] certifi = [ - {file = "certifi-2022.6.15-py3-none-any.whl", hash = "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"}, - {file = "certifi-2022.6.15.tar.gz", hash = "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d"}, + {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, + {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, ] chardet = [ {file = "chardet-5.0.0-py3-none-any.whl", hash = "sha256:d3e64f022d254183001eccc5db4040520c0f23b1a3f33d6413e099eb7f126557"}, @@ -692,6 +995,10 @@ devtools = [ {file = "devtools-0.9.0-py3-none-any.whl", hash = "sha256:689cf4e7c75024237c42093ba19f4fa9cf15980269f02463aeab4d97d4b0a215"}, {file = "devtools-0.9.0.tar.gz", hash = "sha256:86ede6e0273e023db766344d14098228785b48a80f31716f28e8b9453d52fa1e"}, ] +docutils = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, +] executing = [ {file = "executing-0.10.0-py2.py3-none-any.whl", hash = "sha256:9c745f80cda11eb22b62cbecf21156491a794eb56ab06f9d286a44e62822b24e"}, {file = "executing-0.10.0.tar.gz", hash = "sha256:d1cd87c2e371e9966261410c5b3769d6df2f9e4a79a83eebd2662dd3388f9833"}, @@ -709,18 +1016,22 @@ flake8-docstrings = [ {file = "flake8_docstrings-1.6.0-py2.py3-none-any.whl", hash = "sha256:99cac583d6c7e32dd28bbfbef120a7c0d1b6dde4adb5a9fd441c4227a6534bde"}, ] idna = [ - {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, - {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] +imagesize = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.12.0-py3-none-any.whl", hash = "sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23"}, - {file = "importlib_metadata-4.12.0.tar.gz", hash = "sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670"}, + {file = "importlib_metadata-5.0.0-py3-none-any.whl", hash = "sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43"}, + {file = "importlib_metadata-5.0.0.tar.gz", hash = "sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"}, ] isort = [ {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, ] -jinja2 = [ +Jinja2 = [ {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, ] @@ -728,7 +1039,14 @@ jinja2-time = [ {file = "jinja2-time-0.2.0.tar.gz", hash = "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40"}, {file = "jinja2_time-0.2.0-py2.py3-none-any.whl", hash = "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"}, ] -markupsafe = [ +livereload = [ + {file = "livereload-2.6.3.tar.gz", hash = "sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869"}, +] +markdown-it-py = [ + {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, + {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, +] +MarkupSafe = [ {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, @@ -774,6 +1092,14 @@ mccabe = [ {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, ] +mdit-py-plugins = [ + {file = "mdit-py-plugins-0.3.1.tar.gz", hash = "sha256:3fc13298497d6e04fe96efdd41281bfe7622152f9caa1815ea99b5c893de9441"}, + {file = "mdit_py_plugins-0.3.1-py3-none-any.whl", hash = "sha256:606a7f29cf56dbdfaf914acb21709b8f8ee29d857e8f29dcc33d8cb84c57bfa1"}, +] +mdurl = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] more-itertools = [ {file = "more-itertools-8.14.0.tar.gz", hash = "sha256:c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750"}, {file = "more_itertools-8.14.0-py3-none-any.whl", hash = "sha256:1bc4f91ee5b1b31ac7ceacc17c09befe6a40a503907baf9c839c229b5095cfd2"}, @@ -807,13 +1133,17 @@ mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] +myst-parser = [ + {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, + {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, +] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, ] pathspec = [ - {file = "pathspec-0.10.0-py3-none-any.whl", hash = "sha256:aefa80ac32d5bf1f96139dca67cefb69a431beff4e6bf1168468f37d7ab87015"}, - {file = "pathspec-0.10.0.tar.gz", hash = "sha256:01eecd304ba0e6eeed188ae5fa568e99ef10265af7fd9ab737d6412b4ee0ab85"}, + {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, + {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, ] platformdirs = [ {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, @@ -832,42 +1162,42 @@ pycodestyle = [ {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, ] pydantic = [ - {file = "pydantic-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:221166d99726238f71adc4fa9f3e94063a10787574b966f86a774559e709ac5a"}, - {file = "pydantic-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a90e85d95fd968cd7cae122e0d3e0e1f6613bc88c1ff3fe838ac9785ea4b1c4c"}, - {file = "pydantic-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2157aaf5718c648eaec9e654a34179ae42ffc363dc3ad058538a4f3ecbd9341"}, - {file = "pydantic-1.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6142246fc9adb51cadaeb84fb52a86f3adad4c6a7b0938a5dd0b1356b0088217"}, - {file = "pydantic-1.10.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:60dad97a09b6f44690c05467a4f397b62bfc2c839ac39102819d6979abc2be0d"}, - {file = "pydantic-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d6f5bcb59d33ec46621dae76e714c53035087666cac80c81c9047a84f3ff93d0"}, - {file = "pydantic-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:522906820cd60e63c7960ba83078bf2d2ad2dd0870bf68248039bcb1ec3eb0a4"}, - {file = "pydantic-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d545c89d88bdd5559db17aeb5a61a26799903e4bd76114779b3bf1456690f6ce"}, - {file = "pydantic-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ad2374b5b3b771dcc6e2f6e0d56632ab63b90e9808b7a73ad865397fcdb4b2cd"}, - {file = "pydantic-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90e02f61b7354ed330f294a437d0bffac9e21a5d46cb4cc3c89d220e497db7ac"}, - {file = "pydantic-1.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc5ffe7bd0b4778fa5b7a5f825c52d6cfea3ae2d9b52b05b9b1d97e36dee23a8"}, - {file = "pydantic-1.10.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7acb7b66ffd2bc046eaff0063df84c83fc3826722d5272adaeadf6252e17f691"}, - {file = "pydantic-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7e6786ed5faa559dea5a77f6d2de9a08d18130de9344533535d945f34bdcd42e"}, - {file = "pydantic-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:c7bf8ff1d18186eb0cbe42bd9bfb4cbf7fde1fd01b8608925458990c21f202f0"}, - {file = "pydantic-1.10.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:14a5babda137a294df7ad5f220986d79bbb87fdeb332c6ded61ce19da7f5f3bf"}, - {file = "pydantic-1.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5659cb9c6b3d27fc0067025c4f5a205f5e838232a4a929b412781117c2343d44"}, - {file = "pydantic-1.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c8d70fb91b03c32d2e857b071a22a5225e6b625ca82bd2cc8dd729d88e0bd200"}, - {file = "pydantic-1.10.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9a93be313e40f12c6f2cb84533b226bbe23d0774872e38d83415e6890215e3a6"}, - {file = "pydantic-1.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d55aeb01bb7bd7c7e1bd904668a4a2ffcbb1c248e7ae9eb40a272fd7e67dd98b"}, - {file = "pydantic-1.10.1-cp37-cp37m-win_amd64.whl", hash = "sha256:43d41b6f13706488e854729955ba8f740e6ec375cd16b72b81dc24b9d84f0d15"}, - {file = "pydantic-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f31ffe0e38805a0e6410330f78147bb89193b136d7a5f79cae60d3e849b520a6"}, - {file = "pydantic-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8eee69eda7674977b079a21e7bf825b59d8bf15145300e8034ed3eb239ac444f"}, - {file = "pydantic-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f927bff6c319fc92e0a2cbeb2609b5c1cd562862f4b54ec905e353282b7c8b1"}, - {file = "pydantic-1.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb1bc3f8fef6ba36977108505e90558911e7fbccb4e930805d5dd90891b56ff4"}, - {file = "pydantic-1.10.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96ab6ce1346d14c6e581a69c333bdd1b492df9cf85ad31ad77a8aa42180b7e09"}, - {file = "pydantic-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:444cf220a12134da1cd42fe4f45edff622139e10177ce3d8ef2b4f41db1291b2"}, - {file = "pydantic-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:dbfbff83565b4514dd8cebc8b8c81a12247e89427ff997ad0a9da7b2b1065c12"}, - {file = "pydantic-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5327406f4bfd5aee784e7ad2a6a5fdd7171c19905bf34cb1994a1ba73a87c468"}, - {file = "pydantic-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1072eae28bf034a311764c130784e8065201a90edbca10f495c906737b3bd642"}, - {file = "pydantic-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce901335667a68dfbc10dd2ee6c0d676b89210d754441c2469fbc37baf7ee2ed"}, - {file = "pydantic-1.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54d6465cd2112441305faf5143a491b40de07a203116b5755a2108e36b25308d"}, - {file = "pydantic-1.10.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2b5e5e7a0ec96704099e271911a1049321ba1afda92920df0769898a7e9a1298"}, - {file = "pydantic-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ae43704358304da45c1c3dd7056f173c618b252f91594bcb6d6f6b4c6c284dee"}, - {file = "pydantic-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:2d7da49229ffb1049779a5a6c1c50a26da164bd053cf8ee9042197dc08a98259"}, - {file = "pydantic-1.10.1-py3-none-any.whl", hash = "sha256:f8b10e59c035ff3dcc9791619d6e6c5141e0fa5cbe264e19e267b8d523b210bf"}, - {file = "pydantic-1.10.1.tar.gz", hash = "sha256:d41bb80347a8a2d51fbd6f1748b42aca14541315878447ba159617544712f770"}, + {file = "pydantic-1.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bb6ad4489af1bac6955d38ebcb95079a836af31e4c4f74aba1ca05bb9f6027bd"}, + {file = "pydantic-1.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a1f5a63a6dfe19d719b1b6e6106561869d2efaca6167f84f5ab9347887d78b98"}, + {file = "pydantic-1.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:352aedb1d71b8b0736c6d56ad2bd34c6982720644b0624462059ab29bd6e5912"}, + {file = "pydantic-1.10.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19b3b9ccf97af2b7519c42032441a891a5e05c68368f40865a90eb88833c2559"}, + {file = "pydantic-1.10.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e9069e1b01525a96e6ff49e25876d90d5a563bc31c658289a8772ae186552236"}, + {file = "pydantic-1.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:355639d9afc76bcb9b0c3000ddcd08472ae75318a6eb67a15866b87e2efa168c"}, + {file = "pydantic-1.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae544c47bec47a86bc7d350f965d8b15540e27e5aa4f55170ac6a75e5f73b644"}, + {file = "pydantic-1.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a4c805731c33a8db4b6ace45ce440c4ef5336e712508b4d9e1aafa617dc9907f"}, + {file = "pydantic-1.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d49f3db871575e0426b12e2f32fdb25e579dea16486a26e5a0474af87cb1ab0a"}, + {file = "pydantic-1.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37c90345ec7dd2f1bcef82ce49b6235b40f282b94d3eec47e801baf864d15525"}, + {file = "pydantic-1.10.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b5ba54d026c2bd2cb769d3468885f23f43710f651688e91f5fb1edcf0ee9283"}, + {file = "pydantic-1.10.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:05e00dbebbe810b33c7a7362f231893183bcc4251f3f2ff991c31d5c08240c42"}, + {file = "pydantic-1.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2d0567e60eb01bccda3a4df01df677adf6b437958d35c12a3ac3e0f078b0ee52"}, + {file = "pydantic-1.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:c6f981882aea41e021f72779ce2a4e87267458cc4d39ea990729e21ef18f0f8c"}, + {file = "pydantic-1.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4aac8e7103bf598373208f6299fa9a5cfd1fc571f2d40bf1dd1955a63d6eeb5"}, + {file = "pydantic-1.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a7b66c3f499108b448f3f004801fcd7d7165fb4200acb03f1c2402da73ce4c"}, + {file = "pydantic-1.10.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bedf309630209e78582ffacda64a21f96f3ed2e51fbf3962d4d488e503420254"}, + {file = "pydantic-1.10.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9300fcbebf85f6339a02c6994b2eb3ff1b9c8c14f502058b5bf349d42447dcf5"}, + {file = "pydantic-1.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:216f3bcbf19c726b1cc22b099dd409aa371f55c08800bcea4c44c8f74b73478d"}, + {file = "pydantic-1.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:dd3f9a40c16daf323cf913593083698caee97df2804aa36c4b3175d5ac1b92a2"}, + {file = "pydantic-1.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b97890e56a694486f772d36efd2ba31612739bc6f3caeee50e9e7e3ebd2fdd13"}, + {file = "pydantic-1.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9cabf4a7f05a776e7793e72793cd92cc865ea0e83a819f9ae4ecccb1b8aa6116"}, + {file = "pydantic-1.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06094d18dd5e6f2bbf93efa54991c3240964bb663b87729ac340eb5014310624"}, + {file = "pydantic-1.10.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc78cc83110d2f275ec1970e7a831f4e371ee92405332ebfe9860a715f8336e1"}, + {file = "pydantic-1.10.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ee433e274268a4b0c8fde7ad9d58ecba12b069a033ecc4645bb6303c062d2e9"}, + {file = "pydantic-1.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7c2abc4393dea97a4ccbb4ec7d8658d4e22c4765b7b9b9445588f16c71ad9965"}, + {file = "pydantic-1.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:0b959f4d8211fc964772b595ebb25f7652da3f22322c007b6fed26846a40685e"}, + {file = "pydantic-1.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c33602f93bfb67779f9c507e4d69451664524389546bacfe1bee13cae6dc7488"}, + {file = "pydantic-1.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5760e164b807a48a8f25f8aa1a6d857e6ce62e7ec83ea5d5c5a802eac81bad41"}, + {file = "pydantic-1.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6eb843dcc411b6a2237a694f5e1d649fc66c6064d02b204a7e9d194dff81eb4b"}, + {file = "pydantic-1.10.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b8795290deaae348c4eba0cebb196e1c6b98bdbe7f50b2d0d9a4a99716342fe"}, + {file = "pydantic-1.10.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e0bedafe4bc165ad0a56ac0bd7695df25c50f76961da29c050712596cf092d6d"}, + {file = "pydantic-1.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2e05aed07fa02231dbf03d0adb1be1d79cabb09025dd45aa094aa8b4e7b9dcda"}, + {file = "pydantic-1.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:c1ba1afb396148bbc70e9eaa8c06c1716fdddabaf86e7027c5988bae2a829ab6"}, + {file = "pydantic-1.10.2-py3-none-any.whl", hash = "sha256:1b6ee725bd6e83ec78b1aa32c5b1fa67a3a65badddde3976bca5fe4568f27709"}, + {file = "pydantic-1.10.2.tar.gz", hash = "sha256:91b8e218852ef6007c2b98cd861601c6a09f1aa32bbbb74fab5b1c33d4a1e410"}, ] pydocstyle = [ {file = "pydocstyle-6.1.1-py3-none-any.whl", hash = "sha256:6987826d6775056839940041beef5c08cc7e3d71d63149b48e36727f70144dc4"}, @@ -877,6 +1207,10 @@ pyflakes = [ {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, ] +Pygments = [ + {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, + {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, +] pyparsing = [ {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, @@ -893,7 +1227,11 @@ python-slugify = [ {file = "python-slugify-6.1.2.tar.gz", hash = "sha256:272d106cb31ab99b3496ba085e3fea0e9e76dcde967b5e9992500d1f785ce4e1"}, {file = "python_slugify-6.1.2-py2.py3-none-any.whl", hash = "sha256:7b2c274c308b62f4269a9ba701aa69a797e9bca41aeee5b3a9e79e36b6656927"}, ] -pyyaml = [ +pytz = [ + {file = "pytz-2022.4-py2.py3-none-any.whl", hash = "sha256:2c0784747071402c6e99f0bafdb7da0fa22645f06554c7ae06bf6358897e9c91"}, + {file = "pytz-2022.4.tar.gz", hash = "sha256:48ce799d83b6f8aab2020e369b627446696619e79645419610b9facd909b3174"}, +] +PyYAML = [ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, @@ -901,6 +1239,13 @@ pyyaml = [ {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, @@ -940,6 +1285,46 @@ snowballstemmer = [ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, ] +Sphinx = [ + {file = "Sphinx-5.2.3.tar.gz", hash = "sha256:5b10cb1022dac8c035f75767799c39217a05fc0fe2d6fe5597560d38e44f0363"}, + {file = "sphinx-5.2.3-py3-none-any.whl", hash = "sha256:7abf6fabd7b58d0727b7317d5e2650ef68765bbe0ccb63c8795fa8683477eaa2"}, +] +sphinx-autobuild = [ + {file = "sphinx-autobuild-2021.3.14.tar.gz", hash = "sha256:de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05"}, + {file = "sphinx_autobuild-2021.3.14-py3-none-any.whl", hash = "sha256:8fe8cbfdb75db04475232f05187c776f46f6e9e04cacf1e49ce81bdac649ccac"}, +] +sphinx-copybutton = [ + {file = "sphinx-copybutton-0.5.0.tar.gz", hash = "sha256:a0c059daadd03c27ba750da534a92a63e7a36a7736dcf684f26ee346199787f6"}, + {file = "sphinx_copybutton-0.5.0-py3-none-any.whl", hash = "sha256:9684dec7434bd73f0eea58dda93f9bb879d24bff2d8b187b1f2ec08dfe7b5f48"}, +] +sphinx-rtd-theme = [ + {file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"}, + {file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] structlog = [ {file = "structlog-21.5.0-py3-none-any.whl", hash = "sha256:fd7922e195262b337da85c2a91c84be94ccab1f8fd1957bd6986f6904e3761c8"}, {file = "structlog-21.5.0.tar.gz", hash = "sha256:68c4c29c003714fe86834f347cb107452847ba52414390a7ee583472bde00fc9"}, @@ -952,6 +1337,19 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +tornado = [ + {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, + {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, + {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, + {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, + {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, +] typed-ast = [ {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, diff --git a/pyproject.toml b/pyproject.toml index 9bb970b..0933f75 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,6 +47,22 @@ PyYAML = "^6.0.0" pydantic = "^1.9.0" devtools = "^0.9.0" +# Sphinx dependencies installed as optional 'docs' extras +# https://github.com/readthedocs/readthedocs.org/issues/4912#issuecomment-664002569 +sphinx = {version = ">=4.5,<6.0", optional = true} +sphinx-rtd-theme = {version = ">=0.5.2,<1.1.0", optional = true} +sphinx-copybutton = {version = ">=0.3.1,<0.6.0", optional = true} +myst-parser = {version = ">=0.17.2,<0.19.0", optional = true} +sphinx-autobuild = {version = "^2021.3.14", optional = true} + +[tool.poetry.extras] +docs = [ + "sphinx", + "sphinx-rtd-theme", + "sphinx-copybutton", + "myst-parser", + "sphinx-autobuild", +] [tool.poetry.dev-dependencies] pytest = "^5.2" @@ -60,11 +76,10 @@ flake8 = "^3.9.0" flake8-annotations = "^2.9.1" flake8-docstrings = "^1.6.0" - [tool.isort] profile = "black" multi_line_output = 3 # Vertical Hanging Indent -src_paths = "ext_airflow" +src_paths = "meltano/edk" [build-system]