From e054ac364e873776e86b459397fb8423cfc98f23 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 4 Dec 2022 00:50:24 +0100 Subject: [PATCH 1/3] Updated docs --- cpl-workspace.json | 6 +- docs/build/doctrees/cli.generate.doctree | Bin 20024 -> 21443 bytes docs/build/doctrees/cli.new.doctree | Bin 18247 -> 19666 bytes docs/build/doctrees/cli.run.doctree | Bin 0 -> 7079 bytes docs/build/doctrees/cli.start.doctree | Bin 3944 -> 6133 bytes docs/build/doctrees/contributing.doctree | Bin 23989 -> 23971 bytes docs/build/doctrees/cpl_cli.doctree | Bin 2978 -> 2978 bytes .../doctrees/cpl_core.application.doctree | Bin 74914 -> 75853 bytes docs/build/doctrees/cpl_core.database.doctree | Bin 50089 -> 49411 bytes docs/build/doctrees/cpl_core.doctree | Bin 3493 -> 3493 bytes docs/build/doctrees/cpl_core.pipes.doctree | Bin 61778 -> 52248 bytes .../doctrees/cpl_discord.application.doctree | Bin 0 -> 9865 bytes .../doctrees/cpl_discord.command.doctree | Bin 0 -> 12501 bytes .../cpl_discord.configuration.doctree | Bin 0 -> 13139 bytes .../doctrees/cpl_discord.container.doctree | Bin 0 -> 161304 bytes docs/build/doctrees/cpl_discord.doctree | Bin 0 -> 2967 bytes .../build/doctrees/cpl_discord.events.doctree | Bin 0 -> 308142 bytes .../build/doctrees/cpl_discord.helper.doctree | Bin 0 -> 11418 bytes .../doctrees/cpl_discord.service.doctree | Bin 0 -> 342247 bytes docs/build/doctrees/cpl_query.base.doctree | Bin 0 -> 208470 bytes docs/build/doctrees/cpl_query.doctree | Bin 3271 -> 3323 bytes .../doctrees/cpl_query.enumerable.doctree | Bin 0 -> 21864 bytes .../doctrees/cpl_query.exceptions.doctree | Bin 23263 -> 0 bytes .../doctrees/cpl_query.extension.doctree | Bin 303500 -> 15861 bytes .../build/doctrees/cpl_query.iterable.doctree | Bin 0 -> 32376 bytes docs/build/doctrees/cpl_translation.doctree | Bin 0 -> 45878 bytes docs/build/doctrees/environment.pickle | Bin 290395 -> 543750 bytes docs/build/doctrees/index.doctree | Bin 27875 -> 27923 bytes docs/build/doctrees/modules.doctree | Bin 2775 -> 2817 bytes docs/build/doctrees/setup.doctree | Bin 20612 -> 20594 bytes docs/build/html/.buildinfo | 2 +- docs/build/html/_sources/cli.generate.md.txt | 9 +- docs/build/html/_sources/cli.new.md.txt | 9 +- docs/build/html/_sources/cli.run.md.txt | 12 + docs/build/html/_sources/cli.start.md.txt | 4 + docs/build/html/_sources/contributing.md.txt | 6 +- docs/build/html/_sources/cpl_cli.rst.txt | 2 +- .../html/_sources/cpl_core.database.rst.txt | 3 +- .../html/_sources/cpl_core.pipes.rst.txt | 27 +- docs/build/html/_sources/cpl_core.rst.txt | 2 +- .../_sources/cpl_discord.application.rst.txt | 12 + .../html/_sources/cpl_discord.command.rst.txt | 20 + .../cpl_discord.configuration.rst.txt | 12 + .../_sources/cpl_discord.container.rst.txt | 68 + .../html/_sources/cpl_discord.events.rst.txt | 412 ++++ .../html/_sources/cpl_discord.helper.rst.txt | 12 + docs/build/html/_sources/cpl_discord.rst.txt | 13 + .../html/_sources/cpl_discord.service.rst.txt | 60 + .../html/_sources/cpl_query.base.rst.txt | 52 + .../_sources/cpl_query.enumerable.rst.txt | 20 + .../_sources/cpl_query.exceptions.rst.txt | 10 - .../html/_sources/cpl_query.extension.rst.txt | 38 +- .../html/_sources/cpl_query.iterable.rst.txt | 20 + docs/build/html/_sources/cpl_query.rst.txt | 10 +- .../html/_sources/cpl_translation.rst.txt | 34 + docs/build/html/_sources/index.rst.txt | 2 + docs/build/html/_sources/modules.rst.txt | 2 +- docs/build/html/_sources/setup.md.txt | 6 +- docs/build/html/cli.add.html | 12 +- docs/build/html/cli.build.html | 12 +- docs/build/html/cli.generate.html | 16 +- docs/build/html/cli.help.html | 12 +- docs/build/html/cli.install.html | 12 +- docs/build/html/cli.new.html | 16 +- docs/build/html/cli.overview.html | 16 +- docs/build/html/cli.publish.html | 12 +- docs/build/html/cli.remove.html | 12 +- docs/build/html/cli.run.html | 128 ++ docs/build/html/cli.start.html | 26 +- docs/build/html/cli.uninstall.html | 12 +- docs/build/html/cli.update.html | 12 +- docs/build/html/cli.version.html | 16 +- docs/build/html/contributing.html | 20 +- docs/build/html/cpl_cli.html | 16 +- docs/build/html/cpl_core.application.html | 20 +- docs/build/html/cpl_core.configuration.html | 12 +- docs/build/html/cpl_core.console.html | 12 +- .../html/cpl_core.database.connection.html | 13 +- .../build/html/cpl_core.database.context.html | 13 +- docs/build/html/cpl_core.database.html | 16 +- .../html/cpl_core.dependency_injection.html | 12 +- docs/build/html/cpl_core.environment.html | 12 +- docs/build/html/cpl_core.html | 38 +- docs/build/html/cpl_core.logging.html | 12 +- docs/build/html/cpl_core.mailing.html | 12 +- docs/build/html/cpl_core.pipes.html | 93 +- docs/build/html/cpl_core.time.html | 12 +- docs/build/html/cpl_core.utils.html | 16 +- docs/build/html/cpl_discord.application.html | 138 ++ docs/build/html/cpl_discord.command.html | 143 ++ .../build/html/cpl_discord.configuration.html | 152 ++ docs/build/html/cpl_discord.container.html | 674 ++++++ docs/build/html/cpl_discord.events.html | 888 ++++++++ docs/build/html/cpl_discord.helper.html | 138 ++ docs/build/html/cpl_discord.html | 216 ++ docs/build/html/cpl_discord.service.html | 780 +++++++ docs/build/html/cpl_query.base.html | 725 +++++++ docs/build/html/cpl_query.enumerable.html | 161 ++ docs/build/html/cpl_query.exceptions.html | 178 -- docs/build/html/cpl_query.extension.html | 936 +------- docs/build/html/cpl_query.html | 55 +- docs/build/html/cpl_query.iterable.html | 206 ++ docs/build/html/cpl_translation.html | 225 ++ docs/build/html/genindex.html | 1895 +++++++++++++++-- docs/build/html/getting_started.html | 10 +- docs/build/html/index.html | 18 +- docs/build/html/introduction.html | 10 +- docs/build/html/modules.html | 163 +- docs/build/html/objects.inv | Bin 4219 -> 7181 bytes docs/build/html/py-modindex.html | 449 +++- docs/build/html/quickstart.html | 10 +- docs/build/html/search.html | 10 +- docs/build/html/searchindex.js | 2 +- docs/build/html/setup.html | 16 +- docs/build/html/tutorials.appsettings.html | 10 +- .../html/tutorials.console-arguments.html | 10 +- docs/build/html/tutorials.console.html | 10 +- docs/build/html/tutorials.create-startup.html | 10 +- .../html/tutorials.extend-application.html | 10 +- docs/build/html/tutorials.extend-startup.html | 10 +- docs/build/html/tutorials.html | 10 +- docs/build/html/tutorials.logging.html | 10 +- docs/build/html/tutorials.mail.html | 10 +- docs/source/cli.generate.md | 9 +- docs/source/cli.new.md | 9 +- docs/source/cli.run.md | 12 + docs/source/cli.start.md | 4 + docs/source/conf.py | 6 +- docs/source/cpl_cli.rst | 2 +- docs/source/cpl_core.database.rst | 3 +- docs/source/cpl_core.pipes.rst | 27 +- docs/source/cpl_core.rst | 2 +- docs/source/cpl_discord.application.rst | 12 + docs/source/cpl_discord.command.rst | 20 + docs/source/cpl_discord.configuration.rst | 12 + docs/source/cpl_discord.container.rst | 68 + docs/source/cpl_discord.events.rst | 412 ++++ docs/source/cpl_discord.helper.rst | 12 + docs/source/cpl_discord.rst | 13 + docs/source/cpl_discord.service.rst | 60 + docs/source/cpl_query.base.rst | 52 + docs/source/cpl_query.enumerable.rst | 20 + docs/source/cpl_query.exceptions.rst | 10 - docs/source/cpl_query.extension.rst | 38 +- docs/source/cpl_query.iterable.rst | 20 + docs/source/cpl_query.rst | 10 +- docs/source/cpl_translation.rst | 34 + docs/source/index.rst | 2 + docs/source/modules.rst | 2 +- 149 files changed, 8860 insertions(+), 1827 deletions(-) create mode 100644 docs/build/doctrees/cli.run.doctree create mode 100644 docs/build/doctrees/cpl_discord.application.doctree create mode 100644 docs/build/doctrees/cpl_discord.command.doctree create mode 100644 docs/build/doctrees/cpl_discord.configuration.doctree create mode 100644 docs/build/doctrees/cpl_discord.container.doctree create mode 100644 docs/build/doctrees/cpl_discord.doctree create mode 100644 docs/build/doctrees/cpl_discord.events.doctree create mode 100644 docs/build/doctrees/cpl_discord.helper.doctree create mode 100644 docs/build/doctrees/cpl_discord.service.doctree create mode 100644 docs/build/doctrees/cpl_query.base.doctree create mode 100644 docs/build/doctrees/cpl_query.enumerable.doctree delete mode 100644 docs/build/doctrees/cpl_query.exceptions.doctree create mode 100644 docs/build/doctrees/cpl_query.iterable.doctree create mode 100644 docs/build/doctrees/cpl_translation.doctree create mode 100644 docs/build/html/_sources/cli.run.md.txt create mode 100644 docs/build/html/_sources/cpl_discord.application.rst.txt create mode 100644 docs/build/html/_sources/cpl_discord.command.rst.txt create mode 100644 docs/build/html/_sources/cpl_discord.configuration.rst.txt create mode 100644 docs/build/html/_sources/cpl_discord.container.rst.txt create mode 100644 docs/build/html/_sources/cpl_discord.events.rst.txt create mode 100644 docs/build/html/_sources/cpl_discord.helper.rst.txt create mode 100644 docs/build/html/_sources/cpl_discord.rst.txt create mode 100644 docs/build/html/_sources/cpl_discord.service.rst.txt create mode 100644 docs/build/html/_sources/cpl_query.base.rst.txt create mode 100644 docs/build/html/_sources/cpl_query.enumerable.rst.txt delete mode 100644 docs/build/html/_sources/cpl_query.exceptions.rst.txt create mode 100644 docs/build/html/_sources/cpl_query.iterable.rst.txt create mode 100644 docs/build/html/_sources/cpl_translation.rst.txt create mode 100644 docs/build/html/cli.run.html create mode 100644 docs/build/html/cpl_discord.application.html create mode 100644 docs/build/html/cpl_discord.command.html create mode 100644 docs/build/html/cpl_discord.configuration.html create mode 100644 docs/build/html/cpl_discord.container.html create mode 100644 docs/build/html/cpl_discord.events.html create mode 100644 docs/build/html/cpl_discord.helper.html create mode 100644 docs/build/html/cpl_discord.html create mode 100644 docs/build/html/cpl_discord.service.html create mode 100644 docs/build/html/cpl_query.base.html create mode 100644 docs/build/html/cpl_query.enumerable.html delete mode 100644 docs/build/html/cpl_query.exceptions.html create mode 100644 docs/build/html/cpl_query.iterable.html create mode 100644 docs/build/html/cpl_translation.html create mode 100644 docs/source/cli.run.md create mode 100644 docs/source/cpl_discord.application.rst create mode 100644 docs/source/cpl_discord.command.rst create mode 100644 docs/source/cpl_discord.configuration.rst create mode 100644 docs/source/cpl_discord.container.rst create mode 100644 docs/source/cpl_discord.events.rst create mode 100644 docs/source/cpl_discord.helper.rst create mode 100644 docs/source/cpl_discord.rst create mode 100644 docs/source/cpl_discord.service.rst create mode 100644 docs/source/cpl_query.base.rst create mode 100644 docs/source/cpl_query.enumerable.rst delete mode 100644 docs/source/cpl_query.exceptions.rst create mode 100644 docs/source/cpl_query.iterable.rst create mode 100644 docs/source/cpl_translation.rst diff --git a/cpl-workspace.json b/cpl-workspace.json index 081ff298..6d34e2bd 100644 --- a/cpl-workspace.json +++ b/cpl-workspace.json @@ -25,7 +25,11 @@ "spu": "cpl set-pip-urls", "set-pip-urls": "cpl run set-pip-urls $ARGS; echo '';", - "docs-build": "echo 'Build Documentation'; cd docs/; sphinx-apidoc -o source/ ../src/cpl_core; sphinx-apidoc -o source/ ../src/cpl_query; make clean; make html; rm source/cpl_query.tests.rst;", + "docs-build": "echo 'Build Documentation'; cpl db-core; cpl db-discord; cpl db-query; cpl db-translation; cd docs/; make clean; make html; # rm source/cpl_query.tests.rst;", + "db-core": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_core; cd ../", + "db-discord": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_discord; cd ../", + "db-query": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_query; cd ../", + "db-translation": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_translation; cd ../", "db": "cpl docs-build", "docs-open": "xdg-open $PWD/docs/build/html/index.html &", diff --git a/docs/build/doctrees/cli.generate.doctree b/docs/build/doctrees/cli.generate.doctree index 8148d5007190513dac0e5643c97c7a5f5158c5e6..bd1c7d8ba4e8a16785ea9460071d10516ebb95e0 100644 GIT binary patch delta 2186 zcmbVNYiJx*6yAGxH~VO89-6dyZSI;To6SCwZQQL%8k?GzbmO8lzABY$k};F%CL8x* zT1nZoQvDMs-Mc=j7LpcPEGR9D5K)9!i{KAS)%*}G)f5y2Awd!GkDhz)%p_aZ^h%XKbADhl zkxUUOCQV7xDH4C4%tTW%nVpQq$f!ipNokx!lY}YzxMw<^BCcd&%;hHo@dS~MMyFt1lJkBfSf3ROs2?eJRKWn%HY&M zyv}AQboT!wyEgwOD6Y+)y(?j`kIiK6${Aq)mUXVMwP%e6gIp^c<+_OMh@?lAJT@5I zYV#LtdV$&l+F~grTGF0TMtepYb$S%)trp!`o2RV*1?~Ay8JT$}wQSV8f=sZI*HS6o znhHH$+GMIxUN_RHyHCuFf>t%CK3O;UWZ^G43?=BzhETSqoSt?$@|PVUgey#R!|o}O zOJqm5MxDlT6Rjml++?C>$nciGZs$CHjN`LyX8b5zIfM9siA^i5Dr?0Pnh%ZB5qH0E zwNigW3(n}SInA|E8N`E(!*A<@hXh*yf<3#k_&tX8W*aRu-fTth(iM*fUu3`_z97WT zH}1n<=!~CpM%8tzy&wNnK(NLL&}|I_vS^VaPcQw`^)M=m+RUO50xif&fel{v(3_px1}8od2{4 zRPBuaeI9mMgk93z8t))|+uw!0z#CwL@+tDEa1<+GE zi|S&MFBZfnczk>-a8qt57)DDR-qu-)&T;5lTj0>ue}$^ir{MC?o;^ow zyVQPs!b3jN+0`(X#_u}sItTr_6(mwP(Qy*jTeNx1?6cw;3!jmlV1$9Ju<&}n?)2fk z4CY~*(P80pqWVAyKV3jEEGQn=VVmXd=s zX=<&!K~*{wH1Q&=WToGBL0|NZ$`<-}?|ry|Ew;m@6qyW$sN4u&O&9#!hjVG!qf|4v zBV4B@2=ApseFLZ_ztoq++g`C63=7+(L?WJ`KMvfR-#xf$tnUbD?@|nxrwTs1*R2K` zHCE8Ba6P(4pA9?EXY{48%eboAKMXs;{#`f-Q&cvz6MaKlhFUUFkWrpv$87}1_v|Qw zyc8olN+4~em>thB$dhoS7i`nfDJgYqMoO}ezQPzHJUYT7BRnd?BO+B&f|-!G5C_H19)4Z5BGV<|D>7b>n(Uop=Em=*?0Tk7t!D3eHSeUt7Okdi%)sr zKhb++=%tE+xRFV-b)d<_CSd40)gM4L?cQ5Uez!H>l^(6qOoJ^REHfMUZnNNfYr@dQ zECG!0zT~HS1HMjpZChNwj5}(Ovys3-ZQgS*r5k9v){5^*@p&WrUCExUD~CnFUdV=} zdz^jC5cRo?`ph8Jxe@xxABL1}$S+C1`(M)Zhmrp~;|Gr7PL)#mHB?Zo!V@$T>_ooK z{u9PVk4mx9`btvaw*?8_kxpdHi`3ND^KsCod#NJpor%8)##@e3TdU)M_VnU(9ZNu`qym7_5~KP@L0Fe^>!=!8u?Z{GJqelct5R2{OGV` z&Xb*D5&7D@oxmmwKTbRY8!X}|1#|^I%;i4rjNdI{(6!;tVw=HOsN2Ry2w1=egwB$(2Ks0%<~j3|#bk>Az{}6T%8$I{vGL*xFYha? zT;SzfF1g3b=%j6E@Xh0iQ^UtcI5^G|qQV^&&Zuxjg(Etum2wRSXgfr@=9SS8IO#$G R&$e+C&t_No>d@gM@IL^^)Z737 diff --git a/docs/build/doctrees/cli.new.doctree b/docs/build/doctrees/cli.new.doctree index 9dbd6b989574c7389d40770078ef85493eda56a8..449ea977000f906d8c53b913daaa063093297031 100644 GIT binary patch delta 1750 zcmbVNTWlLe6!pyR+DT-!K|m=nw#T8wb{yMHoHcnkP-t8t8XN^RAW=owaTnGrCpPh# z@OC2cR0FDXT|`rf4^&?2BejAANIWWjDuLi55-1W4DuE9u5<>Yv;tOVGz23Uw2Y#-1 z=H7eGz31MMFTRG>PatVgI(~7yCOHZ8`1{(N>2x|Ap2?IHsL8whcH_IMI;N}Yu4VK1 zLUpP7Y&D=ts$F$yM+K<4V$PdYx7tIGF9|jq{3vvZF70^%t_#R$2|jm6D{mdh&6jkd z_SB8i` zTg;P3NtWnJNsk_)#@|56&MO(60qKNxLX)FBh<;aS45c#~A~~Hb6w3J{jF~#kAl_(z zcDnF?irrd#gEDR{p17u9dY>&;uBn-Z{ae-5W^Lc2Vyd^Og6dAGo>X~8JB4kwU|s#? z)<%Qogs!@220D-Ulq%+wOyKei?Y6_vW@{0c`c2~er+Or=qghM+)KrI{ebKxvtPWUp z5NN-t1;5Sq#RKU?m$5Uj=}F+9n-eZu>$TYk$4dhEWO?mxZxP`=B0T2X+vck8qfdm> zz7m#2Af1Ph4Cg`*z*n8Uc#4Jfz~zXD?uYh398ZXF!5x7O91*m<<;+p1m)A4_lffuV z$PP44@1iX-odsQZ87_qngZ;Kqydv_K;H@*iE*dXEaB099ju{LcU6c4ji{OI>!LbIx ztKjk<#g_~`Qpek{@V@1E>jvKAfe`-7!uzv3#5`*5GcW$di`q7s*Jzrxw9gDdmT2Lb`LY(BWgC7@z533T+H;)`DsCB?q(r(Qd3@T zoy*KB`jbVa#Qr}thLGafDV~|)St*{8Dyu#g!w6I-M_0oJ^bd?F*v_zhjEZ4vQE6>E HIfecKgh(I$ delta 1085 zcmaizT}V@57{~X%=WKI1(!!6JZBA^uPdB%n*>rwQr8#3HWuI!zGL9pisUy0OHliSq zU_FaSSac%%> zB6(bX+jn3=uGYh7sV?)#(1P%N4!TX&odu$fp}nW4~8iROrzjZLy5*D}kqNoM)YNuum6<5AETo6u*L?4uNT zodoVjzu2pvQrPwFuxmVw%?XSXwFg#xOw2xKYkg!mbbU|w|E{lcdpC+U zAF9Z-wGCnXU6GmV_`&I&&XlMmD=(SiYRU7pR3bH*GKz9hLC%O-DT9qY#qhSXTyIp8 z!$AI**ud1TOVP1&XQQ!^3ES|{NNi$oJQXoPQLvh;&j}6(E07UlK|xbZWd9U+;YHAV zWl15EMV{000g>{amT7VpBX?+dz>_jV%OY)gOiFA@H4+{koVYwnTuIUhC4`td#FQbX m3Nb|}CRWfMY9Oi^U9?H)Pt<9qkh0U%in1fKd}gw%2mJwdmq};< diff --git a/docs/build/doctrees/cli.run.doctree b/docs/build/doctrees/cli.run.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c1463960f06799092504121e126822edb4ef0ce2 GIT binary patch literal 7079 zcmcgxTW=&s74~gxkFVEAE(1E$q!zp+aMCQw zbr+IOJl0v^%)AnOpdM5Ii4CzJ3? z`!UOXp>1C90wM&2cy2@_ES?tqEE&9XhZpa{*a}6MVPRLx~CU&cNfm=?mDk_ z(uYf>p#J)3ch}gt!#35N?vdB+d2QGp05LCQ8b`fh6lQJ6Y%23ypW)lXGhFV`x8PBu z^vEa%_M2+@Dw}4J6T=40X?H91iK_$$e@ZYek1J_JFwXkH`PE;U+4c$9ycuj z`|moimzTv)FyLSH0qoO}l^B@3{7ovnlqY86FRiZ0YKHe4(^FH|vb{fJM^tf9H(xDF z?7}S%;Lv2ED{cyTYYXvoR9X^Nq;@?n}|ppHLJMnA3%Q<+iDgqRUn$@ zx_3{ltrK`R8iGG52Tu}$?^#995R@wmNdN0&YOj;`%fPhN^6Am}*fvaCg>Ly)$M<(u z|26PkDO3En*TDBTR?+$Ro|odk9vgE>iof=DtS`I{jt(|SyJ;Lc#dXjjk#CaO$b2rO zgR3LTKqtek+otbloTU!#->m%;fNN6ouXe=wC{2)>*8=Ucq~?FDtrK`xrDhd6AD4qC zNzIR}qGt%o|C5@Rj_E(tW{#b+FCK$CIu7>v{;WQs{}ChqaM@u(tyO1w(IT0Q#}8w_ z$L8BCZ`|dbW1!sdJ}rH_Cl&uNpn}LS6|sbAK*a#+EwC4cG`aX#V+kU5UwbhPE3;Hn zNv= zYuJ@|;(BqYDLaA5wh9RisFAqGT!L~c2`}g>2Ux*MN|QL1Za|M{knhi^B}M}K+E5$x zL~~e@$V^n78mi&bPS%6EwPTV-KnXokNv1OQvoy>sx!N9S8JVKLKQlF@){1!tHdLc; z*BeF#s~g$}0ieL=C4nJeRs$0CGSZ_!+y@~u0}@m{mr^fIeXx58A_HnT2*m?6@5NCU zZUPbRyI^j*{3Hj5xu&zi9f;HnM>wteS(vysn?T{eaVL-rIia+DzN)%11x@{ z?ed^tOE>islz@)Xmp-hpp3TRSFM}DguL#i%oll6IsE0rdc*te`=8c!sT0#>SpipF? zX8>E#k`96GIxWD>?Nm?#nE1z_S(6+rF$9!(9@MP#PUePkI|&{!pjeU z=UUqJMyA)2!SpXy(<4oZ4%tJR?r|!+Mh6nUt@$@7Yk~|x78#OaQEemNLf59Jb-*ns zx-)e{oJNwIxQzE$fS+da0?l5k6%pbH?*1r4UJC&AoOv%^-5~Zz3GKGWaQ64G@I}4> zWdk8bAA)*0Gn~62(#tw6PhkS1R6@xuP}=0sr6J*gi_ZgK9yMkDRBe<5KY}&r76t80trRnu=>hosEH6A&<e_#Ck@j;Yy+D7aZq_g;zE|jP8)F{yKY+S(?ftp7LoZCX8m{Jbbppum z;^T-G7SH_`(X;JLkbeuxR=P}qqBn`Wl#7e<7(ce6HQv(jn?-K@=T?!bE6yfr#k*)pY;P?$~F=^bbp zN0|We3LkI^Sa@BBBjg_fg7@=BC^ERDqg>$wl0aG&3T=I^iI=U|WWq9!ydd*+CiZj^ PEctp1DXVR9mf8CstaSdy literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cli.start.doctree b/docs/build/doctrees/cli.start.doctree index 85ccbbd03517abd583c6359268b2e1ed2dc5a02f..1bde7025eb2db9000fb996dc8847c113b6c27738 100644 GIT binary patch delta 1876 zcmcIl-)qxQ6kgM%Tb&&Yr`xPuQ|8tc?L?e{4~n9Qqd13bzDQ+hbGMt2CMCIX?qO^L z1t0Pt=KAXYFp3B=nD`I)Ck(+~o1jm=dv467O*4k`$3xrO^WEI@o$q|-=F9MpGvb=~ ze0N|&oK4)pNmnFtMMu=5g>||@$FYbLxT{P7NsvX$bm|dk9I&pcsoQl_jey?M&Y?-S z8{j2XA()nO4nBpqa2jvo6F81D_%t3abvPCLCY-bQ@vC=;Xzf_!Zi#G4T$c?Y7O zTB9J-F3%J6rJ1+qIn<##v^89JGI=Ox+%W z9+F}e3PTo^@hF7z@F|ojJK|tu58ah@2T5ePo=2Q)GlpoGYbM}&k8?f#&$%KnT&C{> zDE_`x1lEVu?LF+u%u_LyJ)H0{+@bOPS~fpFUo0x<0sQ__0Y*tzL0?&KTC5tSXXZLy-(Kh$*T~BzXa9lPZp?D-*mLe#+Dz9ut;9XQj5BeyquYG}^wWUm2QiZh0tCq#@T3Tw4IIP#>7K OaSoOYZXD^Ii~R(N-*5T= delta 183 zcmeyW|3Z$nfpuyu|3=mjw#|3>1Q|JcSX1*#iYljU{=o0S$dvJ5v#sEJW(7mjDH-gs zQ!>PQn1IaIDUDNVr)XrbX0T;QXUQ`%FiZ|$5}BMJD$gX#IJr?&mPw9r@&Zvc7JZo1 zJyAuF6r-4lv@~2LcgruzRw&6xRVdETO-(6EOe@h#N!3p-$WbUtEy&lK zlEEH3B}1$Shq}#dhWEJ`wI|EkC<+7hSmh=bm!uZKG=ar8JKB5|W?Vb@V?fm8i2@{#za?3BuRw&6xRVdETO-(6EOe@h#N!2gTh)*uaQ7B3+ z$k&^a!5%v$L#zk4(oKfoBe}AxB<$&J465g diff --git a/docs/build/doctrees/cpl_cli.doctree b/docs/build/doctrees/cpl_cli.doctree index 3aff0849113eef39f11024a3971739c073087628..46b5c41556ae3d30e0c65b873f41f0f7f746b6ec 100644 GIT binary patch delta 43 zcmZ1^zDRt+B!!~XwA7;1yyVm=8SJrBGB|r!LQ*SArc9pF!|UwhsZg|W(+4g9aWoMb delta 43 zcmZ1^zDRt+B!!^VwA7;1yyVm=8SJrBGB|r!LQ*SArc9pF!|UwhsSvbr(+4g9Y!ndL diff --git a/docs/build/doctrees/cpl_core.application.doctree b/docs/build/doctrees/cpl_core.application.doctree index 22d735eff07e0c4441f666d274b286a6b9059499..bdf49dbabee76c5e1ef182af756c16f4d7f092a3 100644 GIT binary patch delta 6569 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 TrimoA474%OGH?!gkPZJomci!f delta 6477 zcma)AdtB627WZC9U}k>9%lu)?7=`o<31mtyY#aH+9R+J?H)&%m7;aG2Gw1=X}rip2t1+ z_xrTou>PRIP}*T-^fp64F?Sz>ywZ-)qj;A$cII4@_ui5o%#mPh*G}%)9)J4LsFyN= zw4q^8S{dN|^Yf<|%SXL@FqEb83?uaGo5Iq)Wo0igKE()SmL#5QgtU=yycqwDPGY(6 zYIz_2JS|1S{!_Ies4JYYy@{3;g@IQ_y(avPm})85lZ%T;cpq? z>cp|ov~QFqH$5Yc|6P|mR}czyryOMT-2ON=0j@6W6O)eAT@kMKu1I-24WqK=Oet_h zmsIz1#Xearr$PPV#TI2HgSnjYgGN}M8wZt3rWvo1yi>kvgnf@ES%wR3A=6~^rY-Hp zxX}bxU+E0YS0U5Ka$ z^5I63?F-v0hdbu!q9wX$i4gU6t$KoSw+Z^CC9oy1b@_)uOHhOY0ogAff^;~|mmvG1 z-tbU$Dc_5Z9MGR1Flm`VGv^B8f_6149fbQ|D&waR{%DFtn@6vm#I1V9@_(VNzAYEl zc#0VZ+p0ukJG1b_EfZv{O5k?0$WDC1MBz7;aM>0~v3|Iy(IQ)Rpb_u57*~M&C-kh` zi0tOL`nU=N4H6gW@eZu}OA$*3`|4pl)eIH(2tLd#5@U#2OAM9?sWr(`KcpqsDOiy5 z@&(k|wu(Y!w&W6H1u)SJIoS>Dl3F%&1MUZ|w=V zR2$DfHVeORA`qp_4j|iYLoNO@3FpJ%y$w(E3kW)KV-)S%9aKCwCBHCl)~ssXlh+XY ztU^BKmNnK7gWTa?yz9`mcf6UxAOhlcLQZu!RICex-5Zbd4Q4FmGNUA+rc*XaR7Fy4 z^KJuS@@s3DbH!$v_mH42CzJP*M3}luT9|mEMD;5f5JQhs*D1f(!DEGUswBIQ~*x8-M!8F8hq z0cxId!q;zH=d&dds(F$gs@afI7pcux=<_s#b;XLk-`90!yjG&%NyW_s*F*NUREzI~ z1X}F&qLp8X-7dv*7`qrhjMlM}A;CL=H=4X|uZi*Lk~nqu%lXD{h>TOdsD!JKo|Gy$ zFT!=5!o@5UF4i7m_e4R}>Ue&;Ibs%zh*$&pPpd47n2JOZyWSizpV@285j)@PkU~j` z*!1S9^d4 zjXjRrh=k(P9cf}hCfUQDdrD<*2nhG{vPZc&o_ z9ktzxex@S?!kNl0jyfG>tB$f&pkOEW>L>ufJ>uWx|Mio|!r zl}^CTEh+&qM~764u<8&X0YTH zpJBtcQp0A$An&sbKE$dwf=r}Q)8E_=wUppTL$A;G^JJ@b_)EFXfQb4dMT=`u%y!*vwo@j-mYtmrjmm6ppGi-|Y&9BZfzSJt5utLa^6L5l@uu#arn_vAN zzCV$}HqnNqg#@fLl#SlSCxaM!5B2)969nCnwp+nT)KC~t-3N*9# zrpyQ1#D%@|zplu;SsDQA&c%_AYUo@+56GTq@Y^QbcYXoQ)6jEl7RrXbcY8hSbM;uXSgo0eT=*;5Y~=!ge;|PDG8&jXF=YiZV-R@ zIsUW08x{av8Xw_7c5w$X*!9#8v5VBd!*)!#9RyLYK$2>oW^ZctEq?Zuqo&*^hpqZi z)73G+t{qk>G!lnZ3KF2hic})y1y<2ePdBZm3X*^Lz&q&5O2!|xi#yOnyPkzOLwB8Q z@3bGxjL)=-yG}Nus;(&Z?!Feo_#)Cs;^k-rUsYG)Kg?--qMWYP(O5Zr{$n2Bj#ls; z)O~&GUDI$I*lxrT2)&5Thp9Iv@#Bh_FBCK1C}!}9%>1aE;W$I36BzQFN~b-rTbOct z9i&I)GoSV>%E#inQ@gmtZT_hY7T?4gdI0)Z^Y6NWcm%#T)(-;x*5YIxZC6j$o?MQG znp>Co7`rH??f)BL93O%TPWkZ=QA(NQcBSb)8X`)m@R#k}g}cO38gx5{&4P;CS$s~2 zsHB-_UFo^=LqzW7AedT8E8k%0k_tzqrdsc2-S=7Cq_=AS0+Lp_L^xvgWvANhZbG>HP{670kU+FewKT3ZEP?uzG7pSx}@R951Bp< zDR$}GgiN;=Ma*fSu_xQgqEO+4o$VT~eZ817MczSj^r1jrhp%KZy`#!9y=~ANk30e| zVKUuU#XjWSv@P9D98`r{az(nUq2Gz>_-eH{NS=}l?R-aCbhnX9F-9^qG+T31v$dKNE_j)z9FRPlkGG!r4>2DO8-;LJ`rFbo4QMgDiFM~c8Y>J+A-2C1llp2Hp41I*wF z?8Ks?k1M7Qbx@e2xt;+yjLI+|h_8Vp%|L=~ps^Dh#?x9ENbux#76v?>n+-G)s#15g zZ5x=V85r+xKyGDVyr-#)FwoQ4Y+!q!ZXkz-t#|N(W?+GCK)48W1DfMW06j4rKSe5z z4;f;>DR;oEqB+mx7gURneQrbHv>64}=qOhoS#@Jm^Jh8rdtgg9zNwMeqLUDA+^v(a zs&OI#BvDJBdMNlUInYOpwmA5GuxQf}UuhgZ_vdg?=b$-)1ds#11>eCD^akD*3BPyn zHc7M#R}=PsItdYt;BYNrH4-F%B+@N+B0=w9ZIOso%TXw|Nusw#qDQ!2)!g5T1PLGx zUSICu3A#G9MZ)j))Fz3CH4+c$Bt%L~ZbgCwelrQ9PhPerVQf*}&uJw7sFM)kSkj6F z2_T6~x~qs&sbykPA8gALzO7feP_!(L4H}7cItk&4w_1@P0e=#S{uSy=!q*eNBs@2J Hva$aMx0|=6 diff --git a/docs/build/doctrees/cpl_core.database.doctree b/docs/build/doctrees/cpl_core.database.doctree index a8966e311ffa6c676828951f71b0b8a2c69d9f2c..208ae505b64c0121ac393ecbb809825a035e8162 100644 GIT binary patch literal 49411 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 cx!0W*xq(eca5s9db-

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 diff --git a/docs/build/doctrees/cpl_discord.application.doctree b/docs/build/doctrees/cpl_discord.application.doctree new file mode 100644 index 0000000000000000000000000000000000000000..64d0f8cc1e41bc4466efa7fe985bc993ef409485 GIT binary patch literal 9865 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_discord.command.doctree b/docs/build/doctrees/cpl_discord.command.doctree new file mode 100644 index 0000000000000000000000000000000000000000..d0fe4f61bd874010b5e8fe425d807ab2d4da6ac3 GIT binary patch literal 12501 zcmds7+m9qw8K0S*>7M)S>}6cT?9!sLz2i*xVvNBNiLi(!8)g$R8sn0px~jTQ)l^qC zb=jRUVlVtoPzwewn)m43)o?Su$ zB(wB6b@eHgtLdic`KA>neAe`hxNUh+@|1d)an2!%D3DP*P=cd?vCZ z*UEk3Cyb7JSu^d>@B_1E`0cjtnF+1O^6Af5dqjs=HPN@~u|&|vW`;oFrH&3VqlB&U zIW0REJHkupad!B$YkO9*6E}1|uSZc}H{u9vpkp7g&5({*He5XnF^S(Zp5B(fX3e&K?{APpZhSYX+W z2wY(GmK|v!+p^3+Z$_Gl9ZUn0>YzWYOSz;ITWIGc8BEB4!f0P!72~{yA4Y4KK$K| zzbgJVz+AQ|m|By|*%nS*#)&8RjP04$UQV^7)(wTk%g~I#7Q(FZ>5gs(39q+(Gj^?y zRt7ORWs*9uI4`fs9b4mWV5OZX(dif;hi;_D;6J-b-3S9CuM_oDjP(H|*E;*#q)Iru z*Q)r5u-|UKpJuV^-G-^(qviFFqeWsz#GT=**=pT$C zdX|Wm6weak;lw^Sh}dI-Sfn|SNMr@BjU*r^n0F5~-_**KJIEm9ch7fsXUkUwLJ+O_ z9V^fyKgjQx+)!M>uOb(IJDdxA((gC9U*ov13Rfm1Ne)Zv70NVuBZW~8ib!7@h1Bau z`j-spiR_%6*fXNI&$CT#E5!I!#QN`1SUde#|CwUlQ-O4p>-yht;OuJy9T#!&uNmkg zaOINn3BK5|JQHD9+e7Y}lVcjl*SJ_*IGi&(IWaMUgj}wMdxO<9{kCp<37_ihBa_BN zwBJF{Pkp;s5k_^#GH`TC+>SLo(4P=Qz^{?zS!!5wMI2yr!`_2LrPzc7c0_XFi5ezg0 zgw@zVs8qhj`5OjGPEeN~IsKi!it^E* z!bsJ5g$^u2>%mfb9c#yulJh%)nhV~}8#K`$yoUx&MXZ@BA*+VJzo~5u9K5$2!T@VM^IfrTVY==1g3e5k8Dp~9Se#arohM_zvKRj9x62-G*s^oRI`BDlj94JAb=8{Rn}A}OU-mEIxb=c|VA2ysxA$54?;X2Dg) z)C50YWO$Vlugyw>vZT!l4Mh2?TP9Q$LN9~xW>*89OPLMJ_{he(JbbQaS5KrEe0d;L zy%8esR@9{sru|jvEJDwF!Y?np3ly)T-0GjYwvWCo-ZCi&x`D(f%KqaH<+HEXY>fW8D&I* z!fLL>FfH#pl-hSMvbo7ME(gUUJU;RWZ19brW7DXNQSlvh5a*g$o1=3^I0nh!E}{8Z zRQTnZBB?*R5mKMO8B*sm=haJY@0T^6n<keLvI>kUs?Cx|v0a|6j!bxy9aGu0J z1*>+R!VEt*wj)f^DuweM0{10ipe#|Oj)|%i&Zkli#SQ0sSf>1f48G2@xhcMr)(`Tx z&Gbe~>C_==5@LC(GzZot=8qH;>tbEv)G%rU_~KRfBteoTi84wOA_pw$%e#7T6$A6( zuDizpYn1ciswmNa-F*+X9{##p!Y*;$6|$B$-i4fiau;0ZlO%Sezt8~UFGAFi%EM^x zZ{@k4M&sI`DpXhEMUiX+xe^Jg4+BJU7p-`cDiC*yqZWmlx9kxjxgT5K9FbHG;?qbu zbsdJfeCKY|X)Piz-EzvlQJUB-M`Z4Ro#|#TMU*3o63!yD%4q?kvqZlb{aVg`t>9O_ z03oj|XHsg5WeDfPSS);9U*#cXpQ=oRTWz|_b!!oaaF8Rb5x9?cPc90Fy`O4xejTUiyTJfvKbKEYjPZWCt(VqT5ab>|G4!(_tLA7%fG< zp;5mXeFeH1>SMy=+OekZN9e(@avv{F@+IoW^WwI)*YtySf|+IN{ppCT9a}?yyhYAf zu0@T1p?1}d&~uh{y#ZsoA)8nXtd1WN6oD}x5P8Tdhw%X z1%V%E3{8Wsg$Aw?k%|`vzT(GG5z35!lJL_#UwS||&ycHGmTJ66;l2Tb#2En%YA`TP61msIOv?g7qHEmaP z+3_{{1tjQ=p*|r4|tmCg1=pXhq3CUvb$DLv#qEpaKP;AENZ(zHW%p)SdkgA?@lsFg zjTCrgyRb-TWlt+IT4=N2p2#yqLgD-ehbdlhGCqg}W3l3gZw)JMw%RSaW0BvhX9nEx z=!z+>p)p^|djp}4OL*B7u9G~FoFS*L)=9n3&&YM?Nr(4nH+(m9Fk2PZY5WG>KNW4%9L3w~eiwY_TR1l&(ARa(S@Brln5Dy5x|D3t*Ep`$r z;YfC7&Yb`J_scow_v4k%-gn!C_{Wz5kD1P9OVxG9)r}zLGrFrqJ;Mp(XW|o2#E-=d zUh~xpfgAan5%USm(3olKzTw1=#C(yaho&9068P!B&_dI7GH_O5RW|)d++a0c3C++p z3ZM8}HP3!n(ak_}eZ8f*PRHy!Fos=V7Joh7T)&5r(GI4Pv35!vb=IR#M0bf}F@9b7fr)+GTc13UHm>Kx$%j=!PAG zt=xp4TkzAs&)Xn(c2dZ@C8x6{#4rspOz?{7=*DKj4yB2XT!~M^Xna%XxxuGA)%0Wj z&Yr7Bw(;)zXxS%{BldId`5h9lxkETsT@PcGn0gP4C}E2K@CuD6@U^1xtdv}EWf%i3 zZ)=rI4+3$zb+@xa{#*A*XTRGG&t;}`!`dVib60APJ5onA03C=b{C$Hf*BioB>!!0q zDo@1xuAS*;C||==Ce0RBIE8?#4H#hqUl!?$5|{`YVdR$r=D|TG8z+P>65x^mR2|0+ zWeiP&I0ECXAG!0!5MgGueq0FU`011NJ5xkT;HjFiTF<7`kDopbHxhySFs}%RICESm zXqh=hH!M;u7b|eaC+lgrz*BjZ&EhI$XXcX^Vzu9+&lBdTZH#u-+GfvQ75pGsdA<=C z{&_=00~@eR;@d5bg9r%G&r7`{i&K^UtPv?4LpAu0YJl6!z{R|%%^pBLMVV}xme`OrmGeowe zd4^DrCimF^atqd~sFbHrOklZ~&(fl9+d|P4mssajnI&T0+F2YzNg|zp zdyeGTVMj@RYm*>QBVG%}gTNma%f7rysPP)gCbjFU9xK|`hwfHU1g+Lrkq`vR)ki-@ zw4#(V`fRO~RTOY$*oxZLT4#y{-~BXv*WG6x&BD%ff*}tXJR1TFKQ5|^yudRY9mzo1 zMCDba^nw2ki6~B|Z8J1{)h=LTze*~jLqoaCc@aVMH$@)G;SZIDV1)1SwkVQqHKk%p zc0y|XHDvM2ag`9SLLkW5F~4r4F~z9!X;M!$otXWBPvb4z@{m^(d*X8#F*ZHh)XXrx zC?;G`eFu*u~IWktw>BQ4`I zs7pam0WYc{s{EDy!e%DLk(M+0Kv|QwW!f0FLFSXrKuv9(B9LXPiT^}Ja8R&IRCtl2 zh0(xXVsbU50#9Z1_gn(KH;Df368a07`HtQ-Sm(xKVILp1ZAkdDZUtmiaTrV=kOO6ceh<;aN^)FP0Lc#3K@H;2E0PF}1N-l`_I>P?!o@`t!bZ z8iW1pmo;3dM*EIT60f%2PE0Oa$A_#xq&~N9mecb%VBJI`6x?!L);z{!@ylLd-zi6v z@9wzFWiPVl*!TJJxBw|?1r)srIaK#rOGKG0eP1doyup5y4)E(yyPY@uFsSEefc4N7 zaW*ymv2!w`vA!UM^Z5iXJ37oQi&9PUy|qXXqFA@$oah>#Yum22p?oxQ!{S~qvD%!6 zx15dL3-iQR8N&e zSVfy3b|i^Xt_bqAOK<=z)>jGja%KhD0ww<%hU*6fgU{Sx0IDHHU6qAg|2{O?5?Fr{ zBEw!)>bq}md zTuCI#X-KvXbtNOTskwhF(uv|W2v#uVwr&gB&qRE0TdJR3_9V1t0 z4r%>ch@Z|FuVR@sCQ4DHM~$`1oK)0`|A8on*NP)=A4nRMbyHBJzRc@#CCMY;*cW5A7y6#g@K<+3a!qvFms=~js&V#}yp?mn3z;Bx zo>_AtTHmH+t~|58I+mKTne`QbZa1^OJ{HZ0%$gwBR%ZREpZwbB!$oT3IhE6&fFy1cS! zmhM}#QM4g7)59I?@{_Z_9iP0Z#RjWc++HOOZE1s5PM5fD%+QyJ!YOcyf6Sfa0II!m zqbg9LrL8Y77UN3V(Z`ykpGm%`MLzZZDOsoAd^#dK{&;?%&i7MqplEBv4GP_h>oKoB zq}mZ$z_N4yrFCBG8V;_1L)VY-qO0f>4Aq{8mpO?>!P*;molRaN-^SZQ=xPde2+~(H zT~?^Q40pT-I<6a{cgHAvT$|(z)Klq1J!P}w`n?z03C<@X^6<*PecGLyB zMY{Q=t9Gnws6C9-LLVJO#8mtgUo;&r3KhfAT)L3Q-EtImn(u0go`>b~N5$}c*H@V8 z=(d5rx+;;1V|TvfMqzoCidZG)NBX|>En$5aF2on*x;YIg^m6$_A28oXJOmIFS};8u zJjHy$R-JC7b`3~e$NL^Mzw&E*gPK;+kV$O^Ktuh3>%1z>oFroEO1inP@kh*5Uk1P!AyYePI=!0t4XFQ9n%JLXm>qKPe6j6D(caN zhG{h&DxX7_aP|rl-A`Tx%W=9eMBD74XW;&Q$N8dXcnUQVz!x`D=Qcd&})dhWvAu(-IbUhqM3pK%v3_72le0x91RDC*Sz^1w?m$ben;zDo<{QJ zZ%LPjv#MmW8;0L9jj$td!0lI9*t3DG7OHJ{ksh*mZH6C#P4<+`Ju?Q9R=10MU$Etb z>ZZcXF0=6i`<=2~GX43Wr^3<1aeV+mT_fJ*tAdk!H4*I*jp2S#gW{#XLCQjefZm8a z+y_ywwP>JD;=n~%kE@wZ2R4ufh65BTf(V_%Xtd7fnLRRI+f}7EQjhaS44dh-4IM7L z1rnHn7LAMi5W0}n4aGnk2wHS>^m&U;=coAoq_G>uYIkHWtk%h1sF#Hru`zv` z2IX_Zx}EaoDf)Giex1Oth}UQa9Z-u7ZZT(Fd|!{)G4u@!05&gXqo?*PT6(HUyGj=4 zlLq#@G&!5)t~3*(qc}hVO#BpbjrAp9#(Bu||8M&$Y7?i5nj=s;nuDpG8>K+=zm1%;z-MwqdQXOQh!MGs*ZfFt{h<2N7a$ zp^sn%(+uELgb+rv7;FUyNa<)^BxHa6kl)K)_dy528W;?{o;X!q_-odEIc7$A_xf`( zwZhT;=z55XpjU7%^;2?-HYi?5I@c6&n^+*2U-SO7&tbNi{!8yXhkh&5^gDrJG$rXB z^KXfENlH16<%SCUF)iciV5wCcHgAG-I!d#PZMf1Dz2)sny8SeqhGd{v@IZ%?yp rD161AcO1xaYN|G2J#*Qxh+cE1quG&8(X&e#a8{?ZpJYgRIN16xCJGB1 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_discord.container.doctree b/docs/build/doctrees/cpl_discord.container.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a3f5ee12869218003c02a58452875d6f0e796b92 GIT binary patch literal 161304 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ℑN5|_KSnk8 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_discord.doctree b/docs/build/doctrees/cpl_discord.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a373b278156008c64d159d65d69deeaa714ff455 GIT binary patch literal 2967 zcmZuz&2Jk;6i<`bu@lFM6T*ku02L}tMPnnx0dYc5Aw<9jiZ~!uquJfDXO!8UWo9;U z4wc~0su6SR@c;6g-Sv7Mh-78wea-v$y*KaA&OdH%qx^FRCg&nsjA@c&Dq+UEUZUb6 zWtsJF{gc1^OMmA2nqC`K=$Lu80g0FknP`^z7v2qnxE0cjYyBO=Vk=bEsPhi*@|_p{ zjQ3r~3M*NQ-os_N#i`< za^2eJsoRz!V}4ph)a_DhwTKFfSVL@EA~7M3omf(1K*V<^qiOZkONxATh-iEXH-k*! zb}XF-mgfijJ|FN0e2bsD-zQw9Y+|lhHkrczSgIl+&%^O~%rz5{MZA167nT@)&Js;$ zmL$;NB+lgo{+mhV_XKB>RM{D8g8)Cg*eoJsrWdO;S4Ebz5?SS#Z@@1VTg}=@u6Z9J zUj7id{RF>9_&vt&34Zt8Uh6L80_oJE%)r^yz1QN6X`V|F)3U&?{nQ<|nQ$wm@G3Aq zSZ8E2F)#E=@8k~KQdCHnnn!IGL*}gcFP$@)*YayF7^bfTF!b6pHxOAYi-gUDtYYEc z@NfAu{yqPJ|Hyx0u9wn9!g9;~#Wnyy^D->JWiD0ZZ(Wy*BmvBC-F|JVA@s5$jeyt0 zUu?MD64gd!@&>ZI=$2Ii3;r4Zf}irIsNOb!G64vAyAtl8F4+0CMs^VtZ5Jo#pRWKG z>;T8CG2uovM9xI z(FRLO)o`w7n6)CCW3G&vK{3-RvkW+K-QTDzP@CnX;RjRKpEDqVTBU)aenQcxmZmul zd(|}rwl8tqt&fG4IPD{gBs6H?;<`>K!HsuEGo@^%ENd|@?z#OirBFk%m?@olP=*GW z&q=^=3Aw4eUs0H3C52oIizcnd1a7Pq8p1%cTxm-rKr8*lrrYIIHph+|u|?>5OKoA6 zLLJvhSX9gr!SI^u47q}YW;6w*Z#9is2+F^4Ly_f$C76&Zfs}Xs!p_dWIyVB}57wE4 zX{|KjXhsP@p>T*Tw%#46!meBClvcbuy~DX=upLOMi3a-du+Jny<8EvzCd zlG_wO)P7Q=IcZRbtd;};!0C+2VDO-%AhnqZwO^5P!-_a)!YMQYB91LN$%b7g-bBE!tg8N1Zf$P9o=iYCsAusV^MSH5|LM{^I+X^zUNSuv%+AU?(DM^+ zQ;Ey^mPTlyBuv|$I|U$9()4B%05N$$$gMjxH<_gi!o{3R`~cojdkS;>hsfLAJ7wPM&WEQ~DhuBE>*DUszx0XsrYxXf~wGG4lMmhX(bpE^G$L8hNiFmnGY) W_Xj{`9;&sQgjrXQh4B6s(fD7Xx1Nsx literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_discord.events.doctree b/docs/build/doctrees/cpl_discord.events.doctree new file mode 100644 index 0000000000000000000000000000000000000000..00bf809b93e88d36e385b81af1f5f4226e29f5e6 GIT binary patch literal 308142 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

    ?%TuGKVQbiJHr#WRm5+h;&n%$XMNy+1ei~)qbK> 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_discord.helper.doctree b/docs/build/doctrees/cpl_discord.helper.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e661717e72b5189b3d434d2b4920dc1b258ce375 GIT binary patch literal 11418 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 SyVOj(Xi|_!{i#ZKJO2a2LTAAM literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_discord.service.doctree b/docs/build/doctrees/cpl_discord.service.doctree new file mode 100644 index 0000000000000000000000000000000000000000..8e13fbf26d7a8f52e16e67723ec4929a4781b0a2 GIT binary patch literal 342247 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 QmQ&L>EyHFoXy57ke*-J-S^xk5 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_query.base.doctree b/docs/build/doctrees/cpl_query.base.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3d440b8e8a88eb4f170b615dd1b45d34edd78476 GIT binary patch literal 208470 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_query.doctree b/docs/build/doctrees/cpl_query.doctree index a505b70115838edc2ba6fa36574483a651490302..3f98dae19defa8aa2106cd9149e5c16204f99101 100644 GIT binary patch delta 284 zcmX>u`CF2ufpzMKi7XQsizZH0U@Y3Wt&p*vFS#HmzOXd4s8TN}u{d=~+Z4YZ5rkN3 zUTJP>QDRaKL`E1%rlKS@uQ)S553EH9A(2@E*O1!7lbM&CQ<{>RmYI`UJSBFDMutO% zQ-({1TWSwSZem3WS872?#uTsrKrp$MX*H8K*Je%T0w%`R&9hiPFw4Ye#1!{%<|XE) zmQ)r14XB-x5${)=p$Md7HZS9x!pQh;vNg9B>zfSejF*$MxYZboCQsy629u(bPjT}x o{+ryuEIaudw-nDGkeUqH44u-X)X5(iB`2Hm7&AVfoXHah0Ov$-Pyhe` delta 209 zcmew@d0djEfpzMhi7XQsgC zaSvx+Vs2_lWkG83l-em7(SF4liahq{PV|86_uc@<{Xi04d3k&Cn@LN(BpM@)$Edo;;T)4gdpwPyPS^ diff --git a/docs/build/doctrees/cpl_query.enumerable.doctree b/docs/build/doctrees/cpl_query.enumerable.doctree new file mode 100644 index 0000000000000000000000000000000000000000..db8a26cb658f0aca56a6f09fbeff73f0aa1605c0 GIT binary patch literal 21864 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_query.exceptions.doctree b/docs/build/doctrees/cpl_query.exceptions.doctree deleted file mode 100644 index cc1ecc2ce04c3a03b87babb525649556e9ac6280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23263 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 diff --git a/docs/build/doctrees/cpl_query.extension.doctree b/docs/build/doctrees/cpl_query.extension.doctree index 64add856d99659f03621a02c9347b0361d5e6d47..6e010bdc8033a963f1d6c811077466fc0c026f22 100644 GIT binary patch literal 15861 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 PfZ{0`dJvDZe((PPAB925 literal 303500 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 W^O&5`Tdrhlh4Mh78z|R%=Keo3AO6t* diff --git a/docs/build/doctrees/cpl_query.iterable.doctree b/docs/build/doctrees/cpl_query.iterable.doctree new file mode 100644 index 0000000000000000000000000000000000000000..38b30928e5c908af0366cb8cbf775257e88fce5d GIT binary patch literal 32376 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 C9fP9) literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_translation.doctree b/docs/build/doctrees/cpl_translation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c70dfd3f21c0a91043d68d5acb5ddef94e0347ca GIT binary patch literal 45878 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�jO%3y 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�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%0Dk6whprL2NymtpVSm8HAi4ys; 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�R~adYnjVTc^F5Sl72TLK9%GW%|s_#pc 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 diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 0286932c2f9e58c20ef2322994486302651a7a45..60583e3cc601446aab58d974793a7da5f7627263 100644 GIT binary patch delta 206 zcmaESlX3DbM%D(_sT{c*Sq~-}a3>e!#HVByC+8QXOlh0q*TV@CC@f7asswZSLEMs} z#Ju91#FEVXyvY|5P1v)Za4;}rJ=@HfG>e&0ck`UoFU+CroIoKK5V05}xd24`2N8dO zL}?FaUSe))No7H5@s!#r8d)IKeqfb;U{!vl8ImAzkO3JwVBHz9S${S^%~WP$n!-8x ZpuQf9Sk^=!LsxEcRE_~-|K#qR2msBgMezUt delta 160 zcmbPyi}CSIM%D(_sW);qvK~z2;!G~ci7zZoEvlUSEzxANNz!y?M$OGu0-$AGbW^6s1n0PLF3#kFocO}h)S}AC*-Ubqdzplo8Cy3mVEw=>6Q2=N+{2ld dn44NsS&&*hrFKe2ykBvKB9M;RyoNKB5dg{S8t(uA diff --git a/docs/build/doctrees/setup.doctree b/docs/build/doctrees/setup.doctree index ae9229c28dabf9dd824557342e8dd68ef11134ee..68420c76ff639b5284e94de6aeb0b8ff0e1046a0 100644 GIT binary patch delta 145 zcmZo!$oOdiBTED8)bx!kxzfB21(^j3nR&$}i8(n6lN+UNFhooz*DLdF7La+y%xjOL nI8ebvB!fM6N`_buip1tXh1pEJjwovXDA{6&m~F0CX4M4%YU(oT delta 164 zcmeygfU#vEBTED8)XI%4xzYm81(^j3nR&$}i8(n6#ToIF>!fY437SsMRp#5wCG(6~ kzzJQ;UwLb6f+k=s?Fx}h0xsxU-YVH*6ExeLtIVnk01x6jcK`qY diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index c200e742..f883c950 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 9ea51a00cf3559575c97b7efd7a002e5 +config: 7051b788adc6d655ae340e56640c6925 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_sources/cli.generate.md.txt b/docs/build/html/_sources/cli.generate.md.txt index 40d79fdf..95a1cb51 100644 --- a/docs/build/html/_sources/cli.generate.md.txt +++ b/docs/build/html/_sources/cli.generate.md.txt @@ -18,10 +18,11 @@ Generates files based on a schematic. ## Arguments -| Argument | Description | Value type | -| ----------------- |:---------------------------------:|:-------------:| -| `````` | The schematic to generate. | ```str``` | -| `````` | The name of the generated file. | ```str``` | +| Argument | Description | Value type | +|-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------:| +| `````` | The schematic to generate. | ```str``` | +| `````` | The name of the generated file. | ```str``` | +| ```--base``` | First element of path will be used as base-path not 'src'. For example: 'cpl g c test/Test' will be created at ```src/test/``` with --base it would be ```test/``` | ```str``` | ## Schematics diff --git a/docs/build/html/_sources/cli.new.md.txt b/docs/build/html/_sources/cli.new.md.txt index 2ddcb9e7..f000dcd6 100644 --- a/docs/build/html/_sources/cli.new.md.txt +++ b/docs/build/html/_sources/cli.new.md.txt @@ -18,10 +18,11 @@ Generates a workspace and initial project or add a project to workspace. If the command is running in a CPL workspace, it will add the new project to the workspace. -| Argument | Description | Value type | -|--------------|:----------------------------------------------------:|:----------:| -| `````` | The type of the project, see [types](#project-types) | ```str``` | -| `````` | The name of the project | ```str``` | +| Argument | Description | Value type | +|--------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------:| +| `````` | The type of the project, see [types](#project-types) | ```str``` | +| `````` | The name of the project | ```str``` | +| ```--base``` | First element of path will be used as base-path not 'src'. For example: 'cpl g c test/Test' will be created at ```src/test/``` with --base it would be ```test/``` | ```str``` | ## Project types diff --git a/docs/build/html/_sources/cli.run.md.txt b/docs/build/html/_sources/cli.run.md.txt new file mode 100644 index 00000000..5782a7a4 --- /dev/null +++ b/docs/build/html/_sources/cli.run.md.txt @@ -0,0 +1,12 @@ +# cpl run + +Starts your application once. + +cpl **run**
    +cpl **r**
    +cpl **R** + +| Argument | Description | Value type | +|-----------------|:----------------------------------------------------------------------------------------------------:|:----------:| +| `````` | Optional parameter to specify which project to start, if not set default project will be started. | ```str``` | +| ```--dev``` | To run the project from source and not from dist after build. | ```str``` | \ No newline at end of file diff --git a/docs/build/html/_sources/cli.start.md.txt b/docs/build/html/_sources/cli.start.md.txt index 2b067bfb..961feef1 100644 --- a/docs/build/html/_sources/cli.start.md.txt +++ b/docs/build/html/_sources/cli.start.md.txt @@ -5,3 +5,7 @@ Starts your application, restarting on file changes. cpl **start**
    cpl **s**
    cpl **S** + +| Argument | Description | Value type | +|-----------------|:----------------------------------------------------------------------------------------------------:|:----------:| +| ```--dev``` | To run the project from source and not from dist after build. | ```str``` | \ No newline at end of file diff --git a/docs/build/html/_sources/contributing.md.txt b/docs/build/html/_sources/contributing.md.txt index 85456726..249c41d6 100644 --- a/docs/build/html/_sources/contributing.md.txt +++ b/docs/build/html/_sources/contributing.md.txt @@ -44,7 +44,7 @@ Before you submit your Pull Request (PR) consider the following guidelines: 2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work. -3. Fork the sh-edraft.de/sh_cpl repo. +3. Fork the sh-edraft.de/cpl repo. 4. In your forked repository, make your changes in a new git branch: @@ -70,7 +70,7 @@ Before you submit your Pull Request (PR) consider the following guidelines: git push origin my-fix-branch ``` -8. In Gitea, send a pull request to sh_cpl:master +8. In Gitea, send a pull request to cpl:master ### Reviewing a Pull Request @@ -104,7 +104,7 @@ To ensure consistency throughout the source code, keep these rules in mind as yo ## License By contributing, you agree that your contributions will be licensed under its MIT License. -See [LICENSE](https://git.sh-edraft.de/sh-edraft.de/sh_cpl/src/branch/master/LICENSE) +See [LICENSE](https://git.sh-edraft.de/sh-edraft.de/cpl/src/branch/master/LICENSE) [gitea-repo]: https://git.sh-edraft.de/sh-edraft.de/sh_cpl/ diff --git a/docs/build/html/_sources/cpl_cli.rst.txt b/docs/build/html/_sources/cpl_cli.rst.txt index 338ba5c2..cec12291 100644 --- a/docs/build/html/_sources/cpl_cli.rst.txt +++ b/docs/build/html/_sources/cpl_cli.rst.txt @@ -1,4 +1,4 @@ -CLI Reference +CLI reference ============= .. toctree:: diff --git a/docs/build/html/_sources/cpl_core.database.rst.txt b/docs/build/html/_sources/cpl_core.database.rst.txt index fb55c962..cdcb0ce8 100644 --- a/docs/build/html/_sources/cpl_core.database.rst.txt +++ b/docs/build/html/_sources/cpl_core.database.rst.txt @@ -7,8 +7,7 @@ cpl_core.database cpl_core.database.connection cpl_core.database.context -Submodules ----------- + cpl_core.database.database\_model ----------------------------------- diff --git a/docs/build/html/_sources/cpl_core.pipes.rst.txt b/docs/build/html/_sources/cpl_core.pipes.rst.txt index 8af5814b..0a8bba4d 100644 --- a/docs/build/html/_sources/cpl_core.pipes.rst.txt +++ b/docs/build/html/_sources/cpl_core.pipes.rst.txt @@ -1,10 +1,9 @@ cpl\_core.pipes ======================= -Submodules ----------- -cpl\_core.pipes.bool\_pipe module + +cpl\_core.pipes.bool\_pipe --------------------------------- .. automodule:: cpl_core.pipes.bool_pipe @@ -12,7 +11,7 @@ cpl\_core.pipes.bool\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.first\_char\_to\_lower\_pipe module +cpl\_core.pipes.first\_char\_to\_lower\_pipe --------------------------------------------------- .. automodule:: cpl_core.pipes.first_char_to_lower_pipe @@ -20,7 +19,7 @@ cpl\_core.pipes.first\_char\_to\_lower\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.first\_to\_upper\_pipe module +cpl\_core.pipes.first\_to\_upper\_pipe --------------------------------------------- .. automodule:: cpl_core.pipes.first_to_upper_pipe @@ -28,7 +27,7 @@ cpl\_core.pipes.first\_to\_upper\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.ip\_address\_pipe module +cpl\_core.pipes.ip\_address\_pipe ---------------------------------------- .. automodule:: cpl_core.pipes.ip_address_pipe @@ -36,7 +35,7 @@ cpl\_core.pipes.ip\_address\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.pipe\_abc module +cpl\_core.pipes.pipe\_abc -------------------------------- .. automodule:: cpl_core.pipes.pipe_abc @@ -44,7 +43,7 @@ cpl\_core.pipes.pipe\_abc module :undoc-members: :show-inheritance: -cpl\_core.pipes.to\_camel\_case\_pipe module +cpl\_core.pipes.to\_camel\_case\_pipe -------------------------------------------- .. automodule:: cpl_core.pipes.to_camel_case_pipe @@ -52,7 +51,7 @@ cpl\_core.pipes.to\_camel\_case\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.to\_snake\_case\_pipe module +cpl\_core.pipes.to\_snake\_case\_pipe -------------------------------------------- .. automodule:: cpl_core.pipes.to_snake_case_pipe @@ -60,18 +59,10 @@ cpl\_core.pipes.to\_snake\_case\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.version\_pipe module +cpl\_core.pipes.version\_pipe ------------------------------------ .. automodule:: cpl_core.pipes.version_pipe :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: cpl_core.pipes - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.rst.txt b/docs/build/html/_sources/cpl_core.rst.txt index a71547b3..e1e9b11a 100644 --- a/docs/build/html/_sources/cpl_core.rst.txt +++ b/docs/build/html/_sources/cpl_core.rst.txt @@ -1,4 +1,4 @@ -API Reference +API reference =========== .. toctree:: diff --git a/docs/build/html/_sources/cpl_discord.application.rst.txt b/docs/build/html/_sources/cpl_discord.application.rst.txt new file mode 100644 index 00000000..ef077d22 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.application.rst.txt @@ -0,0 +1,12 @@ +cpl\_discord.application +================================ + + + +cpl\_discord.application.discord\_bot\_application\_abc +-------------------------------------------------------------- + +.. automodule:: cpl_discord.application.discord_bot_application_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.command.rst.txt b/docs/build/html/_sources/cpl_discord.command.rst.txt new file mode 100644 index 00000000..5f495733 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.command.rst.txt @@ -0,0 +1,20 @@ +cpl\_discord.command +============================ + + + +cpl\_discord.command.discord\_command\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.command.discord_command_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.command.discord\_commands\_meta +--------------------------------------------------- + +.. automodule:: cpl_discord.command.discord_commands_meta + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.configuration.rst.txt b/docs/build/html/_sources/cpl_discord.configuration.rst.txt new file mode 100644 index 00000000..eb855d14 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.configuration.rst.txt @@ -0,0 +1,12 @@ +cpl\_discord.configuration +================================== + + + +cpl\_discord.configuration.discord\_bot\_settings +-------------------------------------------------------- + +.. automodule:: cpl_discord.configuration.discord_bot_settings + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.container.rst.txt b/docs/build/html/_sources/cpl_discord.container.rst.txt new file mode 100644 index 00000000..a47f50b1 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.container.rst.txt @@ -0,0 +1,68 @@ +cpl\_discord.container +============================== + + + +cpl\_discord.container.category\_channel +----------------------------------------------- + +.. automodule:: cpl_discord.container.category_channel + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.container +--------------------------------------- + +.. automodule:: cpl_discord.container.container + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.guild +----------------------------------- + +.. automodule:: cpl_discord.container.guild + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.member +------------------------------------ + +.. automodule:: cpl_discord.container.member + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.role +---------------------------------- + +.. automodule:: cpl_discord.container.role + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.text\_channel +------------------------------------------- + +.. automodule:: cpl_discord.container.text_channel + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.thread +------------------------------------ + +.. automodule:: cpl_discord.container.thread + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.voice\_channel +-------------------------------------------- + +.. automodule:: cpl_discord.container.voice_channel + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.events.rst.txt b/docs/build/html/_sources/cpl_discord.events.rst.txt new file mode 100644 index 00000000..d26aa744 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.events.rst.txt @@ -0,0 +1,412 @@ +cpl\_discord.events +=========================== + + + +cpl\_discord.events.on\_bulk\_message\_delete\_abc +--------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_bulk_message_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_command\_abc +------------------------------------------- + +.. automodule:: cpl_discord.events.on_command_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_command\_completion\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_command_completion_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_command\_error\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_command_error_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_connect\_abc +------------------------------------------- + +.. automodule:: cpl_discord.events.on_connect_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_disconnect\_abc +---------------------------------------------- + +.. automodule:: cpl_discord.events.on_disconnect_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_error\_abc +----------------------------------------- + +.. automodule:: cpl_discord.events.on_error_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_group\_join\_abc +----------------------------------------------- + +.. automodule:: cpl_discord.events.on_group_join_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_group\_remove\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_group_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_available\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_available_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_create\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_delete\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_pins\_update\_abc +---------------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_pins_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_update\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_emojis\_update\_abc +--------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_emojis_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_integrations\_update\_abc +--------------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_integrations_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_join\_abc +----------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_join_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_remove\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_role\_create\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_role_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_role\_delete\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_role_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_role\_update\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_role_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_unavailable\_abc +------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_guild_unavailable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_update\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_invite\_create\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_invite_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_invite\_delete\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_invite_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_ban\_abc +----------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_ban_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_join\_abc +------------------------------------------------ + +.. automodule:: cpl_discord.events.on_member_join_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_remove\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_unban\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_unban_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_update\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_message\_abc +------------------------------------------- + +.. automodule:: cpl_discord.events.on_message_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_message\_delete\_abc +--------------------------------------------------- + +.. automodule:: cpl_discord.events.on_message_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_message\_edit\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_message_edit_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_create\_abc +------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_delete\_abc +------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_pins\_update\_abc +------------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_pins_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_update\_abc +------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_add\_abc +------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_raw_reaction_add_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_clear\_abc +-------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_raw_reaction_clear_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_clear\_emoji\_abc +--------------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_raw_reaction_clear_emoji_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_remove\_abc +--------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_raw_reaction_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_add\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_add_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_clear\_abc +--------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_clear_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_clear\_emoji\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_clear_emoji_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_remove\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_ready\_abc +----------------------------------------- + +.. automodule:: cpl_discord.events.on_ready_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_resume\_abc +------------------------------------------ + +.. automodule:: cpl_discord.events.on_resume_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_typing\_abc +------------------------------------------ + +.. automodule:: cpl_discord.events.on_typing_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_user\_update\_abc +------------------------------------------------ + +.. automodule:: cpl_discord.events.on_user_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_voice\_state\_update\_abc +-------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_voice_state_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_webhooks\_update\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.events.on_webhooks_update_abc + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/build/html/_sources/cpl_discord.helper.rst.txt b/docs/build/html/_sources/cpl_discord.helper.rst.txt new file mode 100644 index 00000000..396b4c89 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.helper.rst.txt @@ -0,0 +1,12 @@ +cpl\_discord.helper +=========================== + + + +cpl\_discord.helper.to\_containers\_converter +---------------------------------------------------- + +.. automodule:: cpl_discord.helper.to_containers_converter + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.rst.txt b/docs/build/html/_sources/cpl_discord.rst.txt new file mode 100644 index 00000000..5d10fb20 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.rst.txt @@ -0,0 +1,13 @@ +Discord reference +==================== + +.. toctree:: + :maxdepth: 4 + + cpl_discord.application + cpl_discord.command + cpl_discord.configuration + cpl_discord.container + cpl_discord.events + cpl_discord.helper + cpl_discord.service diff --git a/docs/build/html/_sources/cpl_discord.service.rst.txt b/docs/build/html/_sources/cpl_discord.service.rst.txt new file mode 100644 index 00000000..a6898292 --- /dev/null +++ b/docs/build/html/_sources/cpl_discord.service.rst.txt @@ -0,0 +1,60 @@ +cpl\_discord.service +============================ + + + +cpl\_discord.service.command\_error\_handler\_service +------------------------------------------------------------ + +.. automodule:: cpl_discord.service.command_error_handler_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_bot\_service +------------------------------------------------- + +.. automodule:: cpl_discord.service.discord_bot_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_bot\_service\_abc +------------------------------------------------------ + +.. automodule:: cpl_discord.service.discord_bot_service_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_collection +----------------------------------------------- + +.. automodule:: cpl_discord.service.discord_collection + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_collection\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.service.discord_collection_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_service +-------------------------------------------- + +.. automodule:: cpl_discord.service.discord_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_service\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.service.discord_service_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.base.rst.txt b/docs/build/html/_sources/cpl_query.base.rst.txt new file mode 100644 index 00000000..156985e5 --- /dev/null +++ b/docs/build/html/_sources/cpl_query.base.rst.txt @@ -0,0 +1,52 @@ +cpl\_query.base +======================= + + + +cpl\_query.base.default\_lambda +-------------------------------------- + +.. automodule:: cpl_query.base.default_lambda + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.ordered\_queryable +----------------------------------------- + +.. automodule:: cpl_query.base.ordered_queryable + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.ordered\_queryable\_abc +---------------------------------------------- + +.. automodule:: cpl_query.base.ordered_queryable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.queryable\_abc +------------------------------------- + +.. automodule:: cpl_query.base.queryable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.sequence\_abc +------------------------------------ + +.. automodule:: cpl_query.base.sequence_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.sequence\_values +--------------------------------------- + +.. automodule:: cpl_query.base.sequence_values + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.enumerable.rst.txt b/docs/build/html/_sources/cpl_query.enumerable.rst.txt new file mode 100644 index 00000000..37e58add --- /dev/null +++ b/docs/build/html/_sources/cpl_query.enumerable.rst.txt @@ -0,0 +1,20 @@ +cpl\_query.enumerable +============================= + + + +cpl\_query.enumerable.enumerable +--------------------------------------- + +.. automodule:: cpl_query.enumerable.enumerable + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.enumerable.enumerable\_abc +-------------------------------------------- + +.. automodule:: cpl_query.enumerable.enumerable_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.exceptions.rst.txt b/docs/build/html/_sources/cpl_query.exceptions.rst.txt deleted file mode 100644 index d492c637..00000000 --- a/docs/build/html/_sources/cpl_query.exceptions.rst.txt +++ /dev/null @@ -1,10 +0,0 @@ -cpl_query.exceptions -================================= - -cpl_query.exceptions ----------------------------------------------------- - -.. automodule:: cpl_query.exceptions - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.extension.rst.txt b/docs/build/html/_sources/cpl_query.extension.rst.txt index 9dfaa401..a0bba3e0 100644 --- a/docs/build/html/_sources/cpl_query.extension.rst.txt +++ b/docs/build/html/_sources/cpl_query.extension.rst.txt @@ -1,42 +1,12 @@ -cpl_query.extension -================================= +cpl\_query.extension +============================ -cpl_query.extension.iterable_abc ----------------------------------------------------- -.. automodule:: cpl_query.extension.iterable_abc - :members: - :undoc-members: - :show-inheritance: -cpl_query.extension.iterable ----------------------------------------------------- - -.. automodule:: cpl_query.extension.iterable - :members: - :undoc-members: - :show-inheritance: - -cpl_query.extension.list ----------------------------------------------------- +cpl\_query.extension.list +-------------------------------- .. automodule:: cpl_query.extension.list :members: :undoc-members: :show-inheritance: - -cpl_query.extension.ordered_iterable_abc ----------------------------------------------------- - -.. automodule:: cpl_query.extension.ordered_iterable_abc - :members: - :undoc-members: - :show-inheritance: - -cpl_query.extension.ordered_iterable ----------------------------------------------------- - -.. automodule:: cpl_query.extension.ordered_iterable - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/build/html/_sources/cpl_query.iterable.rst.txt b/docs/build/html/_sources/cpl_query.iterable.rst.txt new file mode 100644 index 00000000..8a7bc919 --- /dev/null +++ b/docs/build/html/_sources/cpl_query.iterable.rst.txt @@ -0,0 +1,20 @@ +cpl\_query.iterable +=========================== + + + +cpl\_query.iterable.iterable +----------------------------------- + +.. automodule:: cpl_query.iterable.iterable + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.iterable.iterable\_abc +---------------------------------------- + +.. automodule:: cpl_query.iterable.iterable_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.rst.txt b/docs/build/html/_sources/cpl_query.rst.txt index 10d6f0d8..5a362b26 100644 --- a/docs/build/html/_sources/cpl_query.rst.txt +++ b/docs/build/html/_sources/cpl_query.rst.txt @@ -1,8 +1,10 @@ -Query Reference +Query reference =========== .. toctree:: :maxdepth: 4 - - cpl_query.extension - cpl_query.exceptions + + cpl_query.base + cpl_query.enumerable + cpl_query.extension + cpl_query.iterable diff --git a/docs/build/html/_sources/cpl_translation.rst.txt b/docs/build/html/_sources/cpl_translation.rst.txt new file mode 100644 index 00000000..365356e8 --- /dev/null +++ b/docs/build/html/_sources/cpl_translation.rst.txt @@ -0,0 +1,34 @@ +Translation reference +======================== + +cpl\_translation.translate\_pipe +--------------------------------------- + +.. automodule:: cpl_translation.translate_pipe + :members: + :undoc-members: + :show-inheritance: + +cpl\_translation.translation\_service +-------------------------------------------- + +.. automodule:: cpl_translation.translation_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_translation.translation\_service\_abc +------------------------------------------------- + +.. automodule:: cpl_translation.translation_service_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_translation.translation\_settings +--------------------------------------------- + +.. automodule:: cpl_translation.translation_settings + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt index 0d0ef798..921b7964 100644 --- a/docs/build/html/_sources/index.rst.txt +++ b/docs/build/html/_sources/index.rst.txt @@ -89,4 +89,6 @@ These pages go into great detail about everything the Library can do. contributing cpl_cli cpl_core + cpl_discord cpl_query + cpl_translation diff --git a/docs/build/html/_sources/modules.rst.txt b/docs/build/html/_sources/modules.rst.txt index d1ae65e0..5a411fa4 100644 --- a/docs/build/html/_sources/modules.rst.txt +++ b/docs/build/html/_sources/modules.rst.txt @@ -9,4 +9,4 @@ cpl cpl_core cpl_discord cpl_query - cpl_translate + cpl_translation diff --git a/docs/build/html/_sources/setup.md.txt b/docs/build/html/_sources/setup.md.txt index 6d0be37c..be16fa9b 100644 --- a/docs/build/html/_sources/setup.md.txt +++ b/docs/build/html/_sources/setup.md.txt @@ -27,7 +27,7 @@ Also you need to have the following installed. To install the package, open a terminal window and run the following command: ```sh -pip install sh_cpl-core --extra-index-url https://pip.sh-edraft.de +pip install cpl-core --extra-index-url https://pip.sh-edraft.de ``` ## Install the CLI @@ -37,7 +37,7 @@ You use the CPL CLI to create projects, generate application and library code. Y To install the CLI, open a terminal window and run the following command: ```sh -pip install sh_cpl-cli --extra-index-url https://pip.sh-edraft.de +pip install cpl-cli --extra-index-url https://pip.sh-edraft.de ``` ## Install the query @@ -45,7 +45,7 @@ pip install sh_cpl-cli --extra-index-url https://pip.sh-edraft.de To install the package, open a terminal window and run the following command: ```sh -pip install sh_cpl-query --extra-index-url https://pip.sh-edraft.de +pip install cpl-query --extra-index-url https://pip.sh-edraft.de ``` ## Create initial console app diff --git a/docs/build/html/cli.add.html b/docs/build/html/cli.add.html index 683a3330..54bff940 100644 --- a/docs/build/html/cli.add.html +++ b/docs/build/html/cli.add.html @@ -42,7 +42,7 @@
  1. Getting started
  2. Contributing to CPL
  3. -
  4. CLI Reference
  5. -
  6. CLI Reference
  7. -
  8. API Reference
  9. -
  10. Query Reference
  11. +
  12. CLI reference
  13. +
  14. API reference
  15. +
  16. Discord reference
  17. +
  18. Query reference
  19. +
  20. Translation reference
  21. @@ -123,7 +125,7 @@
    1. Search the repository for an open or closed PR that relates to your submission. You don’t want to duplicate existing efforts.

    2. Be sure that an issue describes the problem you’re fixing, or documents the design for the feature you’d like to add. Discussing the design upfront helps to ensure that we’re ready to accept your work.

    3. -
    4. Fork the sh-edraft.de/sh_cpl repo.

    5. +
    6. Fork the sh-edraft.de/cpl repo.

    7. In your forked repository, make your changes in a new git branch:

      git checkout -b my-fix-branch master
       
      @@ -144,7 +146,7 @@
    8. -
    9. In Gitea, send a pull request to sh_cpl:master

    10. +
    11. In Gitea, send a pull request to cpl:master

    @@ -178,7 +180,7 @@ git push

    License

    By contributing, you agree that your contributions will be licensed under its MIT License. -See LICENSE

    +See LICENSE

    @@ -188,13 +190,13 @@ See - +
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/cpl_cli.html b/docs/build/html/cpl_cli.html index 657a2b49..4ac7954e 100644 --- a/docs/build/html/cpl_cli.html +++ b/docs/build/html/cpl_cli.html @@ -4,7 +4,7 @@ - CLI Reference — Common Python Library documentation + CLI reference — Common Python Library documentation + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_discord.application

    +
    +

    cpl_discord.application.discord_bot_application_abc

    +
    +
    +class cpl_discord.application.discord_bot_application_abc.DiscordBotApplicationABC(config: ConfigurationABC, services: ServiceProviderABC)
    +

    Bases: ApplicationABC

    +
    +
    +abstract stop_async()
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_discord.command.html b/docs/build/html/cpl_discord.command.html new file mode 100644 index 00000000..6dba3ee5 --- /dev/null +++ b/docs/build/html/cpl_discord.command.html @@ -0,0 +1,143 @@ + + + + + + + cpl_discord.command — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_discord.command

    +
    +

    cpl_discord.command.discord_command_abc

    +
    +
    +class cpl_discord.command.discord_command_abc.DiscordCommandABC(*args: Any, **kwargs: Any)
    +

    Bases: ABC, Cog

    +
    + +
    +
    +

    cpl_discord.command.discord_commands_meta

    +
    +
    +class cpl_discord.command.discord_commands_meta.DiscordCogMeta(name, bases, namespace, **kwargs)
    +

    Bases: ABCMeta, CogMeta

    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_discord.configuration.html b/docs/build/html/cpl_discord.configuration.html new file mode 100644 index 00000000..591e7eee --- /dev/null +++ b/docs/build/html/cpl_discord.configuration.html @@ -0,0 +1,152 @@ + + + + + + + cpl_discord.configuration — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_discord.configuration

    +
    +

    cpl_discord.configuration.discord_bot_settings

    +
    +
    +class cpl_discord.configuration.discord_bot_settings.DiscordBotSettings
    +

    Bases: ConfigurationModelABC

    +
    +
    +from_dict(settings: dict)
    +

    Converts attributes to dict

    +
    +

    settings: dict

    +
    +
    + +
    +
    +property prefix: str
    +
    + +
    +
    +property token: str
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_discord.container.html b/docs/build/html/cpl_discord.container.html new file mode 100644 index 00000000..9490fdb6 --- /dev/null +++ b/docs/build/html/cpl_discord.container.html @@ -0,0 +1,674 @@ + + + + + + + cpl_discord.container — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_discord.container

    +
    +

    cpl_discord.container.category_channel

    +
    +
    +class cpl_discord.container.category_channel.CategoryChannel(_t: CategoryChannel)
    +

    Bases: CategoryChannel, Container

    +
    +
    +category_id: Optional[int]
    +
    + +
    +
    +guild: Guild
    +
    + +
    +
    +id: int
    +
    + +
    +
    +name: str
    +
    + +
    +
    +nsfw
    +
    + +
    +
    +position: int
    +
    + +
    +
    +property text_channels: TextChannel
    +

    List[TextChannel]: Returns the text channels that are under this category.

    +
    + +
    +
    +property voice_channels: VoiceChannel
    +

    List[VoiceChannel]: Returns the voice channels that are under this category.

    +
    + +
    + +
    +
    +

    cpl_discord.container.container

    +
    +
    +class cpl_discord.container.container.Container(_o: object, _t: type)
    +

    Bases: object

    +
    + +
    +
    +

    cpl_discord.container.guild

    +
    +
    +class cpl_discord.container.guild.Guild(_t: Guild)
    +

    Bases: Container, Guild

    +
    +
    +afk_channel
    +
    + +
    +
    +afk_timeout
    +
    + +
    +
    +approximate_member_count
    +
    + +
    +
    +approximate_presence_count
    +
    + +
    +
    +property categories: CategoryChannel
    +

    List[CategoryChannel]: A list of categories that belongs to this guild.

    +

    This is sorted by the position and are in UI order from top to bottom.

    +
    + +
    +
    +default_notifications
    +
    + +
    +
    +description
    +
    + +
    +
    +emojis
    +
    + +
    +
    +explicit_content_filter
    +
    + +
    +
    +features
    +
    + +
    +
    +id: int
    +
    + +
    +
    +max_members
    +
    + +
    +
    +max_presences
    +
    + +
    +
    +max_video_channel_users
    +
    + +
    +
    +property members: Member
    +

    Sequence[Member]: A list of members that belong to this guild.

    +
    + +
    +
    +mfa_level
    +
    + +
    +
    +name
    +
    + +
    +
    +nsfw_level
    +
    + +
    +
    +owner_id
    +
    + +
    +
    +preferred_locale
    +
    + +
    +
    +premium_progress_bar_enabled
    +
    + +
    +
    +premium_subscription_count
    +
    + +
    +
    +premium_tier
    +
    + +
    +
    +property roles: Role
    +

    Sequence[Role]: Returns a sequence of the guild’s roles in hierarchy order.

    +

    The first element of this sequence will be the lowest role in the +hierarchy.

    +
    + +
    +
    +stickers
    +
    + +
    +
    +property text_channels: TextChannel
    +

    List[TextChannel]: A list of text channels that belongs to this guild.

    +

    This is sorted by the position and are in UI order from top to bottom.

    +
    + +
    +
    +property threads: TextChannel
    +

    Sequence[Thread]: A list of threads that you have permission to view.

    +
    +

    New in version 2.0.

    +
    +
    + +
    +
    +unavailable
    +
    + +
    +
    +vanity_url_code
    +
    + +
    +
    +verification_level
    +
    + +
    +
    +property voice_channels: VoiceChannel
    +

    List[VoiceChannel]: A list of voice channels that belongs to this guild.

    +

    This is sorted by the position and are in UI order from top to bottom.

    +
    + +
    +
    +widget_enabled
    +
    + +
    + +
    +
    +

    cpl_discord.container.member

    +
    +
    +class cpl_discord.container.member.Member(_t: Member)
    +

    Bases: Member, Container

    +
    +
    +activities: Tuple[ActivityTypes, ...]
    +
    + +
    +
    +guild: Guild
    +
    + +
    +
    +joined_at: Optional[datetime.datetime]
    +
    + +
    +
    +nick: Optional[str]
    +
    + +
    +
    +pending: bool
    +
    + +
    +
    +premium_since: Optional[datetime.datetime]
    +
    + +
    +
    +property roles: Role
    +

    List[Role]: A list of Role that the member belongs to. Note +that the first element of this list is always the default @everyone’ +role.

    +

    These roles are sorted by their position in the role hierarchy.

    +
    + +
    +
    +timed_out_until: Optional[datetime.datetime]
    +
    + +
    + +
    +
    +

    cpl_discord.container.role

    +
    +
    +class cpl_discord.container.role.Role(_t: Role)
    +

    Bases: Role, Container

    +
    +
    +guild: Guild
    +
    + +
    +
    +hoist
    +
    + +
    +
    +id: int
    +
    + +
    +
    +managed
    +
    + +
    +
    +property members: Member
    +

    List[Member]: Returns all the members with this role.

    +
    + +
    +
    +mentionable
    +
    + +
    +
    +name
    +
    + +
    +
    +position
    +
    + +
    +
    +tags
    +
    + +
    +
    +unicode_emoji
    +
    + +
    + +
    +
    +

    cpl_discord.container.text_channel

    +
    +
    +class cpl_discord.container.text_channel.TextChannel(_t: TextChannel)
    +

    Bases: TextChannel, Container

    +
    +
    +category_id: Optional[int]
    +
    + +
    +
    +default_auto_archive_duration
    +
    + +
    +
    +guild: Guild
    +
    + +
    +
    +id: int
    +
    + +
    +
    +last_message_id
    +
    + +
    +
    +property members: Member
    +

    List[Member]: Returns all members that can see this channel.

    +
    + +
    +
    +name: str
    +
    + +
    +
    +nsfw
    +
    + +
    +
    +position: int
    +
    + +
    +
    +slowmode_delay
    +
    + +
    +
    +property threads: Thread
    +

    List[Thread]: Returns all the threads that you can see.

    +
    +

    New in version 2.0.

    +
    +
    + +
    +
    +topic
    +
    + +
    + +
    +
    +

    cpl_discord.container.thread

    +
    +
    +class cpl_discord.container.thread.Thread(_t: Thread)
    +

    Bases: Thread, Container

    +
    +
    +archive_timestamp
    +
    + +
    +
    +archived
    +
    + +
    +
    +archiver_id
    +
    + +
    +
    +auto_archive_duration
    +
    + +
    +
    +guild: Guild
    +
    + +
    +
    +id: int
    +
    + +
    +
    +invitable
    +
    + +
    +
    +last_message_id
    +
    + +
    +
    +locked
    +
    + +
    +
    +me
    +
    + +
    +
    +member_count
    +
    + +
    +
    +property members: Member
    +

    List[ThreadMember]: A list of thread members in this thread.

    +

    This requires Intents.members to be properly filled. Most of the time however, +this data is not provided by the gateway and a call to fetch_members() is +needed.

    +
    + +
    +
    +message_count
    +
    + +
    +
    +name
    +
    + +
    +
    +owner_id
    +
    + +
    +
    +parent_id
    +
    + +
    +
    +slowmode_delay
    +
    + +
    + +
    +
    +

    cpl_discord.container.voice_channel

    +
    +
    +class cpl_discord.container.voice_channel.VoiceChannel(_t: VoiceChannel)
    +

    Bases: VoiceChannel, Container

    +
    +
    +property members: Member
    +

    List[Member]: Returns all members that are currently inside this voice channel.

    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_discord.events.html b/docs/build/html/cpl_discord.events.html new file mode 100644 index 00000000..7633c306 --- /dev/null +++ b/docs/build/html/cpl_discord.events.html @@ -0,0 +1,888 @@ + + + + + + + cpl_discord.events — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_discord.events

    +
    +

    cpl_discord.events.on_bulk_message_delete_abc

    +
    +
    +class cpl_discord.events.on_bulk_message_delete_abc.OnBulkMessageDeleteABC
    +

    Bases: ABC

    +
    +
    +abstract async on_bulk_message_delete(messages: list[discord.message.Message])
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_command_abc

    +
    +
    +class cpl_discord.events.on_command_abc.OnCommandABC
    +

    Bases: ABC

    +
    +
    +abstract async on_command(ctx: Context)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_command_completion_abc

    +
    +
    +class cpl_discord.events.on_command_completion_abc.OnCommandCompletionABC
    +

    Bases: ABC

    +
    +
    +abstract async on_command_completion(ctx: Context)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_command_error_abc

    +
    +
    +class cpl_discord.events.on_command_error_abc.OnCommandErrorABC
    +

    Bases: ABC

    +
    +
    +abstract async on_command_error(ctx: Context, error: CommandError)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_connect_abc

    +
    +
    +class cpl_discord.events.on_connect_abc.OnConnectABC
    +

    Bases: ABC

    +
    +
    +abstract async on_connect()
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_disconnect_abc

    +
    +
    +class cpl_discord.events.on_disconnect_abc.OnDisconnectABC
    +

    Bases: ABC

    +
    +
    +abstract async on_disconnect()
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_error_abc

    +
    +
    +class cpl_discord.events.on_error_abc.OnErrorABC
    +

    Bases: ABC

    +
    +
    +abstract async on_error(event: str, *args, **kwargs)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_group_join_abc

    +
    +
    +class cpl_discord.events.on_group_join_abc.OnGroupJoinABC
    +

    Bases: ABC

    +
    +
    +abstract async on_group_join(chhanel: GroupChannel, user: User)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_group_remove_abc

    +
    +
    +class cpl_discord.events.on_group_remove_abc.OnGroupRemoveABC
    +

    Bases: ABC

    +
    +
    +abstract async on_group_remove(chhanel: GroupChannel, user: User)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_available_abc

    +
    +
    +class cpl_discord.events.on_guild_available_abc.OnGuildAvailableABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_available(guild: Guild)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_channel_create_abc

    +
    +
    +class cpl_discord.events.on_guild_channel_create_abc.OnGuildChannelCreateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_channel_create(channel: GuildChannel)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_channel_delete_abc

    +
    +
    +class cpl_discord.events.on_guild_channel_delete_abc.OnGuildChannelDeleteABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_channel_delete(channel: GuildChannel)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_channel_pins_update_abc

    +
    +
    +class cpl_discord.events.on_guild_channel_pins_update_abc.OnGuildChannelPinsUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_channel_pins_update(channel: GuildChannel, list_pin: Optional[datetime])
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_channel_update_abc

    +
    +
    +class cpl_discord.events.on_guild_channel_update_abc.OnGuildChannelUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_channel_update(before: GuildChannel, after: GuildChannel)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_emojis_update_abc

    +
    +
    +class cpl_discord.events.on_guild_emojis_update_abc.OnGuildEmojisUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_emojis_update(guild: Guild, before: Sequence[Emoji], after: Sequence[Emoji])
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_integrations_update_abc

    +
    +
    +class cpl_discord.events.on_guild_integrations_update_abc.OnGuildIntegrationsUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_integrations_update(guild: Guild)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_join_abc

    +
    +
    +class cpl_discord.events.on_guild_join_abc.OnGuildJoinABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_join(guild: Guild)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_remove_abc

    +
    +
    +class cpl_discord.events.on_guild_remove_abc.OnGuildRemoveABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_remove(guild: Guild)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_role_create_abc

    +
    +
    +class cpl_discord.events.on_guild_role_create_abc.OnGuildRoleCreateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_role_create(role: Role)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_role_delete_abc

    +
    +
    +class cpl_discord.events.on_guild_role_delete_abc.OnGuildRoleDeleteABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_role_delete(role: Role)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_role_update_abc

    +
    +
    +class cpl_discord.events.on_guild_role_update_abc.OnGuildRoleUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_role_update(before: Role, after: Role)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_unavailable_abc

    +
    +
    +class cpl_discord.events.on_guild_unavailable_abc.OnGuildUnavailableABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_unavailable(guild: Guild)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_guild_update_abc

    +
    +
    +class cpl_discord.events.on_guild_update_abc.OnGuildUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_guild_update(before: Guild, after: Guild)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_invite_create_abc

    +
    +
    +class cpl_discord.events.on_invite_create_abc.OnInviteCreateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_invite_create(invite: Invite)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_invite_delete_abc

    +
    +
    +class cpl_discord.events.on_invite_delete_abc.OnInviteDeleteABC
    +

    Bases: ABC

    +
    +
    +abstract async on_invite_delete(invite: Invite)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_member_ban_abc

    +
    +
    +class cpl_discord.events.on_member_ban_abc.OnMemberBanABC
    +

    Bases: ABC

    +
    +
    +abstract async on_member_ban(guild: Guild, user: User)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_member_join_abc

    +
    +
    +class cpl_discord.events.on_member_join_abc.OnMemberJoinABC
    +

    Bases: ABC

    +
    +
    +abstract async on_member_join(member: Member)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_member_remove_abc

    +
    +
    +class cpl_discord.events.on_member_remove_abc.OnMemberRemoveABC
    +

    Bases: ABC

    +
    +
    +abstract async on_member_remove(member: Member)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_member_unban_abc

    +
    +
    +class cpl_discord.events.on_member_unban_abc.OnMemberUnbanABC
    +

    Bases: ABC

    +
    +
    +abstract async on_member_unban(guild: Guild, user: User)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_member_update_abc

    +
    +
    +class cpl_discord.events.on_member_update_abc.OnMemberUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_member_update(before: Member, after: Member)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_message_abc

    +
    +
    +class cpl_discord.events.on_message_abc.OnMessageABC
    +

    Bases: ABC

    +
    +
    +abstract async on_message(message: Message)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_message_delete_abc

    +
    +
    +class cpl_discord.events.on_message_delete_abc.OnMessageDeleteABC
    +

    Bases: ABC

    +
    +
    +abstract async on_message_delete(message: Message)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_message_edit_abc

    +
    +
    +class cpl_discord.events.on_message_edit_abc.OnMessageEditABC
    +

    Bases: ABC

    +
    +
    +abstract async on_message_edit(before: Message, after: Message)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_private_channel_create_abc

    +
    +
    +class cpl_discord.events.on_private_channel_create_abc.OnPrivateChannelCreateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_private_channel_create(channel: PrivateChannel)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_private_channel_delete_abc

    +
    +
    +class cpl_discord.events.on_private_channel_delete_abc.OnPrivateChannelDeleteABC
    +

    Bases: ABC

    +
    +
    +abstract async on_private_channel_delete(channel: PrivateChannel)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_private_channel_pins_update_abc

    +
    +
    +class cpl_discord.events.on_private_channel_pins_update_abc.OnPrivateChannelPinsUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_private_channel_pins_update(channel: PrivateChannel, list_pin: Optional[datetime])
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_private_channel_update_abc

    +
    +
    +class cpl_discord.events.on_private_channel_update_abc.OnPrivateChannelUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_private_channel_update(before: GroupChannel, after: GroupChannel)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_raw_reaction_add_abc

    +
    +
    +class cpl_discord.events.on_raw_reaction_add_abc.OnRawReactionAddABC
    +

    Bases: ABC

    +
    +
    +abstract async on_raw_reaction_add(payload: RawReactionActionEvent)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_raw_reaction_clear_abc

    +
    +
    +class cpl_discord.events.on_raw_reaction_clear_abc.OnRawReactionClearABC
    +

    Bases: ABC

    +
    +
    +abstract async on_raw_reaction_clear(payload: RawReactionActionEvent)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_raw_reaction_clear_emoji_abc

    +
    +
    +class cpl_discord.events.on_raw_reaction_clear_emoji_abc.OnRawReactionClearEmojiABC
    +

    Bases: ABC

    +
    +
    +abstract async on_raw_reaction_clear_emoji(payload: RawReactionActionEvent)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_raw_reaction_remove_abc

    +
    +
    +class cpl_discord.events.on_raw_reaction_remove_abc.OnRawReactionRemoveABC
    +

    Bases: ABC

    +
    +
    +abstract async on_raw_reaction_remove(payload: RawReactionActionEvent)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_reaction_add_abc

    +
    +
    +class cpl_discord.events.on_reaction_add_abc.OnReactionAddABC
    +

    Bases: ABC

    +
    +
    +abstract async on_reaction_add(reaction: Reaction, user: User)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_reaction_clear_abc

    +
    +
    +class cpl_discord.events.on_reaction_clear_abc.OnReactionClearABC
    +

    Bases: ABC

    +
    +
    +abstract async on_reaction_clear(message: Message, reactions: list[discord.reaction.Reaction])
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_reaction_clear_emoji_abc

    +
    +
    +class cpl_discord.events.on_reaction_clear_emoji_abc.OnReactionClearEmojiABC
    +

    Bases: ABC

    +
    +
    +abstract async on_reaction_clear_emoji(reaction: Reaction)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_reaction_remove_abc

    +
    +
    +class cpl_discord.events.on_reaction_remove_abc.OnReactionRemoveABC
    +

    Bases: ABC

    +
    +
    +abstract async on_reaction_remove(reaction: Reaction, user: User)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_ready_abc

    +
    +
    +class cpl_discord.events.on_ready_abc.OnReadyABC
    +

    Bases: ABC

    +
    +
    +abstract async on_ready()
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_resume_abc

    +
    +
    +class cpl_discord.events.on_resume_abc.OnResumeABC
    +

    Bases: ABC

    +
    +
    +abstract async on_resume()
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_typing_abc

    +
    +
    +class cpl_discord.events.on_typing_abc.OnTypingABC
    +

    Bases: ABC

    +
    +
    +abstract async on_typing(channel: Messageable, user: Union[User, Member], when: datetime)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_user_update_abc

    +
    +
    +class cpl_discord.events.on_user_update_abc.OnUserUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_user_update(before: User, after: User)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_voice_state_update_abc

    +
    +
    +class cpl_discord.events.on_voice_state_update_abc.OnVoiceStateUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_voice_state_update(member: Member, before: VoiceState, after: VoiceState)
    +
    + +
    + +
    +
    +

    cpl_discord.events.on_webhooks_update_abc

    +
    +
    +class cpl_discord.events.on_webhooks_update_abc.OnWebhooksUpdateABC
    +

    Bases: ABC

    +
    +
    +abstract async on_webhooks_update(channel: GuildChannel)
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_discord.helper.html b/docs/build/html/cpl_discord.helper.html new file mode 100644 index 00000000..7f128e82 --- /dev/null +++ b/docs/build/html/cpl_discord.helper.html @@ -0,0 +1,138 @@ + + + + + + + cpl_discord.helper — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_discord.helper

    +
    +

    cpl_discord.helper.to_containers_converter

    +
    +
    +class cpl_discord.helper.to_containers_converter.ToContainersConverter
    +

    Bases: object

    +
    +
    +static convert(_l: Union[list[object], Sequence[object]], _t: type) list[cpl_discord.container.container.Container]
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_discord.html b/docs/build/html/cpl_discord.html new file mode 100644 index 00000000..c32b0593 --- /dev/null +++ b/docs/build/html/cpl_discord.html @@ -0,0 +1,216 @@ + + + + + + + Discord reference — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Discord reference

    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_discord.service.html b/docs/build/html/cpl_discord.service.html new file mode 100644 index 00000000..b40cbeb9 --- /dev/null +++ b/docs/build/html/cpl_discord.service.html @@ -0,0 +1,780 @@ + + + + + + + cpl_discord.service — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_discord.service

    +
    +

    cpl_discord.service.command_error_handler_service

    +
    +
    +class cpl_discord.service.command_error_handler_service.CommandErrorHandlerService(logger: LoggerABC)
    +

    Bases: OnCommandErrorABC

    +
    +
    +async on_command_error(ctx: Context, error: CommandError)
    +
    + +
    + +
    +
    +

    cpl_discord.service.discord_bot_service

    +
    +
    +class cpl_discord.service.discord_bot_service.DiscordBotService(config: ConfigurationABC, logger: LoggerABC, discord_bot_settings: DiscordBotSettings, env: ApplicationEnvironmentABC, logging_st: LoggingSettings, discord_service: DiscordServiceABC)
    +

    Bases: DiscordBotServiceABC

    +
    +
    +property guilds: Guild
    +

    Sequence[Guild]: The guilds that the connected client is a member of.

    +
    + +
    +
    +async on_ready()
    +
    + +
    +
    +async start_async()
    +
    + +
    +
    +async stop_async()
    +
    + +
    + +
    +
    +

    cpl_discord.service.discord_bot_service_abc

    +
    +
    +class cpl_discord.service.discord_bot_service_abc.DiscordBotServiceABC(**kwargs)
    +

    Bases: Bot

    +
    +
    +abstract property guilds: Guild
    +

    Sequence[Guild]: The guilds that the connected client is a member of.

    +
    + +
    +
    +abstract async on_ready()
    +
    + +
    +
    +abstract async start_async()
    +
    + +
    +
    +abstract async stop_async()
    +
    + +
    + +
    +
    +

    cpl_discord.service.discord_collection

    +
    +
    +class cpl_discord.service.discord_collection.DiscordCollection(service_collection: ServiceCollectionABC)
    +

    Bases: DiscordCollectionABC

    +
    +
    +add_command(_t: Type[DiscordCommandABC])
    +
    + +
    +
    +add_event(_t_event: Type, _t: Type)
    +
    + +
    +
    +get_commands() DiscordCommandABC
    +
    + +
    +
    +get_events_by_base(_t_event: Type) Optional[List]
    +
    + +
    + +
    +
    +

    cpl_discord.service.discord_collection_abc

    +
    +
    +class cpl_discord.service.discord_collection_abc.DiscordCollectionABC
    +

    Bases: ABC

    +
    +
    +abstract add_command(_t: Type[DiscordCommandABC])
    +
    + +
    +
    +abstract add_event(_t_event: Type, _t: Type)
    +
    + +
    +
    +abstract get_commands() DiscordCommandABC
    +
    + +
    +
    +abstract get_events_by_base(_t_event: Type)
    +
    + +
    + +
    +
    +

    cpl_discord.service.discord_service

    +
    +
    +class cpl_discord.service.discord_service.DiscordService(*args: Any, **kwargs: Any)
    +

    Bases: DiscordServiceABC, Cog

    +
    +
    +async init(bot: Bot)
    +
    + +
    +
    +async on_bulk_message_delete(messages: list[discord.message.Message])
    +
    + +
    +
    +async on_command(ctx: Context)
    +
    + +
    +
    +async on_command_completion(ctx: Context)
    +
    + +
    +
    +async on_command_error(ctx: Context, error: CommandError)
    +
    + +
    +
    +async on_connect()
    +
    + +
    +
    +async on_disconnect()
    +
    + +
    +
    +async on_error(event: str, *args, **kwargs)
    +
    + +
    +
    +async on_group_join(channel: GroupChannel, user: User)
    +
    + +
    +
    +async on_group_remove(channel: GroupChannel, user: User)
    +
    + +
    +
    +async on_guild_available(guild: Guild)
    +
    + +
    +
    +async on_guild_channel_create(channel: GuildChannel)
    +
    + +
    +
    +async on_guild_channel_delete(channel: GuildChannel)
    +
    + +
    +
    +async on_guild_channel_pins_update(channel: GuildChannel, list_pin: Optional[datetime])
    +
    + +
    +
    +async on_guild_channel_update(before: GuildChannel, after: GuildChannel)
    +
    + +
    +
    +async on_guild_emojis_update(guild: Guild, before: Sequence[Emoji], after: Sequence[Emoji])
    +
    + +
    +
    +async on_guild_integrations_update(guild: Guild)
    +
    + +
    +
    +async on_guild_join(guild: Guild)
    +
    + +
    +
    +async on_guild_remove(guild: Guild)
    +
    + +
    +
    +async on_guild_role_create(role: Role)
    +
    + +
    +
    +async on_guild_role_delete(role: Role)
    +
    + +
    +
    +async on_guild_role_update(before: Role, after: Role)
    +
    + +
    +
    +async on_guild_unavailable(guild: Guild)
    +
    + +
    +
    +async on_guild_update(before: Guild, after: Guild)
    +
    + +
    +
    +async on_invite_create(invite: Invite)
    +
    + +
    +
    +async on_invite_delete(invite: Invite)
    +
    + +
    +
    +async on_member_ban(guild: Guild, user: User)
    +
    + +
    +
    +async on_member_join(member: Member)
    +
    + +
    +
    +async on_member_remove(member: Member)
    +
    + +
    +
    +async on_member_unban(guild: Guild, user: User)
    +
    + +
    +
    +async on_member_update(before: Member, after: Member)
    +
    + +
    +
    +async on_message(message: Message)
    +
    + +
    +
    +async on_message_delete(message: Message)
    +
    + +
    +
    +async on_message_edit(before: Message, after: Message)
    +
    + +
    +
    +async on_private_channel_create(channel: PrivateChannel)
    +
    + +
    +
    +async on_private_channel_delete(channel: PrivateChannel)
    +
    + +
    +
    +async on_private_channel_pins_update(channel: PrivateChannel, list_pin: Optional[datetime])
    +
    + +
    +
    +async on_private_channel_update(before: GroupChannel, after: GroupChannel)
    +
    + +
    +
    +async on_raw_reaction_add(payload: RawReactionActionEvent)
    +
    + +
    +
    +async on_raw_reaction_clear(payload: RawReactionActionEvent)
    +
    + +
    +
    +async on_raw_reaction_clear_emoji(payload: RawReactionActionEvent)
    +
    + +
    +
    +async on_raw_reaction_remove(payload: RawReactionActionEvent)
    +
    + +
    +
    +async on_reaction_add(reaction: Reaction, user: User)
    +
    + +
    +
    +async on_reaction_clear(message: Message, reactions: list[discord.reaction.Reaction])
    +
    + +
    +
    +async on_reaction_clear_emoji(reaction: Reaction)
    +
    + +
    +
    +async on_reaction_remove(reaction: Reaction, user: User)
    +
    + +
    +
    +async on_ready()
    +
    + +
    +
    +async on_resume()
    +
    + +
    +
    +async on_typing(channel: Messageable, user: Union[User, Member], when: datetime)
    +
    + +
    +
    +async on_user_update(before: User, after: User)
    +
    + +
    +
    +async on_voice_state_update(member: Member, before: VoiceState, after: VoiceState)
    +
    + +
    +
    +async on_webhooks_update(channel: GuildChannel)
    +
    + +
    + +
    +
    +

    cpl_discord.service.discord_service_abc

    +
    +
    +class cpl_discord.service.discord_service_abc.DiscordServiceABC
    +

    Bases: ABC

    +
    +
    +abstract init(bot: Bot)
    +
    + +
    +
    +abstract async on_bulk_message_delete(messages: list[discord.message.Message])
    +
    + +
    +
    +abstract async on_command()
    +
    + +
    +
    +abstract async on_command_completion()
    +
    + +
    +
    +abstract async on_command_error()
    +
    + +
    +
    +abstract async on_connect()
    +
    + +
    +
    +abstract async on_disconnect()
    +
    + +
    +
    +abstract async on_error(event: str, *args, **kwargs)
    +
    + +
    +
    +abstract async on_group_join(chhanel: GroupChannel, user: User)
    +
    + +
    +
    +abstract async on_group_remove(chhanel: GroupChannel, user: User)
    +
    + +
    +
    +abstract async on_guild_available(guild: Guild)
    +
    + +
    +
    +abstract async on_guild_channel_create(channel: GuildChannel)
    +
    + +
    +
    +abstract async on_guild_channel_delete(channel: GuildChannel)
    +
    + +
    +
    +abstract async on_guild_channel_pins_update(channel: GuildChannel, list_pin: Optional[datetime])
    +
    + +
    +
    +abstract async on_guild_channel_update(before: GuildChannel, after: GuildChannel)
    +
    + +
    +
    +abstract async on_guild_emojis_update(guild: Guild, before: Sequence[Emoji], after: Sequence[Emoji])
    +
    + +
    +
    +abstract async on_guild_integrations_update(guild: Guild)
    +
    + +
    +
    +abstract async on_guild_join(guild: Guild)
    +
    + +
    +
    +abstract async on_guild_remove(guild: Guild)
    +
    + +
    +
    +abstract async on_guild_role_create(role: Role)
    +
    + +
    +
    +abstract async on_guild_role_delete(role: Role)
    +
    + +
    +
    +abstract async on_guild_role_update(before: Role, after: Role)
    +
    + +
    +
    +abstract async on_guild_unavailable(guild: Guild)
    +
    + +
    +
    +abstract async on_guild_update(before: Guild, after: Guild)
    +
    + +
    +
    +abstract async on_invite_create(invite: Invite)
    +
    + +
    +
    +abstract async on_invite_delete(invite: Invite)
    +
    + +
    +
    +abstract async on_member_ban(guild: Guild, user: User)
    +
    + +
    +
    +abstract async on_member_join(member: Member)
    +
    + +
    +
    +abstract async on_member_remove(member: Member)
    +
    + +
    +
    +abstract async on_member_unban(guild: Guild, user: User)
    +
    + +
    +
    +abstract async on_member_update(before: Member, after: Member)
    +
    + +
    +
    +abstract async on_message(message: Message)
    +
    + +
    +
    +abstract async on_message_delete(message: Message)
    +
    + +
    +
    +abstract async on_message_edit(before: Message, after: Message)
    +
    + +
    +
    +abstract async on_private_channel_create(channel: PrivateChannel)
    +
    + +
    +
    +abstract async on_private_channel_delete(channel: PrivateChannel)
    +
    + +
    +
    +abstract async on_private_channel_pins_update(channel: PrivateChannel, list_pin: Optional[datetime])
    +
    + +
    +
    +abstract async on_private_channel_update(before: GroupChannel, after: GroupChannel)
    +
    + +
    +
    +abstract async on_reaction_add(reaction: Reaction, user: User)
    +
    + +
    +
    +abstract async on_reaction_clear(message: Message, reactions: list[discord.reaction.Reaction])
    +
    + +
    +
    +abstract async on_reaction_clear_emoji(reaction: Reaction)
    +
    + +
    +
    +abstract async on_reaction_remove(reaction: Reaction, user: User)
    +
    + +
    +
    +abstract async on_ready()
    +
    + +
    +
    +abstract async on_resume()
    +
    + +
    +
    +abstract async on_typing(channel: Messageable, user: Union[User, Member], when: datetime)
    +
    + +
    +
    +abstract async on_user_update(before: User, after: User)
    +
    + +
    +
    +abstract async on_voice_state_update(member: Member, before: VoiceState, after: VoiceState)
    +
    + +
    +
    +abstract async on_webhooks_update(channel: GuildChannel)
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_query.base.html b/docs/build/html/cpl_query.base.html new file mode 100644 index 00000000..2e00c6d8 --- /dev/null +++ b/docs/build/html/cpl_query.base.html @@ -0,0 +1,725 @@ + + + + + + + cpl_query.base — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_query.base

    +
    +

    cpl_query.base.default_lambda

    +
    +
    +cpl_query.base.default_lambda.default_lambda(x: object)
    +
    + +
    +
    +

    cpl_query.base.ordered_queryable

    +
    +
    +class cpl_query.base.ordered_queryable.OrderedQueryable(_t: type, _values: Optional[Iterable] = None, _func: Optional[Callable] = None)
    +

    Bases: OrderedQueryableABC

    +

    Implementation of :class: cpl_query.extension.Iterable cpl_query.extension.OrderedIterableABC

    +
    +
    +then_by(_func: Callable) OrderedQueryableABC
    +

    Sorts OrderedList in ascending order by function

    +
    +

    func: Callable

    +
    +
    +

    list of cpl_query.iterable.ordered_iterable_abc.OrderedIterableABC

    +
    +
    + +
    +
    +then_by_descending(_func: Callable) OrderedQueryableABC
    +

    Sorts OrderedList in descending order by function

    +
    +

    func: Callable

    +
    +
    +

    list of cpl_query.iterable.ordered_iterable_abc.OrderedIterableABC

    +
    +
    + +
    + +
    +
    +

    cpl_query.base.ordered_queryable_abc

    +
    +
    +class cpl_query.base.ordered_queryable_abc.OrderedQueryableABC(_t: type, _values: Optional[Iterable] = None, _func: Optional[Callable] = None)
    +

    Bases: QueryableABC

    +
    +
    +abstract then_by(func: Callable) OrderedQueryableABC
    +

    Sorts OrderedList in ascending order by function

    +
    +

    func: Callable

    +
    +
    +

    list of cpl_query.iterable.ordered_iterable_abc.OrderedIterableABC

    +
    +
    + +
    +
    +abstract then_by_descending(func: Callable) OrderedQueryableABC
    +

    Sorts OrderedList in descending order by function

    +
    +

    func: Callable

    +
    +
    +

    list of cpl_query.iterable.ordered_iterable_abc.OrderedIterableABC

    +
    +
    + +
    + +
    +
    +

    cpl_query.base.queryable_abc

    +
    +
    +class cpl_query.base.queryable_abc.QueryableABC(t: Optional[type] = None, values: Optional[list] = None)
    +

    Bases: SequenceABC

    +
    +
    +all(_func: Optional[Callable] = None) bool
    +

    Checks if every element of list equals result found by function

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +

    bool

    +
    +
    + +
    +
    +any(_func: Optional[Callable] = None) bool
    +

    Checks if list contains result found by function

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +

    bool

    +
    +
    + +
    +
    +average(_func: Optional[Callable] = None) Union[int, float, complex]
    +

    Returns average value of list

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +

    Union[int, float, complex]

    +
    +
    + +
    +
    +contains(_value: object) bool
    +

    Checks if list contains value given by function

    +
    +
    +
    value: object

    value

    +
    +
    +
    +
    +

    bool

    +
    +
    + +
    +
    +count(_func: Optional[Callable] = None) int
    +

    Returns length of list or count of found elements

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +

    int

    +
    +
    + +
    +
    +distinct(_func: Optional[Callable] = None) QueryableABC
    +

    Returns list without redundancies

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +element_at(_index: int) any
    +

    Returns element at given index

    +
    +
    +
    _index: int

    index

    +
    +
    +
    +
    +

    Value at _index: any

    +
    +
    + +
    +
    +element_at_or_default(_index: int) Optional[any]
    +

    Returns element at given index or None

    +
    +
    +
    _index: int

    index

    +
    +
    +
    +
    +

    Value at _index: Optional[any]

    +
    +
    + +
    +
    +first() any
    +

    Returns first element

    +
    +

    First element of list: any

    +
    +
    + +
    +
    +first_or_default() any
    +

    Returns first element or None

    +
    +

    First element of list: Optional[any]

    +
    +
    + +
    +
    +for_each(_func: Optional[Callable] = None)
    +

    Runs given function for each element of list

    +
    +
    +
    func: :class: Callable

    function to call

    +
    +
    +
    +
    + +
    +
    +group_by(_func: Optional[Callable] = None) QueryableABC
    +

    Groups by func

    +
    +

    Grouped list[list[any]]: any

    +
    +
    + +
    +
    +last() any
    +

    Returns last element

    +
    +

    Last element of list: any

    +
    +
    + +
    +
    +last_or_default() any
    +

    Returns last element or None

    +
    +

    Last element of list: Optional[any]

    +
    +
    + +
    +
    +max(_func: Optional[Callable] = None) Union[int, float, complex]
    +

    Returns the highest value

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +

    Union[int, float, complex]

    +
    +
    + +
    +
    +median(_func=None) Union[int, float]
    +

    Return the median value of data elements

    +
    +

    Union[int, float]

    +
    +
    + +
    +
    +min(_func: Optional[Callable] = None) Union[int, float, complex]
    +

    Returns the lowest value

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +

    Union[int, float, complex]

    +
    +
    + +
    +
    +order_by(_func: Optional[Callable] = None) QueryableABC
    +

    Sorts elements by function in ascending order

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +order_by_descending(_func: Optional[Callable] = None) QueryableABC
    +

    Sorts elements by function in descending order

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +reverse() QueryableABC
    +

    Reverses list

    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +select(_func: Callable) QueryableABC
    +

    Formats each element of list to a given format

    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +select_many(_func: Callable) QueryableABC
    +

    Flattens resulting lists to one

    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +single() any
    +

    Returns one single element of list

    +
    +

    Found value: any

    +
    +
    +

    ArgumentNoneException: when argument is None +Exception: when argument is None or found more than one element

    +
    +
    + +
    +
    +single_or_default() Optional[any]
    +

    Returns one single element of list

    +
    +

    Found value: Optional[any]

    +
    +
    + +
    +
    +skip(_index: int) QueryableABC
    +

    Skips all elements from index

    +
    +
    +
    _index: int

    index

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +skip_last(_index: int) QueryableABC
    +

    Skips all elements after index

    +
    +
    +
    _index: int

    index

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +sum(_func: Optional[Callable] = None) Union[int, float, complex]
    +

    Sum of all values

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +

    Union[int, float, complex]

    +
    +
    + +
    +
    +take(_index: int) QueryableABC
    +

    Takes all elements from index

    +
    +
    +
    _index: int

    index

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +take_last(_index: int) QueryableABC
    +

    Takes all elements after index

    +
    +
    +
    _index: int

    index

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    +
    +where(_func: Optional[Callable] = None) QueryableABC
    +

    Select element by function

    +
    +
    +
    func: Callable

    selected value

    +
    +
    +
    +
    +
    +
    class
    +

    cpl_query.base.queryable_abc.QueryableABC

    +
    +
    +
    +
    + +
    + +
    +
    +

    cpl_query.base.sequence_abc

    +
    +
    +class cpl_query.base.sequence_abc.SequenceABC(t: Optional[type] = None, values: Optional[list] = None)
    +

    Bases: ABC

    +
    +
    +copy() SequenceABC
    +

    Creates a copy of sequence

    +
    +

    SequenceABC

    +
    +
    + +
    +
    +classmethod empty() SequenceABC
    +

    Returns an empty sequence

    +
    +

    Sequence object that contains no elements

    +
    +
    + +
    +
    +index(_object: object) int
    +

    Returns the index of given element

    +
    +

    Index of object

    +
    +
    +

    IndexError if object not in sequence

    +
    +
    + +
    +
    +next()
    +
    + +
    +
    +classmethod range(start: int, length: int) SequenceABC
    +
    + +
    +
    +to_list() list
    +

    Converts :class: cpl_query.base.sequence_abc.SequenceABC to :class: list

    +
    +
    +
    class
    +

    list

    +
    +
    +
    +
    + +
    +
    +property type: type
    +
    + +
    + +
    +
    +

    cpl_query.base.sequence_values

    +
    +
    +class cpl_query.base.sequence_values.SequenceValues(data: list, _t: type)
    +

    Bases: object

    +
    +
    +next()
    +
    + +
    +
    +reset()
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_query.enumerable.html b/docs/build/html/cpl_query.enumerable.html new file mode 100644 index 00000000..36b65ec3 --- /dev/null +++ b/docs/build/html/cpl_query.enumerable.html @@ -0,0 +1,161 @@ + + + + + + + cpl_query.enumerable — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    cpl_query.enumerable

    +
    +

    cpl_query.enumerable.enumerable

    +
    +
    +class cpl_query.enumerable.enumerable.Enumerable(t: Optional[type] = None, values: Optional[list] = None)
    +

    Bases: EnumerableABC

    +

    Implementation of :class: cpl_query.enumerable.enumerable_abc.EnumerableABC

    +
    + +
    +
    +

    cpl_query.enumerable.enumerable_abc

    +
    +
    +class cpl_query.enumerable.enumerable_abc.EnumerableABC(t: Optional[type] = None, values: Optional[list] = None)
    +

    Bases: QueryableABC

    +

    ABC to define functions on list

    +
    +
    +set_remove_error_check(_value: bool)
    +

    Set flag to check if element exists before removing

    +
    + +
    +
    +to_iterable() IterableABC
    +

    Converts :class: cpl_query.enumerable.enumerable_abc.EnumerableABC to :class: cpl_query.iterable.iterable_abc.IterableABC

    +
    +
    +
    class
    +

    cpl_query.iterable.iterable_abc.IterableABC

    +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_query.exceptions.html b/docs/build/html/cpl_query.exceptions.html deleted file mode 100644 index 67a3674a..00000000 --- a/docs/build/html/cpl_query.exceptions.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - cpl_query.exceptions — Common Python Library documentation - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -

    cpl_query.exceptions

    -
    -

    cpl_query.exceptions

    -
    -
    -exception cpl_query.exceptions.ArgumentNoneException(arg: ExceptionArgument)
    -

    Bases: Exception

    -

    Exception when argument is None

    -
    - -
    -
    -class cpl_query.exceptions.ExceptionArgument(value)
    -

    Bases: Enum

    -

    An enumeration.

    -
    -
    -func = 'func'
    -
    - -
    -
    -index = 'index'
    -
    - -
    -
    -list = 'list'
    -
    - -
    -
    -type = 'type'
    -
    - -
    -
    -value = 'value'
    -
    - -
    - -
    -
    -exception cpl_query.exceptions.IndexOutOfRangeException
    -

    Bases: Exception

    -

    Exception when index is out of range

    -
    - -
    -
    -exception cpl_query.exceptions.InvalidTypeException
    -

    Bases: Exception

    -

    Exception when type is invalid

    -
    - -
    -
    -exception cpl_query.exceptions.WrongTypeException
    -

    Bases: Exception

    -

    Exception when type is unexpected

    -
    - -
    -
    - - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/docs/build/html/cpl_query.extension.html b/docs/build/html/cpl_query.extension.html index d374cce7..0056ee6e 100644 --- a/docs/build/html/cpl_query.extension.html +++ b/docs/build/html/cpl_query.extension.html @@ -19,8 +19,8 @@ - - + + @@ -42,20 +42,20 @@
  22. Introduction to the CPL Docs
  23. Getting started
  24. Contributing to CPL
  25. -
  26. CLI Reference
  27. -
  28. API Reference
  29. -
  30. Query Reference @@ -72,7 +72,7 @@
    • »
    • -
    • Query Reference »
    • +
    • Query reference »
    • cpl_query.extension
    • View page source @@ -85,908 +85,36 @@

      cpl_query.extension

      -
      -

      cpl_query.extension.iterable_abc

      -
      -
      -class cpl_query.extension.iterable_abc.IterableABC(t: Optional[type] = None, values: Optional[list] = None)
      -

      Bases: ABC, list

      -

      ABC to define functions on list

      -
      -
      -abstract all(func: Callable) bool
      -

      Checks if every element of list equals result found by function

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      bool

      -
      -
      - -
      -
      -abstract any(func: Callable) bool
      -

      Checks if list contains result found by function

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      bool

      -
      -
      - -
      -
      -append(_IterableABC__object: object) None
      -

      Adds element to list

      -
      -
      -
      __object: object

      value

      -
      -
      -
      -
      - -
      -
      -abstract average(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Returns average value of list

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -abstract contains(value: object) bool
      -

      Checks if list contains value given by function

      -
      -
      -
      value: object

      value

      -
      -
      -
      -
      -

      bool

      -
      -
      - -
      -
      -abstract count(func: Optional[Callable] = None) int
      -

      Returns length of list or count of found elements

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      int

      -
      -
      - -
      -
      -abstract distinct(func: Optional[Callable] = None) IterableABC
      -

      Returns list without redundancies

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -abstract element_at(index: int) any
      -

      Returns element at given index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -

      Value at index: any

      -
      -
      - -
      -
      -abstract element_at_or_default(index: int) Optional[any]
      -

      Returns element at given index or None

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -

      Value at index: Optional[any]

      -
      -
      - -
      -
      -extend(_IterableABC__iterable: Iterable) None
      -

      Adds elements of given list to list

      -
      -
      -
      __iterable: :class: cpl_query.extension.iterable.Iterable

      index

      -
      -
      -
      -
      - -
      -
      -abstract first() any
      -

      Returns first element

      -
      -

      First element of list: any

      -
      -
      - -
      -
      -abstract first_or_default() any
      -

      Returns first element or None

      -
      -

      First element of list: Optional[any]

      -
      -
      - -
      -
      -abstract for_each(func: Callable)
      -

      Runs given function for each element of list

      -
      -
      -
      func: :class: Callable

      function to call

      -
      -
      -
      -
      - -
      -
      -abstract last() any
      -

      Returns last element

      -
      -

      Last element of list: any

      -
      -
      - -
      -
      -abstract last_or_default() any
      -

      Returns last element or None

      -
      -

      Last element of list: Optional[any]

      -
      -
      - -
      -
      -abstract max(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Returns highest value

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -abstract min(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Returns highest value

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -abstract order_by(func: Callable) IterableABC
      -

      Sorts elements by function in ascending order

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -abstract order_by_descending(func: Callable) IterableABC
      -

      Sorts elements by function in descending order

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -abstract reverse() IterableABC
      -

      Reverses list

      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -abstract single() any
      -

      Returns one single element of list

      -
      -

      Found value: any

      -
      -
      -

      ArgumentNoneException: when argument is None -Exception: when argument is None or found more than one element

      -
      -
      - -
      -
      -abstract single_or_default() Optional[any]
      -

      Returns one single element of list

      -
      -

      Found value: Optional[any]

      -
      -
      - -
      -
      -abstract skip(index: int) IterableABC
      -

      Skips all elements from index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -abstract skip_last(index: int) IterableABC
      -

      Skips all elements after index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -abstract sum(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Sum of all values

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -abstract take(index: int) IterableABC
      -

      Takes all elements from index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -abstract take_last(index: int) IterableABC
      -

      Takes all elements after index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -to_list() list
      -

      Converts :class: cpl_query.extension.iterable_abc.IterableABC to :class: list

      -
      -
      -
      class
      -

      list

      -
      -
      -
      -
      - -
      -
      -property type: type
      -
      - -
      -
      -abstract where(func: Callable) IterableABC
      -

      Select element by function

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      - -
      -
      -

      cpl_query.extension.iterable

      -
      -
      -class cpl_query.extension.iterable.Iterable(t: Optional[type] = None, values: Optional[list] = None)
      -

      Bases: IterableABC

      -
      -
      -all(func: Callable) bool
      -

      Checks if every element of list equals result found by function

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      bool

      -
      -
      - -
      -
      -any(func: Callable) bool
      -

      Checks if list contains result found by function

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      bool

      -
      -
      - -
      -
      -average(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Returns average value of list

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -contains(value: object) bool
      -

      Checks if list contains value given by function

      -
      -
      -
      value: object

      value

      -
      -
      -
      -
      -

      bool

      -
      -
      - -
      -
      -count(func: Optional[Callable] = None) int
      -

      Returns length of list or count of found elements

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      int

      -
      -
      - -
      -
      -distinct(func: Optional[Callable] = None) IterableABC
      -

      Returns list without redundancies

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -element_at(index: int) any
      -

      Returns element at given index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -

      Value at index: any

      -
      -
      - -
      -
      -element_at_or_default(index: int) Optional[any]
      -

      Returns element at given index or None

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -

      Value at index: Optional[any]

      -
      -
      - -
      -
      -first() any
      -

      Returns first element

      -
      -

      First element of list: any

      -
      -
      - -
      -
      -first_or_default() Optional[any]
      -

      Returns first element or None

      -
      -

      First element of list: Optional[any]

      -
      -
      - -
      -
      -for_each(func: Callable)
      -

      Runs given function for each element of list

      -
      -
      -
      func: :class: Callable

      function to call

      -
      -
      -
      -
      - -
      -
      -last() any
      -

      Returns last element

      -
      -

      Last element of list: any

      -
      -
      - -
      -
      -last_or_default() Optional[any]
      -

      Returns last element or None

      -
      -

      Last element of list: Optional[any]

      -
      -
      - -
      -
      -max(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Returns highest value

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -min(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Returns highest value

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -order_by(func: Callable) OrderedIterableABC
      -

      Sorts elements by function in ascending order

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -order_by_descending(func: Callable) OrderedIterableABC
      -

      Sorts elements by function in descending order

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -reverse() IterableABC
      -

      Reverses list

      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -single() any
      -

      Returns one single element of list

      -
      -

      Found value: any

      -
      -
      -

      ArgumentNoneException: when argument is None -Exception: when argument is None or found more than one element

      -
      -
      - -
      -
      -single_or_default() Optional[any]
      -

      Returns one single element of list

      -
      -

      Found value: Optional[any]

      -
      -
      - -
      -
      -skip(index: int) IterableABC
      -

      Skips all elements from index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -skip_last(index: int) IterableABC
      -

      Skips all elements after index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -sum(func: Optional[Callable] = None) Union[int, float, complex]
      -

      Sum of all values

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -

      Union[int, float, complex]

      -
      -
      - -
      -
      -take(index: int) IterableABC
      -

      Takes all elements from index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -take_last(index: int) IterableABC
      -

      Takes all elements after index

      -
      -
      -
      index: int

      index

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      -
      -where(func: Callable) IterableABC
      -

      Select element by function

      -
      -
      -
      func: Callable

      selected value

      -
      -
      -
      -
      -
      -
      class
      -

      cpl_query.extension.iterable_abc.IterableABC

      -
      -
      -
      -
      - -
      - -

      cpl_query.extension.list

      -class cpl_query.extension.list.List(t: Optional[type] = None, values: Optional[list] = None)
      -

      Bases: Iterable

      +class cpl_query.extension.list.List(t: Optional[type] = None, values: Optional[Iterable] = None) +

      Bases: Iterable

      Implementation of :class: cpl_query.extension.iterable.Iterable

      -
      - -
      -
      -

      cpl_query.extension.ordered_iterable_abc

      -
      -
      -class cpl_query.extension.ordered_iterable_abc.OrderedIterableABC(_t: type, _func: Optional[Callable] = None)
      -

      Bases: IterableABC

      -
      -abstract then_by(func: Callable) OrderedIterableABC
      -

      Sorts OrderedList in ascending order by function

      +
      +to_enumerable() EnumerableABC
      +

      Converts :class: cpl_query.iterable.iterable_abc.IterableABC to :class: cpl_query.enumerable.enumerable_abc.EnumerableABC

      -

      func: Callable

      -
      -
      -

      list of cpl_query.extension.OrderedIterableABC

      +
      +
      class
      +

      cpl_query.enumerable.enumerable_abc.EnumerableABC

      +
      +
      -
      -abstract then_by_descending(func: Callable) OrderedIterableABC
      -

      Sorts OrderedList in descending order by function

      +
      +to_iterable() IterableABC
      +

      Converts :class: cpl_query.enumerable.enumerable_abc.EnumerableABC to :class: cpl_query.iterable.iterable_abc.IterableABC

      -

      func: Callable

      -
      -
      -

      list of cpl_query.extension.OrderedIterableABC

      -
      -
      - -
      - -
      -
      -

      cpl_query.extension.ordered_iterable

      -
      -
      -class cpl_query.extension.ordered_iterable.OrderedIterable(_t: Optional[type] = None)
      -

      Bases: Iterable, OrderedIterableABC

      -

      Implementation of :class: cpl_query.extension.Iterable cpl_query.extension.OrderedIterableABC

      -
      -
      -then_by(_func: Callable) OrderedIterableABC
      -

      Sorts OrderedList in ascending order by function

      -
      -

      func: Callable

      -
      -
      -

      list of cpl_query.extension.OrderedIterableABC

      -
      -
      - -
      -
      -then_by_descending(_func: Callable) OrderedIterableABC
      -

      Sorts OrderedList in descending order by function

      -
      -

      func: Callable

      -
      -
      -

      list of cpl_query.extension.OrderedIterableABC

      +
      +
      class
      +

      cpl_query.iterable.iterable_abc.IterableABC

      +
      +
      @@ -999,14 +127,14 @@ Exception: when argument is None or found more than one element

  31. +
  32. features (cpl_discord.container.guild.Guild attribute) +
  33. file_level (cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum attribute)
  34. filename (cpl_core.logging.logging_settings.LoggingSettings property) @@ -989,34 +1602,22 @@
  35. (cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum attribute)
  36. -
  37. first() (cpl_query.extension.iterable.Iterable method) - -
  38. -
  39. first_or_default() (cpl_query.extension.iterable.Iterable method) - -
  40. first_to_lower() (cpl_core.utils.string.String static method)
  41. first_to_upper() (cpl_core.utils.string.String static method)
  42. FirstCharToLowerPipe (class in cpl_core.pipes.first_char_to_lower_pipe)
  43. - -
  44. function (cpl_core.console.console_call.ConsoleCall property)
  45. @@ -1049,6 +1652,12 @@

    G

    - + @@ -1099,6 +1736,10 @@
  46. header_list (cpl_core.mailing.email.EMail property)
  47. +
  48. hoist (cpl_discord.container.role.Role attribute) +
  49. + + -

    P

    - +
    +
    +

    Q

    + + +
    +

    R

    + -
    -
  50. reset_cursor_position() (cpl_core.console.console.Console class method) +
  51. remove() (cpl_query.iterable.iterable_abc.IterableABC method) +
  52. +
  53. reset() (cpl_query.base.sequence_values.SequenceValues method)
  54. +
  55. select_many() (cpl_query.base.queryable_abc.QueryableABC method) +
  56. send_mail() (cpl_core.mailing.email_client_abc.EMailClientABC method)
  57. +
  58. SequenceABC (class in cpl_query.base.sequence_abc) +
  59. +
  60. SequenceValues (class in cpl_query.base.sequence_values) +
  61. server (cpl_core.database.connection.database_connection.DatabaseConnection property)
  62. -
    @@ -1604,30 +3059,40 @@ +
  63. timed_out_until (cpl_discord.container.member.Member attribute) +
  64. TimeFormatSettings (class in cpl_core.time.time_format_settings)
  65. TimeFormatSettingsNamesEnum (class in cpl_core.time.time_format_settings_names_enum)
  66. +
  67. to_enumerable() (cpl_query.extension.list.List method) + +
  68. +
  69. to_iterable() (cpl_query.enumerable.enumerable_abc.EnumerableABC method) + +
  70. to_list() (cpl_core.configuration.configuration_variable_name_enum.ConfigurationVariableNameEnum static method)
  71. transient (cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum attribute)
  72. -
  73. type (cpl_query.exceptions.ExceptionArgument attribute) +
  74. translate() (cpl_translation.translation_service.TranslationService method)
  75. +
  76. TranslatePipe (class in cpl_translation.translate_pipe) +
  77. +
  78. TranslationService (class in cpl_translation.translation_service) +
  79. +
  80. TranslationServiceABC (class in cpl_translation.translation_service_abc) +
  81. +
  82. TranslationSettings (class in cpl_translation.translation_settings) +
  83. +
  84. type (cpl_query.base.sequence_abc.SequenceABC property) + +
  85. @@ -1694,6 +3195,10 @@

    U

    + -
    +
    @@ -1806,7 +3315,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/getting_started.html b/docs/build/html/getting_started.html index 4a2ad194..30d07942 100644 --- a/docs/build/html/getting_started.html +++ b/docs/build/html/getting_started.html @@ -47,9 +47,11 @@
  86. Contributing to CPL
  87. -
  88. CLI Reference
  89. -
  90. API Reference
  91. -
  92. Query Reference
  93. +
  94. CLI reference
  95. +
  96. API reference
  97. +
  98. Discord reference
  99. +
  100. Query reference
  101. +
  102. Translation reference
  103. @@ -150,7 +152,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/index.html b/docs/build/html/index.html index 644661a1..0bf47481 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -41,9 +41,11 @@
  104. Introduction to the CPL Docs
  105. Getting started
  106. Contributing to CPL
  107. -
  108. CLI Reference
  109. -
  110. API Reference
  111. -
  112. Query Reference
  113. +
  114. CLI reference
  115. +
  116. API reference
  117. +
  118. Discord reference
  119. +
  120. Query reference
  121. +
  122. Translation reference
  123. @@ -234,9 +236,11 @@
  124. Introduction to the CPL Docs
  125. Getting started
  126. Contributing to CPL
  127. -
  128. CLI Reference
  129. -
  130. API Reference
  131. -
  132. Query Reference
  133. +
  134. CLI reference
  135. +
  136. API reference
  137. +
  138. Discord reference
  139. +
  140. Query reference
  141. +
  142. Translation reference
  143. @@ -252,7 +256,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/introduction.html b/docs/build/html/introduction.html index 9b2551b5..6db361f3 100644 --- a/docs/build/html/introduction.html +++ b/docs/build/html/introduction.html @@ -46,9 +46,11 @@
  144. Getting started
  145. Contributing to CPL
  146. -
  147. CLI Reference
  148. -
  149. API Reference
  150. -
  151. Query Reference
  152. +
  153. CLI reference
  154. +
  155. API reference
  156. +
  157. Discord reference
  158. +
  159. Query reference
  160. +
  161. Translation reference
  162. @@ -187,7 +189,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html index fee698ea..f31637d2 100644 --- a/docs/build/html/modules.html +++ b/docs/build/html/modules.html @@ -40,9 +40,11 @@
  163. Introduction to the CPL Docs
  164. Getting started
  165. Contributing to CPL
  166. -
  167. CLI Reference
  168. -
  169. API Reference
  170. -
  171. Query Reference
  172. +
  173. CLI reference
  174. +
  175. API reference
  176. +
  177. Discord reference
  178. +
  179. Query reference
  180. +
  181. Translation reference
  182. @@ -131,7 +133,7 @@ -
  183. CLI Reference @@ -90,7 +92,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index 72e5880f..a2b6df51 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["cli.add", "cli.build", "cli.generate", "cli.help", "cli.install", "cli.new", "cli.overview", "cli.publish", "cli.remove", "cli.start", "cli.uninstall", "cli.update", "cli.version", "contributing", "cpl_cli", "cpl_core", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "cpl_query", "cpl_query.exceptions", "cpl_query.extension", "getting_started", "index", "introduction", "modules", "quickstart", "setup", "tutorials", "tutorials.appsettings", "tutorials.console", "tutorials.console-arguments", "tutorials.create-startup", "tutorials.extend-application", "tutorials.extend-startup", "tutorials.logging", "tutorials.mail"], "filenames": ["cli.add.md", "cli.build.md", "cli.generate.md", "cli.help.md", "cli.install.md", "cli.new.md", "cli.overview.md", "cli.publish.md", "cli.remove.md", "cli.start.md", "cli.uninstall.md", "cli.update.md", "cli.version.md", "contributing.md", "cpl_cli.rst", "cpl_core.rst", "cpl_core.application.rst", "cpl_core.configuration.rst", "cpl_core.console.rst", "cpl_core.database.rst", "cpl_core.database.connection.rst", "cpl_core.database.context.rst", "cpl_core.dependency_injection.rst", "cpl_core.environment.rst", "cpl_core.logging.rst", "cpl_core.mailing.rst", "cpl_core.pipes.rst", "cpl_core.time.rst", "cpl_core.utils.rst", "cpl_query.rst", "cpl_query.exceptions.rst", "cpl_query.extension.rst", "getting_started.rst", "index.rst", "introduction.md", "modules.rst", "quickstart.md", "setup.md", "tutorials.rst", "tutorials.appsettings.md", "tutorials.console.md", "tutorials.console-arguments.md", "tutorials.create-startup.md", "tutorials.extend-application.md", "tutorials.extend-startup.md", "tutorials.logging.md", "tutorials.mail.md"], "titles": ["cpl add", "cpl build", "cpl generate", "cpl help", "cpl install", "cpl new", "CLI Overview and Command Reference", "cpl publish", "cpl remove", "cpl start", "cpl uninstall", "cpl update", "cpl version", "Contributing to CPL", "CLI Reference", "API Reference", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "Query Reference", "cpl_query.exceptions", "cpl_query.extension", "Getting started", "Introduction to the CPL Docs", "Introduction to the CPL Docs", "cpl", "Getting started with CPL", "Setting up the local environment and workspace", "Tutorials", "Using appsettings.json", "Use cpl_core.console.Console", "Handle console arguments", "Create startup class", "Extend application", "Extend startup", "Use builtin logger", "Send mails"], "terms": {"remov": [0, 6, 7, 14, 35], "project": [0, 1, 4, 6, 7, 8, 10, 11, 13, 14, 32, 35, 37], "from": [0, 6, 7, 8, 10, 12, 13, 16, 17, 18, 19, 31, 33, 34, 36], "workspac": [0, 1, 5, 6, 8, 32, 35], "sourc": [0, 1, 7, 13, 28, 36, 37], "target": [0, 1], "A": [0, 5, 13], "refer": [0, 8, 33, 34, 35], "given": [0, 1, 4, 6, 7, 10, 17, 18, 19, 22, 28, 31], "If": [0, 5, 8, 13, 18, 37], "you": [0, 1, 6, 8, 13, 33, 34, 36, 37], "call": [0, 8, 16, 17, 18, 31], "command": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13, 14, 28, 33, 34, 35, 37], "can": [0, 1, 6, 7, 8, 13, 33, 37], "us": [0, 1, 5, 6, 7, 8, 13, 16, 18, 25, 28, 32, 33, 34, 35, 36, 37, 38], "name": [0, 1, 2, 5, 6, 7, 8, 17, 23, 24, 28, 37], "otherwis": [0, 8, 18], "path": [0, 1, 7, 8, 14, 17, 23, 24, 35, 37], "must": [0, 1, 6, 8, 13, 18], "specifi": [0, 4, 5, 6, 8, 10, 11, 17, 18], "valu": [0, 1, 2, 3, 4, 5, 7, 8, 10, 17, 18, 19, 22, 23, 24, 25, 26, 27, 30, 31], "type": [0, 1, 2, 3, 4, 7, 8, 10, 14, 16, 17, 22, 30, 31, 35], "which": [0, 6, 17, 18, 28, 37], "ha": [0, 18], "ad": [0, 13], "str": [0, 1, 2, 3, 4, 5, 7, 8, 10, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 36], "referenc": 0, "simul": [0, 4, 8, 10, 11], "whether": [0, 4, 5, 8, 10, 11, 17], "copi": 1, "an": [1, 6, 7, 16, 17, 18, 19, 22, 23, 24, 25, 27, 30, 36, 37], "python": [1, 13, 15, 28, 33, 34, 35, 36, 37], "app": [1, 6, 16, 32, 33, 34, 35, 36], "output": [1, 6, 7, 17, 18, 33, 34, 36, 37], "directori": [1, 6, 7, 23, 33, 34, 36], "execut": [1, 6, 7, 17, 28], "within": [1, 6, 13], "b": [1, 6, 13], "The": [1, 2, 4, 5, 6, 7, 8, 10, 13, 22, 25, 28, 33, 34, 36, 37], "consol": [1, 3, 5, 6, 7, 15, 17, 24, 32, 33, 34, 35, 36, 38], "librari": [1, 5, 6, 7, 15, 32, 33, 34, 35], "all": [1, 7, 12, 13, 17, 31], "includ": [1, 13, 37], "file": [1, 2, 6, 7, 8, 9, 13, 17, 33, 37], "run": [1, 5, 16, 17, 18, 21, 28, 31, 33, 34, 36, 37], "directli": [1, 13], "prepar": [1, 6, 7, 13, 16, 33], "publish": [1, 6, 14, 33, 35, 37], "them": 1, "argument": [1, 5, 6, 7, 11, 14, 17, 18, 28, 30, 31, 32, 33, 34, 35, 38], "base": [2, 5, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 36], "g": [2, 6], "abc": [2, 16, 17, 20, 21, 22, 23, 24, 25, 26, 31], "abstract": [2, 16, 17, 20, 21, 22, 23, 24, 25, 26, 31], "class": [2, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38], "enum": [2, 17, 18, 19, 22, 23, 24, 25, 27, 30], "pipe": [2, 15, 22, 33, 34, 35], "servic": [2, 5, 16, 17, 22, 24, 25, 33, 34, 36], "set": [2, 16, 17, 18, 19, 21, 22, 23, 24, 25, 27, 28, 32, 35, 36], "configmodel": 2, "test": [2, 13, 23, 33, 34, 36], "thread": [2, 18], "valid": [2, 25, 36], "list": [3, 6, 12, 17, 18, 21, 22, 25, 26, 28, 29, 30, 33, 35], "avail": [3, 6, 13], "short": [3, 6], "h": [3, 6], "show": [3, 18], "messag": [3, 18, 24], "thi": [3, 13, 16, 33, 34, 36, 37], "packag": [4, 5, 6, 10, 12, 28, 32, 33, 34, 35, 36], "via": [4, 10, 13, 33, 34], "pip": [4, 10, 12, 15, 33, 34, 35, 36, 37], "i": [4, 6, 36], "without": [4, 6, 13, 31], "deped": 4, "your": [4, 6, 9, 13, 33, 34, 37], "dev": [4, 10], "develop": [4, 6, 10, 13, 23, 33, 34, 36, 37], "mode": [4, 10], "virtual": [4, 10], "gener": [5, 6, 7, 14, 33, 35, 36, 37], "initi": [5, 32, 35], "add": [5, 6, 13, 14, 17, 22, 25, 31, 35, 36], "n": [5, 6, 36, 37], "see": [5, 13, 20, 26, 36, 37], "simpl": [5, 33, 34, 37], "applic": [5, 9, 15, 18, 23, 24, 25, 32, 33, 34, 35, 36, 37, 38], "async": [5, 16], "startup": [5, 16, 32, 33, 34, 35, 38], "provid": [5, 13, 16, 22, 33, 34, 36, 37], "noth": 5, "venv": 5, "instal": [6, 12, 14, 28, 32, 35, 36], "cpl": [6, 14, 15, 22, 32, 37], "To": [6, 13, 36, 37], "creat": [6, 7, 13, 16, 17, 18, 22, 24, 25, 28, 32, 33, 34, 35, 38], "build": [6, 7, 14, 16, 28, 33, 35, 36, 37], "serv": 6, "new": [6, 13, 14, 18, 35, 36, 37], "server": [6, 20, 25, 33, 34, 37], "go": [6, 13, 33], "parent": 6, "follow": [6, 13, 36, 37], "my": [6, 13, 37], "first": [6, 13, 26, 28, 31, 33, 34], "cd": [6, 37], "start": [6, 14, 33, 34, 35], "In": [6, 13, 36], "termin": [6, 18, 36, 37], "commandnameoralia": 6, "requiredarg": 6, "optionalsarg": 6, "most": [6, 36, 37], "some": 6, "option": [6, 13, 17, 18, 19, 22, 24, 25, 28, 31, 33, 34, 36], "have": [6, 13, 36, 37], "alias": [6, 17], "ar": [6, 7, 13, 17], "shown": [6, 17, 37], "statement": [6, 21], "each": [6, 17, 31], "prefix": [6, 17], "absolut": 6, "current": [6, 23], "work": [6, 13, 23, 33, 34], "either": 6, "root": 6, "take": [6, 17, 31], "artifact": 6, "addit": [6, 13], "ani": [6, 18, 26, 31], "defin": [6, 17, 18, 31, 37], "its": [6, 13], "own": 6, "suppli": 6, "same": 6, "format": [6, 24, 27], "immedi": 6, "alia": [6, 26], "descript": [6, 11, 14, 35], "dist": [6, 7], "help": [6, 13, 14, 33, 34, 35], "With": 6, "depend": [6, 11, 33, 34, 36], "p": [6, 7], "setup": [6, 7, 34, 37], "py": [6, 7, 28, 33, 36], "r": [6, 8], "s": [6, 9, 13, 32, 35], "restart": [6, 9, 37], "chang": [6, 9, 13, 21, 36], "uninstal": [6, 14, 28, 35], "ui": [6, 10], "updat": [6, 13, 14, 35], "u": [6, 11], "version": [6, 14, 35], "v": [6, 12], "data": [7, 18], "cpl_core": [7, 15, 32, 35, 36, 37, 38], "json": [7, 17, 32, 33, 34, 35, 36, 37, 38], "delet": 8, "cli": [12, 32, 33, 34, 35, 36], "we": [13, 36], "would": 13, "love": 13, "make": [13, 37], "even": 13, "better": 13, "than": [13, 31], "todai": 13, "As": 13, "contributor": 13, "here": [13, 37], "like": [13, 33, 36], "issus": 13, "find": 13, "our": 13, "gitea": 13, "repositori": 13, "fix": 13, "implement": [13, 22, 31], "pleas": 13, "consid": 13, "size": 13, "order": [13, 31], "determin": 13, "right": 13, "step": 13, "proce": 13, "For": 13, "major": [13, 26], "open": [13, 36, 37], "outlin": 13, "propos": 13, "so": [13, 37], "discuss": 13, "process": 13, "allow": 13, "coordin": [13, 18], "effort": 13, "prevent": 13, "duplic": 13, "craft": 13, "successfulli": 13, "accept": 13, "note": 13, "topic": 13, "document": 13, "significantli": 13, "re": 13, "write": [13, 18, 24, 33, 34], "count": [13, 31], "small": 13, "befor": [13, 18], "search": [13, 17, 22], "tracker": 13, "mayb": 13, "problem": 13, "alreadi": [13, 36, 37], "exist": 13, "might": 13, "inform": [13, 24, 37], "workaround": 13, "readili": 13, "want": [13, 36], "soon": [13, 32, 35, 38], "possibl": [13, 17], "need": [13, 36, 37], "reproduc": 13, "confirm": 13, "requir": 13, "minim": 13, "reproduct": 13, "scenario": 13, "give": 13, "wealth": 13, "import": [13, 36], "back": [13, 18], "forth": 13, "question": 13, "quickli": 13, "point": [13, 16, 18], "out": [13, 30, 36, 37], "well": 13, "save": [13, 17, 21], "maintain": 13, "time": [13, 15, 24, 35], "ultim": 13, "abl": 13, "more": [13, 26, 31, 37], "often": 13, "themselv": 13, "while": 13, "understand": [13, 33, 34, 36, 37], "sometim": 13, "hard": 13, "extract": 13, "essenti": [13, 36], "bit": 13, "larger": 13, "codebas": 13, "realli": 13, "isol": 13, "unfortun": 13, "investig": 13, "don": [13, 36], "t": [13, 31, 36], "hear": 13, "close": [13, 18], "doesn": 13, "enough": 13, "info": [13, 24, 33, 34], "pr": 13, "relat": 13, "Be": 13, "sure": 13, "describ": 13, "design": 13, "d": 13, "upfront": 13, "ensur": 13, "readi": [13, 37], "fork": 13, "sh": [13, 15, 35, 37], "edraft": [13, 15, 35, 37], "de": [13, 26, 37], "sh_cpl": [13, 37], "repo": 13, "git": 13, "branch": 13, "checkout": 13, "master": 13, "patch": 13, "appropri": 13, "case": [13, 26, 28, 36], "commit": 13, "line": [13, 18, 36], "automat": 13, "rm": 13, "edit": 13, "push": 13, "origin": 13, "send": [13, 25, 32, 33, 34, 35, 38], "team": 13, "reserv": 13, "commun": 13, "member": 13, "who": 13, "haven": 13, "been": 13, "good": 13, "citizen": 13, "Such": 13, "behavior": 13, "appli": 13, "outsid": 13, "manag": [13, 33, 34], "channel": 13, "ask": 13, "fixup": 13, "head": 13, "That": 13, "thank": 13, "consist": 13, "throughout": 13, "keep": 13, "mind": 13, "one": [13, 31], "unit": 13, "public": 13, "api": [13, 33, 34, 35], "method": 13, "pep": 13, "8": 13, "style": 13, "guid": 13, "By": 13, "agre": 13, "under": 13, "mit": [13, 26], "overview": [14, 35, 37], "tabl": [14, 18, 28, 32, 33, 34, 35], "content": [14, 15, 32, 35], "basic": [14, 35, 36, 37], "workflow": [14, 35], "languag": [14, 35], "syntax": [14, 35], "rel": [14, 35], "schemat": [14, 35], "flag": [14, 35], "application_abc": [15, 35], "application_build": [15, 35], "application_builder_abc": [15, 35], "startup_abc": [15, 35], "configur": [15, 16, 22, 33, 34, 35], "configuration_abc": [15, 16, 22, 35], "configuration_model_abc": [15, 35], "configuration_variable_name_enum": [15, 35], "console_argu": [15, 35], "background_color_enum": [15, 35], "console_cal": [15, 35], "foreground_color_enum": [15, 35], "spinner_thread": [15, 35], "databas": [15, 22, 35], "connect": [15, 19, 21, 25, 35], "database_connect": [15, 19, 35], "database_connection_abc": [15, 19, 35], "context": [15, 19, 22, 35, 37], "database_context": [15, 19, 35], "database_context_abc": [15, 19, 22, 35], "submodul": [15, 35], "database_model": [15, 35], "database_set": [15, 20, 21, 35], "database_settings_name_enum": [15, 35], "dependency_inject": [15, 16, 35], "service_collect": [15, 35], "service_collection_abc": [15, 16, 35], "service_descriptor": [15, 35], "service_lifetime_enum": [15, 35], "service_provid": [15, 35], "service_provider_abc": [15, 16, 35], "environ": [15, 16, 17, 24, 25, 32, 33, 34, 35], "application_environ": [15, 35], "application_environment_abc": [15, 16, 24, 25, 35], "environment_name_enum": [15, 35], "log": [15, 25, 33, 34, 35], "logger_abc": [15, 25, 35], "logger_servic": [15, 35], "logging_level_enum": [15, 35], "logging_set": [15, 35], "logging_settings_name_enum": [15, 35], "mail": [15, 32, 33, 34, 35, 38], "email": [15, 35], "email_client_abc": [15, 35], "email_client_servic": [15, 35], "email_client_set": [15, 35], "email_client_settings_name_enum": [15, 35], "bool_pip": [15, 35], "modul": [15, 35], "first_char_to_lower_pip": [15, 35], "first_to_upper_pip": [15, 35], "ip_address_pip": [15, 35], "pipe_abc": [15, 35], "to_camel_case_pip": [15, 35], "to_snake_case_pip": [15, 35], "version_pip": [15, 35], "core": [15, 20, 33, 35, 37], "common": [15, 33, 34, 35], "time_format_set": [15, 24, 35], "time_format_settings_names_enum": [15, 35], "util": [15, 33, 34, 35], "credential_manag": [15, 35], "string": [15, 18, 20, 24, 25, 26, 33, 34, 35, 36], "applicationabc": 16, "config": [16, 22], "configurationabc": [16, 17, 22], "serviceproviderabc": [16, 17, 22], "contain": [16, 31], "object": [16, 17, 18, 22, 25, 28, 31, 33, 34], "load": 16, "appset": [16, 32, 35, 36, 38], "instanc": [16, 22], "main": [16, 36], "custom": [16, 17, 23, 33, 34], "entri": [16, 18], "run_async": 16, "applicationbuild": 16, "applicationbuilderabc": 16, "build_async": 16, "use_extens": 16, "extens": [16, 29, 33, 34, 35], "union": [16, 17, 18, 22, 31], "applicationextensionabc": 16, "startupextensionabc": 16, "use_startup": 16, "startupabc": 16, "arg": [16, 17, 18, 21, 26, 28, 30], "configure_configur": 16, "env": [16, 24], "applicationenvironmentabc": [16, 17, 23, 24, 25], "configure_servic": 16, "servicecollectionabc": [16, 22], "add_configur": 17, "key_typ": 17, "configurationmodelabc": [17, 19, 24, 25, 27], "add_console_argu": 17, "argumentabc": 17, "known": 17, "consoleargumentabc": 17, "add_environment_vari": 17, "read": [17, 18, 36], "variabl": [17, 28], "add_json_fil": 17, "bool": [17, 18, 19, 25, 26, 31], "none": [17, 18, 22, 24, 25, 28, 30, 31], "true": 17, "error": [17, 18, 24, 33, 34], "should": [17, 36, 37], "occur": 17, "wa": [17, 37], "found": [17, 31], "place": 17, "store": 17, "properti": [17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 31], "additional_argu": 17, "argument_error_funct": 17, "callabl": [17, 18, 22, 31], "argument_abc": 17, "create_console_argu": 17, "arg_typ": 17, "argumenttypeenum": 17, "token": 17, "kwarg": [17, 18], "begin": 17, "value_token": 17, "were": 17, "is_value_token_opt": 17, "runnabl": 17, "when": [17, 18, 30, 31], "for_each_argu": 17, "iter": [17, 29, 35], "through": [17, 36], "function": [17, 18, 28, 31, 33, 36], "get_configur": 17, "search_typ": 17, "return": [17, 18, 22, 25, 31, 36], "parse_console_argu": 17, "invalid": [17, 30], "from_dict": [17, 19, 24, 25, 27], "dict": [17, 18, 19, 24, 25, 26, 27], "convert": [17, 24, 25, 26, 27, 28, 31, 33, 34], "attribut": [17, 19, 24, 25, 27], "configurationvariablenameenum": 17, "enumer": [17, 18, 19, 22, 23, 24, 25, 27, 30], "static": [17, 25, 28], "to_list": [17, 31], "backgroundcolorenum": 18, "blue": 18, "on_blu": 18, "cyan": 18, "on_cyan": 18, "default": [18, 37], "on_default": 18, "green": 18, "on_green": 18, "grei": 18, "on_grei": 18, "magenta": 18, "on_magenta": 18, "red": 18, "on_r": 18, "white": 18, "on_whit": 18, "yellow": 18, "on_yellow": 18, "handl": [18, 28, 32, 33, 34, 35, 38], "input": [18, 33, 34, 36], "background_color": 18, "bytes_or_buff": 18, "encod": [18, 28], "expos": 18, "buffer": [18, 19], "decod": [18, 28], "handler": 18, "result": [18, 25, 28, 31], "__str__": 18, "repr": 18, "sy": 18, "getdefaultencod": 18, "strict": 18, "classmethod": [18, 28], "banner": [18, 33, 34], "print": [18, 36], "clear": 18, "color_reset": 18, "reset": [18, 28], "color": 18, "disabl": 18, "interact": 18, "enabl": [18, 36], "tb": 18, "traceback": 18, "foreground_color": 18, "read_lin": 18, "next": [18, 32, 35], "reset_cursor_posit": 18, "cursor": [18, 20, 21], "posit": 18, "select": [18, 21, 31, 36], "char": [18, 26, 28], "header_foreground_color": 18, "foregroundcolorenum": 18, "header_background_color": 18, "option_foreground_color": 18, "option_background_color": 18, "cursor_foreground_color": 18, "cursor_background_color": 18, "menu": [18, 32, 33, 34, 35], "charact": 18, "element": [18, 21, 31], "header": [18, 24, 25], "foreground": 18, "background": 18, "set_background_color": 18, "set_cursor_posit": 18, "x": 18, "int": [18, 19, 25, 26, 28, 31, 36], "y": [18, 36], "set_foreground_color": 18, "set_hold_back": 18, "spinner": [18, 33, 34], "text_foreground_color": 18, "spinner_foreground_color": 18, "text_background_color": 18, "spinner_background_color": 18, "end": [18, 24], "stop": 18, "text": 18, "keyword": 18, "activ": 18, "last": [18, 31], "write_at": [18, 33, 34], "write_lin": [18, 33, 34, 36], "write_line_at": [18, 33, 34], "consolecal": 18, "repres": [18, 19, 23, 25], "hold": 18, "spinnerthread": 18, "msg_len": 18, "length": [18, 28, 31, 36], "exit": [18, 36], "stop_spin": 18, "databaseset": [19, 20, 21, 22], "auth_plugin": 19, "charset": 19, "host": [19, 25], "password": [19, 36], "port": [19, 25], "use_unicod": 19, "user": [19, 36], "databasesettingsnameenum": 19, "authplugin": 19, "useunicod": 19, "databaseconnect": 20, "databaseconnectionabc": 20, "represent": [20, 21, 22, 24, 25, 27], "connection_str": 20, "http": [20, 37], "doc": 20, "sqlalchemi": 20, "org": 20, "en": 20, "14": 20, "engin": 20, "html": 20, "mysqlcursorbuff": [20, 21], "mysqlconnectionabstract": 20, "databasecontext": 21, "databasecontextabc": [21, 22], "save_chang": 21, "tupl": [21, 26], "sql": 21, "fetch": 21, "servicecollect": 22, "collect": 22, "add_db_context": 22, "db_context_typ": 22, "db_set": 22, "db_context": 22, "add_log": 22, "intern": 22, "logger": [22, 24, 25, 32, 33, 34, 35, 38], "add_pip": 22, "transient": [22, 33, 34], "add_scop": 22, "service_typ": 22, "scope": [22, 33, 34], "lifetim": [22, 33, 34], "self": 22, "add_singleton": 22, "singleton": [22, 33, 34], "add_transi": 22, "build_service_provid": 22, "add_discord": 22, "discord": [22, 33], "add_transl": 22, "translat": [22, 33], "servicedescriptor": 22, "servicelifetimeenum": 22, "base_typ": 22, "descriptor": 22, "1": [22, 24, 26, 36], "0": [22, 24, 26, 36], "2": [22, 24, 26, 36], "serviceprovid": 22, "build_servic": 22, "instance_typ": 22, "create_scop": 22, "scopeabc": 22, "get_servic": 22, "set_scop": 22, "applicationenviron": 23, "environmentnameenum": 23, "product": [23, 33, 34], "application_nam": 23, "date_time_now": 23, "datetim": 23, "end_tim": 23, "environment_nam": 23, "host_nam": 23, "runtime_directori": 23, "set_runtime_directori": 23, "runtim": [23, 33, 34], "set_working_directori": 23, "working_directori": 23, "start_tim": 23, "stage": [23, 33, 34], "loggerabc": [24, 25], "debug": [24, 33, 34], "ex": 24, "except": [24, 29, 31, 35], "thrown": 24, "fatal": [24, 33, 34], "program": 24, "trace": [24, 33, 34], "warn": [24, 33, 34], "loggingset": 24, "time_format": [24, 27], "timeformatset": [24, 27], "tree": 24, "logfil": 24, "logginglevelenum": 24, "5": [24, 36], "4": 24, "off": 24, "6": 24, "3": 24, "filenam": 24, "level": [24, 33, 34], "loggingsettingsnameenum": 24, "console_level": 24, "consoleloglevel": 24, "file_level": 24, "fileloglevel": 24, "subject": 25, "bodi": 25, "transceiv": 25, "receiv": 25, "e": 25, "add_head": 25, "add_receiv": 25, "check_mail": 25, "address": 25, "check": [25, 31], "get_cont": 25, "header_list": 25, "receiver_list": 25, "emailclientabc": 25, "emailcli": 25, "send_mail": 25, "mail_set": 25, "emailclientset": 25, "login": 25, "credenti": [25, 28, 33, 34], "user_nam": 25, "emailclientsettingsnameenum": 25, "usernam": 25, "boolpip": 26, "pipeabc": 26, "transform": 26, "firstchartolowerpip": 26, "lower": [26, 28, 36], "firsttoupperpip": 26, "upper": [26, 28, 36], "ipaddresspip": 26, "tocamelcasepip": 26, "camel": [26, 28], "camelcas": [26, 28], "tosnakecasepip": 26, "snake": [26, 28], "snake_cas": [26, 28], "versionpip": 26, "copyright": 26, "2020": 26, "2022": 26, "licens": [26, 36], "detail": [26, 33], "versioninfo": 26, "minor": 26, "micro": 26, "field": 26, "number": 26, "date_format": 27, "date_time_format": 27, "date_time_log_format": 27, "timeformatsettingsnamesenum": 27, "dateformat": 27, "datetimeformat": 27, "datetimelogformat": 27, "timeformat": 27, "credentialmanag": 28, "encrypt": [28, 33, 34], "decrypt": 28, "build_str": 28, "replac": 28, "base64": [28, 33, 34], "get_execut": 28, "get_outd": 28, "byte": 28, "get": [28, 33, 34, 35, 37], "outdat": 28, "get_packag": 28, "local": [28, 32, 35], "stdout": 28, "stderr": 28, "extra": [28, 37], "index": [28, 30, 31, 36, 37], "url": [28, 37], "subprocess": [28, 33, 34], "reset_execut": 28, "system": 28, "standard": [28, 33, 34], "set_execut": 28, "convert_to_camel_cas": 28, "convert_to_snake_cas": 28, "first_to_low": 28, "first_to_upp": 28, "random_str": 28, "random": [28, 36], "cpl_queri": [29, 35], "iterable_abc": [29, 35], "ordered_iterable_abc": [29, 35], "ordered_iter": [29, 35], "argumentnoneexcept": [30, 31], "exceptionargu": 30, "func": [30, 31], "indexoutofrangeexcept": 30, "rang": [30, 36], "invalidtypeexcept": 30, "wrongtypeexcept": 30, "unexpect": 30, "iterableabc": 31, "everi": 31, "equal": 31, "append": 31, "_iterableabc__object": 31, "__object": 31, "averag": 31, "float": 31, "complex": [31, 33, 34], "distinct": 31, "redund": 31, "element_at": 31, "element_at_or_default": 31, "extend": [31, 32, 35, 38], "_iterableabc__iter": 31, "__iter": 31, "first_or_default": 31, "for_each": 31, "last_or_default": 31, "max": 31, "highest": 31, "min": 31, "order_bi": 31, "sort": [31, 33], "ascend": 31, "order_by_descend": 31, "descend": 31, "revers": 31, "singl": 31, "single_or_default": 31, "skip": 31, "skip_last": 31, "after": 31, "sum": 31, "take_last": 31, "where": 31, "orderediterableabc": 31, "_t": 31, "_func": 31, "then_bi": 31, "orderedlist": 31, "then_by_descend": 31, "orderediter": 31, "prerequisit": [32, 35], "what": [32, 35], "up": [32, 35], "queri": [32, 33, 34, 35], "tutori": [32, 35, 36, 37], "com": [32, 35, 38], "builtin": [32, 35, 38], "platform": [33, 34], "meant": [33, 34], "effici": [33, 34], "desktop": [33, 34], "learn": [33, 34, 37], "enterpris": [33, 34], "expandl": [33, 34], "builder": [33, 34], "map": [33, 34], "inject": [33, 34, 36], "appnam": [33, 34], "hostnam": [33, 34], "wrapper": [33, 34], "differ": [33, 34], "variant": [33, 34], "to_lower_cas": [33, 34], "to_camel_cas": [33, 34], "code": [33, 36, 37], "connector": 33, "between": 33, "filter": 33, "linq": 33, "c": 33, "xd": 33, "kei": [33, 37], "dot": 33, "notat": 33, "These": 33, "page": 33, "great": 33, "about": [33, 37], "everyth": 33, "do": [33, 36], "contribut": 33, "welcom": 36, "introduc": 36, "walk": 36, "also": [36, 37], "sampl": 36, "ouput": 36, "look": 36, "done": 36, "readm": 36, "md": 36, "src": 36, "__init__": 36, "projectmain": 36, "id": 36, "vs": 36, "pycharm": 36, "folder": 36, "hello": [36, 37], "world": [36, 37], "emul": 36, "def": 36, "onli": 36, "__name__": 36, "__main__": 36, "generate_password": 36, "letter": 36, "join": 36, "choic": 36, "ascii_lowercas": 36, "elif": 36, "ascii_uppercas": 36, "ascii_lett": 36, "len": 36, "full": 36, "section": 36, "ve": 36, "continu": 36, "explor": 36, "window": 37, "prompt": 37, "featur": 37, "declin": 37, "enter": 37, "press": 37, "lib": 37, "live": 37, "navig": 37, "launch": 37, "watch": 37, "chnage": 37, "those": 37, "success": 37, "similar": 37, "fore": 37, "pyhton": 37}, "objects": {"cpl_core.application": [[16, 0, 0, "-", "application_abc"], [16, 0, 0, "-", "application_builder"], [16, 0, 0, "-", "application_builder_abc"], [16, 0, 0, "-", "startup_abc"]], "cpl_core.application.application_abc": [[16, 1, 1, "", "ApplicationABC"]], "cpl_core.application.application_abc.ApplicationABC": [[16, 2, 1, "", "configure"], [16, 2, 1, "", "main"], [16, 2, 1, "", "run"], [16, 2, 1, "", "run_async"]], "cpl_core.application.application_builder": [[16, 1, 1, "", "ApplicationBuilder"]], "cpl_core.application.application_builder.ApplicationBuilder": [[16, 2, 1, "", "build"], [16, 2, 1, "", "build_async"], [16, 2, 1, "", "use_extension"], [16, 2, 1, "", "use_startup"]], "cpl_core.application.application_builder_abc": [[16, 1, 1, "", "ApplicationBuilderABC"]], "cpl_core.application.application_builder_abc.ApplicationBuilderABC": [[16, 2, 1, "", "build"], [16, 2, 1, "", "build_async"], [16, 2, 1, "", "use_startup"]], "cpl_core.application.startup_abc": [[16, 1, 1, "", "StartupABC"]], "cpl_core.application.startup_abc.StartupABC": [[16, 2, 1, "", "configure_configuration"], [16, 2, 1, "", "configure_services"]], "cpl_core.configuration": [[17, 0, 0, "-", "configuration"], [17, 0, 0, "-", "configuration_abc"], [17, 0, 0, "-", "configuration_model_abc"], [17, 0, 0, "-", "configuration_variable_name_enum"]], "cpl_core.configuration.configuration": [[17, 1, 1, "", "Configuration"]], "cpl_core.configuration.configuration.Configuration": [[17, 2, 1, "", "add_configuration"], [17, 2, 1, "", "add_console_argument"], [17, 2, 1, "", "add_environment_variables"], [17, 2, 1, "", "add_json_file"], [17, 3, 1, "", "additional_arguments"], [17, 3, 1, "", "argument_error_function"], [17, 3, 1, "", "arguments"], [17, 2, 1, "", "create_console_argument"], [17, 3, 1, "", "environment"], [17, 2, 1, "", "for_each_argument"], [17, 2, 1, "", "get_configuration"], [17, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_abc": [[17, 1, 1, "", "ConfigurationABC"]], "cpl_core.configuration.configuration_abc.ConfigurationABC": [[17, 2, 1, "", "add_configuration"], [17, 2, 1, "", "add_console_argument"], [17, 2, 1, "", "add_environment_variables"], [17, 2, 1, "", "add_json_file"], [17, 3, 1, "", "additional_arguments"], [17, 3, 1, "", "argument_error_function"], [17, 3, 1, "", "arguments"], [17, 2, 1, "", "create_console_argument"], [17, 3, 1, "", "environment"], [17, 2, 1, "", "for_each_argument"], [17, 2, 1, "", "get_configuration"], [17, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_model_abc": [[17, 1, 1, "", "ConfigurationModelABC"]], "cpl_core.configuration.configuration_model_abc.ConfigurationModelABC": [[17, 2, 1, "", "from_dict"]], "cpl_core.configuration.configuration_variable_name_enum": [[17, 1, 1, "", "ConfigurationVariableNameEnum"]], "cpl_core.configuration.configuration_variable_name_enum.ConfigurationVariableNameEnum": [[17, 4, 1, "", "customer"], [17, 4, 1, "", "environment"], [17, 4, 1, "", "name"], [17, 2, 1, "", "to_list"]], "cpl_core.console": [[18, 0, 0, "-", "background_color_enum"], [18, 0, 0, "-", "console"], [18, 0, 0, "-", "console_call"], [18, 0, 0, "-", "foreground_color_enum"], [18, 0, 0, "-", "spinner_thread"]], "cpl_core.console.background_color_enum": [[18, 1, 1, "", "BackgroundColorEnum"]], "cpl_core.console.background_color_enum.BackgroundColorEnum": [[18, 4, 1, "", "blue"], [18, 4, 1, "", "cyan"], [18, 4, 1, "", "default"], [18, 4, 1, "", "green"], [18, 4, 1, "", "grey"], [18, 4, 1, "", "magenta"], [18, 4, 1, "", "red"], [18, 4, 1, "", "white"], [18, 4, 1, "", "yellow"]], "cpl_core.console.console": [[18, 1, 1, "", "Console"]], "cpl_core.console.console.Console": [[18, 3, 1, "", "background_color"], [18, 2, 1, "", "banner"], [18, 2, 1, "", "clear"], [18, 2, 1, "", "close"], [18, 2, 1, "", "color_reset"], [18, 2, 1, "", "disable"], [18, 2, 1, "", "enable"], [18, 2, 1, "", "error"], [18, 3, 1, "", "foreground_color"], [18, 2, 1, "", "read"], [18, 2, 1, "", "read_line"], [18, 2, 1, "", "reset_cursor_position"], [18, 2, 1, "", "select"], [18, 2, 1, "", "set_background_color"], [18, 2, 1, "", "set_cursor_position"], [18, 2, 1, "", "set_foreground_color"], [18, 2, 1, "", "set_hold_back"], [18, 2, 1, "", "spinner"], [18, 2, 1, "", "table"], [18, 2, 1, "", "write"], [18, 2, 1, "", "write_at"], [18, 2, 1, "", "write_line"], [18, 2, 1, "", "write_line_at"]], "cpl_core.console.console_call": [[18, 1, 1, "", "ConsoleCall"]], "cpl_core.console.console_call.ConsoleCall": [[18, 3, 1, "", "args"], [18, 3, 1, "", "function"]], "cpl_core.console.foreground_color_enum": [[18, 1, 1, "", "ForegroundColorEnum"]], "cpl_core.console.foreground_color_enum.ForegroundColorEnum": [[18, 4, 1, "", "blue"], [18, 4, 1, "", "cyan"], [18, 4, 1, "", "default"], [18, 4, 1, "", "green"], [18, 4, 1, "", "grey"], [18, 4, 1, "", "magenta"], [18, 4, 1, "", "red"], [18, 4, 1, "", "white"], [18, 4, 1, "", "yellow"]], "cpl_core.console.spinner_thread": [[18, 1, 1, "", "SpinnerThread"]], "cpl_core.console.spinner_thread.SpinnerThread": [[18, 2, 1, "", "exit"], [18, 2, 1, "", "run"], [18, 2, 1, "", "stop_spinning"]], "cpl_core.database.connection": [[20, 0, 0, "-", "database_connection"], [20, 0, 0, "-", "database_connection_abc"]], "cpl_core.database.connection.database_connection": [[20, 1, 1, "", "DatabaseConnection"]], "cpl_core.database.connection.database_connection.DatabaseConnection": [[20, 2, 1, "", "connect"], [20, 3, 1, "", "cursor"], [20, 3, 1, "", "server"]], "cpl_core.database.connection.database_connection_abc": [[20, 1, 1, "", "DatabaseConnectionABC"]], "cpl_core.database.connection.database_connection_abc.DatabaseConnectionABC": [[20, 2, 1, "", "connect"], [20, 3, 1, "", "cursor"], [20, 3, 1, "", "server"]], "cpl_core.database.context": [[21, 0, 0, "-", "database_context"], [21, 0, 0, "-", "database_context_abc"]], "cpl_core.database.context.database_context": [[21, 1, 1, "", "DatabaseContext"]], "cpl_core.database.context.database_context.DatabaseContext": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 2, 1, "", "save_changes"], [21, 2, 1, "", "select"]], "cpl_core.database.context.database_context_abc": [[21, 1, 1, "", "DatabaseContextABC"]], "cpl_core.database.context.database_context_abc.DatabaseContextABC": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 2, 1, "", "save_changes"], [21, 2, 1, "", "select"]], "cpl_core.database": [[19, 0, 0, "-", "database_settings"], [19, 0, 0, "-", "database_settings_name_enum"]], "cpl_core.database.database_settings": [[19, 1, 1, "", "DatabaseSettings"]], "cpl_core.database.database_settings.DatabaseSettings": [[19, 3, 1, "", "auth_plugin"], [19, 3, 1, "", "buffered"], [19, 3, 1, "", "charset"], [19, 3, 1, "", "database"], [19, 2, 1, "", "from_dict"], [19, 3, 1, "", "host"], [19, 3, 1, "", "password"], [19, 3, 1, "", "port"], [19, 3, 1, "", "use_unicode"], [19, 3, 1, "", "user"]], "cpl_core.database.database_settings_name_enum": [[19, 1, 1, "", "DatabaseSettingsNameEnum"]], "cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum": [[19, 4, 1, "", "auth_plugin"], [19, 4, 1, "", "buffered"], [19, 4, 1, "", "charset"], [19, 4, 1, "", "database"], [19, 4, 1, "", "host"], [19, 4, 1, "", "password"], [19, 4, 1, "", "port"], [19, 4, 1, "", "use_unicode"], [19, 4, 1, "", "user"]], "cpl_core.dependency_injection": [[22, 0, 0, "-", "service_collection"], [22, 0, 0, "-", "service_collection_abc"], [22, 0, 0, "-", "service_descriptor"], [22, 0, 0, "-", "service_lifetime_enum"], [22, 0, 0, "-", "service_provider"], [22, 0, 0, "-", "service_provider_abc"]], "cpl_core.dependency_injection.service_collection": [[22, 1, 1, "", "ServiceCollection"]], "cpl_core.dependency_injection.service_collection.ServiceCollection": [[22, 2, 1, "", "add_db_context"], [22, 2, 1, "", "add_logging"], [22, 2, 1, "", "add_pipes"], [22, 2, 1, "", "add_scoped"], [22, 2, 1, "", "add_singleton"], [22, 2, 1, "", "add_transient"], [22, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_collection_abc": [[22, 1, 1, "", "ServiceCollectionABC"]], "cpl_core.dependency_injection.service_collection_abc.ServiceCollectionABC": [[22, 2, 1, "", "add_db_context"], [22, 2, 1, "", "add_discord"], [22, 2, 1, "", "add_logging"], [22, 2, 1, "", "add_pipes"], [22, 2, 1, "", "add_scoped"], [22, 2, 1, "", "add_singleton"], [22, 2, 1, "", "add_transient"], [22, 2, 1, "", "add_translation"], [22, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_descriptor": [[22, 1, 1, "", "ServiceDescriptor"]], "cpl_core.dependency_injection.service_descriptor.ServiceDescriptor": [[22, 3, 1, "", "base_type"], [22, 3, 1, "", "implementation"], [22, 3, 1, "", "lifetime"], [22, 3, 1, "", "service_type"]], "cpl_core.dependency_injection.service_lifetime_enum": [[22, 1, 1, "", "ServiceLifetimeEnum"]], "cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum": [[22, 4, 1, "", "scoped"], [22, 4, 1, "", "singleton"], [22, 4, 1, "", "transient"]], "cpl_core.dependency_injection.service_provider": [[22, 1, 1, "", "ServiceProvider"]], "cpl_core.dependency_injection.service_provider.ServiceProvider": [[22, 2, 1, "", "build_service"], [22, 2, 1, "", "create_scope"], [22, 2, 1, "", "get_service"], [22, 2, 1, "", "set_scope"]], "cpl_core.dependency_injection.service_provider_abc": [[22, 1, 1, "", "ServiceProviderABC"]], "cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC": [[22, 2, 1, "", "build_service"], [22, 2, 1, "", "create_scope"], [22, 2, 1, "", "get_service"], [22, 2, 1, "", "set_scope"]], "cpl_core.environment": [[23, 0, 0, "-", "application_environment"], [23, 0, 0, "-", "application_environment_abc"], [23, 0, 0, "-", "environment_name_enum"]], "cpl_core.environment.application_environment": [[23, 1, 1, "", "ApplicationEnvironment"]], "cpl_core.environment.application_environment.ApplicationEnvironment": [[23, 3, 1, "", "application_name"], [23, 3, 1, "", "customer"], [23, 3, 1, "", "date_time_now"], [23, 3, 1, "", "end_time"], [23, 3, 1, "", "environment_name"], [23, 3, 1, "", "host_name"], [23, 3, 1, "", "runtime_directory"], [23, 2, 1, "", "set_runtime_directory"], [23, 2, 1, "", "set_working_directory"], [23, 3, 1, "", "start_time"], [23, 3, 1, "", "working_directory"]], "cpl_core.environment.application_environment_abc": [[23, 1, 1, "", "ApplicationEnvironmentABC"]], "cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC": [[23, 3, 1, "", "application_name"], [23, 3, 1, "", "customer"], [23, 3, 1, "", "date_time_now"], [23, 3, 1, "", "end_time"], [23, 3, 1, "", "environment_name"], [23, 3, 1, "", "host_name"], [23, 3, 1, "", "runtime_directory"], [23, 2, 1, "", "set_runtime_directory"], [23, 2, 1, "", "set_working_directory"], [23, 3, 1, "", "start_time"], [23, 3, 1, "", "working_directory"]], "cpl_core.environment.environment_name_enum": [[23, 1, 1, "", "EnvironmentNameEnum"]], "cpl_core.environment.environment_name_enum.EnvironmentNameEnum": [[23, 4, 1, "", "development"], [23, 4, 1, "", "production"], [23, 4, 1, "", "staging"], [23, 4, 1, "", "testing"]], "cpl_core.logging": [[24, 0, 0, "-", "logger_abc"], [24, 0, 0, "-", "logger_service"], [24, 0, 0, "-", "logging_level_enum"], [24, 0, 0, "-", "logging_settings"], [24, 0, 0, "-", "logging_settings_name_enum"]], "cpl_core.logging.logger_abc": [[24, 1, 1, "", "LoggerABC"]], "cpl_core.logging.logger_abc.LoggerABC": [[24, 2, 1, "", "debug"], [24, 2, 1, "", "error"], [24, 2, 1, "", "fatal"], [24, 2, 1, "", "header"], [24, 2, 1, "", "info"], [24, 2, 1, "", "trace"], [24, 2, 1, "", "warn"]], "cpl_core.logging.logger_service": [[24, 1, 1, "", "Logger"]], "cpl_core.logging.logger_service.Logger": [[24, 2, 1, "", "create"], [24, 2, 1, "", "debug"], [24, 2, 1, "", "error"], [24, 2, 1, "", "fatal"], [24, 2, 1, "", "header"], [24, 2, 1, "", "info"], [24, 2, 1, "", "trace"], [24, 2, 1, "", "warn"]], "cpl_core.logging.logging_level_enum": [[24, 1, 1, "", "LoggingLevelEnum"]], "cpl_core.logging.logging_level_enum.LoggingLevelEnum": [[24, 4, 1, "", "DEBUG"], [24, 4, 1, "", "ERROR"], [24, 4, 1, "", "FATAL"], [24, 4, 1, "", "INFO"], [24, 4, 1, "", "OFF"], [24, 4, 1, "", "TRACE"], [24, 4, 1, "", "WARN"]], "cpl_core.logging.logging_settings": [[24, 1, 1, "", "LoggingSettings"]], "cpl_core.logging.logging_settings.LoggingSettings": [[24, 3, 1, "", "console"], [24, 3, 1, "", "filename"], [24, 2, 1, "", "from_dict"], [24, 3, 1, "", "level"], [24, 3, 1, "", "path"]], "cpl_core.logging.logging_settings_name_enum": [[24, 1, 1, "", "LoggingSettingsNameEnum"]], "cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum": [[24, 4, 1, "", "console_level"], [24, 4, 1, "", "file_level"], [24, 4, 1, "", "filename"], [24, 4, 1, "", "path"]], "cpl_core.mailing": [[25, 0, 0, "-", "email"], [25, 0, 0, "-", "email_client_abc"], [25, 0, 0, "-", "email_client_service"], [25, 0, 0, "-", "email_client_settings"], [25, 0, 0, "-", "email_client_settings_name_enum"]], "cpl_core.mailing.email": [[25, 1, 1, "", "EMail"]], "cpl_core.mailing.email.EMail": [[25, 2, 1, "", "add_header"], [25, 2, 1, "", "add_receiver"], [25, 3, 1, "", "body"], [25, 2, 1, "", "check_mail"], [25, 2, 1, "", "get_content"], [25, 3, 1, "", "header"], [25, 3, 1, "", "header_list"], [25, 3, 1, "", "receiver"], [25, 3, 1, "", "receiver_list"], [25, 3, 1, "", "subject"], [25, 3, 1, "", "transceiver"]], "cpl_core.mailing.email_client_abc": [[25, 1, 1, "", "EMailClientABC"]], "cpl_core.mailing.email_client_abc.EMailClientABC": [[25, 2, 1, "", "connect"], [25, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_service": [[25, 1, 1, "", "EMailClient"]], "cpl_core.mailing.email_client_service.EMailClient": [[25, 2, 1, "", "connect"], [25, 2, 1, "", "create"], [25, 2, 1, "", "login"], [25, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_settings": [[25, 1, 1, "", "EMailClientSettings"]], "cpl_core.mailing.email_client_settings.EMailClientSettings": [[25, 3, 1, "", "credentials"], [25, 2, 1, "", "from_dict"], [25, 3, 1, "", "host"], [25, 3, 1, "", "port"], [25, 3, 1, "", "user_name"]], "cpl_core.mailing.email_client_settings_name_enum": [[25, 1, 1, "", "EMailClientSettingsNameEnum"]], "cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum": [[25, 4, 1, "", "credentials"], [25, 4, 1, "", "host"], [25, 4, 1, "", "port"], [25, 4, 1, "", "user_name"]], "cpl_core": [[26, 0, 0, "-", "pipes"]], "cpl_core.pipes": [[26, 1, 1, "", "VersionInfo"], [26, 0, 0, "-", "bool_pipe"], [26, 0, 0, "-", "first_char_to_lower_pipe"], [26, 0, 0, "-", "first_to_upper_pipe"], [26, 0, 0, "-", "ip_address_pipe"], [26, 0, 0, "-", "pipe_abc"], [26, 0, 0, "-", "to_camel_case_pipe"], [26, 0, 0, "-", "to_snake_case_pipe"], [26, 0, 0, "-", "version_pipe"]], "cpl_core.pipes.VersionInfo": [[26, 4, 1, "", "major"], [26, 4, 1, "", "micro"], [26, 4, 1, "", "minor"]], "cpl_core.pipes.bool_pipe": [[26, 1, 1, "", "BoolPipe"]], "cpl_core.pipes.bool_pipe.BoolPipe": [[26, 2, 1, "", "transform"]], "cpl_core.pipes.first_char_to_lower_pipe": [[26, 1, 1, "", "FirstCharToLowerPipe"]], "cpl_core.pipes.first_char_to_lower_pipe.FirstCharToLowerPipe": [[26, 2, 1, "", "transform"]], "cpl_core.pipes.first_to_upper_pipe": [[26, 1, 1, "", "FirstToUpperPipe"]], "cpl_core.pipes.first_to_upper_pipe.FirstToUpperPipe": [[26, 2, 1, "", "transform"]], "cpl_core.pipes.ip_address_pipe": [[26, 1, 1, "", "IPAddressPipe"]], "cpl_core.pipes.ip_address_pipe.IPAddressPipe": [[26, 2, 1, "", "transform"]], "cpl_core.pipes.pipe_abc": [[26, 1, 1, "", "PipeABC"]], "cpl_core.pipes.pipe_abc.PipeABC": [[26, 2, 1, "", "transform"]], "cpl_core.pipes.to_camel_case_pipe": [[26, 1, 1, "", "ToCamelCasePipe"]], "cpl_core.pipes.to_camel_case_pipe.ToCamelCasePipe": [[26, 2, 1, "", "transform"]], "cpl_core.pipes.to_snake_case_pipe": [[26, 1, 1, "", "ToSnakeCasePipe"]], "cpl_core.pipes.to_snake_case_pipe.ToSnakeCasePipe": [[26, 2, 1, "", "transform"]], "cpl_core.pipes.version_pipe": [[26, 1, 1, "", "VersionPipe"]], "cpl_core.pipes.version_pipe.VersionPipe": [[26, 2, 1, "", "transform"]], "cpl_core.time": [[27, 0, 0, "-", "time_format_settings"], [27, 0, 0, "-", "time_format_settings_names_enum"]], "cpl_core.time.time_format_settings": [[27, 1, 1, "", "TimeFormatSettings"]], "cpl_core.time.time_format_settings.TimeFormatSettings": [[27, 3, 1, "", "date_format"], [27, 3, 1, "", "date_time_format"], [27, 3, 1, "", "date_time_log_format"], [27, 2, 1, "", "from_dict"], [27, 3, 1, "", "time_format"]], "cpl_core.time.time_format_settings_names_enum": [[27, 1, 1, "", "TimeFormatSettingsNamesEnum"]], "cpl_core.time.time_format_settings_names_enum.TimeFormatSettingsNamesEnum": [[27, 4, 1, "", "date_format"], [27, 4, 1, "", "date_time_format"], [27, 4, 1, "", "date_time_log_format"], [27, 4, 1, "", "time_format"]], "cpl_core.utils": [[28, 0, 0, "-", "credential_manager"], [28, 0, 0, "-", "pip"], [28, 0, 0, "-", "string"]], "cpl_core.utils.credential_manager": [[28, 1, 1, "", "CredentialManager"]], "cpl_core.utils.credential_manager.CredentialManager": [[28, 2, 1, "", "build_string"], [28, 2, 1, "", "decrypt"], [28, 2, 1, "", "encrypt"]], "cpl_core.utils.pip": [[28, 1, 1, "", "Pip"]], "cpl_core.utils.pip.Pip": [[28, 2, 1, "", "get_executable"], [28, 2, 1, "", "get_outdated"], [28, 2, 1, "", "get_package"], [28, 2, 1, "", "install"], [28, 2, 1, "", "reset_executable"], [28, 2, 1, "", "set_executable"], [28, 2, 1, "", "uninstall"]], "cpl_core.utils.string": [[28, 1, 1, "", "String"]], "cpl_core.utils.string.String": [[28, 2, 1, "", "convert_to_camel_case"], [28, 2, 1, "", "convert_to_snake_case"], [28, 2, 1, "", "first_to_lower"], [28, 2, 1, "", "first_to_upper"], [28, 2, 1, "", "random_string"]], "cpl_query": [[30, 0, 0, "-", "exceptions"]], "cpl_query.exceptions": [[30, 5, 1, "", "ArgumentNoneException"], [30, 1, 1, "", "ExceptionArgument"], [30, 5, 1, "", "IndexOutOfRangeException"], [30, 5, 1, "", "InvalidTypeException"], [30, 5, 1, "", "WrongTypeException"]], "cpl_query.exceptions.ExceptionArgument": [[30, 4, 1, "", "func"], [30, 4, 1, "", "index"], [30, 4, 1, "", "list"], [30, 4, 1, "", "type"], [30, 4, 1, "", "value"]], "cpl_query.extension": [[31, 0, 0, "-", "iterable"], [31, 0, 0, "-", "iterable_abc"], [31, 0, 0, "-", "list"], [31, 0, 0, "-", "ordered_iterable"], [31, 0, 0, "-", "ordered_iterable_abc"]], "cpl_query.extension.iterable": [[31, 1, 1, "", "Iterable"]], "cpl_query.extension.iterable.Iterable": [[31, 2, 1, "", "all"], [31, 2, 1, "", "any"], [31, 2, 1, "", "average"], [31, 2, 1, "", "contains"], [31, 2, 1, "", "count"], [31, 2, 1, "", "distinct"], [31, 2, 1, "", "element_at"], [31, 2, 1, "", "element_at_or_default"], [31, 2, 1, "", "first"], [31, 2, 1, "", "first_or_default"], [31, 2, 1, "", "for_each"], [31, 2, 1, "", "last"], [31, 2, 1, "", "last_or_default"], [31, 2, 1, "", "max"], [31, 2, 1, "", "min"], [31, 2, 1, "", "order_by"], [31, 2, 1, "", "order_by_descending"], [31, 2, 1, "", "reverse"], [31, 2, 1, "", "single"], [31, 2, 1, "", "single_or_default"], [31, 2, 1, "", "skip"], [31, 2, 1, "", "skip_last"], [31, 2, 1, "", "sum"], [31, 2, 1, "", "take"], [31, 2, 1, "", "take_last"], [31, 2, 1, "", "where"]], "cpl_query.extension.iterable_abc": [[31, 1, 1, "", "IterableABC"]], "cpl_query.extension.iterable_abc.IterableABC": [[31, 2, 1, "", "all"], [31, 2, 1, "", "any"], [31, 2, 1, "", "append"], [31, 2, 1, "", "average"], [31, 2, 1, "", "contains"], [31, 2, 1, "", "count"], [31, 2, 1, "", "distinct"], [31, 2, 1, "", "element_at"], [31, 2, 1, "", "element_at_or_default"], [31, 2, 1, "", "extend"], [31, 2, 1, "", "first"], [31, 2, 1, "", "first_or_default"], [31, 2, 1, "", "for_each"], [31, 2, 1, "", "last"], [31, 2, 1, "", "last_or_default"], [31, 2, 1, "", "max"], [31, 2, 1, "", "min"], [31, 2, 1, "", "order_by"], [31, 2, 1, "", "order_by_descending"], [31, 2, 1, "", "reverse"], [31, 2, 1, "", "single"], [31, 2, 1, "", "single_or_default"], [31, 2, 1, "", "skip"], [31, 2, 1, "", "skip_last"], [31, 2, 1, "", "sum"], [31, 2, 1, "", "take"], [31, 2, 1, "", "take_last"], [31, 2, 1, "", "to_list"], [31, 3, 1, "", "type"], [31, 2, 1, "", "where"]], "cpl_query.extension.list": [[31, 1, 1, "", "List"]], "cpl_query.extension.ordered_iterable": [[31, 1, 1, "", "OrderedIterable"]], "cpl_query.extension.ordered_iterable.OrderedIterable": [[31, 2, 1, "", "then_by"], [31, 2, 1, "", "then_by_descending"]], "cpl_query.extension.ordered_iterable_abc": [[31, 1, 1, "", "OrderedIterableABC"]], "cpl_query.extension.ordered_iterable_abc.OrderedIterableABC": [[31, 2, 1, "", "then_by"], [31, 2, 1, "", "then_by_descending"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "exception", "Python exception"]}, "titleterms": {"cpl": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 26, 33, 34, 35, 36], "add": 0, "content": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 26, 36, 37], "descript": [0, 1, 2, 3, 4, 5, 7, 8, 10], "argument": [0, 2, 3, 4, 8, 10, 41], "flag": [0, 4, 5, 8, 10, 11], "build": 1, "gener": 2, "schemat": [2, 6], "help": 3, "instal": [4, 37], "new": 5, "project": [5, 36], "type": 5, "cli": [6, 14, 37], "overview": [6, 34], "command": 6, "refer": [6, 14, 15, 29], "tabl": [6, 36, 37], "basic": 6, "workflow": 6, "languag": 6, "syntax": 6, "rel": 6, "path": 6, "publish": 7, "remov": 8, "start": [9, 32, 36, 37], "uninstal": 10, "updat": 11, "version": 12, "contribut": 13, "found": 13, "bug": 13, "featur": [13, 33, 34], "request": 13, "submiss": 13, "guidelin": 13, "submit": 13, "an": 13, "issu": 13, "pull": 13, "review": 13, "address": 13, "feedback": 13, "code": 13, "rule": 13, "licens": 13, "api": 15, "cpl_core": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 40], "applic": [16, 43], "application_abc": 16, "application_build": 16, "application_builder_abc": 16, "startup_abc": 16, "configur": 17, "configuration_abc": 17, "configuration_model_abc": 17, "configuration_variable_name_enum": 17, "console_argu": 17, "consol": [18, 37, 40, 41], "background_color_enum": 18, "console_cal": 18, "foreground_color_enum": 18, "spinner_thread": 18, "databas": [19, 20, 21], "submodul": [19, 26], "database_model": 19, "database_set": 19, "database_settings_name_enum": 19, "connect": 20, "database_connect": 20, "database_connection_abc": 20, "context": 21, "database_context": 21, "database_context_abc": 21, "dependency_inject": 22, "service_collect": 22, "service_collection_abc": 22, "service_descriptor": 22, "service_lifetime_enum": 22, "service_provid": 22, "service_provider_abc": 22, "environ": [23, 37], "application_environ": 23, "application_environment_abc": 23, "environment_name_enum": 23, "log": 24, "logger_abc": 24, "logger_servic": 24, "logging_level_enum": 24, "logging_set": 24, "logging_settings_name_enum": 24, "mail": [25, 46], "email": 25, "email_client_abc": 25, "email_client_servic": 25, "email_client_set": 25, "email_client_settings_name_enum": 25, "pipe": 26, "bool_pip": 26, "modul": 26, "first_char_to_lower_pip": 26, "first_to_upper_pip": 26, "ip_address_pip": 26, "pipe_abc": 26, "to_camel_case_pip": 26, "to_snake_case_pip": 26, "version_pip": 26, "core": 26, "sh": 26, "edraft": 26, "common": 26, "python": 26, "librari": [26, 37], "time": 27, "time_format_set": 27, "time_format_settings_names_enum": 27, "util": 28, "credential_manag": 28, "pip": 28, "string": 28, "queri": [29, 37], "cpl_queri": [30, 31], "except": 30, "extens": 31, "iterable_abc": 31, "iter": 31, "list": 31, "ordered_iterable_abc": 31, "ordered_iter": 31, "get": [32, 36], "introduct": [33, 34], "doc": [33, 34], "manual": 33, "explor": 34, "prerequisit": [36, 37], "creat": [36, 37, 42], "menu": 36, "what": [36, 37], "s": [36, 37], "next": [36, 37], "set": 37, "up": 37, "local": 37, "workspac": 37, "packag": 37, "initi": 37, "app": 37, "tutori": 38, "us": [39, 40, 45], "appset": 39, "json": 39, "com": [39, 40, 41, 42, 43, 44, 45, 46], "soon": [39, 40, 41, 42, 43, 44, 45, 46], "handl": 41, "startup": [42, 44], "class": 42, "extend": [43, 44], "builtin": 45, "logger": 45, "send": 46}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "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": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["cli.add", "cli.build", "cli.generate", "cli.help", "cli.install", "cli.new", "cli.overview", "cli.publish", "cli.remove", "cli.run", "cli.start", "cli.uninstall", "cli.update", "cli.version", "contributing", "cpl_cli", "cpl_core", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "cpl_discord", "cpl_discord.application", "cpl_discord.command", "cpl_discord.configuration", "cpl_discord.container", "cpl_discord.events", "cpl_discord.helper", "cpl_discord.service", "cpl_query", "cpl_query.base", "cpl_query.enumerable", "cpl_query.extension", "cpl_query.iterable", "cpl_translation", "getting_started", "index", "introduction", "modules", "quickstart", "setup", "tutorials", "tutorials.appsettings", "tutorials.console", "tutorials.console-arguments", "tutorials.create-startup", "tutorials.extend-application", "tutorials.extend-startup", "tutorials.logging", "tutorials.mail"], "filenames": ["cli.add.md", "cli.build.md", "cli.generate.md", "cli.help.md", "cli.install.md", "cli.new.md", "cli.overview.md", "cli.publish.md", "cli.remove.md", "cli.run.md", "cli.start.md", "cli.uninstall.md", "cli.update.md", "cli.version.md", "contributing.md", "cpl_cli.rst", "cpl_core.rst", "cpl_core.application.rst", "cpl_core.configuration.rst", "cpl_core.console.rst", "cpl_core.database.rst", "cpl_core.database.connection.rst", "cpl_core.database.context.rst", "cpl_core.dependency_injection.rst", "cpl_core.environment.rst", "cpl_core.logging.rst", "cpl_core.mailing.rst", "cpl_core.pipes.rst", "cpl_core.time.rst", "cpl_core.utils.rst", "cpl_discord.rst", "cpl_discord.application.rst", "cpl_discord.command.rst", "cpl_discord.configuration.rst", "cpl_discord.container.rst", "cpl_discord.events.rst", "cpl_discord.helper.rst", "cpl_discord.service.rst", "cpl_query.rst", "cpl_query.base.rst", "cpl_query.enumerable.rst", "cpl_query.extension.rst", "cpl_query.iterable.rst", "cpl_translation.rst", "getting_started.rst", "index.rst", "introduction.md", "modules.rst", "quickstart.md", "setup.md", "tutorials.rst", "tutorials.appsettings.md", "tutorials.console.md", "tutorials.console-arguments.md", "tutorials.create-startup.md", "tutorials.extend-application.md", "tutorials.extend-startup.md", "tutorials.logging.md", "tutorials.mail.md"], "titles": ["cpl add", "cpl build", "cpl generate", "cpl help", "cpl install", "cpl new", "CLI Overview and Command Reference", "cpl publish", "cpl remove", "cpl run", "cpl start", "cpl uninstall", "cpl update", "cpl version", "Contributing to CPL", "CLI reference", "API reference", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "Discord reference", "cpl_discord.application", "cpl_discord.command", "cpl_discord.configuration", "cpl_discord.container", "cpl_discord.events", "cpl_discord.helper", "cpl_discord.service", "Query reference", "cpl_query.base", "cpl_query.enumerable", "cpl_query.extension", "cpl_query.iterable", "Translation reference", "Getting started", "Introduction to the CPL Docs", "Introduction to the CPL Docs", "cpl", "Getting started with CPL", "Setting up the local environment and workspace", "Tutorials", "Using appsettings.json", "Use cpl_core.console.Console", "Handle console arguments", "Create startup class", "Extend application", "Extend startup", "Use builtin logger", "Send mails"], "terms": {"remov": [0, 6, 7, 15, 40, 42, 47], "project": [0, 1, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 44, 47, 49], "from": [0, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 34, 39, 42, 45, 46, 48], "workspac": [0, 1, 5, 6, 8, 44, 47], "sourc": [0, 1, 7, 9, 10, 14, 29, 48, 49], "target": [0, 1], "A": [0, 5, 14, 34], "refer": [0, 8, 45, 46, 47], "given": [0, 1, 4, 6, 7, 11, 18, 19, 20, 23, 29, 39, 42], "If": [0, 5, 8, 14, 19, 49], "you": [0, 1, 6, 8, 14, 34, 45, 46, 48, 49], "call": [0, 8, 17, 18, 19, 34, 39], "command": [0, 1, 3, 4, 5, 7, 8, 11, 12, 14, 15, 29, 30, 45, 46, 47, 49], "can": [0, 1, 6, 7, 8, 14, 34, 45, 49], "us": [0, 1, 2, 5, 6, 7, 8, 14, 17, 19, 26, 29, 44, 45, 46, 47, 48, 49, 50], "name": [0, 1, 2, 5, 6, 7, 8, 18, 24, 25, 29, 32, 34, 49], "otherwis": [0, 8, 19], "path": [0, 1, 2, 5, 7, 8, 15, 18, 24, 25, 47, 49], "must": [0, 1, 6, 8, 14, 19], "specifi": [0, 4, 5, 6, 8, 9, 11, 12, 18, 19], "valu": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 18, 19, 20, 23, 24, 25, 26, 27, 28, 39, 40, 41, 42, 43], "type": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 15, 17, 18, 23, 34, 36, 37, 39, 40, 41, 42, 47], "which": [0, 6, 9, 18, 19, 29, 49], "ha": [0, 19], "ad": [0, 14], "str": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 33, 34, 35, 37, 43, 48], "referenc": 0, "simul": [0, 4, 8, 11, 12], "whether": [0, 4, 5, 8, 11, 12, 18], "copi": [1, 39], "an": [1, 6, 7, 17, 18, 19, 20, 23, 24, 25, 26, 28, 39, 48, 49], "python": [1, 14, 29, 45, 46, 48, 49], "app": [1, 6, 17, 44, 45, 46, 47, 48], "output": [1, 6, 7, 18, 19, 45, 46, 48, 49], "directori": [1, 6, 7, 24, 45, 46, 48], "execut": [1, 6, 7, 18, 29], "within": [1, 6, 14], "b": [1, 6, 14], "The": [1, 2, 4, 5, 6, 7, 8, 11, 14, 23, 26, 29, 34, 37, 45, 46, 48, 49], "consol": [1, 3, 5, 6, 7, 16, 18, 25, 44, 45, 46, 47, 48, 50], "librari": [1, 5, 6, 7, 44, 45, 46, 47], "all": [1, 7, 13, 14, 18, 34, 39], "includ": [1, 14, 49], "file": [1, 2, 6, 7, 8, 10, 14, 18, 45, 49], "run": [1, 5, 10, 17, 18, 19, 22, 29, 39, 45, 46, 48, 49], "directli": [1, 14], "prepar": [1, 6, 7, 14, 17, 45], "publish": [1, 6, 15, 45, 47, 49], "them": 1, "argument": [1, 5, 6, 7, 9, 10, 12, 15, 18, 19, 29, 39, 44, 45, 46, 47, 50], "base": [2, 5, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 48], "g": [2, 5, 6], "first": [2, 5, 6, 14, 27, 29, 34, 39, 45, 46], "element": [2, 5, 19, 22, 34, 39, 40, 42], "src": [2, 5, 48], "For": [2, 5, 14], "exampl": [2, 5], "c": [2, 5, 45], "test": [2, 5, 14, 24, 45, 46, 48], "creat": [2, 5, 6, 7, 14, 17, 18, 19, 23, 25, 26, 29, 39, 44, 45, 46, 47, 50], "would": [2, 5, 14], "abc": [2, 17, 18, 21, 22, 23, 24, 25, 26, 27, 32, 35, 37, 39, 40, 42, 43], "abstract": [2, 17, 18, 21, 22, 23, 24, 25, 26, 27, 31, 35, 37, 39, 43], "class": [2, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "enum": [2, 18, 19, 20, 23, 24, 25, 26, 28], "pipe": [2, 16, 23, 45, 46, 47], "servic": [2, 5, 17, 18, 23, 25, 26, 30, 31, 45, 46, 47, 48], "set": [2, 9, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 29, 33, 40, 43, 44, 47, 48], "configmodel": 2, "thread": [2, 19, 30, 47], "valid": [2, 26, 48], "list": [3, 6, 13, 18, 19, 22, 23, 26, 27, 29, 34, 35, 36, 37, 38, 39, 40, 42, 43, 45, 47], "avail": [3, 6, 14], "short": [3, 6], "h": [3, 6], "show": [3, 19], "messag": [3, 19, 25, 35, 37], "thi": [3, 14, 17, 34, 45, 46, 48, 49], "packag": [4, 5, 6, 11, 13, 29, 44, 45, 46, 47, 48], "via": [4, 11, 14, 45, 46], "pip": [4, 11, 13, 16, 45, 46, 47, 48, 49], "i": [4, 6, 48], "without": [4, 6, 14, 39], "deped": 4, "your": [4, 6, 9, 10, 14, 45, 46, 49], "dev": [4, 9, 10, 11], "develop": [4, 6, 11, 14, 24, 45, 46, 48, 49], "mode": [4, 11], "virtual": [4, 11], "gener": [5, 6, 7, 15, 45, 47, 48, 49], "initi": [5, 44, 47], "add": [5, 6, 14, 15, 18, 23, 26, 42, 47, 48], "n": [5, 6, 48, 49], "see": [5, 14, 21, 34, 48, 49], "simpl": [5, 45, 46, 49], "applic": [5, 9, 10, 16, 19, 24, 25, 26, 30, 44, 45, 46, 47, 48, 49, 50], "async": [5, 17, 35, 37], "startup": [5, 17, 44, 45, 46, 47, 50], "provid": [5, 14, 17, 23, 34, 45, 46, 48, 49], "noth": 5, "venv": 5, "instal": [6, 13, 15, 29, 44, 47, 48], "cpl": [6, 15, 23, 44, 49], "To": [6, 9, 10, 14, 48, 49], "build": [6, 7, 9, 10, 15, 17, 29, 45, 47, 48, 49], "serv": 6, "new": [6, 14, 15, 19, 34, 47, 48, 49], "server": [6, 21, 26, 45, 46, 49], "go": [6, 14, 45], "parent": 6, "follow": [6, 14, 48, 49], "my": [6, 14, 49], "cd": [6, 49], "start": [6, 9, 15, 39, 45, 46, 47], "In": [6, 14, 48], "termin": [6, 19, 48, 49], "commandnameoralia": 6, "requiredarg": 6, "optionalsarg": 6, "most": [6, 34, 48, 49], "some": 6, "option": [6, 9, 14, 18, 19, 20, 23, 25, 26, 29, 34, 35, 37, 39, 40, 41, 42, 45, 46, 48], "have": [6, 14, 34, 48, 49], "alias": [6, 18], "ar": [6, 7, 14, 18, 34], "shown": [6, 18, 49], "statement": [6, 22], "each": [6, 18, 39], "prefix": [6, 18, 33], "absolut": 6, "current": [6, 24, 34], "work": [6, 14, 24, 45, 46], "either": 6, "root": 6, "take": [6, 18, 39], "artifact": 6, "addit": [6, 14], "ani": [6, 19, 27, 32, 37, 39, 43], "defin": [6, 18, 19, 40, 42, 49], "its": [6, 14], "own": 6, "suppli": 6, "same": 6, "format": [6, 25, 28, 39], "immedi": 6, "alia": 6, "descript": [6, 9, 10, 12, 15, 34, 47], "dist": [6, 7, 9, 10], "help": [6, 14, 15, 45, 46, 47], "With": 6, "depend": [6, 12, 45, 46, 48], "p": [6, 7], "setup": [6, 7, 46, 49], "py": [6, 7, 29, 45, 48], "r": [6, 8, 9], "s": [6, 10, 14, 34, 44, 47], "restart": [6, 10, 49], "chang": [6, 10, 14, 22, 48], "uninstal": [6, 15, 29, 47], "ui": [6, 11, 34], "updat": [6, 14, 15, 47], "u": [6, 12], "version": [6, 15, 34, 47], "v": [6, 13], "data": [7, 19, 34, 39], "cpl_core": [7, 16, 44, 47, 48, 49, 50], "json": [7, 18, 44, 45, 46, 47, 48, 49, 50], "delet": 8, "onc": 9, "paramet": [9, 42], "default": [9, 19, 34, 49], "after": [9, 10, 35, 37, 39], "cli": [13, 44, 45, 46, 47, 48], "we": [14, 48], "love": 14, "make": [14, 49], "even": 14, "better": 14, "than": [14, 39], "todai": 14, "As": 14, "contributor": 14, "here": [14, 49], "like": [14, 45, 48], "issus": 14, "find": 14, "our": 14, "gitea": 14, "repositori": 14, "fix": 14, "implement": [14, 23, 39, 40, 41], "pleas": 14, "consid": 14, "size": 14, "order": [14, 34, 39], "determin": 14, "right": 14, "step": 14, "proce": 14, "major": 14, "open": [14, 48, 49], "outlin": 14, "propos": 14, "so": [14, 49], "discuss": 14, "process": 14, "allow": 14, "coordin": [14, 19], "effort": 14, "prevent": 14, "duplic": 14, "craft": 14, "successfulli": 14, "accept": 14, "note": [14, 34], "topic": [14, 34], "document": 14, "significantli": 14, "re": 14, "write": [14, 19, 25, 45, 46], "count": [14, 39], "small": 14, "befor": [14, 19, 35, 37, 40], "search": [14, 18, 23], "tracker": 14, "mayb": 14, "problem": 14, "alreadi": [14, 48, 49], "exist": [14, 40], "might": 14, "inform": [14, 25, 49], "workaround": 14, "readili": 14, "want": [14, 48], "soon": [14, 44, 47, 50], "possibl": [14, 18], "need": [14, 34, 48, 49], "reproduc": 14, "confirm": 14, "requir": [14, 34], "minim": 14, "reproduct": 14, "scenario": 14, "give": 14, "wealth": 14, "import": [14, 48], "back": [14, 19], "forth": 14, "question": 14, "quickli": 14, "point": [14, 17, 19], "out": [14, 48, 49], "well": 14, "save": [14, 18, 22], "maintain": 14, "time": [14, 16, 25, 34, 47], "ultim": 14, "abl": 14, "more": [14, 39, 49], "often": 14, "themselv": 14, "while": 14, "understand": [14, 45, 46, 48, 49], "sometim": 14, "hard": 14, "extract": 14, "essenti": [14, 48], "bit": 14, "larger": 14, "codebas": 14, "realli": 14, "isol": 14, "unfortun": 14, "investig": 14, "don": [14, 48], "t": [14, 39, 40, 41, 42, 48], "hear": 14, "close": [14, 19], "doesn": 14, "enough": 14, "info": [14, 25, 45, 46], "pr": 14, "relat": 14, "Be": 14, "sure": 14, "describ": 14, "design": 14, "d": 14, "upfront": 14, "ensur": 14, "readi": [14, 49], "fork": 14, "sh": [14, 49], "edraft": [14, 49], "de": [14, 49], "repo": 14, "git": 14, "branch": 14, "checkout": 14, "master": 14, "patch": 14, "appropri": 14, "case": [14, 27, 29, 48], "commit": 14, "line": [14, 19, 48], "automat": 14, "rm": 14, "edit": 14, "push": 14, "origin": 14, "send": [14, 26, 44, 45, 46, 47, 50], "team": 14, "reserv": 14, "commun": 14, "member": [14, 30, 35, 37, 47], "who": 14, "haven": 14, "been": 14, "good": 14, "citizen": 14, "Such": 14, "behavior": 14, "appli": 14, "outsid": 14, "manag": [14, 34, 45, 46], "channel": [14, 34, 35, 37], "ask": 14, "fixup": 14, "head": 14, "That": 14, "thank": 14, "consist": 14, "throughout": 14, "keep": 14, "mind": 14, "one": [14, 39], "unit": 14, "public": 14, "api": [14, 45, 46, 47], "method": 14, "pep": 14, "8": 14, "style": 14, "guid": 14, "By": 14, "agre": 14, "under": [14, 34], "mit": 14, "overview": [15, 47, 49], "tabl": [15, 19, 29, 44, 45, 46, 47], "content": [15, 44, 47], "basic": [15, 47, 48, 49], "workflow": [15, 47], "languag": [15, 43, 47], "syntax": [15, 47], "rel": [15, 47], "schemat": [15, 47], "flag": [15, 40, 47], "application_abc": [16, 47], "application_build": [16, 47], "application_builder_abc": [16, 47], "startup_abc": [16, 47], "configur": [16, 17, 23, 30, 45, 46, 47], "configuration_abc": [16, 17, 23, 47], "configuration_model_abc": [16, 47], "configuration_variable_name_enum": [16, 47], "console_argu": [16, 47], "background_color_enum": [16, 47], "console_cal": [16, 47], "foreground_color_enum": [16, 47], "spinner_thread": [16, 47], "databas": [16, 23, 47], "connect": [16, 20, 22, 26, 37, 47], "database_connect": [16, 20, 47], "database_connection_abc": [16, 20, 47], "context": [16, 20, 23, 35, 37, 47, 49], "database_context": [16, 20, 47], "database_context_abc": [16, 20, 23, 47], "database_model": [16, 47], "database_set": [16, 21, 22, 47], "database_settings_name_enum": [16, 47], "dependency_inject": [16, 17, 47], "service_collect": [16, 37, 47], "service_collection_abc": [16, 17, 47], "service_descriptor": [16, 47], "service_lifetime_enum": [16, 47], "service_provid": [16, 47], "service_provider_abc": [16, 17, 47], "environ": [16, 17, 18, 25, 26, 44, 45, 46, 47], "application_environ": [16, 47], "application_environment_abc": [16, 17, 25, 26, 47], "environment_name_enum": [16, 47], "log": [16, 26, 45, 46, 47], "logger_abc": [16, 26, 47], "logger_servic": [16, 47], "logging_level_enum": [16, 47], "logging_set": [16, 47], "logging_settings_name_enum": [16, 47], "mail": [16, 44, 45, 46, 47, 50], "email": [16, 47], "email_client_abc": [16, 47], "email_client_servic": [16, 47], "email_client_set": [16, 47], "email_client_settings_name_enum": [16, 47], "bool_pip": [16, 47], "first_char_to_lower_pip": [16, 47], "first_to_upper_pip": [16, 47], "ip_address_pip": [16, 47], "pipe_abc": [16, 47], "to_camel_case_pip": [16, 47], "to_snake_case_pip": [16, 47], "version_pip": [16, 47], "time_format_set": [16, 25, 47], "time_format_settings_names_enum": [16, 47], "util": [16, 45, 46, 47], "credential_manag": [16, 47], "string": [16, 19, 21, 25, 26, 27, 45, 46, 47, 48], "applicationabc": [17, 31], "config": [17, 23, 31, 37], "configurationabc": [17, 18, 23, 31, 37], "serviceproviderabc": [17, 18, 23, 31], "contain": [17, 30, 36, 39, 47], "object": [17, 18, 19, 23, 26, 29, 34, 36, 39, 42, 45, 46], "load": [17, 43], "appset": [17, 44, 47, 48, 50], "instanc": [17, 23], "main": [17, 48], "custom": [17, 18, 24, 45, 46], "entri": [17, 19], "run_async": 17, "applicationbuild": 17, "applicationbuilderabc": 17, "build_async": 17, "use_extens": 17, "extens": [17, 38, 39, 42, 45, 46, 47], "union": [17, 18, 19, 23, 35, 36, 37, 39], "applicationextensionabc": 17, "startupextensionabc": 17, "use_startup": 17, "startupabc": 17, "arg": [17, 18, 19, 22, 27, 29, 32, 35, 37, 43], "configure_configur": 17, "env": [17, 25, 37], "applicationenvironmentabc": [17, 18, 24, 25, 26, 37], "configure_servic": 17, "servicecollectionabc": [17, 23, 37], "add_configur": 18, "key_typ": 18, "configurationmodelabc": [18, 20, 25, 26, 28, 33, 43], "add_console_argu": 18, "argumentabc": 18, "known": 18, "consoleargumentabc": 18, "add_environment_vari": 18, "read": [18, 19, 48], "variabl": [18, 29], "add_json_fil": 18, "bool": [18, 19, 20, 26, 27, 34, 39, 40], "none": [18, 19, 23, 25, 26, 29, 39, 40, 41, 42], "true": 18, "error": [18, 19, 25, 35, 37, 45, 46], "should": [18, 48, 49], "occur": 18, "wa": [18, 49], "found": [18, 39], "place": 18, "store": 18, "properti": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 33, 34, 37, 39, 42, 43], "additional_argu": 18, "argument_error_funct": 18, "callabl": [18, 19, 23, 39], "argument_abc": 18, "create_console_argu": 18, "arg_typ": 18, "argumenttypeenum": 18, "token": [18, 33], "kwarg": [18, 19, 32, 35, 37], "begin": 18, "value_token": 18, "were": 18, "is_value_token_opt": 18, "runnabl": 18, "when": [18, 19, 35, 37, 39], "for_each_argu": 18, "iter": [18, 38, 39, 40, 41, 47], "through": [18, 48], "function": [18, 19, 29, 39, 40, 42, 45, 48], "get_configur": 18, "search_typ": 18, "return": [18, 19, 23, 26, 34, 39, 48], "parse_console_argu": 18, "invalid": 18, "from_dict": [18, 20, 25, 26, 28, 33, 43], "dict": [18, 19, 20, 25, 26, 27, 28, 33, 43], "convert": [18, 25, 26, 27, 28, 29, 33, 36, 39, 40, 41, 42, 43, 45, 46], "attribut": [18, 20, 25, 26, 28, 33, 43], "configurationvariablenameenum": 18, "enumer": [18, 19, 20, 23, 24, 25, 26, 28, 38, 41, 42, 47], "static": [18, 26, 29, 36], "to_list": [18, 39], "backgroundcolorenum": 19, "blue": 19, "on_blu": 19, "cyan": 19, "on_cyan": 19, "on_default": 19, "green": 19, "on_green": 19, "grei": 19, "on_grei": 19, "magenta": 19, "on_magenta": 19, "red": 19, "on_r": 19, "white": 19, "on_whit": 19, "yellow": 19, "on_yellow": 19, "handl": [19, 29, 44, 45, 46, 47, 50], "input": [19, 45, 46, 48], "background_color": 19, "bytes_or_buff": 19, "encod": [19, 29], "expos": 19, "buffer": [19, 20], "decod": [19, 29], "handler": 19, "result": [19, 26, 29, 39], "__str__": 19, "repr": 19, "sy": 19, "getdefaultencod": 19, "strict": 19, "classmethod": [19, 29, 39], "banner": [19, 45, 46], "print": [19, 48], "clear": 19, "color_reset": 19, "reset": [19, 29, 39], "color": 19, "disabl": 19, "interact": 19, "enabl": [19, 48], "tb": 19, "traceback": 19, "foreground_color": 19, "read_lin": 19, "next": [19, 39, 44, 47], "reset_cursor_posit": 19, "cursor": [19, 21, 22], "posit": [19, 34], "select": [19, 22, 39, 48], "char": [19, 27, 29], "header_foreground_color": 19, "foregroundcolorenum": 19, "header_background_color": 19, "option_foreground_color": 19, "option_background_color": 19, "cursor_foreground_color": 19, "cursor_background_color": 19, "menu": [19, 44, 45, 46, 47], "charact": 19, "header": [19, 25, 26], "foreground": 19, "background": 19, "set_background_color": 19, "set_cursor_posit": 19, "x": [19, 39], "int": [19, 20, 26, 27, 29, 34, 39, 48], "y": [19, 48], "set_foreground_color": 19, "set_hold_back": 19, "spinner": [19, 45, 46], "text_foreground_color": 19, "spinner_foreground_color": 19, "text_background_color": 19, "spinner_background_color": 19, "end": [19, 25], "stop": 19, "text": [19, 34], "keyword": 19, "activ": [19, 34], "last": [19, 39], "write_at": [19, 45, 46], "write_lin": [19, 45, 46, 48], "write_line_at": [19, 45, 46], "consolecal": 19, "repres": [19, 20, 24, 26], "hold": 19, "spinnerthread": 19, "msg_len": 19, "length": [19, 29, 39, 48], "exit": [19, 48], "stop_spin": 19, "databaseset": [20, 21, 22, 23], "auth_plugin": 20, "charset": 20, "host": [20, 26], "password": [20, 48], "port": [20, 26], "use_unicod": 20, "user": [20, 35, 37, 48], "databasesettingsnameenum": 20, "authplugin": 20, "useunicod": 20, "databaseconnect": 21, "databaseconnectionabc": 21, "represent": [21, 22, 23, 25, 26, 28], "connection_str": 21, "http": [21, 49], "doc": 21, "sqlalchemi": 21, "org": 21, "en": 21, "14": 21, "core": [21, 45, 49], "engin": 21, "html": 21, "mysqlcursorbuff": [21, 22], "mysqlconnectionabstract": 21, "databasecontext": 22, "databasecontextabc": [22, 23], "save_chang": 22, "tupl": [22, 34], "sql": 22, "fetch": 22, "servicecollect": 23, "collect": 23, "add_db_context": 23, "db_context_typ": 23, "db_set": 23, "db_context": 23, "add_log": 23, "intern": 23, "logger": [23, 25, 26, 37, 44, 45, 46, 47, 50], "add_pip": 23, "transient": [23, 45, 46], "add_scop": 23, "service_typ": 23, "scope": [23, 45, 46], "lifetim": [23, 45, 46], "self": 23, "add_singleton": 23, "singleton": [23, 45, 46], "add_transi": 23, "build_service_provid": 23, "add_discord": 23, "discord": [23, 35, 37, 45, 47], "add_transl": 23, "translat": [23, 45, 47], "servicedescriptor": 23, "servicelifetimeenum": 23, "base_typ": 23, "descriptor": 23, "1": [23, 25, 48], "0": [23, 25, 34, 48], "2": [23, 25, 34, 48], "serviceprovid": 23, "build_servic": 23, "instance_typ": 23, "create_scop": 23, "scopeabc": 23, "get_servic": 23, "set_scop": 23, "applicationenviron": 24, "environmentnameenum": 24, "product": [24, 45, 46], "application_nam": 24, "date_time_now": 24, "datetim": [24, 34, 35, 37], "end_tim": 24, "environment_nam": 24, "host_nam": 24, "runtime_directori": 24, "set_runtime_directori": 24, "runtim": [24, 45, 46], "set_working_directori": 24, "working_directori": 24, "start_tim": 24, "stage": [24, 45, 46], "loggerabc": [25, 26, 37], "debug": [25, 45, 46], "ex": 25, "except": [25, 39], "thrown": 25, "fatal": [25, 45, 46], "program": 25, "trace": [25, 45, 46], "warn": [25, 45, 46], "loggingset": [25, 37], "time_format": [25, 28], "timeformatset": [25, 28], "tree": 25, "logfil": 25, "logginglevelenum": 25, "5": [25, 48], "4": 25, "off": 25, "6": 25, "3": 25, "filenam": 25, "level": [25, 45, 46], "loggingsettingsnameenum": 25, "console_level": 25, "consoleloglevel": 25, "file_level": 25, "fileloglevel": 25, "subject": 26, "bodi": 26, "transceiv": 26, "receiv": 26, "e": 26, "add_head": 26, "add_receiv": 26, "check_mail": 26, "address": 26, "check": [26, 39, 40], "get_cont": 26, "header_list": 26, "receiver_list": 26, "emailclientabc": 26, "emailcli": 26, "send_mail": 26, "mail_set": 26, "emailclientset": 26, "login": 26, "credenti": [26, 29, 45, 46], "user_nam": 26, "emailclientsettingsnameenum": 26, "usernam": 26, "boolpip": 27, "pipeabc": [27, 43], "transform": [27, 43], "firstchartolowerpip": 27, "lower": [27, 29, 48], "firsttoupperpip": 27, "upper": [27, 29, 48], "ipaddresspip": 27, "tocamelcasepip": 27, "camel": [27, 29], "camelcas": [27, 29], "tosnakecasepip": 27, "snake": [27, 29], "snake_cas": [27, 29], "versionpip": 27, "date_format": 28, "date_time_format": 28, "date_time_log_format": 28, "timeformatsettingsnamesenum": 28, "dateformat": 28, "datetimeformat": 28, "datetimelogformat": 28, "timeformat": 28, "credentialmanag": 29, "encrypt": [29, 45, 46], "decrypt": 29, "build_str": 29, "replac": 29, "base64": [29, 45, 46], "get_execut": 29, "get_outd": 29, "byte": 29, "get": [29, 45, 46, 47, 49], "outdat": 29, "get_packag": 29, "local": [29, 44, 47], "stdout": 29, "stderr": 29, "extra": [29, 49], "index": [29, 39, 42, 48, 49], "url": [29, 49], "subprocess": [29, 45, 46], "reset_execut": 29, "system": 29, "standard": [29, 45, 46], "set_execut": 29, "convert_to_camel_cas": 29, "convert_to_snake_cas": 29, "first_to_low": 29, "first_to_upp": 29, "random_str": 29, "random": [29, 48], "cpl_discord": [30, 47], "discord_bot_application_abc": [30, 47], "discord_command_abc": [30, 47], "discord_commands_meta": [30, 47], "discord_bot_set": [30, 37, 47], "category_channel": [30, 47], "guild": [30, 35, 37, 47], "role": [30, 35, 37, 47], "text_channel": [30, 47], "voice_channel": [30, 47], "event": [30, 37, 47], "on_bulk_message_delete_abc": [30, 47], "on_command_abc": [30, 47], "on_command_completion_abc": [30, 47], "on_command_error_abc": [30, 47], "on_connect_abc": [30, 47], "on_disconnect_abc": [30, 47], "on_error_abc": [30, 47], "on_group_join_abc": [30, 47], "on_group_remove_abc": [30, 47], "on_guild_available_abc": [30, 47], "on_guild_channel_create_abc": [30, 47], "on_guild_channel_delete_abc": [30, 47], "on_guild_channel_pins_update_abc": [30, 47], "on_guild_channel_update_abc": [30, 47], "on_guild_emojis_update_abc": [30, 47], "on_guild_integrations_update_abc": [30, 47], "on_guild_join_abc": [30, 47], "on_guild_remove_abc": [30, 47], "on_guild_role_create_abc": [30, 47], "on_guild_role_delete_abc": [30, 47], "on_guild_role_update_abc": [30, 47], "on_guild_unavailable_abc": [30, 47], "on_guild_update_abc": [30, 47], "on_invite_create_abc": [30, 47], "on_invite_delete_abc": [30, 47], "on_member_ban_abc": [30, 47], "on_member_join_abc": [30, 47], "on_member_remove_abc": [30, 47], "on_member_unban_abc": [30, 47], "on_member_update_abc": [30, 47], "on_message_abc": [30, 47], "on_message_delete_abc": [30, 47], "on_message_edit_abc": [30, 47], "on_private_channel_create_abc": [30, 47], "on_private_channel_delete_abc": [30, 47], "on_private_channel_pins_update_abc": [30, 47], "on_private_channel_update_abc": [30, 47], "on_raw_reaction_add_abc": [30, 47], "on_raw_reaction_clear_abc": [30, 47], "on_raw_reaction_clear_emoji_abc": [30, 47], "on_raw_reaction_remove_abc": [30, 47], "on_reaction_add_abc": [30, 47], "on_reaction_clear_abc": [30, 47], "on_reaction_clear_emoji_abc": [30, 47], "on_reaction_remove_abc": [30, 47], "on_ready_abc": [30, 47], "on_resume_abc": [30, 47], "on_typing_abc": [30, 47], "on_user_update_abc": [30, 47], "on_voice_state_update_abc": [30, 47], "on_webhooks_update_abc": [30, 47], "helper": [30, 47], "to_containers_convert": [30, 47], "command_error_handler_servic": [30, 47], "discord_bot_servic": [30, 47], "discord_bot_service_abc": [30, 47], "discord_collect": [30, 47], "discord_collection_abc": [30, 47], "discord_servic": [30, 47], "discord_service_abc": [30, 47], "discordbotapplicationabc": 31, "stop_async": [31, 37], "discordcommandabc": [32, 37], "cog": [32, 37], "discordcogmeta": 32, "namespac": 32, "abcmeta": 32, "cogmeta": 32, "discordbotset": [33, 37], "categorychannel": 34, "_t": [34, 36, 37, 39], "category_id": 34, "id": [34, 48], "nsfw": 34, "textchannel": 34, "categori": 34, "voicechannel": 34, "voic": 34, "_o": 34, "afk_channel": 34, "afk_timeout": 34, "approximate_member_count": 34, "approximate_presence_count": 34, "belong": 34, "sort": [34, 39, 45], "top": 34, "bottom": 34, "default_notif": 34, "emoji": [34, 35, 37], "explicit_content_filt": 34, "featur": [34, 49], "max_memb": 34, "max_pres": 34, "max_video_channel_us": 34, "sequenc": [34, 35, 36, 37, 39], "mfa_level": 34, "nsfw_level": 34, "owner_id": 34, "preferred_local": 34, "premium_progress_bar_en": 34, "premium_subscription_count": 34, "premium_ti": 34, "hierarchi": 34, "lowest": [34, 39], "sticker": 34, "permiss": 34, "view": 34, "unavail": 34, "vanity_url_cod": 34, "verification_level": 34, "widget_en": 34, "activitytyp": 34, "joined_at": 34, "nick": 34, "pend": 34, "premium_sinc": 34, "alwai": 34, "everyon": 34, "These": [34, 45], "timed_out_until": 34, "hoist": 34, "mention": 34, "tag": 34, "unicode_emoji": 34, "default_auto_archive_dur": 34, "last_message_id": 34, "slowmode_delai": 34, "archive_timestamp": 34, "archiv": 34, "archiver_id": 34, "auto_archive_dur": 34, "invit": [34, 35, 37], "lock": 34, "me": 34, "member_count": 34, "threadmemb": 34, "intent": 34, "properli": 34, "fill": 34, "howev": 34, "gatewai": 34, "fetch_memb": 34, "message_count": 34, "parent_id": 34, "insid": 34, "onbulkmessagedeleteabc": 35, "on_bulk_message_delet": [35, 37], "oncommandabc": 35, "on_command": [35, 37], "ctx": [35, 37], "oncommandcompletionabc": 35, "on_command_complet": [35, 37], "oncommanderrorabc": [35, 37], "on_command_error": [35, 37], "commanderror": [35, 37], "onconnectabc": 35, "on_connect": [35, 37], "ondisconnectabc": 35, "on_disconnect": [35, 37], "onerrorabc": 35, "on_error": [35, 37], "ongroupjoinabc": 35, "on_group_join": [35, 37], "chhanel": [35, 37], "groupchannel": [35, 37], "ongroupremoveabc": 35, "on_group_remov": [35, 37], "onguildavailableabc": 35, "on_guild_avail": [35, 37], "onguildchannelcreateabc": 35, "on_guild_channel_cr": [35, 37], "guildchannel": [35, 37], "onguildchanneldeleteabc": 35, "on_guild_channel_delet": [35, 37], "onguildchannelpinsupdateabc": 35, "on_guild_channel_pins_upd": [35, 37], "list_pin": [35, 37], "onguildchannelupdateabc": 35, "on_guild_channel_upd": [35, 37], "onguildemojisupdateabc": 35, "on_guild_emojis_upd": [35, 37], "onguildintegrationsupdateabc": 35, "on_guild_integrations_upd": [35, 37], "onguildjoinabc": 35, "on_guild_join": [35, 37], "onguildremoveabc": 35, "on_guild_remov": [35, 37], "onguildrolecreateabc": 35, "on_guild_role_cr": [35, 37], "onguildroledeleteabc": 35, "on_guild_role_delet": [35, 37], "onguildroleupdateabc": 35, "on_guild_role_upd": [35, 37], "onguildunavailableabc": 35, "on_guild_unavail": [35, 37], "onguildupdateabc": 35, "on_guild_upd": [35, 37], "oninvitecreateabc": 35, "on_invite_cr": [35, 37], "oninvitedeleteabc": 35, "on_invite_delet": [35, 37], "onmemberbanabc": 35, "on_member_ban": [35, 37], "onmemberjoinabc": 35, "on_member_join": [35, 37], "onmemberremoveabc": 35, "on_member_remov": [35, 37], "onmemberunbanabc": 35, "on_member_unban": [35, 37], "onmemberupdateabc": 35, "on_member_upd": [35, 37], "onmessageabc": 35, "on_messag": [35, 37], "onmessagedeleteabc": 35, "on_message_delet": [35, 37], "onmessageeditabc": 35, "on_message_edit": [35, 37], "onprivatechannelcreateabc": 35, "on_private_channel_cr": [35, 37], "privatechannel": [35, 37], "onprivatechanneldeleteabc": 35, "on_private_channel_delet": [35, 37], "onprivatechannelpinsupdateabc": 35, "on_private_channel_pins_upd": [35, 37], "onprivatechannelupdateabc": 35, "on_private_channel_upd": [35, 37], "onrawreactionaddabc": 35, "on_raw_reaction_add": [35, 37], "payload": [35, 37], "rawreactionactionev": [35, 37], "onrawreactionclearabc": 35, "on_raw_reaction_clear": [35, 37], "onrawreactionclearemojiabc": 35, "on_raw_reaction_clear_emoji": [35, 37], "onrawreactionremoveabc": 35, "on_raw_reaction_remov": [35, 37], "onreactionaddabc": 35, "on_reaction_add": [35, 37], "reaction": [35, 37], "onreactionclearabc": 35, "on_reaction_clear": [35, 37], "onreactionclearemojiabc": 35, "on_reaction_clear_emoji": [35, 37], "onreactionremoveabc": 35, "on_reaction_remov": [35, 37], "onreadyabc": 35, "on_readi": [35, 37], "onresumeabc": 35, "on_resum": [35, 37], "ontypingabc": 35, "on_typ": [35, 37], "onuserupdateabc": 35, "on_user_upd": [35, 37], "onvoicestateupdateabc": 35, "on_voice_state_upd": [35, 37], "voicest": [35, 37], "onwebhooksupdateabc": 35, "on_webhooks_upd": [35, 37], "tocontainersconvert": 36, "_l": 36, "commanderrorhandlerservic": 37, "discordbotservic": 37, "logging_st": 37, "discordserviceabc": 37, "discordbotserviceabc": 37, "client": 37, "start_async": 37, "bot": 37, "discordcollect": 37, "discordcollectionabc": 37, "add_command": 37, "add_ev": 37, "_t_event": 37, "get_command": 37, "get_events_by_bas": 37, "discordservic": 37, "init": 37, "cpl_queri": [38, 47], "default_lambda": [38, 47], "ordered_query": [38, 47], "ordered_queryable_abc": [38, 47], "queryable_abc": [38, 47], "sequence_abc": [38, 47], "sequence_valu": [38, 47], "enumerable_abc": [38, 41, 42, 47], "iterable_abc": [38, 40, 41, 47], "orderedquery": 39, "_valu": [39, 40], "_func": 39, "orderedqueryableabc": 39, "orderediterableabc": 39, "then_bi": 39, "orderedlist": 39, "ascend": 39, "func": 39, "ordered_iterable_abc": 39, "then_by_descend": 39, "descend": 39, "queryableabc": [39, 40, 42], "sequenceabc": 39, "everi": 39, "equal": 39, "averag": 39, "float": 39, "complex": [39, 45, 46], "distinct": 39, "redund": 39, "element_at": 39, "_index": 39, "element_at_or_default": 39, "first_or_default": 39, "for_each": 39, "group_bi": 39, "group": 39, "last_or_default": 39, "max": 39, "highest": 39, "median": 39, "min": 39, "order_bi": 39, "order_by_descend": 39, "revers": 39, "select_mani": 39, "flatten": 39, "singl": 39, "argumentnoneexcept": 39, "single_or_default": 39, "skip": 39, "skip_last": 39, "sum": 39, "take_last": 39, "where": 39, "empti": 39, "_object": [39, 42], "indexerror": 39, "rang": [39, 48], "sequencevalu": 39, "enumerableabc": [40, 41, 42], "set_remove_error_check": 40, "to_iter": [40, 41], "iterableabc": [40, 41, 42], "to_enumer": [41, 42], "append": 42, "extend": [42, 44, 47, 50], "_iterableabc__iter": 42, "__iter": 42, "translatepip": 43, "translationserviceabc": 43, "translationservic": 43, "lang": 43, "load_by_set": 43, "translationset": 43, "set_default_lang": 43, "set_lang": 43, "kei": [43, 45, 49], "default_languag": 43, "prerequisit": [44, 47], "what": [44, 47], "up": [44, 47], "queri": [44, 45, 46, 47], "tutori": [44, 47, 48, 49], "com": [44, 47, 50], "builtin": [44, 47, 50], "common": [45, 46], "platform": [45, 46], "meant": [45, 46], "effici": [45, 46], "desktop": [45, 46], "learn": [45, 46, 49], "enterpris": [45, 46], "expandl": [45, 46], "builder": [45, 46], "map": [45, 46], "inject": [45, 46, 48], "appnam": [45, 46], "hostnam": [45, 46], "wrapper": [45, 46], "differ": [45, 46], "variant": [45, 46], "to_lower_cas": [45, 46], "to_camel_cas": [45, 46], "code": [45, 48, 49], "connector": 45, "between": 45, "filter": 45, "linq": 45, "xd": 45, "dot": 45, "notat": 45, "page": 45, "great": 45, "detail": 45, "about": [45, 49], "everyth": 45, "do": [45, 48], "contribut": 45, "cpl_translat": 47, "translate_pip": 47, "translation_servic": 47, "translation_service_abc": 47, "translation_set": 47, "welcom": 48, "introduc": 48, "walk": 48, "also": [48, 49], "sampl": 48, "ouput": 48, "look": 48, "licens": 48, "done": 48, "readm": 48, "md": 48, "__init__": 48, "projectmain": 48, "vs": 48, "pycharm": 48, "folder": 48, "hello": [48, 49], "world": [48, 49], "emul": 48, "def": 48, "onli": 48, "__name__": 48, "__main__": 48, "generate_password": 48, "letter": 48, "join": 48, "choic": 48, "ascii_lowercas": 48, "elif": 48, "ascii_uppercas": 48, "ascii_lett": 48, "len": 48, "full": 48, "section": 48, "ve": 48, "continu": 48, "explor": 48, "window": 49, "prompt": 49, "declin": 49, "enter": 49, "press": 49, "lib": 49, "live": 49, "navig": 49, "launch": 49, "watch": 49, "chnage": 49, "those": 49, "success": 49, "similar": 49, "fore": 49, "pyhton": 49}, "objects": {"cpl_core.application": [[17, 0, 0, "-", "application_abc"], [17, 0, 0, "-", "application_builder"], [17, 0, 0, "-", "application_builder_abc"], [17, 0, 0, "-", "startup_abc"]], "cpl_core.application.application_abc": [[17, 1, 1, "", "ApplicationABC"]], "cpl_core.application.application_abc.ApplicationABC": [[17, 2, 1, "", "configure"], [17, 2, 1, "", "main"], [17, 2, 1, "", "run"], [17, 2, 1, "", "run_async"]], "cpl_core.application.application_builder": [[17, 1, 1, "", "ApplicationBuilder"]], "cpl_core.application.application_builder.ApplicationBuilder": [[17, 2, 1, "", "build"], [17, 2, 1, "", "build_async"], [17, 2, 1, "", "use_extension"], [17, 2, 1, "", "use_startup"]], "cpl_core.application.application_builder_abc": [[17, 1, 1, "", "ApplicationBuilderABC"]], "cpl_core.application.application_builder_abc.ApplicationBuilderABC": [[17, 2, 1, "", "build"], [17, 2, 1, "", "build_async"], [17, 2, 1, "", "use_startup"]], "cpl_core.application.startup_abc": [[17, 1, 1, "", "StartupABC"]], "cpl_core.application.startup_abc.StartupABC": [[17, 2, 1, "", "configure_configuration"], [17, 2, 1, "", "configure_services"]], "cpl_core.configuration": [[18, 0, 0, "-", "configuration"], [18, 0, 0, "-", "configuration_abc"], [18, 0, 0, "-", "configuration_model_abc"], [18, 0, 0, "-", "configuration_variable_name_enum"]], "cpl_core.configuration.configuration": [[18, 1, 1, "", "Configuration"]], "cpl_core.configuration.configuration.Configuration": [[18, 2, 1, "", "add_configuration"], [18, 2, 1, "", "add_console_argument"], [18, 2, 1, "", "add_environment_variables"], [18, 2, 1, "", "add_json_file"], [18, 3, 1, "", "additional_arguments"], [18, 3, 1, "", "argument_error_function"], [18, 3, 1, "", "arguments"], [18, 2, 1, "", "create_console_argument"], [18, 3, 1, "", "environment"], [18, 2, 1, "", "for_each_argument"], [18, 2, 1, "", "get_configuration"], [18, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_abc": [[18, 1, 1, "", "ConfigurationABC"]], "cpl_core.configuration.configuration_abc.ConfigurationABC": [[18, 2, 1, "", "add_configuration"], [18, 2, 1, "", "add_console_argument"], [18, 2, 1, "", "add_environment_variables"], [18, 2, 1, "", "add_json_file"], [18, 3, 1, "", "additional_arguments"], [18, 3, 1, "", "argument_error_function"], [18, 3, 1, "", "arguments"], [18, 2, 1, "", "create_console_argument"], [18, 3, 1, "", "environment"], [18, 2, 1, "", "for_each_argument"], [18, 2, 1, "", "get_configuration"], [18, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_model_abc": [[18, 1, 1, "", "ConfigurationModelABC"]], "cpl_core.configuration.configuration_model_abc.ConfigurationModelABC": [[18, 2, 1, "", "from_dict"]], "cpl_core.configuration.configuration_variable_name_enum": [[18, 1, 1, "", "ConfigurationVariableNameEnum"]], "cpl_core.configuration.configuration_variable_name_enum.ConfigurationVariableNameEnum": [[18, 4, 1, "", "customer"], [18, 4, 1, "", "environment"], [18, 4, 1, "", "name"], [18, 2, 1, "", "to_list"]], "cpl_core.console": [[19, 0, 0, "-", "background_color_enum"], [19, 0, 0, "-", "console"], [19, 0, 0, "-", "console_call"], [19, 0, 0, "-", "foreground_color_enum"], [19, 0, 0, "-", "spinner_thread"]], "cpl_core.console.background_color_enum": [[19, 1, 1, "", "BackgroundColorEnum"]], "cpl_core.console.background_color_enum.BackgroundColorEnum": [[19, 4, 1, "", "blue"], [19, 4, 1, "", "cyan"], [19, 4, 1, "", "default"], [19, 4, 1, "", "green"], [19, 4, 1, "", "grey"], [19, 4, 1, "", "magenta"], [19, 4, 1, "", "red"], [19, 4, 1, "", "white"], [19, 4, 1, "", "yellow"]], "cpl_core.console.console": [[19, 1, 1, "", "Console"]], "cpl_core.console.console.Console": [[19, 3, 1, "", "background_color"], [19, 2, 1, "", "banner"], [19, 2, 1, "", "clear"], [19, 2, 1, "", "close"], [19, 2, 1, "", "color_reset"], [19, 2, 1, "", "disable"], [19, 2, 1, "", "enable"], [19, 2, 1, "", "error"], [19, 3, 1, "", "foreground_color"], [19, 2, 1, "", "read"], [19, 2, 1, "", "read_line"], [19, 2, 1, "", "reset_cursor_position"], [19, 2, 1, "", "select"], [19, 2, 1, "", "set_background_color"], [19, 2, 1, "", "set_cursor_position"], [19, 2, 1, "", "set_foreground_color"], [19, 2, 1, "", "set_hold_back"], [19, 2, 1, "", "spinner"], [19, 2, 1, "", "table"], [19, 2, 1, "", "write"], [19, 2, 1, "", "write_at"], [19, 2, 1, "", "write_line"], [19, 2, 1, "", "write_line_at"]], "cpl_core.console.console_call": [[19, 1, 1, "", "ConsoleCall"]], "cpl_core.console.console_call.ConsoleCall": [[19, 3, 1, "", "args"], [19, 3, 1, "", "function"]], "cpl_core.console.foreground_color_enum": [[19, 1, 1, "", "ForegroundColorEnum"]], "cpl_core.console.foreground_color_enum.ForegroundColorEnum": [[19, 4, 1, "", "blue"], [19, 4, 1, "", "cyan"], [19, 4, 1, "", "default"], [19, 4, 1, "", "green"], [19, 4, 1, "", "grey"], [19, 4, 1, "", "magenta"], [19, 4, 1, "", "red"], [19, 4, 1, "", "white"], [19, 4, 1, "", "yellow"]], "cpl_core.console.spinner_thread": [[19, 1, 1, "", "SpinnerThread"]], "cpl_core.console.spinner_thread.SpinnerThread": [[19, 2, 1, "", "exit"], [19, 2, 1, "", "run"], [19, 2, 1, "", "stop_spinning"]], "cpl_core.database.connection": [[21, 0, 0, "-", "database_connection"], [21, 0, 0, "-", "database_connection_abc"]], "cpl_core.database.connection.database_connection": [[21, 1, 1, "", "DatabaseConnection"]], "cpl_core.database.connection.database_connection.DatabaseConnection": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 3, 1, "", "server"]], "cpl_core.database.connection.database_connection_abc": [[21, 1, 1, "", "DatabaseConnectionABC"]], "cpl_core.database.connection.database_connection_abc.DatabaseConnectionABC": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 3, 1, "", "server"]], "cpl_core.database.context": [[22, 0, 0, "-", "database_context"], [22, 0, 0, "-", "database_context_abc"]], "cpl_core.database.context.database_context": [[22, 1, 1, "", "DatabaseContext"]], "cpl_core.database.context.database_context.DatabaseContext": [[22, 2, 1, "", "connect"], [22, 3, 1, "", "cursor"], [22, 2, 1, "", "save_changes"], [22, 2, 1, "", "select"]], "cpl_core.database.context.database_context_abc": [[22, 1, 1, "", "DatabaseContextABC"]], "cpl_core.database.context.database_context_abc.DatabaseContextABC": [[22, 2, 1, "", "connect"], [22, 3, 1, "", "cursor"], [22, 2, 1, "", "save_changes"], [22, 2, 1, "", "select"]], "cpl_core.database": [[20, 0, 0, "-", "database_settings"], [20, 0, 0, "-", "database_settings_name_enum"]], "cpl_core.database.database_settings": [[20, 1, 1, "", "DatabaseSettings"]], "cpl_core.database.database_settings.DatabaseSettings": [[20, 3, 1, "", "auth_plugin"], [20, 3, 1, "", "buffered"], [20, 3, 1, "", "charset"], [20, 3, 1, "", "database"], [20, 2, 1, "", "from_dict"], [20, 3, 1, "", "host"], [20, 3, 1, "", "password"], [20, 3, 1, "", "port"], [20, 3, 1, "", "use_unicode"], [20, 3, 1, "", "user"]], "cpl_core.database.database_settings_name_enum": [[20, 1, 1, "", "DatabaseSettingsNameEnum"]], "cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum": [[20, 4, 1, "", "auth_plugin"], [20, 4, 1, "", "buffered"], [20, 4, 1, "", "charset"], [20, 4, 1, "", "database"], [20, 4, 1, "", "host"], [20, 4, 1, "", "password"], [20, 4, 1, "", "port"], [20, 4, 1, "", "use_unicode"], [20, 4, 1, "", "user"]], "cpl_core.dependency_injection": [[23, 0, 0, "-", "service_collection"], [23, 0, 0, "-", "service_collection_abc"], [23, 0, 0, "-", "service_descriptor"], [23, 0, 0, "-", "service_lifetime_enum"], [23, 0, 0, "-", "service_provider"], [23, 0, 0, "-", "service_provider_abc"]], "cpl_core.dependency_injection.service_collection": [[23, 1, 1, "", "ServiceCollection"]], "cpl_core.dependency_injection.service_collection.ServiceCollection": [[23, 2, 1, "", "add_db_context"], [23, 2, 1, "", "add_logging"], [23, 2, 1, "", "add_pipes"], [23, 2, 1, "", "add_scoped"], [23, 2, 1, "", "add_singleton"], [23, 2, 1, "", "add_transient"], [23, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_collection_abc": [[23, 1, 1, "", "ServiceCollectionABC"]], "cpl_core.dependency_injection.service_collection_abc.ServiceCollectionABC": [[23, 2, 1, "", "add_db_context"], [23, 2, 1, "", "add_discord"], [23, 2, 1, "", "add_logging"], [23, 2, 1, "", "add_pipes"], [23, 2, 1, "", "add_scoped"], [23, 2, 1, "", "add_singleton"], [23, 2, 1, "", "add_transient"], [23, 2, 1, "", "add_translation"], [23, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_descriptor": [[23, 1, 1, "", "ServiceDescriptor"]], "cpl_core.dependency_injection.service_descriptor.ServiceDescriptor": [[23, 3, 1, "", "base_type"], [23, 3, 1, "", "implementation"], [23, 3, 1, "", "lifetime"], [23, 3, 1, "", "service_type"]], "cpl_core.dependency_injection.service_lifetime_enum": [[23, 1, 1, "", "ServiceLifetimeEnum"]], "cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum": [[23, 4, 1, "", "scoped"], [23, 4, 1, "", "singleton"], [23, 4, 1, "", "transient"]], "cpl_core.dependency_injection.service_provider": [[23, 1, 1, "", "ServiceProvider"]], "cpl_core.dependency_injection.service_provider.ServiceProvider": [[23, 2, 1, "", "build_service"], [23, 2, 1, "", "create_scope"], [23, 2, 1, "", "get_service"], [23, 2, 1, "", "set_scope"]], "cpl_core.dependency_injection.service_provider_abc": [[23, 1, 1, "", "ServiceProviderABC"]], "cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC": [[23, 2, 1, "", "build_service"], [23, 2, 1, "", "create_scope"], [23, 2, 1, "", "get_service"], [23, 2, 1, "", "set_scope"]], "cpl_core.environment": [[24, 0, 0, "-", "application_environment"], [24, 0, 0, "-", "application_environment_abc"], [24, 0, 0, "-", "environment_name_enum"]], "cpl_core.environment.application_environment": [[24, 1, 1, "", "ApplicationEnvironment"]], "cpl_core.environment.application_environment.ApplicationEnvironment": [[24, 3, 1, "", "application_name"], [24, 3, 1, "", "customer"], [24, 3, 1, "", "date_time_now"], [24, 3, 1, "", "end_time"], [24, 3, 1, "", "environment_name"], [24, 3, 1, "", "host_name"], [24, 3, 1, "", "runtime_directory"], [24, 2, 1, "", "set_runtime_directory"], [24, 2, 1, "", "set_working_directory"], [24, 3, 1, "", "start_time"], [24, 3, 1, "", "working_directory"]], "cpl_core.environment.application_environment_abc": [[24, 1, 1, "", "ApplicationEnvironmentABC"]], "cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC": [[24, 3, 1, "", "application_name"], [24, 3, 1, "", "customer"], [24, 3, 1, "", "date_time_now"], [24, 3, 1, "", "end_time"], [24, 3, 1, "", "environment_name"], [24, 3, 1, "", "host_name"], [24, 3, 1, "", "runtime_directory"], [24, 2, 1, "", "set_runtime_directory"], [24, 2, 1, "", "set_working_directory"], [24, 3, 1, "", "start_time"], [24, 3, 1, "", "working_directory"]], "cpl_core.environment.environment_name_enum": [[24, 1, 1, "", "EnvironmentNameEnum"]], "cpl_core.environment.environment_name_enum.EnvironmentNameEnum": [[24, 4, 1, "", "development"], [24, 4, 1, "", "production"], [24, 4, 1, "", "staging"], [24, 4, 1, "", "testing"]], "cpl_core.logging": [[25, 0, 0, "-", "logger_abc"], [25, 0, 0, "-", "logger_service"], [25, 0, 0, "-", "logging_level_enum"], [25, 0, 0, "-", "logging_settings"], [25, 0, 0, "-", "logging_settings_name_enum"]], "cpl_core.logging.logger_abc": [[25, 1, 1, "", "LoggerABC"]], "cpl_core.logging.logger_abc.LoggerABC": [[25, 2, 1, "", "debug"], [25, 2, 1, "", "error"], [25, 2, 1, "", "fatal"], [25, 2, 1, "", "header"], [25, 2, 1, "", "info"], [25, 2, 1, "", "trace"], [25, 2, 1, "", "warn"]], "cpl_core.logging.logger_service": [[25, 1, 1, "", "Logger"]], "cpl_core.logging.logger_service.Logger": [[25, 2, 1, "", "create"], [25, 2, 1, "", "debug"], [25, 2, 1, "", "error"], [25, 2, 1, "", "fatal"], [25, 2, 1, "", "header"], [25, 2, 1, "", "info"], [25, 2, 1, "", "trace"], [25, 2, 1, "", "warn"]], "cpl_core.logging.logging_level_enum": [[25, 1, 1, "", "LoggingLevelEnum"]], "cpl_core.logging.logging_level_enum.LoggingLevelEnum": [[25, 4, 1, "", "DEBUG"], [25, 4, 1, "", "ERROR"], [25, 4, 1, "", "FATAL"], [25, 4, 1, "", "INFO"], [25, 4, 1, "", "OFF"], [25, 4, 1, "", "TRACE"], [25, 4, 1, "", "WARN"]], "cpl_core.logging.logging_settings": [[25, 1, 1, "", "LoggingSettings"]], "cpl_core.logging.logging_settings.LoggingSettings": [[25, 3, 1, "", "console"], [25, 3, 1, "", "filename"], [25, 2, 1, "", "from_dict"], [25, 3, 1, "", "level"], [25, 3, 1, "", "path"]], "cpl_core.logging.logging_settings_name_enum": [[25, 1, 1, "", "LoggingSettingsNameEnum"]], "cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum": [[25, 4, 1, "", "console_level"], [25, 4, 1, "", "file_level"], [25, 4, 1, "", "filename"], [25, 4, 1, "", "path"]], "cpl_core.mailing": [[26, 0, 0, "-", "email"], [26, 0, 0, "-", "email_client_abc"], [26, 0, 0, "-", "email_client_service"], [26, 0, 0, "-", "email_client_settings"], [26, 0, 0, "-", "email_client_settings_name_enum"]], "cpl_core.mailing.email": [[26, 1, 1, "", "EMail"]], "cpl_core.mailing.email.EMail": [[26, 2, 1, "", "add_header"], [26, 2, 1, "", "add_receiver"], [26, 3, 1, "", "body"], [26, 2, 1, "", "check_mail"], [26, 2, 1, "", "get_content"], [26, 3, 1, "", "header"], [26, 3, 1, "", "header_list"], [26, 3, 1, "", "receiver"], [26, 3, 1, "", "receiver_list"], [26, 3, 1, "", "subject"], [26, 3, 1, "", "transceiver"]], "cpl_core.mailing.email_client_abc": [[26, 1, 1, "", "EMailClientABC"]], "cpl_core.mailing.email_client_abc.EMailClientABC": [[26, 2, 1, "", "connect"], [26, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_service": [[26, 1, 1, "", "EMailClient"]], "cpl_core.mailing.email_client_service.EMailClient": [[26, 2, 1, "", "connect"], [26, 2, 1, "", "create"], [26, 2, 1, "", "login"], [26, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_settings": [[26, 1, 1, "", "EMailClientSettings"]], "cpl_core.mailing.email_client_settings.EMailClientSettings": [[26, 3, 1, "", "credentials"], [26, 2, 1, "", "from_dict"], [26, 3, 1, "", "host"], [26, 3, 1, "", "port"], [26, 3, 1, "", "user_name"]], "cpl_core.mailing.email_client_settings_name_enum": [[26, 1, 1, "", "EMailClientSettingsNameEnum"]], "cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum": [[26, 4, 1, "", "credentials"], [26, 4, 1, "", "host"], [26, 4, 1, "", "port"], [26, 4, 1, "", "user_name"]], "cpl_core.pipes": [[27, 0, 0, "-", "bool_pipe"], [27, 0, 0, "-", "first_char_to_lower_pipe"], [27, 0, 0, "-", "first_to_upper_pipe"], [27, 0, 0, "-", "ip_address_pipe"], [27, 0, 0, "-", "pipe_abc"], [27, 0, 0, "-", "to_camel_case_pipe"], [27, 0, 0, "-", "to_snake_case_pipe"], [27, 0, 0, "-", "version_pipe"]], "cpl_core.pipes.bool_pipe": [[27, 1, 1, "", "BoolPipe"]], "cpl_core.pipes.bool_pipe.BoolPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.first_char_to_lower_pipe": [[27, 1, 1, "", "FirstCharToLowerPipe"]], "cpl_core.pipes.first_char_to_lower_pipe.FirstCharToLowerPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.first_to_upper_pipe": [[27, 1, 1, "", "FirstToUpperPipe"]], "cpl_core.pipes.first_to_upper_pipe.FirstToUpperPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.ip_address_pipe": [[27, 1, 1, "", "IPAddressPipe"]], "cpl_core.pipes.ip_address_pipe.IPAddressPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.pipe_abc": [[27, 1, 1, "", "PipeABC"]], "cpl_core.pipes.pipe_abc.PipeABC": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.to_camel_case_pipe": [[27, 1, 1, "", "ToCamelCasePipe"]], "cpl_core.pipes.to_camel_case_pipe.ToCamelCasePipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.to_snake_case_pipe": [[27, 1, 1, "", "ToSnakeCasePipe"]], "cpl_core.pipes.to_snake_case_pipe.ToSnakeCasePipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.version_pipe": [[27, 1, 1, "", "VersionPipe"]], "cpl_core.pipes.version_pipe.VersionPipe": [[27, 2, 1, "", "transform"]], "cpl_core.time": [[28, 0, 0, "-", "time_format_settings"], [28, 0, 0, "-", "time_format_settings_names_enum"]], "cpl_core.time.time_format_settings": [[28, 1, 1, "", "TimeFormatSettings"]], "cpl_core.time.time_format_settings.TimeFormatSettings": [[28, 3, 1, "", "date_format"], [28, 3, 1, "", "date_time_format"], [28, 3, 1, "", "date_time_log_format"], [28, 2, 1, "", "from_dict"], [28, 3, 1, "", "time_format"]], "cpl_core.time.time_format_settings_names_enum": [[28, 1, 1, "", "TimeFormatSettingsNamesEnum"]], "cpl_core.time.time_format_settings_names_enum.TimeFormatSettingsNamesEnum": [[28, 4, 1, "", "date_format"], [28, 4, 1, "", "date_time_format"], [28, 4, 1, "", "date_time_log_format"], [28, 4, 1, "", "time_format"]], "cpl_core.utils": [[29, 0, 0, "-", "credential_manager"], [29, 0, 0, "-", "pip"], [29, 0, 0, "-", "string"]], "cpl_core.utils.credential_manager": [[29, 1, 1, "", "CredentialManager"]], "cpl_core.utils.credential_manager.CredentialManager": [[29, 2, 1, "", "build_string"], [29, 2, 1, "", "decrypt"], [29, 2, 1, "", "encrypt"]], "cpl_core.utils.pip": [[29, 1, 1, "", "Pip"]], "cpl_core.utils.pip.Pip": [[29, 2, 1, "", "get_executable"], [29, 2, 1, "", "get_outdated"], [29, 2, 1, "", "get_package"], [29, 2, 1, "", "install"], [29, 2, 1, "", "reset_executable"], [29, 2, 1, "", "set_executable"], [29, 2, 1, "", "uninstall"]], "cpl_core.utils.string": [[29, 1, 1, "", "String"]], "cpl_core.utils.string.String": [[29, 2, 1, "", "convert_to_camel_case"], [29, 2, 1, "", "convert_to_snake_case"], [29, 2, 1, "", "first_to_lower"], [29, 2, 1, "", "first_to_upper"], [29, 2, 1, "", "random_string"]], "cpl_discord.application": [[31, 0, 0, "-", "discord_bot_application_abc"]], "cpl_discord.application.discord_bot_application_abc": [[31, 1, 1, "", "DiscordBotApplicationABC"]], "cpl_discord.application.discord_bot_application_abc.DiscordBotApplicationABC": [[31, 2, 1, "", "stop_async"]], "cpl_discord.command": [[32, 0, 0, "-", "discord_command_abc"], [32, 0, 0, "-", "discord_commands_meta"]], "cpl_discord.command.discord_command_abc": [[32, 1, 1, "", "DiscordCommandABC"]], "cpl_discord.command.discord_commands_meta": [[32, 1, 1, "", "DiscordCogMeta"]], "cpl_discord.configuration": [[33, 0, 0, "-", "discord_bot_settings"]], "cpl_discord.configuration.discord_bot_settings": [[33, 1, 1, "", "DiscordBotSettings"]], "cpl_discord.configuration.discord_bot_settings.DiscordBotSettings": [[33, 2, 1, "", "from_dict"], [33, 3, 1, "", "prefix"], [33, 3, 1, "", "token"]], "cpl_discord.container": [[34, 0, 0, "-", "category_channel"], [34, 0, 0, "-", "container"], [34, 0, 0, "-", "guild"], [34, 0, 0, "-", "member"], [34, 0, 0, "-", "role"], [34, 0, 0, "-", "text_channel"], [34, 0, 0, "-", "thread"], [34, 0, 0, "-", "voice_channel"]], "cpl_discord.container.category_channel": [[34, 1, 1, "", "CategoryChannel"]], "cpl_discord.container.category_channel.CategoryChannel": [[34, 4, 1, "", "category_id"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw"], [34, 4, 1, "", "position"], [34, 3, 1, "", "text_channels"], [34, 3, 1, "", "voice_channels"]], "cpl_discord.container.container": [[34, 1, 1, "", "Container"]], "cpl_discord.container.guild": [[34, 1, 1, "", "Guild"]], "cpl_discord.container.guild.Guild": [[34, 4, 1, "", "afk_channel"], [34, 4, 1, "", "afk_timeout"], [34, 4, 1, "", "approximate_member_count"], [34, 4, 1, "", "approximate_presence_count"], [34, 3, 1, "", "categories"], [34, 4, 1, "", "default_notifications"], [34, 4, 1, "", "description"], [34, 4, 1, "", "emojis"], [34, 4, 1, "", "explicit_content_filter"], [34, 4, 1, "", "features"], [34, 4, 1, "", "id"], [34, 4, 1, "", "max_members"], [34, 4, 1, "", "max_presences"], [34, 4, 1, "", "max_video_channel_users"], [34, 3, 1, "", "members"], [34, 4, 1, "", "mfa_level"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw_level"], [34, 4, 1, "", "owner_id"], [34, 4, 1, "", "preferred_locale"], [34, 4, 1, "", "premium_progress_bar_enabled"], [34, 4, 1, "", "premium_subscription_count"], [34, 4, 1, "", "premium_tier"], [34, 3, 1, "", "roles"], [34, 4, 1, "", "stickers"], [34, 3, 1, "", "text_channels"], [34, 3, 1, "", "threads"], [34, 4, 1, "", "unavailable"], [34, 4, 1, "", "vanity_url_code"], [34, 4, 1, "", "verification_level"], [34, 3, 1, "", "voice_channels"], [34, 4, 1, "", "widget_enabled"]], "cpl_discord.container.member": [[34, 1, 1, "", "Member"]], "cpl_discord.container.member.Member": [[34, 4, 1, "", "activities"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "joined_at"], [34, 4, 1, "", "nick"], [34, 4, 1, "", "pending"], [34, 4, 1, "", "premium_since"], [34, 3, 1, "", "roles"], [34, 4, 1, "", "timed_out_until"]], "cpl_discord.container.role": [[34, 1, 1, "", "Role"]], "cpl_discord.container.role.Role": [[34, 4, 1, "", "guild"], [34, 4, 1, "", "hoist"], [34, 4, 1, "", "id"], [34, 4, 1, "", "managed"], [34, 3, 1, "", "members"], [34, 4, 1, "", "mentionable"], [34, 4, 1, "", "name"], [34, 4, 1, "", "position"], [34, 4, 1, "", "tags"], [34, 4, 1, "", "unicode_emoji"]], "cpl_discord.container.text_channel": [[34, 1, 1, "", "TextChannel"]], "cpl_discord.container.text_channel.TextChannel": [[34, 4, 1, "", "category_id"], [34, 4, 1, "", "default_auto_archive_duration"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "last_message_id"], [34, 3, 1, "", "members"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw"], [34, 4, 1, "", "position"], [34, 4, 1, "", "slowmode_delay"], [34, 3, 1, "", "threads"], [34, 4, 1, "", "topic"]], "cpl_discord.container.thread": [[34, 1, 1, "", "Thread"]], "cpl_discord.container.thread.Thread": [[34, 4, 1, "", "archive_timestamp"], [34, 4, 1, "", "archived"], [34, 4, 1, "", "archiver_id"], [34, 4, 1, "", "auto_archive_duration"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "invitable"], [34, 4, 1, "", "last_message_id"], [34, 4, 1, "", "locked"], [34, 4, 1, "", "me"], [34, 4, 1, "", "member_count"], [34, 3, 1, "", "members"], [34, 4, 1, "", "message_count"], [34, 4, 1, "", "name"], [34, 4, 1, "", "owner_id"], [34, 4, 1, "", "parent_id"], [34, 4, 1, "", "slowmode_delay"]], "cpl_discord.container.voice_channel": [[34, 1, 1, "", "VoiceChannel"]], "cpl_discord.container.voice_channel.VoiceChannel": [[34, 3, 1, "", "members"]], "cpl_discord.events": [[35, 0, 0, "-", "on_bulk_message_delete_abc"], [35, 0, 0, "-", "on_command_abc"], [35, 0, 0, "-", "on_command_completion_abc"], [35, 0, 0, "-", "on_command_error_abc"], [35, 0, 0, "-", "on_connect_abc"], [35, 0, 0, "-", "on_disconnect_abc"], [35, 0, 0, "-", "on_error_abc"], [35, 0, 0, "-", "on_group_join_abc"], [35, 0, 0, "-", "on_group_remove_abc"], [35, 0, 0, "-", "on_guild_available_abc"], [35, 0, 0, "-", "on_guild_channel_create_abc"], [35, 0, 0, "-", "on_guild_channel_delete_abc"], [35, 0, 0, "-", "on_guild_channel_pins_update_abc"], [35, 0, 0, "-", "on_guild_channel_update_abc"], [35, 0, 0, "-", "on_guild_emojis_update_abc"], [35, 0, 0, "-", "on_guild_integrations_update_abc"], [35, 0, 0, "-", "on_guild_join_abc"], [35, 0, 0, "-", "on_guild_remove_abc"], [35, 0, 0, "-", "on_guild_role_create_abc"], [35, 0, 0, "-", "on_guild_role_delete_abc"], [35, 0, 0, "-", "on_guild_role_update_abc"], [35, 0, 0, "-", "on_guild_unavailable_abc"], [35, 0, 0, "-", "on_guild_update_abc"], [35, 0, 0, "-", "on_invite_create_abc"], [35, 0, 0, "-", "on_invite_delete_abc"], [35, 0, 0, "-", "on_member_ban_abc"], [35, 0, 0, "-", "on_member_join_abc"], [35, 0, 0, "-", "on_member_remove_abc"], [35, 0, 0, "-", "on_member_unban_abc"], [35, 0, 0, "-", "on_member_update_abc"], [35, 0, 0, "-", "on_message_abc"], [35, 0, 0, "-", "on_message_delete_abc"], [35, 0, 0, "-", "on_message_edit_abc"], [35, 0, 0, "-", "on_private_channel_create_abc"], [35, 0, 0, "-", "on_private_channel_delete_abc"], [35, 0, 0, "-", "on_private_channel_pins_update_abc"], [35, 0, 0, "-", "on_private_channel_update_abc"], [35, 0, 0, "-", "on_raw_reaction_add_abc"], [35, 0, 0, "-", "on_raw_reaction_clear_abc"], [35, 0, 0, "-", "on_raw_reaction_clear_emoji_abc"], [35, 0, 0, "-", "on_raw_reaction_remove_abc"], [35, 0, 0, "-", "on_reaction_add_abc"], [35, 0, 0, "-", "on_reaction_clear_abc"], [35, 0, 0, "-", "on_reaction_clear_emoji_abc"], [35, 0, 0, "-", "on_reaction_remove_abc"], [35, 0, 0, "-", "on_ready_abc"], [35, 0, 0, "-", "on_resume_abc"], [35, 0, 0, "-", "on_typing_abc"], [35, 0, 0, "-", "on_user_update_abc"], [35, 0, 0, "-", "on_voice_state_update_abc"], [35, 0, 0, "-", "on_webhooks_update_abc"]], "cpl_discord.events.on_bulk_message_delete_abc": [[35, 1, 1, "", "OnBulkMessageDeleteABC"]], "cpl_discord.events.on_bulk_message_delete_abc.OnBulkMessageDeleteABC": [[35, 2, 1, "", "on_bulk_message_delete"]], "cpl_discord.events.on_command_abc": [[35, 1, 1, "", "OnCommandABC"]], "cpl_discord.events.on_command_abc.OnCommandABC": [[35, 2, 1, "", "on_command"]], "cpl_discord.events.on_command_completion_abc": [[35, 1, 1, "", "OnCommandCompletionABC"]], "cpl_discord.events.on_command_completion_abc.OnCommandCompletionABC": [[35, 2, 1, "", "on_command_completion"]], "cpl_discord.events.on_command_error_abc": [[35, 1, 1, "", "OnCommandErrorABC"]], "cpl_discord.events.on_command_error_abc.OnCommandErrorABC": [[35, 2, 1, "", "on_command_error"]], "cpl_discord.events.on_connect_abc": [[35, 1, 1, "", "OnConnectABC"]], "cpl_discord.events.on_connect_abc.OnConnectABC": [[35, 2, 1, "", "on_connect"]], "cpl_discord.events.on_disconnect_abc": [[35, 1, 1, "", "OnDisconnectABC"]], "cpl_discord.events.on_disconnect_abc.OnDisconnectABC": [[35, 2, 1, "", "on_disconnect"]], "cpl_discord.events.on_error_abc": [[35, 1, 1, "", "OnErrorABC"]], "cpl_discord.events.on_error_abc.OnErrorABC": [[35, 2, 1, "", "on_error"]], "cpl_discord.events.on_group_join_abc": [[35, 1, 1, "", "OnGroupJoinABC"]], "cpl_discord.events.on_group_join_abc.OnGroupJoinABC": [[35, 2, 1, "", "on_group_join"]], "cpl_discord.events.on_group_remove_abc": [[35, 1, 1, "", "OnGroupRemoveABC"]], "cpl_discord.events.on_group_remove_abc.OnGroupRemoveABC": [[35, 2, 1, "", "on_group_remove"]], "cpl_discord.events.on_guild_available_abc": [[35, 1, 1, "", "OnGuildAvailableABC"]], "cpl_discord.events.on_guild_available_abc.OnGuildAvailableABC": [[35, 2, 1, "", "on_guild_available"]], "cpl_discord.events.on_guild_channel_create_abc": [[35, 1, 1, "", "OnGuildChannelCreateABC"]], "cpl_discord.events.on_guild_channel_create_abc.OnGuildChannelCreateABC": [[35, 2, 1, "", "on_guild_channel_create"]], "cpl_discord.events.on_guild_channel_delete_abc": [[35, 1, 1, "", "OnGuildChannelDeleteABC"]], "cpl_discord.events.on_guild_channel_delete_abc.OnGuildChannelDeleteABC": [[35, 2, 1, "", "on_guild_channel_delete"]], "cpl_discord.events.on_guild_channel_pins_update_abc": [[35, 1, 1, "", "OnGuildChannelPinsUpdateABC"]], "cpl_discord.events.on_guild_channel_pins_update_abc.OnGuildChannelPinsUpdateABC": [[35, 2, 1, "", "on_guild_channel_pins_update"]], "cpl_discord.events.on_guild_channel_update_abc": [[35, 1, 1, "", "OnGuildChannelUpdateABC"]], "cpl_discord.events.on_guild_channel_update_abc.OnGuildChannelUpdateABC": [[35, 2, 1, "", "on_guild_channel_update"]], "cpl_discord.events.on_guild_emojis_update_abc": [[35, 1, 1, "", "OnGuildEmojisUpdateABC"]], "cpl_discord.events.on_guild_emojis_update_abc.OnGuildEmojisUpdateABC": [[35, 2, 1, "", "on_guild_emojis_update"]], "cpl_discord.events.on_guild_integrations_update_abc": [[35, 1, 1, "", "OnGuildIntegrationsUpdateABC"]], "cpl_discord.events.on_guild_integrations_update_abc.OnGuildIntegrationsUpdateABC": [[35, 2, 1, "", "on_guild_integrations_update"]], "cpl_discord.events.on_guild_join_abc": [[35, 1, 1, "", "OnGuildJoinABC"]], "cpl_discord.events.on_guild_join_abc.OnGuildJoinABC": [[35, 2, 1, "", "on_guild_join"]], "cpl_discord.events.on_guild_remove_abc": [[35, 1, 1, "", "OnGuildRemoveABC"]], "cpl_discord.events.on_guild_remove_abc.OnGuildRemoveABC": [[35, 2, 1, "", "on_guild_remove"]], "cpl_discord.events.on_guild_role_create_abc": [[35, 1, 1, "", "OnGuildRoleCreateABC"]], "cpl_discord.events.on_guild_role_create_abc.OnGuildRoleCreateABC": [[35, 2, 1, "", "on_guild_role_create"]], "cpl_discord.events.on_guild_role_delete_abc": [[35, 1, 1, "", "OnGuildRoleDeleteABC"]], "cpl_discord.events.on_guild_role_delete_abc.OnGuildRoleDeleteABC": [[35, 2, 1, "", "on_guild_role_delete"]], "cpl_discord.events.on_guild_role_update_abc": [[35, 1, 1, "", "OnGuildRoleUpdateABC"]], "cpl_discord.events.on_guild_role_update_abc.OnGuildRoleUpdateABC": [[35, 2, 1, "", "on_guild_role_update"]], "cpl_discord.events.on_guild_unavailable_abc": [[35, 1, 1, "", "OnGuildUnavailableABC"]], "cpl_discord.events.on_guild_unavailable_abc.OnGuildUnavailableABC": [[35, 2, 1, "", "on_guild_unavailable"]], "cpl_discord.events.on_guild_update_abc": [[35, 1, 1, "", "OnGuildUpdateABC"]], "cpl_discord.events.on_guild_update_abc.OnGuildUpdateABC": [[35, 2, 1, "", "on_guild_update"]], "cpl_discord.events.on_invite_create_abc": [[35, 1, 1, "", "OnInviteCreateABC"]], "cpl_discord.events.on_invite_create_abc.OnInviteCreateABC": [[35, 2, 1, "", "on_invite_create"]], "cpl_discord.events.on_invite_delete_abc": [[35, 1, 1, "", "OnInviteDeleteABC"]], "cpl_discord.events.on_invite_delete_abc.OnInviteDeleteABC": [[35, 2, 1, "", "on_invite_delete"]], "cpl_discord.events.on_member_ban_abc": [[35, 1, 1, "", "OnMemberBanABC"]], "cpl_discord.events.on_member_ban_abc.OnMemberBanABC": [[35, 2, 1, "", "on_member_ban"]], "cpl_discord.events.on_member_join_abc": [[35, 1, 1, "", "OnMemberJoinABC"]], "cpl_discord.events.on_member_join_abc.OnMemberJoinABC": [[35, 2, 1, "", "on_member_join"]], "cpl_discord.events.on_member_remove_abc": [[35, 1, 1, "", "OnMemberRemoveABC"]], "cpl_discord.events.on_member_remove_abc.OnMemberRemoveABC": [[35, 2, 1, "", "on_member_remove"]], "cpl_discord.events.on_member_unban_abc": [[35, 1, 1, "", "OnMemberUnbanABC"]], "cpl_discord.events.on_member_unban_abc.OnMemberUnbanABC": [[35, 2, 1, "", "on_member_unban"]], "cpl_discord.events.on_member_update_abc": [[35, 1, 1, "", "OnMemberUpdateABC"]], "cpl_discord.events.on_member_update_abc.OnMemberUpdateABC": [[35, 2, 1, "", "on_member_update"]], "cpl_discord.events.on_message_abc": [[35, 1, 1, "", "OnMessageABC"]], "cpl_discord.events.on_message_abc.OnMessageABC": [[35, 2, 1, "", "on_message"]], "cpl_discord.events.on_message_delete_abc": [[35, 1, 1, "", "OnMessageDeleteABC"]], "cpl_discord.events.on_message_delete_abc.OnMessageDeleteABC": [[35, 2, 1, "", "on_message_delete"]], "cpl_discord.events.on_message_edit_abc": [[35, 1, 1, "", "OnMessageEditABC"]], "cpl_discord.events.on_message_edit_abc.OnMessageEditABC": [[35, 2, 1, "", "on_message_edit"]], "cpl_discord.events.on_private_channel_create_abc": [[35, 1, 1, "", "OnPrivateChannelCreateABC"]], "cpl_discord.events.on_private_channel_create_abc.OnPrivateChannelCreateABC": [[35, 2, 1, "", "on_private_channel_create"]], "cpl_discord.events.on_private_channel_delete_abc": [[35, 1, 1, "", "OnPrivateChannelDeleteABC"]], "cpl_discord.events.on_private_channel_delete_abc.OnPrivateChannelDeleteABC": [[35, 2, 1, "", "on_private_channel_delete"]], "cpl_discord.events.on_private_channel_pins_update_abc": [[35, 1, 1, "", "OnPrivateChannelPinsUpdateABC"]], "cpl_discord.events.on_private_channel_pins_update_abc.OnPrivateChannelPinsUpdateABC": [[35, 2, 1, "", "on_private_channel_pins_update"]], "cpl_discord.events.on_private_channel_update_abc": [[35, 1, 1, "", "OnPrivateChannelUpdateABC"]], "cpl_discord.events.on_private_channel_update_abc.OnPrivateChannelUpdateABC": [[35, 2, 1, "", "on_private_channel_update"]], "cpl_discord.events.on_raw_reaction_add_abc": [[35, 1, 1, "", "OnRawReactionAddABC"]], "cpl_discord.events.on_raw_reaction_add_abc.OnRawReactionAddABC": [[35, 2, 1, "", "on_raw_reaction_add"]], "cpl_discord.events.on_raw_reaction_clear_abc": [[35, 1, 1, "", "OnRawReactionClearABC"]], "cpl_discord.events.on_raw_reaction_clear_abc.OnRawReactionClearABC": [[35, 2, 1, "", "on_raw_reaction_clear"]], "cpl_discord.events.on_raw_reaction_clear_emoji_abc": [[35, 1, 1, "", "OnRawReactionClearEmojiABC"]], "cpl_discord.events.on_raw_reaction_clear_emoji_abc.OnRawReactionClearEmojiABC": [[35, 2, 1, "", "on_raw_reaction_clear_emoji"]], "cpl_discord.events.on_raw_reaction_remove_abc": [[35, 1, 1, "", "OnRawReactionRemoveABC"]], "cpl_discord.events.on_raw_reaction_remove_abc.OnRawReactionRemoveABC": [[35, 2, 1, "", "on_raw_reaction_remove"]], "cpl_discord.events.on_reaction_add_abc": [[35, 1, 1, "", "OnReactionAddABC"]], "cpl_discord.events.on_reaction_add_abc.OnReactionAddABC": [[35, 2, 1, "", "on_reaction_add"]], "cpl_discord.events.on_reaction_clear_abc": [[35, 1, 1, "", "OnReactionClearABC"]], "cpl_discord.events.on_reaction_clear_abc.OnReactionClearABC": [[35, 2, 1, "", "on_reaction_clear"]], "cpl_discord.events.on_reaction_clear_emoji_abc": [[35, 1, 1, "", "OnReactionClearEmojiABC"]], "cpl_discord.events.on_reaction_clear_emoji_abc.OnReactionClearEmojiABC": [[35, 2, 1, "", "on_reaction_clear_emoji"]], "cpl_discord.events.on_reaction_remove_abc": [[35, 1, 1, "", "OnReactionRemoveABC"]], "cpl_discord.events.on_reaction_remove_abc.OnReactionRemoveABC": [[35, 2, 1, "", "on_reaction_remove"]], "cpl_discord.events.on_ready_abc": [[35, 1, 1, "", "OnReadyABC"]], "cpl_discord.events.on_ready_abc.OnReadyABC": [[35, 2, 1, "", "on_ready"]], "cpl_discord.events.on_resume_abc": [[35, 1, 1, "", "OnResumeABC"]], "cpl_discord.events.on_resume_abc.OnResumeABC": [[35, 2, 1, "", "on_resume"]], "cpl_discord.events.on_typing_abc": [[35, 1, 1, "", "OnTypingABC"]], "cpl_discord.events.on_typing_abc.OnTypingABC": [[35, 2, 1, "", "on_typing"]], "cpl_discord.events.on_user_update_abc": [[35, 1, 1, "", "OnUserUpdateABC"]], "cpl_discord.events.on_user_update_abc.OnUserUpdateABC": [[35, 2, 1, "", "on_user_update"]], "cpl_discord.events.on_voice_state_update_abc": [[35, 1, 1, "", "OnVoiceStateUpdateABC"]], "cpl_discord.events.on_voice_state_update_abc.OnVoiceStateUpdateABC": [[35, 2, 1, "", "on_voice_state_update"]], "cpl_discord.events.on_webhooks_update_abc": [[35, 1, 1, "", "OnWebhooksUpdateABC"]], "cpl_discord.events.on_webhooks_update_abc.OnWebhooksUpdateABC": [[35, 2, 1, "", "on_webhooks_update"]], "cpl_discord.helper": [[36, 0, 0, "-", "to_containers_converter"]], "cpl_discord.helper.to_containers_converter": [[36, 1, 1, "", "ToContainersConverter"]], "cpl_discord.helper.to_containers_converter.ToContainersConverter": [[36, 2, 1, "", "convert"]], "cpl_discord.service": [[37, 0, 0, "-", "command_error_handler_service"], [37, 0, 0, "-", "discord_bot_service"], [37, 0, 0, "-", "discord_bot_service_abc"], [37, 0, 0, "-", "discord_collection"], [37, 0, 0, "-", "discord_collection_abc"], [37, 0, 0, "-", "discord_service"], [37, 0, 0, "-", "discord_service_abc"]], "cpl_discord.service.command_error_handler_service": [[37, 1, 1, "", "CommandErrorHandlerService"]], "cpl_discord.service.command_error_handler_service.CommandErrorHandlerService": [[37, 2, 1, "", "on_command_error"]], "cpl_discord.service.discord_bot_service": [[37, 1, 1, "", "DiscordBotService"]], "cpl_discord.service.discord_bot_service.DiscordBotService": [[37, 3, 1, "", "guilds"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "start_async"], [37, 2, 1, "", "stop_async"]], "cpl_discord.service.discord_bot_service_abc": [[37, 1, 1, "", "DiscordBotServiceABC"]], "cpl_discord.service.discord_bot_service_abc.DiscordBotServiceABC": [[37, 3, 1, "", "guilds"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "start_async"], [37, 2, 1, "", "stop_async"]], "cpl_discord.service.discord_collection": [[37, 1, 1, "", "DiscordCollection"]], "cpl_discord.service.discord_collection.DiscordCollection": [[37, 2, 1, "", "add_command"], [37, 2, 1, "", "add_event"], [37, 2, 1, "", "get_commands"], [37, 2, 1, "", "get_events_by_base"]], "cpl_discord.service.discord_collection_abc": [[37, 1, 1, "", "DiscordCollectionABC"]], "cpl_discord.service.discord_collection_abc.DiscordCollectionABC": [[37, 2, 1, "", "add_command"], [37, 2, 1, "", "add_event"], [37, 2, 1, "", "get_commands"], [37, 2, 1, "", "get_events_by_base"]], "cpl_discord.service.discord_service": [[37, 1, 1, "", "DiscordService"]], "cpl_discord.service.discord_service.DiscordService": [[37, 2, 1, "", "init"], [37, 2, 1, "", "on_bulk_message_delete"], [37, 2, 1, "", "on_command"], [37, 2, 1, "", "on_command_completion"], [37, 2, 1, "", "on_command_error"], [37, 2, 1, "", "on_connect"], [37, 2, 1, "", "on_disconnect"], [37, 2, 1, "", "on_error"], [37, 2, 1, "", "on_group_join"], [37, 2, 1, "", "on_group_remove"], [37, 2, 1, "", "on_guild_available"], [37, 2, 1, "", "on_guild_channel_create"], [37, 2, 1, "", "on_guild_channel_delete"], [37, 2, 1, "", "on_guild_channel_pins_update"], [37, 2, 1, "", "on_guild_channel_update"], [37, 2, 1, "", "on_guild_emojis_update"], [37, 2, 1, "", "on_guild_integrations_update"], [37, 2, 1, "", "on_guild_join"], [37, 2, 1, "", "on_guild_remove"], [37, 2, 1, "", "on_guild_role_create"], [37, 2, 1, "", "on_guild_role_delete"], [37, 2, 1, "", "on_guild_role_update"], [37, 2, 1, "", "on_guild_unavailable"], [37, 2, 1, "", "on_guild_update"], [37, 2, 1, "", "on_invite_create"], [37, 2, 1, "", "on_invite_delete"], [37, 2, 1, "", "on_member_ban"], [37, 2, 1, "", "on_member_join"], [37, 2, 1, "", "on_member_remove"], [37, 2, 1, "", "on_member_unban"], [37, 2, 1, "", "on_member_update"], [37, 2, 1, "", "on_message"], [37, 2, 1, "", "on_message_delete"], [37, 2, 1, "", "on_message_edit"], [37, 2, 1, "", "on_private_channel_create"], [37, 2, 1, "", "on_private_channel_delete"], [37, 2, 1, "", "on_private_channel_pins_update"], [37, 2, 1, "", "on_private_channel_update"], [37, 2, 1, "", "on_raw_reaction_add"], [37, 2, 1, "", "on_raw_reaction_clear"], [37, 2, 1, "", "on_raw_reaction_clear_emoji"], [37, 2, 1, "", "on_raw_reaction_remove"], [37, 2, 1, "", "on_reaction_add"], [37, 2, 1, "", "on_reaction_clear"], [37, 2, 1, "", "on_reaction_clear_emoji"], [37, 2, 1, "", "on_reaction_remove"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "on_resume"], [37, 2, 1, "", "on_typing"], [37, 2, 1, "", "on_user_update"], [37, 2, 1, "", "on_voice_state_update"], [37, 2, 1, "", "on_webhooks_update"]], "cpl_discord.service.discord_service_abc": [[37, 1, 1, "", "DiscordServiceABC"]], "cpl_discord.service.discord_service_abc.DiscordServiceABC": [[37, 2, 1, "", "init"], [37, 2, 1, "", "on_bulk_message_delete"], [37, 2, 1, "", "on_command"], [37, 2, 1, "", "on_command_completion"], [37, 2, 1, "", "on_command_error"], [37, 2, 1, "", "on_connect"], [37, 2, 1, "", "on_disconnect"], [37, 2, 1, "", "on_error"], [37, 2, 1, "", "on_group_join"], [37, 2, 1, "", "on_group_remove"], [37, 2, 1, "", "on_guild_available"], [37, 2, 1, "", "on_guild_channel_create"], [37, 2, 1, "", "on_guild_channel_delete"], [37, 2, 1, "", "on_guild_channel_pins_update"], [37, 2, 1, "", "on_guild_channel_update"], [37, 2, 1, "", "on_guild_emojis_update"], [37, 2, 1, "", "on_guild_integrations_update"], [37, 2, 1, "", "on_guild_join"], [37, 2, 1, "", "on_guild_remove"], [37, 2, 1, "", "on_guild_role_create"], [37, 2, 1, "", "on_guild_role_delete"], [37, 2, 1, "", "on_guild_role_update"], [37, 2, 1, "", "on_guild_unavailable"], [37, 2, 1, "", "on_guild_update"], [37, 2, 1, "", "on_invite_create"], [37, 2, 1, "", "on_invite_delete"], [37, 2, 1, "", "on_member_ban"], [37, 2, 1, "", "on_member_join"], [37, 2, 1, "", "on_member_remove"], [37, 2, 1, "", "on_member_unban"], [37, 2, 1, "", "on_member_update"], [37, 2, 1, "", "on_message"], [37, 2, 1, "", "on_message_delete"], [37, 2, 1, "", "on_message_edit"], [37, 2, 1, "", "on_private_channel_create"], [37, 2, 1, "", "on_private_channel_delete"], [37, 2, 1, "", "on_private_channel_pins_update"], [37, 2, 1, "", "on_private_channel_update"], [37, 2, 1, "", "on_reaction_add"], [37, 2, 1, "", "on_reaction_clear"], [37, 2, 1, "", "on_reaction_clear_emoji"], [37, 2, 1, "", "on_reaction_remove"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "on_resume"], [37, 2, 1, "", "on_typing"], [37, 2, 1, "", "on_user_update"], [37, 2, 1, "", "on_voice_state_update"], [37, 2, 1, "", "on_webhooks_update"]], "cpl_query.base": [[39, 0, 0, "-", "default_lambda"], [39, 0, 0, "-", "ordered_queryable"], [39, 0, 0, "-", "ordered_queryable_abc"], [39, 0, 0, "-", "queryable_abc"], [39, 0, 0, "-", "sequence_abc"], [39, 0, 0, "-", "sequence_values"]], "cpl_query.base.default_lambda": [[39, 5, 1, "", "default_lambda"]], "cpl_query.base.ordered_queryable": [[39, 1, 1, "", "OrderedQueryable"]], "cpl_query.base.ordered_queryable.OrderedQueryable": [[39, 2, 1, "", "then_by"], [39, 2, 1, "", "then_by_descending"]], "cpl_query.base.ordered_queryable_abc": [[39, 1, 1, "", "OrderedQueryableABC"]], "cpl_query.base.ordered_queryable_abc.OrderedQueryableABC": [[39, 2, 1, "", "then_by"], [39, 2, 1, "", "then_by_descending"]], "cpl_query.base.queryable_abc": [[39, 1, 1, "", "QueryableABC"]], "cpl_query.base.queryable_abc.QueryableABC": [[39, 2, 1, "", "all"], [39, 2, 1, "", "any"], [39, 2, 1, "", "average"], [39, 2, 1, "", "contains"], [39, 2, 1, "", "count"], [39, 2, 1, "", "distinct"], [39, 2, 1, "", "element_at"], [39, 2, 1, "", "element_at_or_default"], [39, 2, 1, "", "first"], [39, 2, 1, "", "first_or_default"], [39, 2, 1, "", "for_each"], [39, 2, 1, "", "group_by"], [39, 2, 1, "", "last"], [39, 2, 1, "", "last_or_default"], [39, 2, 1, "", "max"], [39, 2, 1, "", "median"], [39, 2, 1, "", "min"], [39, 2, 1, "", "order_by"], [39, 2, 1, "", "order_by_descending"], [39, 2, 1, "", "reverse"], [39, 2, 1, "", "select"], [39, 2, 1, "", "select_many"], [39, 2, 1, "", "single"], [39, 2, 1, "", "single_or_default"], [39, 2, 1, "", "skip"], [39, 2, 1, "", "skip_last"], [39, 2, 1, "", "sum"], [39, 2, 1, "", "take"], [39, 2, 1, "", "take_last"], [39, 2, 1, "", "where"]], "cpl_query.base.sequence_abc": [[39, 1, 1, "", "SequenceABC"]], "cpl_query.base.sequence_abc.SequenceABC": [[39, 2, 1, "", "copy"], [39, 2, 1, "", "empty"], [39, 2, 1, "", "index"], [39, 2, 1, "", "next"], [39, 2, 1, "", "range"], [39, 2, 1, "", "to_list"], [39, 3, 1, "", "type"]], "cpl_query.base.sequence_values": [[39, 1, 1, "", "SequenceValues"]], "cpl_query.base.sequence_values.SequenceValues": [[39, 2, 1, "", "next"], [39, 2, 1, "", "reset"]], "cpl_query.enumerable": [[40, 0, 0, "-", "enumerable"], [40, 0, 0, "-", "enumerable_abc"]], "cpl_query.enumerable.enumerable": [[40, 1, 1, "", "Enumerable"]], "cpl_query.enumerable.enumerable_abc": [[40, 1, 1, "", "EnumerableABC"]], "cpl_query.enumerable.enumerable_abc.EnumerableABC": [[40, 2, 1, "", "set_remove_error_check"], [40, 2, 1, "", "to_iterable"]], "cpl_query.extension": [[41, 0, 0, "-", "list"]], "cpl_query.extension.list": [[41, 1, 1, "", "List"]], "cpl_query.extension.list.List": [[41, 2, 1, "", "to_enumerable"], [41, 2, 1, "", "to_iterable"]], "cpl_query.iterable": [[42, 0, 0, "-", "iterable"], [42, 0, 0, "-", "iterable_abc"]], "cpl_query.iterable.iterable": [[42, 1, 1, "", "Iterable"]], "cpl_query.iterable.iterable_abc": [[42, 1, 1, "", "IterableABC"]], "cpl_query.iterable.iterable_abc.IterableABC": [[42, 2, 1, "", "add"], [42, 2, 1, "", "append"], [42, 2, 1, "", "extend"], [42, 2, 1, "", "remove"], [42, 2, 1, "", "to_enumerable"], [42, 3, 1, "", "type"]], "cpl_translation": [[43, 0, 0, "-", "translate_pipe"], [43, 0, 0, "-", "translation_service"], [43, 0, 0, "-", "translation_service_abc"], [43, 0, 0, "-", "translation_settings"]], "cpl_translation.translate_pipe": [[43, 1, 1, "", "TranslatePipe"]], "cpl_translation.translate_pipe.TranslatePipe": [[43, 2, 1, "", "transform"]], "cpl_translation.translation_service": [[43, 1, 1, "", "TranslationService"]], "cpl_translation.translation_service.TranslationService": [[43, 2, 1, "", "load"], [43, 2, 1, "", "load_by_settings"], [43, 2, 1, "", "set_default_lang"], [43, 2, 1, "", "set_lang"], [43, 2, 1, "", "translate"]], "cpl_translation.translation_service_abc": [[43, 1, 1, "", "TranslationServiceABC"]], "cpl_translation.translation_service_abc.TranslationServiceABC": [[43, 2, 1, "", "load"], [43, 2, 1, "", "load_by_settings"], [43, 2, 1, "", "set_default_lang"], [43, 2, 1, "", "set_lang"], [43, 2, 1, "", "translate"]], "cpl_translation.translation_settings": [[43, 1, 1, "", "TranslationSettings"]], "cpl_translation.translation_settings.TranslationSettings": [[43, 3, 1, "", "default_language"], [43, 2, 1, "", "from_dict"], [43, 3, 1, "", "languages"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"cpl": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 45, 46, 47, 48], "add": 0, "content": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 48, 49], "descript": [0, 1, 2, 3, 4, 5, 7, 8, 11], "argument": [0, 2, 3, 4, 8, 11, 53], "flag": [0, 4, 5, 8, 11, 12], "build": 1, "gener": 2, "schemat": [2, 6], "help": 3, "instal": [4, 49], "new": 5, "project": [5, 48], "type": 5, "cli": [6, 15, 49], "overview": [6, 46], "command": [6, 32], "refer": [6, 15, 16, 30, 38, 43], "tabl": [6, 48, 49], "basic": 6, "workflow": 6, "languag": 6, "syntax": 6, "rel": 6, "path": 6, "publish": 7, "remov": 8, "run": 9, "start": [10, 44, 48, 49], "uninstal": 11, "updat": 12, "version": 13, "contribut": 14, "found": 14, "bug": 14, "featur": [14, 45, 46], "request": 14, "submiss": 14, "guidelin": 14, "submit": 14, "an": 14, "issu": 14, "pull": 14, "review": 14, "address": 14, "feedback": 14, "code": 14, "rule": 14, "licens": 14, "api": 16, "cpl_core": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 52], "applic": [17, 31, 55], "application_abc": 17, "application_build": 17, "application_builder_abc": 17, "startup_abc": 17, "configur": [18, 33], "configuration_abc": 18, "configuration_model_abc": 18, "configuration_variable_name_enum": 18, "console_argu": 18, "consol": [19, 49, 52, 53], "background_color_enum": 19, "console_cal": 19, "foreground_color_enum": 19, "spinner_thread": 19, "databas": [20, 21, 22], "database_model": 20, "database_set": 20, "database_settings_name_enum": 20, "connect": 21, "database_connect": 21, "database_connection_abc": 21, "context": 22, "database_context": 22, "database_context_abc": 22, "dependency_inject": 23, "service_collect": 23, "service_collection_abc": 23, "service_descriptor": 23, "service_lifetime_enum": 23, "service_provid": 23, "service_provider_abc": 23, "environ": [24, 49], "application_environ": 24, "application_environment_abc": 24, "environment_name_enum": 24, "log": 25, "logger_abc": 25, "logger_servic": 25, "logging_level_enum": 25, "logging_set": 25, "logging_settings_name_enum": 25, "mail": [26, 58], "email": 26, "email_client_abc": 26, "email_client_servic": 26, "email_client_set": 26, "email_client_settings_name_enum": 26, "pipe": 27, "bool_pip": 27, "first_char_to_lower_pip": 27, "first_to_upper_pip": 27, "ip_address_pip": 27, "pipe_abc": 27, "to_camel_case_pip": 27, "to_snake_case_pip": 27, "version_pip": 27, "time": 28, "time_format_set": 28, "time_format_settings_names_enum": 28, "util": 29, "credential_manag": 29, "pip": 29, "string": 29, "discord": 30, "cpl_discord": [31, 32, 33, 34, 35, 36, 37], "discord_bot_application_abc": 31, "discord_command_abc": 32, "discord_commands_meta": 32, "discord_bot_set": 33, "contain": 34, "category_channel": 34, "guild": 34, "member": 34, "role": 34, "text_channel": 34, "thread": 34, "voice_channel": 34, "event": 35, "on_bulk_message_delete_abc": 35, "on_command_abc": 35, "on_command_completion_abc": 35, "on_command_error_abc": 35, "on_connect_abc": 35, "on_disconnect_abc": 35, "on_error_abc": 35, "on_group_join_abc": 35, "on_group_remove_abc": 35, "on_guild_available_abc": 35, "on_guild_channel_create_abc": 35, "on_guild_channel_delete_abc": 35, "on_guild_channel_pins_update_abc": 35, "on_guild_channel_update_abc": 35, "on_guild_emojis_update_abc": 35, "on_guild_integrations_update_abc": 35, "on_guild_join_abc": 35, "on_guild_remove_abc": 35, "on_guild_role_create_abc": 35, "on_guild_role_delete_abc": 35, "on_guild_role_update_abc": 35, "on_guild_unavailable_abc": 35, "on_guild_update_abc": 35, "on_invite_create_abc": 35, "on_invite_delete_abc": 35, "on_member_ban_abc": 35, "on_member_join_abc": 35, "on_member_remove_abc": 35, "on_member_unban_abc": 35, "on_member_update_abc": 35, "on_message_abc": 35, "on_message_delete_abc": 35, "on_message_edit_abc": 35, "on_private_channel_create_abc": 35, "on_private_channel_delete_abc": 35, "on_private_channel_pins_update_abc": 35, "on_private_channel_update_abc": 35, "on_raw_reaction_add_abc": 35, "on_raw_reaction_clear_abc": 35, "on_raw_reaction_clear_emoji_abc": 35, "on_raw_reaction_remove_abc": 35, "on_reaction_add_abc": 35, "on_reaction_clear_abc": 35, "on_reaction_clear_emoji_abc": 35, "on_reaction_remove_abc": 35, "on_ready_abc": 35, "on_resume_abc": 35, "on_typing_abc": 35, "on_user_update_abc": 35, "on_voice_state_update_abc": 35, "on_webhooks_update_abc": 35, "helper": 36, "to_containers_convert": 36, "servic": 37, "command_error_handler_servic": 37, "discord_bot_servic": 37, "discord_bot_service_abc": 37, "discord_collect": 37, "discord_collection_abc": 37, "discord_servic": 37, "discord_service_abc": 37, "queri": [38, 49], "cpl_queri": [39, 40, 41, 42], "base": 39, "default_lambda": 39, "ordered_query": 39, "ordered_queryable_abc": 39, "queryable_abc": 39, "sequence_abc": 39, "sequence_valu": 39, "enumer": 40, "enumerable_abc": 40, "extens": 41, "list": 41, "iter": 42, "iterable_abc": 42, "translat": 43, "cpl_translat": 43, "translate_pip": 43, "translation_servic": 43, "translation_service_abc": 43, "translation_set": 43, "get": [44, 48], "introduct": [45, 46], "doc": [45, 46], "manual": 45, "explor": 46, "prerequisit": [48, 49], "creat": [48, 49, 54], "menu": 48, "what": [48, 49], "s": [48, 49], "next": [48, 49], "set": 49, "up": 49, "local": 49, "workspac": 49, "packag": 49, "initi": 49, "app": 49, "librari": 49, "tutori": 50, "us": [51, 52, 57], "appset": 51, "json": 51, "com": [51, 52, 53, 54, 55, 56, 57, 58], "soon": [51, 52, 53, 54, 55, 56, 57, 58], "handl": 53, "startup": [54, 56], "class": 54, "extend": [55, 56], "builtin": 57, "logger": 57, "send": 58}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "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": 56}}) \ No newline at end of file diff --git a/docs/build/html/setup.html b/docs/build/html/setup.html index 4fd1c85a..330b7c84 100644 --- a/docs/build/html/setup.html +++ b/docs/build/html/setup.html @@ -58,9 +58,11 @@
  184. Contributing to CPL
  185. -
  186. CLI Reference
  187. -
  188. API Reference
  189. -
  190. Query Reference
  191. +
  192. CLI reference
  193. +
  194. API reference
  195. +
  196. Discord reference
  197. +
  198. Query reference
  199. +
  200. Translation reference
  201. @@ -118,7 +120,7 @@

    Install the package

    To install the package, open a terminal window and run the following command:

    -
    pip install sh_cpl-core --extra-index-url https://pip.sh-edraft.de
    +
    pip install cpl-core --extra-index-url https://pip.sh-edraft.de
     
    @@ -126,14 +128,14 @@

    Install the CLI

    You use the CPL CLI to create projects, generate application and library code. You also use the CLI to build and publish your python packages.

    To install the CLI, open a terminal window and run the following command:

    -
    pip install sh_cpl-cli --extra-index-url https://pip.sh-edraft.de
    +
    pip install cpl-cli --extra-index-url https://pip.sh-edraft.de
     

    Install the query

    To install the package, open a terminal window and run the following command:

    -
    pip install sh_cpl-query --extra-index-url https://pip.sh-edraft.de
    +
    pip install cpl-query --extra-index-url https://pip.sh-edraft.de
     
    @@ -206,7 +208,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.appsettings.html b/docs/build/html/tutorials.appsettings.html index f3326ff6..0b42a876 100644 --- a/docs/build/html/tutorials.appsettings.html +++ b/docs/build/html/tutorials.appsettings.html @@ -60,9 +60,11 @@
  202. Contributing to CPL
  203. -
  204. CLI Reference
  205. -
  206. API Reference
  207. -
  208. Query Reference
  209. +
  210. CLI reference
  211. +
  212. API reference
  213. +
  214. Discord reference
  215. +
  216. Query reference
  217. +
  218. Translation reference
  219. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.console-arguments.html b/docs/build/html/tutorials.console-arguments.html index 435572ca..01cb18f3 100644 --- a/docs/build/html/tutorials.console-arguments.html +++ b/docs/build/html/tutorials.console-arguments.html @@ -60,9 +60,11 @@
  220. Contributing to CPL
  221. -
  222. CLI Reference
  223. -
  224. API Reference
  225. -
  226. Query Reference
  227. +
  228. CLI reference
  229. +
  230. API reference
  231. +
  232. Discord reference
  233. +
  234. Query reference
  235. +
  236. Translation reference
  237. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.console.html b/docs/build/html/tutorials.console.html index a3442f07..7b9ef50b 100644 --- a/docs/build/html/tutorials.console.html +++ b/docs/build/html/tutorials.console.html @@ -60,9 +60,11 @@
  238. Contributing to CPL
  239. -
  240. CLI Reference
  241. -
  242. API Reference
  243. -
  244. Query Reference
  245. +
  246. CLI reference
  247. +
  248. API reference
  249. +
  250. Discord reference
  251. +
  252. Query reference
  253. +
  254. Translation reference
  255. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.create-startup.html b/docs/build/html/tutorials.create-startup.html index 2feee349..98beb078 100644 --- a/docs/build/html/tutorials.create-startup.html +++ b/docs/build/html/tutorials.create-startup.html @@ -60,9 +60,11 @@
  256. Contributing to CPL
  257. -
  258. CLI Reference
  259. -
  260. API Reference
  261. -
  262. Query Reference
  263. +
  264. CLI reference
  265. +
  266. API reference
  267. +
  268. Discord reference
  269. +
  270. Query reference
  271. +
  272. Translation reference
  273. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.extend-application.html b/docs/build/html/tutorials.extend-application.html index ecdb0e88..40d36232 100644 --- a/docs/build/html/tutorials.extend-application.html +++ b/docs/build/html/tutorials.extend-application.html @@ -60,9 +60,11 @@
  274. Contributing to CPL
  275. -
  276. CLI Reference
  277. -
  278. API Reference
  279. -
  280. Query Reference
  281. +
  282. CLI reference
  283. +
  284. API reference
  285. +
  286. Discord reference
  287. +
  288. Query reference
  289. +
  290. Translation reference
  291. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.extend-startup.html b/docs/build/html/tutorials.extend-startup.html index 4a37bfaf..660a1afb 100644 --- a/docs/build/html/tutorials.extend-startup.html +++ b/docs/build/html/tutorials.extend-startup.html @@ -60,9 +60,11 @@
  292. Contributing to CPL
  293. -
  294. CLI Reference
  295. -
  296. API Reference
  297. -
  298. Query Reference
  299. +
  300. CLI reference
  301. +
  302. API reference
  303. +
  304. Discord reference
  305. +
  306. Query reference
  307. +
  308. Translation reference
  309. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.html b/docs/build/html/tutorials.html index 458940a3..141e20c5 100644 --- a/docs/build/html/tutorials.html +++ b/docs/build/html/tutorials.html @@ -57,9 +57,11 @@
  310. Contributing to CPL
  311. -
  312. CLI Reference
  313. -
  314. API Reference
  315. -
  316. Query Reference
  317. +
  318. CLI reference
  319. +
  320. API reference
  321. +
  322. Discord reference
  323. +
  324. Query reference
  325. +
  326. Translation reference
  327. @@ -138,7 +140,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.logging.html b/docs/build/html/tutorials.logging.html index bb948b54..d88b255f 100644 --- a/docs/build/html/tutorials.logging.html +++ b/docs/build/html/tutorials.logging.html @@ -60,9 +60,11 @@
  328. Contributing to CPL
  329. -
  330. CLI Reference
  331. -
  332. API Reference
  333. -
  334. Query Reference
  335. +
  336. CLI reference
  337. +
  338. API reference
  339. +
  340. Discord reference
  341. +
  342. Query reference
  343. +
  344. Translation reference
  345. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/build/html/tutorials.mail.html b/docs/build/html/tutorials.mail.html index 65cf0ca5..c1c39f37 100644 --- a/docs/build/html/tutorials.mail.html +++ b/docs/build/html/tutorials.mail.html @@ -60,9 +60,11 @@
  346. Contributing to CPL
  347. -
  348. CLI Reference
  349. -
  350. API Reference
  351. -
  352. Query Reference
  353. +
  354. CLI reference
  355. +
  356. API reference
  357. +
  358. Discord reference
  359. +
  360. Query reference
  361. +
  362. Translation reference
  363. @@ -109,7 +111,7 @@
    -

    © Copyright 2021, Sven Heidemann.

    +

    © Copyright 2021 - 2023, Sven Heidemann.

    Built with Sphinx using a diff --git a/docs/source/cli.generate.md b/docs/source/cli.generate.md index 40d79fdf..95a1cb51 100644 --- a/docs/source/cli.generate.md +++ b/docs/source/cli.generate.md @@ -18,10 +18,11 @@ Generates files based on a schematic. ## Arguments -| Argument | Description | Value type | -| ----------------- |:---------------------------------:|:-------------:| -| `````` | The schematic to generate. | ```str``` | -| `````` | The name of the generated file. | ```str``` | +| Argument | Description | Value type | +|-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------:| +| `````` | The schematic to generate. | ```str``` | +| `````` | The name of the generated file. | ```str``` | +| ```--base``` | First element of path will be used as base-path not 'src'. For example: 'cpl g c test/Test' will be created at ```src/test/``` with --base it would be ```test/``` | ```str``` | ## Schematics diff --git a/docs/source/cli.new.md b/docs/source/cli.new.md index 2ddcb9e7..f000dcd6 100644 --- a/docs/source/cli.new.md +++ b/docs/source/cli.new.md @@ -18,10 +18,11 @@ Generates a workspace and initial project or add a project to workspace. If the command is running in a CPL workspace, it will add the new project to the workspace. -| Argument | Description | Value type | -|--------------|:----------------------------------------------------:|:----------:| -| `````` | The type of the project, see [types](#project-types) | ```str``` | -| `````` | The name of the project | ```str``` | +| Argument | Description | Value type | +|--------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------:| +| `````` | The type of the project, see [types](#project-types) | ```str``` | +| `````` | The name of the project | ```str``` | +| ```--base``` | First element of path will be used as base-path not 'src'. For example: 'cpl g c test/Test' will be created at ```src/test/``` with --base it would be ```test/``` | ```str``` | ## Project types diff --git a/docs/source/cli.run.md b/docs/source/cli.run.md new file mode 100644 index 00000000..5782a7a4 --- /dev/null +++ b/docs/source/cli.run.md @@ -0,0 +1,12 @@ +# cpl run + +Starts your application once. + +cpl **run**
    +cpl **r**
    +cpl **R** + +| Argument | Description | Value type | +|-----------------|:----------------------------------------------------------------------------------------------------:|:----------:| +| `````` | Optional parameter to specify which project to start, if not set default project will be started. | ```str``` | +| ```--dev``` | To run the project from source and not from dist after build. | ```str``` | \ No newline at end of file diff --git a/docs/source/cli.start.md b/docs/source/cli.start.md index 2b067bfb..961feef1 100644 --- a/docs/source/cli.start.md +++ b/docs/source/cli.start.md @@ -5,3 +5,7 @@ Starts your application, restarting on file changes. cpl **start**
    cpl **s**
    cpl **S** + +| Argument | Description | Value type | +|-----------------|:----------------------------------------------------------------------------------------------------:|:----------:| +| ```--dev``` | To run the project from source and not from dist after build. | ```str``` | \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 6954834c..00747705 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -15,16 +15,15 @@ # sys.path.insert(0, os.path.abspath('.')) import os import sys -sys.path.insert(0, os.path.abspath('../../src/')) +sys.path.insert(0, os.path.abspath('../../src/')) # -- Project information ----------------------------------------------------- project = 'Common Python Library' -copyright = '2021, Sven Heidemann' +copyright = '2021 - 2023, Sven Heidemann' author = 'Sven Heidemann' - # -- General configuration --------------------------------------------------- # Add any Sphinx extension names here, as strings. They can be @@ -56,7 +55,6 @@ exclude_patterns = [ 'tests/*' ] - # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for diff --git a/docs/source/cpl_cli.rst b/docs/source/cpl_cli.rst index 338ba5c2..cec12291 100644 --- a/docs/source/cpl_cli.rst +++ b/docs/source/cpl_cli.rst @@ -1,4 +1,4 @@ -CLI Reference +CLI reference ============= .. toctree:: diff --git a/docs/source/cpl_core.database.rst b/docs/source/cpl_core.database.rst index fb55c962..cdcb0ce8 100644 --- a/docs/source/cpl_core.database.rst +++ b/docs/source/cpl_core.database.rst @@ -7,8 +7,7 @@ cpl_core.database cpl_core.database.connection cpl_core.database.context -Submodules ----------- + cpl_core.database.database\_model ----------------------------------- diff --git a/docs/source/cpl_core.pipes.rst b/docs/source/cpl_core.pipes.rst index 8af5814b..0a8bba4d 100644 --- a/docs/source/cpl_core.pipes.rst +++ b/docs/source/cpl_core.pipes.rst @@ -1,10 +1,9 @@ cpl\_core.pipes ======================= -Submodules ----------- -cpl\_core.pipes.bool\_pipe module + +cpl\_core.pipes.bool\_pipe --------------------------------- .. automodule:: cpl_core.pipes.bool_pipe @@ -12,7 +11,7 @@ cpl\_core.pipes.bool\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.first\_char\_to\_lower\_pipe module +cpl\_core.pipes.first\_char\_to\_lower\_pipe --------------------------------------------------- .. automodule:: cpl_core.pipes.first_char_to_lower_pipe @@ -20,7 +19,7 @@ cpl\_core.pipes.first\_char\_to\_lower\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.first\_to\_upper\_pipe module +cpl\_core.pipes.first\_to\_upper\_pipe --------------------------------------------- .. automodule:: cpl_core.pipes.first_to_upper_pipe @@ -28,7 +27,7 @@ cpl\_core.pipes.first\_to\_upper\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.ip\_address\_pipe module +cpl\_core.pipes.ip\_address\_pipe ---------------------------------------- .. automodule:: cpl_core.pipes.ip_address_pipe @@ -36,7 +35,7 @@ cpl\_core.pipes.ip\_address\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.pipe\_abc module +cpl\_core.pipes.pipe\_abc -------------------------------- .. automodule:: cpl_core.pipes.pipe_abc @@ -44,7 +43,7 @@ cpl\_core.pipes.pipe\_abc module :undoc-members: :show-inheritance: -cpl\_core.pipes.to\_camel\_case\_pipe module +cpl\_core.pipes.to\_camel\_case\_pipe -------------------------------------------- .. automodule:: cpl_core.pipes.to_camel_case_pipe @@ -52,7 +51,7 @@ cpl\_core.pipes.to\_camel\_case\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.to\_snake\_case\_pipe module +cpl\_core.pipes.to\_snake\_case\_pipe -------------------------------------------- .. automodule:: cpl_core.pipes.to_snake_case_pipe @@ -60,18 +59,10 @@ cpl\_core.pipes.to\_snake\_case\_pipe module :undoc-members: :show-inheritance: -cpl\_core.pipes.version\_pipe module +cpl\_core.pipes.version\_pipe ------------------------------------ .. automodule:: cpl_core.pipes.version_pipe :members: :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: cpl_core.pipes - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/cpl_core.rst b/docs/source/cpl_core.rst index a71547b3..e1e9b11a 100644 --- a/docs/source/cpl_core.rst +++ b/docs/source/cpl_core.rst @@ -1,4 +1,4 @@ -API Reference +API reference =========== .. toctree:: diff --git a/docs/source/cpl_discord.application.rst b/docs/source/cpl_discord.application.rst new file mode 100644 index 00000000..ef077d22 --- /dev/null +++ b/docs/source/cpl_discord.application.rst @@ -0,0 +1,12 @@ +cpl\_discord.application +================================ + + + +cpl\_discord.application.discord\_bot\_application\_abc +-------------------------------------------------------------- + +.. automodule:: cpl_discord.application.discord_bot_application_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_discord.command.rst b/docs/source/cpl_discord.command.rst new file mode 100644 index 00000000..5f495733 --- /dev/null +++ b/docs/source/cpl_discord.command.rst @@ -0,0 +1,20 @@ +cpl\_discord.command +============================ + + + +cpl\_discord.command.discord\_command\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.command.discord_command_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.command.discord\_commands\_meta +--------------------------------------------------- + +.. automodule:: cpl_discord.command.discord_commands_meta + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_discord.configuration.rst b/docs/source/cpl_discord.configuration.rst new file mode 100644 index 00000000..eb855d14 --- /dev/null +++ b/docs/source/cpl_discord.configuration.rst @@ -0,0 +1,12 @@ +cpl\_discord.configuration +================================== + + + +cpl\_discord.configuration.discord\_bot\_settings +-------------------------------------------------------- + +.. automodule:: cpl_discord.configuration.discord_bot_settings + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_discord.container.rst b/docs/source/cpl_discord.container.rst new file mode 100644 index 00000000..a47f50b1 --- /dev/null +++ b/docs/source/cpl_discord.container.rst @@ -0,0 +1,68 @@ +cpl\_discord.container +============================== + + + +cpl\_discord.container.category\_channel +----------------------------------------------- + +.. automodule:: cpl_discord.container.category_channel + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.container +--------------------------------------- + +.. automodule:: cpl_discord.container.container + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.guild +----------------------------------- + +.. automodule:: cpl_discord.container.guild + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.member +------------------------------------ + +.. automodule:: cpl_discord.container.member + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.role +---------------------------------- + +.. automodule:: cpl_discord.container.role + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.text\_channel +------------------------------------------- + +.. automodule:: cpl_discord.container.text_channel + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.thread +------------------------------------ + +.. automodule:: cpl_discord.container.thread + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.container.voice\_channel +-------------------------------------------- + +.. automodule:: cpl_discord.container.voice_channel + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_discord.events.rst b/docs/source/cpl_discord.events.rst new file mode 100644 index 00000000..d26aa744 --- /dev/null +++ b/docs/source/cpl_discord.events.rst @@ -0,0 +1,412 @@ +cpl\_discord.events +=========================== + + + +cpl\_discord.events.on\_bulk\_message\_delete\_abc +--------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_bulk_message_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_command\_abc +------------------------------------------- + +.. automodule:: cpl_discord.events.on_command_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_command\_completion\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_command_completion_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_command\_error\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_command_error_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_connect\_abc +------------------------------------------- + +.. automodule:: cpl_discord.events.on_connect_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_disconnect\_abc +---------------------------------------------- + +.. automodule:: cpl_discord.events.on_disconnect_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_error\_abc +----------------------------------------- + +.. automodule:: cpl_discord.events.on_error_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_group\_join\_abc +----------------------------------------------- + +.. automodule:: cpl_discord.events.on_group_join_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_group\_remove\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_group_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_available\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_available_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_create\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_delete\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_pins\_update\_abc +---------------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_pins_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_channel\_update\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_channel_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_emojis\_update\_abc +--------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_emojis_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_integrations\_update\_abc +--------------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_integrations_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_join\_abc +----------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_join_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_remove\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_role\_create\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_role_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_role\_delete\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_role_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_role\_update\_abc +------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_role_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_unavailable\_abc +------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_guild_unavailable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_guild\_update\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_guild_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_invite\_create\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_invite_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_invite\_delete\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_invite_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_ban\_abc +----------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_ban_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_join\_abc +------------------------------------------------ + +.. automodule:: cpl_discord.events.on_member_join_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_remove\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_unban\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_unban_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_member\_update\_abc +-------------------------------------------------- + +.. automodule:: cpl_discord.events.on_member_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_message\_abc +------------------------------------------- + +.. automodule:: cpl_discord.events.on_message_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_message\_delete\_abc +--------------------------------------------------- + +.. automodule:: cpl_discord.events.on_message_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_message\_edit\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_message_edit_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_create\_abc +------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_create_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_delete\_abc +------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_delete_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_pins\_update\_abc +------------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_pins_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_private\_channel\_update\_abc +------------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_private_channel_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_add\_abc +------------------------------------------------------ + +.. automodule:: cpl_discord.events.on_raw_reaction_add_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_clear\_abc +-------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_raw_reaction_clear_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_clear\_emoji\_abc +--------------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_raw_reaction_clear_emoji_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_raw\_reaction\_remove\_abc +--------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_raw_reaction_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_add\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_add_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_clear\_abc +--------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_clear_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_clear\_emoji\_abc +---------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_clear_emoji_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_reaction\_remove\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.events.on_reaction_remove_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_ready\_abc +----------------------------------------- + +.. automodule:: cpl_discord.events.on_ready_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_resume\_abc +------------------------------------------ + +.. automodule:: cpl_discord.events.on_resume_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_typing\_abc +------------------------------------------ + +.. automodule:: cpl_discord.events.on_typing_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_user\_update\_abc +------------------------------------------------ + +.. automodule:: cpl_discord.events.on_user_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_voice\_state\_update\_abc +-------------------------------------------------------- + +.. automodule:: cpl_discord.events.on_voice_state_update_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.events.on\_webhooks\_update\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.events.on_webhooks_update_abc + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/docs/source/cpl_discord.helper.rst b/docs/source/cpl_discord.helper.rst new file mode 100644 index 00000000..396b4c89 --- /dev/null +++ b/docs/source/cpl_discord.helper.rst @@ -0,0 +1,12 @@ +cpl\_discord.helper +=========================== + + + +cpl\_discord.helper.to\_containers\_converter +---------------------------------------------------- + +.. automodule:: cpl_discord.helper.to_containers_converter + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_discord.rst b/docs/source/cpl_discord.rst new file mode 100644 index 00000000..5d10fb20 --- /dev/null +++ b/docs/source/cpl_discord.rst @@ -0,0 +1,13 @@ +Discord reference +==================== + +.. toctree:: + :maxdepth: 4 + + cpl_discord.application + cpl_discord.command + cpl_discord.configuration + cpl_discord.container + cpl_discord.events + cpl_discord.helper + cpl_discord.service diff --git a/docs/source/cpl_discord.service.rst b/docs/source/cpl_discord.service.rst new file mode 100644 index 00000000..a6898292 --- /dev/null +++ b/docs/source/cpl_discord.service.rst @@ -0,0 +1,60 @@ +cpl\_discord.service +============================ + + + +cpl\_discord.service.command\_error\_handler\_service +------------------------------------------------------------ + +.. automodule:: cpl_discord.service.command_error_handler_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_bot\_service +------------------------------------------------- + +.. automodule:: cpl_discord.service.discord_bot_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_bot\_service\_abc +------------------------------------------------------ + +.. automodule:: cpl_discord.service.discord_bot_service_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_collection +----------------------------------------------- + +.. automodule:: cpl_discord.service.discord_collection + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_collection\_abc +---------------------------------------------------- + +.. automodule:: cpl_discord.service.discord_collection_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_service +-------------------------------------------- + +.. automodule:: cpl_discord.service.discord_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_discord.service.discord\_service\_abc +------------------------------------------------- + +.. automodule:: cpl_discord.service.discord_service_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_query.base.rst b/docs/source/cpl_query.base.rst new file mode 100644 index 00000000..156985e5 --- /dev/null +++ b/docs/source/cpl_query.base.rst @@ -0,0 +1,52 @@ +cpl\_query.base +======================= + + + +cpl\_query.base.default\_lambda +-------------------------------------- + +.. automodule:: cpl_query.base.default_lambda + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.ordered\_queryable +----------------------------------------- + +.. automodule:: cpl_query.base.ordered_queryable + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.ordered\_queryable\_abc +---------------------------------------------- + +.. automodule:: cpl_query.base.ordered_queryable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.queryable\_abc +------------------------------------- + +.. automodule:: cpl_query.base.queryable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.sequence\_abc +------------------------------------ + +.. automodule:: cpl_query.base.sequence_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.base.sequence\_values +--------------------------------------- + +.. automodule:: cpl_query.base.sequence_values + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_query.enumerable.rst b/docs/source/cpl_query.enumerable.rst new file mode 100644 index 00000000..37e58add --- /dev/null +++ b/docs/source/cpl_query.enumerable.rst @@ -0,0 +1,20 @@ +cpl\_query.enumerable +============================= + + + +cpl\_query.enumerable.enumerable +--------------------------------------- + +.. automodule:: cpl_query.enumerable.enumerable + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.enumerable.enumerable\_abc +-------------------------------------------- + +.. automodule:: cpl_query.enumerable.enumerable_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_query.exceptions.rst b/docs/source/cpl_query.exceptions.rst deleted file mode 100644 index d492c637..00000000 --- a/docs/source/cpl_query.exceptions.rst +++ /dev/null @@ -1,10 +0,0 @@ -cpl_query.exceptions -================================= - -cpl_query.exceptions ----------------------------------------------------- - -.. automodule:: cpl_query.exceptions - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/source/cpl_query.extension.rst b/docs/source/cpl_query.extension.rst index 9dfaa401..a0bba3e0 100644 --- a/docs/source/cpl_query.extension.rst +++ b/docs/source/cpl_query.extension.rst @@ -1,42 +1,12 @@ -cpl_query.extension -================================= +cpl\_query.extension +============================ -cpl_query.extension.iterable_abc ----------------------------------------------------- -.. automodule:: cpl_query.extension.iterable_abc - :members: - :undoc-members: - :show-inheritance: -cpl_query.extension.iterable ----------------------------------------------------- - -.. automodule:: cpl_query.extension.iterable - :members: - :undoc-members: - :show-inheritance: - -cpl_query.extension.list ----------------------------------------------------- +cpl\_query.extension.list +-------------------------------- .. automodule:: cpl_query.extension.list :members: :undoc-members: :show-inheritance: - -cpl_query.extension.ordered_iterable_abc ----------------------------------------------------- - -.. automodule:: cpl_query.extension.ordered_iterable_abc - :members: - :undoc-members: - :show-inheritance: - -cpl_query.extension.ordered_iterable ----------------------------------------------------- - -.. automodule:: cpl_query.extension.ordered_iterable - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/docs/source/cpl_query.iterable.rst b/docs/source/cpl_query.iterable.rst new file mode 100644 index 00000000..8a7bc919 --- /dev/null +++ b/docs/source/cpl_query.iterable.rst @@ -0,0 +1,20 @@ +cpl\_query.iterable +=========================== + + + +cpl\_query.iterable.iterable +----------------------------------- + +.. automodule:: cpl_query.iterable.iterable + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.iterable.iterable\_abc +---------------------------------------- + +.. automodule:: cpl_query.iterable.iterable_abc + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/cpl_query.rst b/docs/source/cpl_query.rst index 10d6f0d8..5a362b26 100644 --- a/docs/source/cpl_query.rst +++ b/docs/source/cpl_query.rst @@ -1,8 +1,10 @@ -Query Reference +Query reference =========== .. toctree:: :maxdepth: 4 - - cpl_query.extension - cpl_query.exceptions + + cpl_query.base + cpl_query.enumerable + cpl_query.extension + cpl_query.iterable diff --git a/docs/source/cpl_translation.rst b/docs/source/cpl_translation.rst new file mode 100644 index 00000000..365356e8 --- /dev/null +++ b/docs/source/cpl_translation.rst @@ -0,0 +1,34 @@ +Translation reference +======================== + +cpl\_translation.translate\_pipe +--------------------------------------- + +.. automodule:: cpl_translation.translate_pipe + :members: + :undoc-members: + :show-inheritance: + +cpl\_translation.translation\_service +-------------------------------------------- + +.. automodule:: cpl_translation.translation_service + :members: + :undoc-members: + :show-inheritance: + +cpl\_translation.translation\_service\_abc +------------------------------------------------- + +.. automodule:: cpl_translation.translation_service_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_translation.translation\_settings +--------------------------------------------- + +.. automodule:: cpl_translation.translation_settings + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/index.rst b/docs/source/index.rst index 0d0ef798..921b7964 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -89,4 +89,6 @@ These pages go into great detail about everything the Library can do. contributing cpl_cli cpl_core + cpl_discord cpl_query + cpl_translation diff --git a/docs/source/modules.rst b/docs/source/modules.rst index d1ae65e0..5a411fa4 100644 --- a/docs/source/modules.rst +++ b/docs/source/modules.rst @@ -9,4 +9,4 @@ cpl cpl_core cpl_discord cpl_query - cpl_translate + cpl_translation From 4afe5c458194b4d4b04f115b9909813d60ea260d Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 5 Dec 2022 14:12:20 +0100 Subject: [PATCH 2/3] Fixed cpl query for now #134 --- src/cpl_query/__init__.py | 4 +- src/cpl_query/base/__init__.py | 4 +- src/cpl_query/base/queryable_abc.py | 9 ++-- .../base/{sequence_abc.py => sequence.py} | 45 ++++--------------- src/cpl_query/cpl-query.json | 2 +- src/cpl_query/enumerable/__init__.py | 4 +- src/cpl_query/enumerable/enumerable_abc.py | 7 --- src/cpl_query/extension/__init__.py | 4 +- src/cpl_query/iterable/__init__.py | 4 +- src/cpl_query/iterable/iterable_abc.py | 27 +++++------ .../unittests_query/enumerable_test_case.py | 12 ++--- .../unittests_query/unittests_query.json | 4 +- 12 files changed, 45 insertions(+), 81 deletions(-) rename src/cpl_query/base/{sequence_abc.py => sequence.py} (66%) diff --git a/src/cpl_query/__init__.py b/src/cpl_query/__init__.py index 405c7a25..2253a6bb 100644 --- a/src/cpl_query/__init__.py +++ b/src/cpl_query/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev134' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev134') diff --git a/src/cpl_query/base/__init__.py b/src/cpl_query/base/__init__.py index e6923714..f25a4e57 100644 --- a/src/cpl_query/base/__init__.py +++ b/src/cpl_query/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev134' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev134') diff --git a/src/cpl_query/base/queryable_abc.py b/src/cpl_query/base/queryable_abc.py index 117397c6..b14f63b2 100644 --- a/src/cpl_query/base/queryable_abc.py +++ b/src/cpl_query/base/queryable_abc.py @@ -1,7 +1,7 @@ from typing import Optional, Callable, Union from cpl_query._helper import is_number -from cpl_query.base.sequence_abc import SequenceABC +from cpl_query.base.sequence import Sequence from cpl_query.exceptions import InvalidTypeException, ArgumentNoneException, ExceptionArgument, IndexOutOfRangeException @@ -9,10 +9,10 @@ def _default_lambda(x: object): return x -class QueryableABC(SequenceABC): +class QueryableABC(Sequence): def __init__(self, t: type = None, values: list = None): - SequenceABC.__init__(self, t, values) + Sequence.__init__(self, t, values) def all(self, _func: Callable = None) -> bool: r"""Checks if every element of list equals result found by function @@ -141,6 +141,9 @@ class QueryableABC(SequenceABC): if _index is None: raise ArgumentNoneException(ExceptionArgument.index) + if _index < 0 or _index >= self.count(): + raise IndexOutOfRangeException + result = self[_index] if result is None: raise IndexOutOfRangeException diff --git a/src/cpl_query/base/sequence_abc.py b/src/cpl_query/base/sequence.py similarity index 66% rename from src/cpl_query/base/sequence_abc.py rename to src/cpl_query/base/sequence.py index b33a8082..ecb6cc5d 100644 --- a/src/cpl_query/base/sequence_abc.py +++ b/src/cpl_query/base/sequence.py @@ -4,13 +4,14 @@ from itertools import islice from cpl_query.base.sequence_values import SequenceValues -class SequenceABC(ABC): +class Sequence(list): @abstractmethod def __init__(self, t: type = None, values: list = None): + list.__init__(self) ABC.__init__(self) - if values is None: - values = [] + values = [] if values is None else values + list.__init__(self, values) if t is None and len(values) > 0: t = type(values[0]) @@ -19,36 +20,11 @@ class SequenceABC(ABC): t = any self._type = t - self._set_values(values) @classmethod def __class_getitem__(cls, _t: type): return _t - def __len__(self): - return len(self._values) - - def __iter__(self): - return iter(self._values) - - def next(self): - return next(self._values) - - def __next__(self): - return self.next() - - def __getitem__(self, n): - values = [x for x in self] - if isinstance(n, slice): - try: - return values[n] - except Exception as e: - raise e - - for i in range(len(values)): - if i == n: - return values[i] - def __repr__(self): return f'<{type(self).__name__} {list(self).__repr__()}>' @@ -63,9 +39,6 @@ class SequenceABC(ABC): if self._type is not None and type(__object) != self._type and not isinstance(type(__object), self._type) and not issubclass(type(__object), self._type): raise Exception(f'Unexpected type: {type(__object)}\nExpected type: {self._type}') - def _set_values(self, values: list): - self._values = SequenceValues(values, self._type) - def to_list(self) -> list: r"""Converts :class: `cpl_query.base.sequence_abc.SequenceABC` to :class: `list` @@ -75,17 +48,17 @@ class SequenceABC(ABC): """ return [x for x in self] - def copy(self) -> 'SequenceABC': + def copy(self) -> 'Sequence': r"""Creates a copy of sequence Returns ------- - SequenceABC + Sequence """ return type(self)(self._type, self.to_list()) @classmethod - def empty(cls) -> 'SequenceABC': + def empty(cls) -> 'Sequence': r"""Returns an empty sequence Returns @@ -94,7 +67,7 @@ class SequenceABC(ABC): """ return cls() - def index(self, _object: object) -> int: + def index_of(self, _object: object) -> int: r"""Returns the index of given element Returns @@ -112,5 +85,5 @@ class SequenceABC(ABC): raise IndexError @classmethod - def range(cls, start: int, length: int) -> 'SequenceABC': + def range(cls, start: int, length: int) -> 'Sequence': return cls(int, list(range(start, length))) diff --git a/src/cpl_query/cpl-query.json b/src/cpl_query/cpl-query.json index b06705f3..c1b48dbb 100644 --- a/src/cpl_query/cpl-query.json +++ b/src/cpl_query/cpl-query.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "0" + "Micro": "dev134" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_query/enumerable/__init__.py b/src/cpl_query/enumerable/__init__.py index 498f2a86..1846b666 100644 --- a/src/cpl_query/enumerable/__init__.py +++ b/src/cpl_query/enumerable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.enumerable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev134' from collections import namedtuple @@ -25,4 +25,4 @@ from .enumerable import Enumerable from .enumerable_abc import EnumerableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev134') diff --git a/src/cpl_query/enumerable/enumerable_abc.py b/src/cpl_query/enumerable/enumerable_abc.py index b59054d9..c222973d 100644 --- a/src/cpl_query/enumerable/enumerable_abc.py +++ b/src/cpl_query/enumerable/enumerable_abc.py @@ -11,13 +11,6 @@ class EnumerableABC(QueryableABC): def __init__(self, t: type = None, values: list = None): QueryableABC.__init__(self, t, values) - self._remove_error_check = True - - def set_remove_error_check(self, _value: bool): - r"""Set flag to check if element exists before removing - """ - self._remove_error_check = _value - def to_iterable(self) -> 'IterableABC': r"""Converts :class: `cpl_query.enumerable.enumerable_abc.EnumerableABC` to :class: `cpl_query.iterable.iterable_abc.IterableABC` diff --git a/src/cpl_query/extension/__init__.py b/src/cpl_query/extension/__init__.py index 014d5d95..b1ea2035 100644 --- a/src/cpl_query/extension/__init__.py +++ b/src/cpl_query/extension/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.extension' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev134' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .list import List VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev134') diff --git a/src/cpl_query/iterable/__init__.py b/src/cpl_query/iterable/__init__.py index 2f388931..f7a876f0 100644 --- a/src/cpl_query/iterable/__init__.py +++ b/src/cpl_query/iterable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.iterable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev134' from collections import namedtuple @@ -25,4 +25,4 @@ from .iterable_abc import IterableABC from .iterable import Iterable VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev134') diff --git a/src/cpl_query/iterable/iterable_abc.py b/src/cpl_query/iterable/iterable_abc.py index 5758b03c..57e13ae5 100644 --- a/src/cpl_query/iterable/iterable_abc.py +++ b/src/cpl_query/iterable/iterable_abc.py @@ -12,17 +12,6 @@ class IterableABC(QueryableABC): def __init__(self, t: type = None, values: Iterable = None): QueryableABC.__init__(self, t, values) - def __setitem__(self, i, val): - self._check_type(val) - values = [*self._values] - values[i] = val - self._set_values(values) - - def __delitem__(self, i): - values = [*self._values] - del values[i] - self._set_values(values) - @property def type(self) -> type: return self._type @@ -41,8 +30,7 @@ class IterableABC(QueryableABC): value """ self._check_type(_object) - values = [*self._values, _object] - self._set_values(values) + super().append(_object) def extend(self, __iterable: Iterable) -> 'IterableABC': r"""Adds elements of given list to list @@ -66,9 +54,16 @@ class IterableABC(QueryableABC): if _object not in self: raise ValueError - values = [*self._values] - values.remove(_object) - self._set_values(values) + self.remove(_object) + + def remove_at(self, _index: int): + r"""Removes element from list + Parameter + --------- + _object: :class:`object` + value + """ + self.pop(_index) def to_enumerable(self) -> 'EnumerableABC': r"""Converts :class: `cpl_query.iterable.iterable_abc.IterableABC` to :class: `cpl_query.enumerable.enumerable_abc.EnumerableABC` diff --git a/unittests/unittests_query/enumerable_test_case.py b/unittests/unittests_query/enumerable_test_case.py index b8605493..2f7c5a73 100644 --- a/unittests/unittests_query/enumerable_test_case.py +++ b/unittests/unittests_query/enumerable_test_case.py @@ -16,12 +16,12 @@ class EnumerableTestCase(unittest.TestCase): self.assertEqual(Enumerable.empty().to_list(), []) self.assertEqual(Enumerable.range(0, 100).to_list(), list(range(0, 100))) - def test_iter(self): - n = 0 - elements = Enumerable.range(0, 100) - while n < 100: - self.assertEqual(elements.next(), n) - n += 1 + # def test_iter(self): + # n = 0 + # elements = Enumerable.range(0, 100) + # while n < 100: + # self.assertEqual(elements.next(), n) + # n += 1 def test_for(self): n = 0 diff --git a/unittests/unittests_query/unittests_query.json b/unittests/unittests_query/unittests_query.json index 855bab31..78ed0d58 100644 --- a/unittests/unittests_query/unittests_query.json +++ b/unittests/unittests_query/unittests_query.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "0" + "Micro": "dev134" }, "Author": "", "AuthorEmail": "", @@ -17,7 +17,7 @@ "LicenseDescription": "", "Dependencies": [ "cpl-core>=2022.12.0", - "cpl-query>=2022.12.0" + "cpl-query>=2022.12.dev134" ], "PythonVersion": ">=3.10.4", "PythonPath": {}, From d5e5bfe69d7c55a0eef6f0a26a251a62ede0eedb Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 5 Dec 2022 14:15:01 +0100 Subject: [PATCH 3/3] Removed old file #134 --- src/cpl_query/base/sequence.py | 3 -- src/cpl_query/base/sequence_values.py | 47 --------------------------- 2 files changed, 50 deletions(-) delete mode 100644 src/cpl_query/base/sequence_values.py diff --git a/src/cpl_query/base/sequence.py b/src/cpl_query/base/sequence.py index ecb6cc5d..15f7fc4a 100644 --- a/src/cpl_query/base/sequence.py +++ b/src/cpl_query/base/sequence.py @@ -1,7 +1,4 @@ from abc import ABC, abstractmethod -from itertools import islice - -from cpl_query.base.sequence_values import SequenceValues class Sequence(list): diff --git a/src/cpl_query/base/sequence_values.py b/src/cpl_query/base/sequence_values.py deleted file mode 100644 index 6298a685..00000000 --- a/src/cpl_query/base/sequence_values.py +++ /dev/null @@ -1,47 +0,0 @@ -import io -import itertools - -from cpl_query.exceptions import IndexOutOfRangeException - - -class SequenceValues: - def __init__(self, data: list, _t: type): - if len(data) > 0: - def type_check(_t: type, _l: list): - return all([_t == any or isinstance(x, _t) for x in _l]) - - if not type_check(_t, data): - print([type(x) for x in data]) - raise Exception(f'Unexpected type\nExpected type: {_t}') - - if not hasattr(data, '__iter__'): - raise TypeError(f'{type(self).__name__} must be instantiated with an iterable object') - - self._new_cycle = lambda: itertools.cycle(data) - self._len = lambda: len(data) - - self._index = 0 - self._cycle = self._new_cycle() - - def __len__(self): - return self._len() - - def __iter__(self): - i = 0 - while i < self._len(): - yield next(self._cycle) - i += 1 - - def __next__(self): - if self._index >= len(self): - raise IndexOutOfRangeException() - self._index += 1 - - return self.next() - - def next(self): - return next(self._cycle) - - def reset(self): - self._index = 0 - self._cycle = self._new_cycle()
  364. Introduction to the CPL Docs