From 6eec92243e0fcb16fbee3b39cea65350cd09c9a1 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 1 Nov 2021 21:17:56 +0100 Subject: [PATCH] Improved docs --- docs/build/doctrees/cli.remove.doctree | Bin 10250 -> 8679 bytes docs/build/doctrees/cpl_query.doctree | Bin 0 -> 3150 bytes .../doctrees/cpl_query.exceptions.doctree | Bin 0 -> 19487 bytes .../doctrees/cpl_query.extension.doctree | Bin 0 -> 94913 bytes docs/build/doctrees/cpl_query.tests.doctree | Bin 0 -> 50076 bytes docs/build/doctrees/environment.pickle | Bin 172741 -> 199978 bytes docs/build/doctrees/index.doctree | Bin 4893 -> 4566 bytes docs/build/doctrees/introduction.doctree | Bin 5652 -> 6134 bytes docs/build/doctrees/modules.doctree | Bin 2996 -> 2664 bytes docs/build/html/_sources/cli.remove.md.txt | 7 +- .../_sources/cpl_query.exceptions.rst.txt | 10 + .../html/_sources/cpl_query.extension.rst.txt | 26 ++ docs/build/html/_sources/cpl_query.rst.txt | 8 + .../html/_sources/cpl_query.tests.rst.txt | 45 ++ docs/build/html/_sources/introduction.md.txt | 3 +- docs/build/html/cli.add.html | 1 + docs/build/html/cli.build.html | 1 + docs/build/html/cli.generate.html | 1 + docs/build/html/cli.help.html | 1 + docs/build/html/cli.install.html | 1 + docs/build/html/cli.new.html | 1 + docs/build/html/cli.overview.html | 1 + docs/build/html/cli.publish.html | 1 + docs/build/html/cli.remove.html | 7 +- docs/build/html/cli.start.html | 1 + docs/build/html/cli.uninstall.html | 1 + docs/build/html/cli.update.html | 1 + docs/build/html/cli.version.html | 1 + docs/build/html/contributing.html | 1 + docs/build/html/cpl_cli.html | 1 + docs/build/html/cpl_core.application.html | 1 + docs/build/html/cpl_core.configuration.html | 1 + docs/build/html/cpl_core.console.html | 1 + .../html/cpl_core.database.connection.html | 1 + .../build/html/cpl_core.database.context.html | 1 + docs/build/html/cpl_core.database.html | 1 + .../html/cpl_core.dependency_injection.html | 1 + docs/build/html/cpl_core.environment.html | 1 + docs/build/html/cpl_core.html | 1 + docs/build/html/cpl_core.logging.html | 1 + docs/build/html/cpl_core.mailing.html | 1 + docs/build/html/cpl_core.time.html | 1 + docs/build/html/cpl_core.utils.html | 3 + docs/build/html/cpl_query.exceptions.html | 279 ++++++++++++ docs/build/html/cpl_query.extension.html | 428 ++++++++++++++++++ docs/build/html/cpl_query.html | 230 ++++++++++ docs/build/html/cpl_query.tests.html | 421 +++++++++++++++++ docs/build/html/genindex.html | 283 +++++++++++- docs/build/html/getting_started.html | 1 + docs/build/html/index.html | 2 + docs/build/html/introduction.html | 4 +- docs/build/html/modules.html | 14 + docs/build/html/objects.inv | Bin 3184 -> 3822 bytes docs/build/html/py-modindex.html | 52 +++ docs/build/html/quickstart.html | 1 + docs/build/html/search.html | 1 + docs/build/html/searchindex.js | 2 +- docs/build/html/setup.html | 1 + docs/source/conf.py | 4 +- docs/source/cpl_query.exceptions.rst | 10 + docs/source/cpl_query.extension.rst | 26 ++ docs/source/cpl_query.rst | 8 + docs/source/introduction.md | 3 +- scripts/create_docs.sh | 4 +- src/cpl_query/exceptions.py | 2 + 65 files changed, 1886 insertions(+), 25 deletions(-) create mode 100644 docs/build/doctrees/cpl_query.doctree create mode 100644 docs/build/doctrees/cpl_query.exceptions.doctree create mode 100644 docs/build/doctrees/cpl_query.extension.doctree create mode 100644 docs/build/doctrees/cpl_query.tests.doctree create mode 100644 docs/build/html/_sources/cpl_query.exceptions.rst.txt create mode 100644 docs/build/html/_sources/cpl_query.extension.rst.txt create mode 100644 docs/build/html/_sources/cpl_query.rst.txt create mode 100644 docs/build/html/_sources/cpl_query.tests.rst.txt create mode 100644 docs/build/html/cpl_query.exceptions.html create mode 100644 docs/build/html/cpl_query.extension.html create mode 100644 docs/build/html/cpl_query.html create mode 100644 docs/build/html/cpl_query.tests.html create mode 100644 docs/source/cpl_query.exceptions.rst create mode 100644 docs/source/cpl_query.extension.rst create mode 100644 docs/source/cpl_query.rst diff --git a/docs/build/doctrees/cli.remove.doctree b/docs/build/doctrees/cli.remove.doctree index a4033447bcc275f96e9dae0adfc8bc6e42a689c8..d899e973f0094b6f32675e2393d26b32c8229c4a 100644 GIT binary patch delta 1340 zcmc(fO=uHA6vw-pr0q8SHjO2lO{T@vrcDz+h$tS~Qb8mVOD_tg#Z5Y4vnJVeH``J{ z+6p4H5yTfou|jX+2bCJ|pdjeUs|qT#;@6>94+Zh&%x;oa6za{(+svE){NL}r%x6DTKPlt`wCBB3g2G_9!T zw5%A%!GcsXR*;{hJ>Dl=c2{fbVC@!W_MuE7JPSaw^4B;3WKDkvUP!eX4 zu3|LmtOe020;oCo1&+14Y=zLQyUi z<_i}J-I7hd$W&FqWb-cQvwPrss}tThuGw#sq{Pd&=-&PY)Yv5XBMzxY>Ltk=4BTnE z>|Qk`EA+ug7Gu*NsnTQeV+IDCgF6biiUVvouhf1u{XT=o-dBB`)cMH3quoLGnwkIb zXPtEhCV3uSv5oM6b#wAhQ~9Ifu*pEbFtoG7X1kwjVU3QPSn%2dHd?v(Ag$W#kozfwKhj>B^ii^eIqMz+=P~xri zo9okN!(uIO93ka+hZO5$D!TTk;%Z9K|o5PKI4$iZ&Es*l%ocq+`i~4u#8~1D5=( zTxesUg2lMF4(RlG>v*!Dj(QB1eGXQ3gXr69?JG-`eH{!BFMVOFi>3@o09v|wW}g#w z`56u41WX>K0cf~N!xOquBtg$}^uv&w$zqMZR5CpmHO@p0ebmrKb;(0_si9PFxJd!i XN~C_&io9IZuOXo*xlHkC*D&)7fVYiX delta 2648 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_query.extension.doctree b/docs/build/doctrees/cpl_query.extension.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9932aa3dae3b0a0264200afb99dfaaf67acb4139 GIT binary patch literal 94913 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�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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cpl_query.tests.doctree b/docs/build/doctrees/cpl_query.tests.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1c8943d633039d1099f8047ca632975bbb40c0bc GIT binary patch literal 50076 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
HvOe!tOFQdXn9K8Z)J;3BymN}K%R>qg& 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 E0d-1ubN~PV literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index f1a26533701feabfa8d279833014d5632333efb2..9d7cbcb207c04131f93989127dd7d6b270f83c90 100644 GIT binary patch literal 199978 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 diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 6c7f2e7bcc95a994de0a070b209246f025d73322..e8ce2a606e07b2cd356ce1c1c4abf639503adc3e 100644 GIT binary patch delta 97 zcmbQMc1@YJfpzL>!Hul^oIHL#oXG__@r9+SMU|5UIpvr#rft^e>}F=XyLmUy9A?e! z8Cx>eXRImh;mk|SO)aS`NG+aHJ4GX7yI;n7ztRjz5PM68cE*~`4FX(@lOG9L0|3x) BB`g2{ delta 377 zcmcbnJXejifpw~o@J3dC&dJK0(wiMPyO|kpZ$85_hgoxL#-@z58LLWrIP(&7Q%fof zQj4e5PSMEN>X)(BuQWpv#NL#lov~{3L;)_w`V7t!7Qd1R@^Ycm)GxLfSic-^3i&FEFQx!_`74q`)QY$ix zOEUA)6;kq(OLJ56N)*(S3v%KMOH+#~)u(`s6YOz<8{ z$pI7D%*WNhG4hhAU5%F+3@gYXk};vm70K*7V;`g4q#^y z(84`REYB}WNzO0LE78r(%quNPEuNC~bh5vQ zmR%W8I;$8&y*YRwNo@QSToo%q_dVVGB8Y@ z$RaY?NmQO|5s;Iim7!glH2Hw22vgSL$&I4wEL&ho4u~o;E}HyE)Rbi*NC>QC^JGIY zEjt$=Kg$tB*nkL2AW_=GnU|QGT2fh%S`4x;3#7&mEbmvEAqNrxX~^KovfMmVES3=f DTyaBw diff --git a/docs/build/doctrees/modules.doctree b/docs/build/doctrees/modules.doctree index 1dad1a49f32b39bc8c29aaa98894165d27920d62..bba726227f167d9b53927a72bb48554b6bd9711b 100644 GIT binary patch delta 84 zcmdlY{z8Pcfpuyu*G5(?CLX^Y&g6oe_`=fEqRPoSOfpOvuA4oWgqRsyHb=A0W|oP| nh%WBo%uCEoEvYO>EuK<4B_qzSI70zQM{gG5TfgIGlT3{wzw?drn2_Z}YibMblE89BF)b5Bmg9=Ghuq+>7Stm{eWJmhL! z>?q?39)TVvpy-0I>nUWJb|$NC$+|?>%&Vc&5cMKZiuZxWw0@N(*U-TN7LO>4xCxiM zFL{E0T+`CAuO$HUW1)E<6q9fY5`+&-$4tZm&I6?b(Pt;IpGF`wtNTgVJ4-y*I{ z375?FKRDCT-4AIxx~CiZ{ke)C=`kO_Se0^$4SdHczI`8dj1$5DLTcM4Kih;%@nCD; n+w*qGP)J){c%Q diff --git a/docs/build/html/_sources/cli.remove.md.txt b/docs/build/html/_sources/cli.remove.md.txt index 2ea71b90..dab91804 100644 --- a/docs/build/html/_sources/cli.remove.md.txt +++ b/docs/build/html/_sources/cli.remove.md.txt @@ -13,12 +13,9 @@ cpl **R** *<project>* ## Description -The command can be used to publish a project of type "console" or "library". +Removes a project reference and the files from workspace. -The publish command builds the source files and then creates an ```setup.py``` with data from ```cpl_core.json```. -The command executes the ```setup.py``` and removes all source files with the ```setup.py``` from the 'publish/' directory. - -Generated files of ```setup.py``` are in the 'publish/setup/' directory. +If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified. ## Arguments diff --git a/docs/build/html/_sources/cpl_query.exceptions.rst.txt b/docs/build/html/_sources/cpl_query.exceptions.rst.txt new file mode 100644 index 00000000..d492c637 --- /dev/null +++ b/docs/build/html/_sources/cpl_query.exceptions.rst.txt @@ -0,0 +1,10 @@ +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 new file mode 100644 index 00000000..3f995913 --- /dev/null +++ b/docs/build/html/_sources/cpl_query.extension.rst.txt @@ -0,0 +1,26 @@ +cpl_query.extension +================================= + +cpl_query.extension.iterable_abc +---------------------------------------------------- + +.. automodule:: cpl_query.extension.iterable_abc + :members: + :undoc-members: + :show-inheritance: + +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: \ No newline at end of file diff --git a/docs/build/html/_sources/cpl_query.rst.txt b/docs/build/html/_sources/cpl_query.rst.txt new file mode 100644 index 00000000..10d6f0d8 --- /dev/null +++ b/docs/build/html/_sources/cpl_query.rst.txt @@ -0,0 +1,8 @@ +Query Reference +=========== + +.. toctree:: + :maxdepth: 4 + + cpl_query.extension + cpl_query.exceptions diff --git a/docs/build/html/_sources/cpl_query.tests.rst.txt b/docs/build/html/_sources/cpl_query.tests.rst.txt new file mode 100644 index 00000000..ca15d156 --- /dev/null +++ b/docs/build/html/_sources/cpl_query.tests.rst.txt @@ -0,0 +1,45 @@ +cpl\_query.tests package +======================== + +Submodules +---------- + +cpl\_query.tests.iterable\_test module +-------------------------------------- + +.. automodule:: cpl_query.tests.iterable_test + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.tests.models module +------------------------------ + +.. automodule:: cpl_query.tests.models + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.tests.query\_test module +----------------------------------- + +.. automodule:: cpl_query.tests.query_test + :members: + :undoc-members: + :show-inheritance: + +cpl\_query.tests.tester module +------------------------------ + +.. automodule:: cpl_query.tests.tester + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_query.tests + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/introduction.md.txt b/docs/build/html/_sources/introduction.md.txt index eb36b40f..9e43037c 100644 --- a/docs/build/html/_sources/introduction.md.txt +++ b/docs/build/html/_sources/introduction.md.txt @@ -8,5 +8,6 @@ This CPL docs help you learn, understand and use the package. From your first ap - [Getting started](quickstart) - [Setup](setup) -- [API Reference](cpl) +- [API Reference](cpl_core) - [CLI Reference](cli.overview) +- [Query Reference](cpl_query) diff --git a/docs/build/html/cli.add.html b/docs/build/html/cli.add.html index de071367..036bd9eb 100644 --- a/docs/build/html/cli.add.html +++ b/docs/build/html/cli.add.html @@ -109,6 +109,7 @@ +
  • Query Reference
  • diff --git a/docs/build/html/cli.build.html b/docs/build/html/cli.build.html index 980b97db..0f756c28 100644 --- a/docs/build/html/cli.build.html +++ b/docs/build/html/cli.build.html @@ -108,6 +108,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.generate.html b/docs/build/html/cli.generate.html index 9c2bafd0..f3ff8fcc 100644 --- a/docs/build/html/cli.generate.html +++ b/docs/build/html/cli.generate.html @@ -110,6 +110,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.help.html b/docs/build/html/cli.help.html index dc3257c3..799dd056 100644 --- a/docs/build/html/cli.help.html +++ b/docs/build/html/cli.help.html @@ -108,6 +108,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.install.html b/docs/build/html/cli.install.html index 50766b50..62948b45 100644 --- a/docs/build/html/cli.install.html +++ b/docs/build/html/cli.install.html @@ -109,6 +109,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.new.html b/docs/build/html/cli.new.html index d886ad77..84af85eb 100644 --- a/docs/build/html/cli.new.html +++ b/docs/build/html/cli.new.html @@ -109,6 +109,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.overview.html b/docs/build/html/cli.overview.html index d155e734..c22903a0 100644 --- a/docs/build/html/cli.overview.html +++ b/docs/build/html/cli.overview.html @@ -114,6 +114,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.publish.html b/docs/build/html/cli.publish.html index 23213cbe..e7db1867 100644 --- a/docs/build/html/cli.publish.html +++ b/docs/build/html/cli.publish.html @@ -108,6 +108,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.remove.html b/docs/build/html/cli.remove.html index 831e7046..0f6a7513 100644 --- a/docs/build/html/cli.remove.html +++ b/docs/build/html/cli.remove.html @@ -109,6 +109,7 @@
  • API Reference
  • +
  • Query Reference
  • @@ -193,10 +194,8 @@ cpl R <project>

    Description

    -

    The command can be used to publish a project of type “console” or “library”.

    -

    The publish command builds the source files and then creates an setup.py with data from cpl_core.json. -The command executes the setup.py and removes all source files with the setup.py from the ‘publish/’ directory.

    -

    Generated files of setup.py are in the ‘publish/setup/’ directory.

    +

    Removes a project reference and the files from workspace.

    +

    If you call the command in a CPL workspace, you can use the project names. Otherwise the paths of the projects must be specified.

    Arguments

    diff --git a/docs/build/html/cli.start.html b/docs/build/html/cli.start.html index a6fdacc9..150f9c70 100644 --- a/docs/build/html/cli.start.html +++ b/docs/build/html/cli.start.html @@ -104,6 +104,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.uninstall.html b/docs/build/html/cli.uninstall.html index 98213b51..b0511681 100644 --- a/docs/build/html/cli.uninstall.html +++ b/docs/build/html/cli.uninstall.html @@ -109,6 +109,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.update.html b/docs/build/html/cli.update.html index 67bfee35..46b94ee4 100644 --- a/docs/build/html/cli.update.html +++ b/docs/build/html/cli.update.html @@ -104,6 +104,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cli.version.html b/docs/build/html/cli.version.html index 69bb097a..7ec1f234 100644 --- a/docs/build/html/cli.version.html +++ b/docs/build/html/cli.version.html @@ -104,6 +104,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/contributing.html b/docs/build/html/contributing.html index 57b85806..b642585f 100644 --- a/docs/build/html/contributing.html +++ b/docs/build/html/contributing.html @@ -87,6 +87,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_cli.html b/docs/build/html/cpl_cli.html index f91b025f..0d2fadfa 100644 --- a/docs/build/html/cpl_cli.html +++ b/docs/build/html/cpl_cli.html @@ -104,6 +104,7 @@
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.application.html b/docs/build/html/cpl_core.application.html index d436f440..2e85f6a2 100644 --- a/docs/build/html/cpl_core.application.html +++ b/docs/build/html/cpl_core.application.html @@ -107,6 +107,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.configuration.html b/docs/build/html/cpl_core.configuration.html index 4c982e23..e6cbefbb 100644 --- a/docs/build/html/cpl_core.configuration.html +++ b/docs/build/html/cpl_core.configuration.html @@ -108,6 +108,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.console.html b/docs/build/html/cpl_core.console.html index 3aaef613..6b0fd936 100644 --- a/docs/build/html/cpl_core.console.html +++ b/docs/build/html/cpl_core.console.html @@ -108,6 +108,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.database.connection.html b/docs/build/html/cpl_core.database.connection.html index 45ffbb29..1c838486 100644 --- a/docs/build/html/cpl_core.database.connection.html +++ b/docs/build/html/cpl_core.database.connection.html @@ -113,6 +113,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.database.context.html b/docs/build/html/cpl_core.database.context.html index b8ed72d7..be9f2afe 100644 --- a/docs/build/html/cpl_core.database.context.html +++ b/docs/build/html/cpl_core.database.context.html @@ -113,6 +113,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.database.html b/docs/build/html/cpl_core.database.html index 7e107d2b..ffd7dd14 100644 --- a/docs/build/html/cpl_core.database.html +++ b/docs/build/html/cpl_core.database.html @@ -109,6 +109,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.dependency_injection.html b/docs/build/html/cpl_core.dependency_injection.html index a82c87aa..2ec50e27 100644 --- a/docs/build/html/cpl_core.dependency_injection.html +++ b/docs/build/html/cpl_core.dependency_injection.html @@ -109,6 +109,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.environment.html b/docs/build/html/cpl_core.environment.html index d5c8d66d..7c1884ae 100644 --- a/docs/build/html/cpl_core.environment.html +++ b/docs/build/html/cpl_core.environment.html @@ -106,6 +106,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.html b/docs/build/html/cpl_core.html index 1f19bc67..8ff861fa 100644 --- a/docs/build/html/cpl_core.html +++ b/docs/build/html/cpl_core.html @@ -101,6 +101,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.logging.html b/docs/build/html/cpl_core.logging.html index 7b7fcc03..4bc4fc20 100644 --- a/docs/build/html/cpl_core.logging.html +++ b/docs/build/html/cpl_core.logging.html @@ -108,6 +108,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.mailing.html b/docs/build/html/cpl_core.mailing.html index 830dd703..ee7fee75 100644 --- a/docs/build/html/cpl_core.mailing.html +++ b/docs/build/html/cpl_core.mailing.html @@ -108,6 +108,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.time.html b/docs/build/html/cpl_core.time.html index a919e9ef..00138024 100644 --- a/docs/build/html/cpl_core.time.html +++ b/docs/build/html/cpl_core.time.html @@ -105,6 +105,7 @@
  • cpl_core.utils
  • +
  • Query Reference
  • diff --git a/docs/build/html/cpl_core.utils.html b/docs/build/html/cpl_core.utils.html index c7d0ed16..fd40df45 100644 --- a/docs/build/html/cpl_core.utils.html +++ b/docs/build/html/cpl_core.utils.html @@ -38,6 +38,7 @@ + @@ -105,6 +106,7 @@ +
  • Query Reference
  • @@ -410,6 +412,7 @@
    diff --git a/docs/build/html/cpl_query.exceptions.html b/docs/build/html/cpl_query.exceptions.html new file mode 100644 index 00000000..9e2ba4af --- /dev/null +++ b/docs/build/html/cpl_query.exceptions.html @@ -0,0 +1,279 @@ + + + + + + + + + + cpl_query.exceptions — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + +
    +

    cpl_query.exceptions

    +
    +

    cpl_query.exceptions

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

    Bases: Exception

    +

    Exception when argument is None

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

    Bases: enum.Enum

    +

    An enumeration.

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

    Bases: Exception

    +
    + +
    +
    +exception cpl_query.exceptions.InvalidTypeException
    +

    Bases: Exception

    +
    + +
    +
    +exception cpl_query.exceptions.WrongTypeException
    +

    Bases: Exception

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

    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.ABC, list

    +
    +
    +abstract all(func: Callable)bool
    +
    + +
    +
    +abstract any(func: Callable)bool
    +
    + +
    +
    +append(_IterableABC__object: object)None
    +

    Append object to the end of the list.

    +
    + +
    +
    +abstract average(func: Optional[Callable] = None)Union[int, float, complex]
    +
    + +
    +
    +abstract contains(value: object)bool
    +
    + +
    +
    +abstract count(func: Callable)int
    +

    Return number of occurrences of value.

    +
    + +
    +
    +abstract distinct(func: Callable)cpl_query.extension.iterable_abc.IterableABC
    +
    + +
    +
    +abstract element_at(index: int)cpl_query.extension.iterable_abc.IterableABC.any
    +
    + +
    +
    +abstract element_at_or_default(index: int)Optional[cpl_query.extension.iterable_abc.IterableABC.any]
    +
    + +
    +
    +extend(_IterableABC__iterable: Iterable)None
    +

    Extend list by appending elements from the iterable.

    +
    + +
    +
    +abstract first()cpl_query.extension.iterable_abc.IterableABC.any
    +
    + +
    +
    +abstract first_or_default()cpl_query.extension.iterable_abc.IterableABC.any
    +
    + +
    +
    +abstract for_each(func: Callable)Union[int, float, complex]
    +
    + +
    +
    +abstract last()cpl_query.extension.iterable_abc.IterableABC.any
    +
    + +
    +
    +abstract last_or_default()cpl_query.extension.iterable_abc.IterableABC.any
    +
    + +
    +
    +abstract max(func: Optional[Callable] = None)Union[int, float, complex]
    +
    + +
    +
    +abstract min(func: Optional[Callable] = None)Union[int, float, complex]
    +
    + +
    +
    +abstract order_by(func: Callable)cpl_query.extension.iterable_abc.IterableABC
    +
    + +
    +
    +abstract order_by_descending(func: Callable)cpl_query.extension.iterable_abc.IterableABC
    +
    + +
    +
    +abstract reverse()cpl_query.extension.iterable_abc.IterableABC
    +

    Reverse IN PLACE.

    +
    + +
    +
    +abstract single()cpl_query.extension.iterable_abc.IterableABC.any
    +
    + +
    +
    +abstract single_or_default()Optional[cpl_query.extension.iterable_abc.IterableABC.any]
    +
    + +
    +
    +abstract skip(index: int)cpl_query.extension.iterable_abc.IterableABC
    +
    + +
    +
    +abstract skip_last(index: int)cpl_query.extension.iterable_abc.IterableABC
    +
    + +
    +
    +abstract sum(func: Optional[Callable] = None)Union[int, float, complex]
    +
    + +
    +
    +abstract take(index: int)cpl_query.extension.iterable_abc.IterableABC
    +
    + +
    +
    +abstract take_last(index: int)cpl_query.extension.iterable_abc.IterableABC
    +
    + +
    +
    +to_list()list
    +
    + +
    +
    +property type
    +
    + +
    +
    +abstract where(func: Callable)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: cpl_query._extension.iterable.Iterable

    +
    + +
    +
    +

    cpl_query.extension.ordered_iterable_abc

    +
    +
    +class cpl_query.extension.ordered_iterable_abc.OrderedIterableABC(_func: Optional[collections.abc.Callable] = None)
    +

    Bases: cpl_query.extension.iterable_abc.IterableABC

    +
    +
    +abstract then_by(func: collections.abc.Callable)cpl_query.extension.ordered_iterable_abc.OrderedIterableABC
    +

    Sorts OrderedList in ascending order by function

    +
    +

    func: Callable

    +
    +
    +

    list of cpl_query.extension.OrderedIterableABC

    +
    +
    + +
    +
    +abstract then_by_descending(func: collections.abc.Callable)cpl_query.extension.ordered_iterable_abc.OrderedIterableABC
    +

    Sorts OrderedList in descending order by function

    +
    +

    func: Callable

    +
    +
    +

    list of cpl_query.extension.OrderedIterableABC

    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_query.html b/docs/build/html/cpl_query.html new file mode 100644 index 00000000..e216dbc4 --- /dev/null +++ b/docs/build/html/cpl_query.html @@ -0,0 +1,230 @@ + + + + + + + + + + Query Reference — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    + + +
    +
    + +
    + +
    + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/cpl_query.tests.html b/docs/build/html/cpl_query.tests.html new file mode 100644 index 00000000..3b8bdb88 --- /dev/null +++ b/docs/build/html/cpl_query.tests.html @@ -0,0 +1,421 @@ + + + + + + + + + + cpl_query.tests package — Common Python Library documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + +
    + + + + +
    +
    +
    +
    + +
    +

    cpl_query.tests package

    +
    +

    Submodules

    +
    +
    +

    cpl_query.tests.iterable_test module

    +
    +
    +class cpl_query.tests.iterable_test.IterableTest(methodName='runTest')
    +

    Bases: unittest.case.TestCase

    +
    +
    +setUp()None
    +

    Hook method for setting up the test fixture before exercising it.

    +
    + +
    +
    +test_append()
    +
    + +
    + +
    +
    +

    cpl_query.tests.models module

    +
    +
    +class cpl_query.tests.models.Address(street, nr)
    +

    Bases: object

    +
    + +
    +
    +class cpl_query.tests.models.User(name, address)
    +

    Bases: object

    +
    + +
    +
    +

    cpl_query.tests.query_test module

    +
    +
    +class cpl_query.tests.query_test.QueryTest(methodName='runTest')
    +

    Bases: unittest.case.TestCase

    +
    +
    +setUp()None
    +

    Hook method for setting up the test fixture before exercising it.

    +
    + +
    +
    +test_all()
    +
    + +
    +
    +test_any()
    +
    + +
    +
    +test_avg()
    +
    + +
    +
    +test_contains()
    +
    + +
    +
    +test_count()
    +
    + +
    +
    +test_distinct()
    +
    + +
    +
    +test_element_at()
    +
    + +
    +
    +test_element_at_or_default()
    +
    + +
    +
    +test_first()
    +
    + +
    +
    +test_first_or_default()
    +
    + +
    +
    +test_for_each()
    +
    + +
    +
    +test_last()
    +
    + +
    +
    +test_last_or_default()
    +
    + +
    +
    +test_max()
    +
    + +
    +
    +test_min()
    +
    + +
    +
    +test_order_by()
    +
    + +
    +
    +test_order_by_descending()
    +
    + +
    +
    +test_reverse()
    +
    + +
    +
    +test_single()
    +
    + +
    +
    +test_single_or_default()
    +
    + +
    +
    +test_skip()
    +
    + +
    +
    +test_skip_last()
    +
    + +
    +
    +test_sum()
    +
    + +
    +
    +test_take()
    +
    + +
    +
    +test_take_last()
    +
    + +
    +
    +test_then_by()
    +
    + +
    +
    +test_then_by_descending()
    +
    + +
    +
    +test_where()
    +
    + +
    + +
    +
    +

    cpl_query.tests.tester module

    +
    +
    +class cpl_query.tests.tester.Tester
    +

    Bases: object

    +
    +
    +create()
    +
    + +
    +
    +start()
    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    + + +
    + +
    +
    + +
    + +
    +

    + © Copyright 2021, Sven Heidemann. + +

    +
    + + + + Built with Sphinx using a + + theme + + provided by Read the Docs. + +
    +
    +
    + +
    + +
    + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index c9517d7e..f7baef2d 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -87,6 +87,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • @@ -170,6 +171,7 @@ | N | O | P + | Q | R | S | T @@ -234,8 +236,6 @@
  • (cpl_core.dependency_injection.service_collection_abc.ServiceCollectionABC method)
  • - - + +
  • ArgumentNoneException +
  • auth_plugin (cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum attribute)
  • auth_plugin() (cpl_core.database.database_settings.DatabaseSettings property) +
  • +
  • average() (cpl_query.extension.iterable_abc.IterableABC method)
  • @@ -387,10 +401,14 @@
  • ConsoleArgument (class in cpl_core.configuration.console_argument)
  • ConsoleCall (class in cpl_core.console.console_call) +
  • +
  • contains() (cpl_query.extension.iterable_abc.IterableABC method)
  • convert_to_camel_case() (cpl_core.utils.string.String static method)
  • convert_to_snake_case() (cpl_core.utils.string.String static method) +
  • +
  • count() (cpl_query.extension.iterable_abc.IterableABC method)
  • cpl_core.application.application_abc @@ -518,8 +536,6 @@
  • module
  • - -
    • cpl_core.database.database_model @@ -555,6 +571,8 @@
    • module
    + + @@ -810,6 +895,10 @@
  • echo (cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum attribute)
  • echo() (cpl_core.database.database_settings.DatabaseSettings property) +
  • +
  • element_at() (cpl_query.extension.iterable_abc.IterableABC method) +
  • +
  • element_at_or_default() (cpl_query.extension.iterable_abc.IterableABC method)
  • EMail (class in cpl_core.mailing.email)
  • @@ -873,7 +962,11 @@
  • (cpl_core.logging.logger_service.Logger method)
  • +
  • ExceptionArgument (class in cpl_query.exceptions) +
  • exit() (cpl_core.console.spinner_thread.SpinnerThread method) +
  • +
  • extend() (cpl_query.extension.iterable_abc.IterableABC method)
  • @@ -894,6 +987,10 @@
  • filename (cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum attribute)
  • filename() (cpl_core.logging.logging_settings.LoggingSettings property) +
  • +
  • first() (cpl_query.extension.iterable_abc.IterableABC method) +
  • +
  • first_or_default() (cpl_query.extension.iterable_abc.IterableABC method)
  • first_to_lower() (cpl_core.utils.string.String static method)
  • @@ -901,6 +998,8 @@ +
  • func (cpl_query.exceptions.ExceptionArgument attribute) +
  • function() (cpl_core.console.console_call.ConsoleCall property)
  • @@ -994,6 +1095,10 @@
    @@ -1015,16 +1126,24 @@

    L

    + - @@ -1161,6 +1302,14 @@
  • main() (cpl_core.application.application_abc.ApplicationABC method) +
  • +
  • max() (cpl_query.extension.iterable_abc.IterableABC method) +
  • +
  • min() (cpl_query.extension.iterable_abc.IterableABC method)
  • module @@ -1140,6 +1263,24 @@
  • cpl_core.utils.pip
  • cpl_core.utils.string +
  • +
  • cpl_query.exceptions +
  • +
  • cpl_query.extension.iterable_abc +
  • +
  • cpl_query.extension.list +
  • +
  • cpl_query.extension.ordered_iterable_abc +
  • +
  • cpl_query.tests +
  • +
  • cpl_query.tests.iterable_test +
  • +
  • cpl_query.tests.models +
  • +
  • cpl_query.tests.query_test +
  • +
  • cpl_query.tests.tester
  • +
    @@ -1185,6 +1334,14 @@ +

    Q

    + + +
    +

    R

    - +
  • set_background_color() (cpl_core.console.console.Console class method)
  • -
    @@ -1321,8 +1498,78 @@ + -
    @@ -1368,6 +1621,8 @@ diff --git a/docs/build/html/index.html b/docs/build/html/index.html index d7ab4f5a..c31d1835 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -88,6 +88,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • @@ -168,6 +169,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/introduction.html b/docs/build/html/introduction.html index 5ab3f717..62bdaa1d 100644 --- a/docs/build/html/introduction.html +++ b/docs/build/html/introduction.html @@ -92,6 +92,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • @@ -168,8 +169,9 @@ diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html index 5014f221..8b59ef84 100644 --- a/docs/build/html/modules.html +++ b/docs/build/html/modules.html @@ -87,6 +87,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • @@ -334,6 +335,19 @@ +
  • Query Reference +
  • diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index e13443cb3d242c3ec39856e0bac0a960e18aa893..39d6bd15a4fa75911ee5756f9435b27fbce88a20 100644 GIT binary patch delta 3723 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 W>=e8&<7Y+)8;`?J{|6(C)d6fQU-S9^ diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html index b130ed95..f6266519 100644 --- a/docs/build/html/py-modindex.html +++ b/docs/build/html/py-modindex.html @@ -90,6 +90,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • @@ -395,6 +396,57 @@     cpl_core.utils.string + + + + cpl_query + + + +     + cpl_query.exceptions + + + +     + cpl_query.extension.iterable_abc + + + +     + cpl_query.extension.list + + + +     + cpl_query.extension.ordered_iterable_abc + + + +     + cpl_query.tests + + + +     + cpl_query.tests.iterable_test + + + +     + cpl_query.tests.models + + + +     + cpl_query.tests.query_test + + + +     + cpl_query.tests.tester + diff --git a/docs/build/html/quickstart.html b/docs/build/html/quickstart.html index d7ff567c..020f0a61 100644 --- a/docs/build/html/quickstart.html +++ b/docs/build/html/quickstart.html @@ -100,6 +100,7 @@
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/search.html b/docs/build/html/search.html index 2336f301..8f3b0660 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -90,6 +90,7 @@
  • Getting started
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index f6306c80..070a0c9f 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.time","cpl_core.utils","getting_started","index","introduction","modules","quickstart","setup"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},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.time.rst","cpl_core.utils.rst","getting_started.rst","index.rst","introduction.md","modules.rst","quickstart.md","setup.md"],objects:{"cpl_core.application":{application_abc:[16,0,0,"-"],application_builder:[16,0,0,"-"],application_builder_abc:[16,0,0,"-"],startup_abc:[16,0,0,"-"]},"cpl_core.application.application_abc":{ApplicationABC:[16,1,1,""]},"cpl_core.application.application_abc.ApplicationABC":{configure:[16,2,1,""],main:[16,2,1,""],run:[16,2,1,""]},"cpl_core.application.application_builder":{ApplicationBuilder:[16,1,1,""]},"cpl_core.application.application_builder.ApplicationBuilder":{build:[16,2,1,""],use_extension:[16,2,1,""],use_startup:[16,2,1,""]},"cpl_core.application.application_builder_abc":{ApplicationBuilderABC:[16,1,1,""]},"cpl_core.application.application_builder_abc.ApplicationBuilderABC":{build:[16,2,1,""],use_startup:[16,2,1,""]},"cpl_core.application.startup_abc":{StartupABC:[16,1,1,""]},"cpl_core.application.startup_abc.StartupABC":{configure_configuration:[16,2,1,""],configure_services:[16,2,1,""]},"cpl_core.configuration":{configuration:[17,0,0,"-"],configuration_abc:[17,0,0,"-"],configuration_model_abc:[17,0,0,"-"],configuration_variable_name_enum:[17,0,0,"-"],console_argument:[17,0,0,"-"]},"cpl_core.configuration.configuration":{Configuration:[17,1,1,""]},"cpl_core.configuration.configuration.Configuration":{add_configuration:[17,2,1,""],add_console_argument:[17,2,1,""],add_console_arguments:[17,2,1,""],add_environment_variables:[17,2,1,""],add_json_file:[17,2,1,""],additional_arguments:[17,2,1,""],argument_error_function:[17,2,1,""],environment:[17,2,1,""],get_configuration:[17,2,1,""]},"cpl_core.configuration.configuration_abc":{ConfigurationABC:[17,1,1,""]},"cpl_core.configuration.configuration_abc.ConfigurationABC":{add_configuration:[17,2,1,""],add_console_argument:[17,2,1,""],add_console_arguments:[17,2,1,""],add_environment_variables:[17,2,1,""],add_json_file:[17,2,1,""],additional_arguments:[17,2,1,""],argument_error_function:[17,2,1,""],environment:[17,2,1,""],get_configuration:[17,2,1,""]},"cpl_core.configuration.configuration_model_abc":{ConfigurationModelABC:[17,1,1,""]},"cpl_core.configuration.configuration_model_abc.ConfigurationModelABC":{from_dict:[17,2,1,""]},"cpl_core.configuration.configuration_variable_name_enum":{ConfigurationVariableNameEnum:[17,1,1,""]},"cpl_core.configuration.configuration_variable_name_enum.ConfigurationVariableNameEnum":{customer:[17,3,1,""],environment:[17,3,1,""],name:[17,3,1,""],to_list:[17,2,1,""]},"cpl_core.configuration.console_argument":{ConsoleArgument:[17,1,1,""]},"cpl_core.configuration.console_argument.ConsoleArgument":{aliases:[17,2,1,""],console_arguments:[17,2,1,""],is_value_token_optional:[17,2,1,""],name:[17,2,1,""],token:[17,2,1,""],value_token:[17,2,1,""]},"cpl_core.console":{background_color_enum:[18,0,0,"-"],console:[18,0,0,"-"],console_call:[18,0,0,"-"],foreground_color_enum:[18,0,0,"-"],spinner_thread:[18,0,0,"-"]},"cpl_core.console.background_color_enum":{BackgroundColorEnum:[18,1,1,""]},"cpl_core.console.background_color_enum.BackgroundColorEnum":{"default":[18,3,1,""],blue:[18,3,1,""],cyan:[18,3,1,""],green:[18,3,1,""],grey:[18,3,1,""],magenta:[18,3,1,""],red:[18,3,1,""],white:[18,3,1,""],yellow:[18,3,1,""]},"cpl_core.console.console":{Console:[18,1,1,""]},"cpl_core.console.console.Console":{background_color:[18,3,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,2,1,""],foreground_color:[18,3,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:[18,2,1,""]},"cpl_core.console.console_call":{ConsoleCall:[18,1,1,""]},"cpl_core.console.console_call.ConsoleCall":{"function":[18,2,1,""],args:[18,2,1,""]},"cpl_core.console.foreground_color_enum":{ForegroundColorEnum:[18,1,1,""]},"cpl_core.console.foreground_color_enum.ForegroundColorEnum":{"default":[18,3,1,""],blue:[18,3,1,""],cyan:[18,3,1,""],green:[18,3,1,""],grey:[18,3,1,""],magenta:[18,3,1,""],red:[18,3,1,""],white:[18,3,1,""],yellow:[18,3,1,""]},"cpl_core.console.spinner_thread":{SpinnerThread:[18,1,1,""]},"cpl_core.console.spinner_thread.SpinnerThread":{exit:[18,2,1,""],run:[18,2,1,""],stop_spinning:[18,2,1,""]},"cpl_core.database":{database_model:[19,0,0,"-"],database_settings:[19,0,0,"-"],database_settings_name_enum:[19,0,0,"-"]},"cpl_core.database.connection":{database_connection:[20,0,0,"-"],database_connection_abc:[20,0,0,"-"]},"cpl_core.database.connection.database_connection":{DatabaseConnection:[20,1,1,""]},"cpl_core.database.connection.database_connection.DatabaseConnection":{connect:[20,2,1,""],engine:[20,2,1,""],session:[20,2,1,""]},"cpl_core.database.connection.database_connection_abc":{DatabaseConnectionABC:[20,1,1,""]},"cpl_core.database.connection.database_connection_abc.DatabaseConnectionABC":{connect:[20,2,1,""],engine:[20,2,1,""],session:[20,2,1,""]},"cpl_core.database.context":{database_context:[21,0,0,"-"],database_context_abc:[21,0,0,"-"]},"cpl_core.database.context.database_context":{DatabaseContext:[21,1,1,""]},"cpl_core.database.context.database_context.DatabaseContext":{connect:[21,2,1,""],engine:[21,2,1,""],save_changes:[21,2,1,""],session:[21,2,1,""]},"cpl_core.database.context.database_context_abc":{DatabaseContextABC:[21,1,1,""]},"cpl_core.database.context.database_context_abc.DatabaseContextABC":{connect:[21,2,1,""],engine:[21,2,1,""],save_changes:[21,2,1,""],session:[21,2,1,""]},"cpl_core.database.database_settings":{DatabaseSettings:[19,1,1,""]},"cpl_core.database.database_settings.DatabaseSettings":{auth_plugin:[19,2,1,""],case_sensitive:[19,2,1,""],connection_string:[19,2,1,""],credentials:[19,2,1,""],echo:[19,2,1,""],encoding:[19,2,1,""],from_dict:[19,2,1,""]},"cpl_core.database.database_settings_name_enum":{DatabaseSettingsNameEnum:[19,1,1,""]},"cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum":{auth_plugin:[19,3,1,""],case_sensitive:[19,3,1,""],connection_string:[19,3,1,""],credentials:[19,3,1,""],echo:[19,3,1,""],encoding:[19,3,1,""]},"cpl_core.dependency_injection":{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:[22,0,0,"-"]},"cpl_core.dependency_injection.service_collection":{ServiceCollection:[22,1,1,""]},"cpl_core.dependency_injection.service_collection.ServiceCollection":{add_db_context:[22,2,1,""],add_logging:[22,2,1,""],add_scoped:[22,2,1,""],add_singleton:[22,2,1,""],add_transient:[22,2,1,""],build_service_provider:[22,2,1,""]},"cpl_core.dependency_injection.service_collection_abc":{ServiceCollectionABC:[22,1,1,""]},"cpl_core.dependency_injection.service_collection_abc.ServiceCollectionABC":{add_db_context:[22,2,1,""],add_logging:[22,2,1,""],add_scoped:[22,2,1,""],add_singleton:[22,2,1,""],add_transient:[22,2,1,""],build_service_provider:[22,2,1,""]},"cpl_core.dependency_injection.service_descriptor":{ServiceDescriptor:[22,1,1,""]},"cpl_core.dependency_injection.service_descriptor.ServiceDescriptor":{implementation:[22,2,1,""],lifetime:[22,2,1,""],service_type:[22,2,1,""]},"cpl_core.dependency_injection.service_lifetime_enum":{ServiceLifetimeEnum:[22,1,1,""]},"cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum":{"transient":[22,3,1,""],scoped:[22,3,1,""],singleton:[22,3,1,""]},"cpl_core.dependency_injection.service_provider":{ServiceProvider:[22,1,1,""]},"cpl_core.dependency_injection.service_provider.ServiceProvider":{build_service:[22,2,1,""],get_service:[22,2,1,""]},"cpl_core.dependency_injection.service_provider_abc":{ServiceProviderABC:[22,1,1,""]},"cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC":{build_service:[22,2,1,""],get_service:[22,2,1,""]},"cpl_core.environment":{application_environment:[23,0,0,"-"],application_environment_abc:[23,0,0,"-"],environment_name_enum:[23,0,0,"-"]},"cpl_core.environment.application_environment":{ApplicationEnvironment:[23,1,1,""]},"cpl_core.environment.application_environment.ApplicationEnvironment":{application_name:[23,2,1,""],customer:[23,2,1,""],date_time_now:[23,2,1,""],end_time:[23,2,1,""],environment_name:[23,2,1,""],host_name:[23,2,1,""],runtime_directory:[23,2,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,2,1,""],working_directory:[23,2,1,""]},"cpl_core.environment.application_environment_abc":{ApplicationEnvironmentABC:[23,1,1,""]},"cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC":{application_name:[23,2,1,""],customer:[23,2,1,""],date_time_now:[23,2,1,""],end_time:[23,2,1,""],environment_name:[23,2,1,""],host_name:[23,2,1,""],runtime_directory:[23,2,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,2,1,""],working_directory:[23,2,1,""]},"cpl_core.environment.environment_name_enum":{EnvironmentNameEnum:[23,1,1,""]},"cpl_core.environment.environment_name_enum.EnvironmentNameEnum":{development:[23,3,1,""],production:[23,3,1,""],staging:[23,3,1,""],testing:[23,3,1,""]},"cpl_core.logging":{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:[24,0,0,"-"]},"cpl_core.logging.logger_abc":{LoggerABC:[24,1,1,""]},"cpl_core.logging.logger_abc.LoggerABC":{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:[24,2,1,""]},"cpl_core.logging.logger_service":{Logger:[24,1,1,""]},"cpl_core.logging.logger_service.Logger":{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:[24,2,1,""]},"cpl_core.logging.logging_level_enum":{LoggingLevelEnum:[24,1,1,""]},"cpl_core.logging.logging_level_enum.LoggingLevelEnum":{DEBUG:[24,3,1,""],ERROR:[24,3,1,""],FATAL:[24,3,1,""],INFO:[24,3,1,""],OFF:[24,3,1,""],TRACE:[24,3,1,""],WARN:[24,3,1,""]},"cpl_core.logging.logging_settings":{LoggingSettings:[24,1,1,""]},"cpl_core.logging.logging_settings.LoggingSettings":{console:[24,2,1,""],filename:[24,2,1,""],from_dict:[24,2,1,""],level:[24,2,1,""],path:[24,2,1,""]},"cpl_core.logging.logging_settings_name_enum":{LoggingSettingsNameEnum:[24,1,1,""]},"cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum":{console_level:[24,3,1,""],file_level:[24,3,1,""],filename:[24,3,1,""],path:[24,3,1,""]},"cpl_core.mailing":{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:[25,0,0,"-"]},"cpl_core.mailing.email":{EMail:[25,1,1,""]},"cpl_core.mailing.email.EMail":{add_header:[25,2,1,""],add_receiver:[25,2,1,""],body:[25,2,1,""],check_mail:[25,2,1,""],get_content:[25,2,1,""],header:[25,2,1,""],header_list:[25,2,1,""],receiver:[25,2,1,""],receiver_list:[25,2,1,""],subject:[25,2,1,""],transceiver:[25,2,1,""]},"cpl_core.mailing.email_client_abc":{EMailClientABC:[25,1,1,""]},"cpl_core.mailing.email_client_abc.EMailClientABC":{connect:[25,2,1,""],send_mail:[25,2,1,""]},"cpl_core.mailing.email_client_service":{EMailClient:[25,1,1,""]},"cpl_core.mailing.email_client_service.EMailClient":{connect:[25,2,1,""],create:[25,2,1,""],login:[25,2,1,""],send_mail:[25,2,1,""]},"cpl_core.mailing.email_client_settings":{EMailClientSettings:[25,1,1,""]},"cpl_core.mailing.email_client_settings.EMailClientSettings":{credentials:[25,2,1,""],from_dict:[25,2,1,""],host:[25,2,1,""],port:[25,2,1,""],user_name:[25,2,1,""]},"cpl_core.mailing.email_client_settings_name_enum":{EMailClientSettingsNameEnum:[25,1,1,""]},"cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum":{credentials:[25,3,1,""],host:[25,3,1,""],port:[25,3,1,""],user_name:[25,3,1,""]},"cpl_core.time":{time_format_settings:[26,0,0,"-"],time_format_settings_names_enum:[26,0,0,"-"]},"cpl_core.time.time_format_settings":{TimeFormatSettings:[26,1,1,""]},"cpl_core.time.time_format_settings.TimeFormatSettings":{date_format:[26,2,1,""],date_time_format:[26,2,1,""],date_time_log_format:[26,2,1,""],from_dict:[26,2,1,""],time_format:[26,2,1,""]},"cpl_core.time.time_format_settings_names_enum":{TimeFormatSettingsNamesEnum:[26,1,1,""]},"cpl_core.time.time_format_settings_names_enum.TimeFormatSettingsNamesEnum":{date_format:[26,3,1,""],date_time_format:[26,3,1,""],date_time_log_format:[26,3,1,""],time_format:[26,3,1,""]},"cpl_core.utils":{credential_manager:[27,0,0,"-"],pip:[27,0,0,"-"],string:[27,0,0,"-"]},"cpl_core.utils.credential_manager":{CredentialManager:[27,1,1,""]},"cpl_core.utils.credential_manager.CredentialManager":{build_string:[27,2,1,""],decrypt:[27,2,1,""],encrypt:[27,2,1,""]},"cpl_core.utils.pip":{Pip:[27,1,1,""]},"cpl_core.utils.pip.Pip":{get_executable:[27,2,1,""],get_outdated:[27,2,1,""],get_package:[27,2,1,""],install:[27,2,1,""],reset_executable:[27,2,1,""],set_executable:[27,2,1,""],uninstall:[27,2,1,""]},"cpl_core.utils.string":{String:[27,1,1,""]},"cpl_core.utils.string.String":{convert_to_camel_case:[27,2,1,""],convert_to_snake_case:[27,2,1,""],first_to_lower:[27,2,1,""],first_to_upper:[27,2,1,""],random_string:[27,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute"},terms:{"abstract":[2,16,17,20,21,22,23,24,25],"byte":27,"case":[13,27,32],"char":[18,27],"class":[2,16,17,18,19,20,21,22,23,24,25,26,27],"default":[18,33],"enum":[2,17,18,19,22,23,24,25,26],"function":[18,27,32],"import":[13,32],"int":[18,27,32],"new":[6,13,14,18,31,32,33],"public":13,"return":[17,18,22,25,32],"short":[3,6],"static":[17,25,27],"transient":22,"true":17,"while":13,Adding:13,For:13,IDE:32,Such:13,That:13,The:[1,2,4,5,6,7,8,10,13,22,25,27,29,30,32,33],These:29,Useful:[18,27],With:6,__init__:32,__main__:32,__name__:32,abc:[2,16,17,18,20,21,22,23,24,25],abl:13,about:[29,33],absolut:6,accept:13,activ:18,add:[5,6,13,14,17,22,25,31,32],add_configur:17,add_console_argu:17,add_db_context:22,add_environment_vari:17,add_head:25,add_json_fil:17,add_log:22,add_receiv:25,add_scop:22,add_singleton:22,add_transi:22,added:0,addit:[6,13],additional_argu:17,address:25,agre:13,alia:6,alias:[6,17],all:[1,7,8,12,13],allow:13,alreadi:[13,32,33],also:[32,33],ani:[6,18],api:[13,29,30,31],app:[1,6,16,28,29,30,31,32],appli:13,applic:[5,9,15,18,23,24,25,29,30,31,32,33],application_abc:[15,31],application_build:[15,31],application_builder_abc:[15,31],application_environ:[15,31],application_environment_abc:[15,16,24,25,31],application_extension_abc:16,application_nam:23,applicationabc:16,applicationbuild:16,applicationbuilderabc:16,applicationenviron:23,applicationenvironmentabc:[16,23,24,25],applicationextensionabc:16,appropri:13,appset:[16,32],arg:[16,18,21,27],argument:[1,5,6,7,14,17,18,27,31],argument_error_funct:17,artifact:6,ascii_lett:32,ascii_lowercas:32,ascii_uppercas:32,ask:13,attribut:[17,19,24,25,26],auth_plugin:19,authplugin:19,automat:13,avail:[3,6,13],back:[13,18],background:18,background_color:18,background_color_enum:[15,31],backgroundcolorenum:18,banner:18,base64:27,base:[2,16,17,18,19,20,21,22,23,24,25,26,27,32],basic:[14,31,32,33],been:13,befor:[13,18],behavior:13,better:13,bit:13,blue:18,bodi:25,bool:[17,18,25],branch:13,build:[6,7,8,14,16,27,31,32,33],build_servic:22,build_service_provid:22,build_str:27,call:[0,16,18],callabl:[17,18,22],camel:27,camelcas:27,can:[0,1,6,7,8,13,29,33],case_sensit:19,casesensit:19,chang:[6,9,13,21,32],channel:13,charact:18,check:25,check_mail:25,checkout:13,chnage:33,choic:32,citizen:13,classmethod:[18,27],clear:18,cli:[12,28,29,30,31,32],close:[13,18],code:[32,33],codebas:13,collect:[17,18,22],color:18,color_reset:18,command:[0,1,3,5,7,8,13,14,27,31,33],commandnameoralia:6,commit:13,common:[29,30],commun:13,complex:[29,30],config:[16,22],configmodel:2,configur:[15,16,19,22,24,25,26,31],configuration_abc:[15,16,22,31],configuration_model_abc:[15,19,24,25,26,31],configuration_variable_name_enum:[15,31],configurationabc:[16,17,22],configurationmodelabc:[17,19,24,25,26],configurationvariablenameenum:17,configure_configur:16,configure_servic:16,confirm:13,connect:[15,19,21,25,31],connection_str:[19,20,21],connectionstr:19,consid:13,consist:13,consol:[1,3,5,6,7,8,15,17,24,28,31,32],console_argu:[15,31],console_cal:[15,31],console_level:24,consoleargu:17,consolecal:18,consoleloglevel:24,contain:16,content:[14,28,31],context:[15,19,22,31,33],continu:32,contributor:13,convert:[17,24,25,26,27],convert_to_camel_cas:27,convert_to_snake_cas:27,coordin:[13,18],copi:1,core:[20,21],count:13,cpl:[6,14,22,28,33],cpl_core:[7,8,15,31,32,33],craft:13,creat:[6,7,8,13,16,22,24,25,27,28,29,30,31],credenti:[19,25,27],credential_manag:[15,31],credentialmanag:27,current:[6,23],cursor:18,cursor_background_color:18,cursor_foreground_color:18,custom:[16,17,23],cyan:18,data:[7,8],databas:[15,22,31],database_connect:[15,19,31],database_connection_abc:[15,19,31],database_context:[15,19,31],database_context_abc:[15,19,22,31],database_model:[15,31],database_set:[15,20,21,22,31],database_settings_name_enum:[15,31],databaseconnect:20,databaseconnectionabc:20,databasecontext:21,databasecontextabc:[21,22],databaseset:[19,20,21,22],databasesettingsnameenum:19,date_format:26,date_time_format:26,date_time_log_format:26,date_time_now:23,dateformat:26,datetimeformat:26,datetimelogformat:26,db_context:22,db_context_typ:22,db_set:22,debug:24,declin:33,decod:27,decrypt:27,def:32,defin:[6,17,33],delet:8,deped:4,depend:[6,11,32],dependency_inject:[15,16,31],describ:13,descript:[6,14,31],descriptor:22,design:13,desktop:[29,30],detail:29,determin:13,develop:[6,13,23,29,30,32,33],dict:[17,18,19,24,25,26],directli:[1,13],directori:[1,6,7,8,23,32],disabl:18,discuss:13,dist:[6,7],doc:[20,21],document:13,doesn:13,don:[13,32],done:32,duplic:13,each:6,echo:19,edit:13,edraft:[13,33],effici:[29,30],effort:13,either:6,element:18,elif:32,email:[15,31],email_client_abc:[15,31],email_client_servic:[15,31],email_client_set:[15,31],email_client_settings_name_enum:[15,31],emailcli:25,emailclientabc:25,emailclientset:25,emailclientsettingsnameenum:25,emul:32,enabl:[18,32],encod:[19,27],encrypt:27,end:[18,24],end_tim:23,engin:[20,21],enough:13,ensur:13,enter:33,enterpris:[29,30],entri:[16,18],enumer:[17,18,19,22,23,24,25,26],env:[16,24],environ:[15,16,17,24,25,28,31],environment_nam:23,environment_name_enum:[15,31],environmentnameenum:23,error:[17,18,24],essenti:[13,32],even:13,everyth:29,except:24,execut:[1,6,7,8,27],exist:13,exit:[18,32],explor:32,extens:16,extra:[27,33],extract:13,fatal:24,featur:33,file:[1,2,6,7,8,9,13,17,33],file_level:24,fileloglevel:24,filenam:24,find:13,first:[6,13,27,29,30],first_to_low:27,first_to_upp:27,fix:13,fixup:13,folder:32,follow:[6,13,32,33],fore:33,foreground:18,foreground_color:18,foreground_color_enum:[15,31],foregroundcolorenum:18,fork:13,format:[6,24,26],forth:13,found:17,from:[0,6,7,8,10,12,13,16,17,19,29,30,32],from_dict:[17,19,24,25,26],full:32,gener:[5,6,7,8,14,31,32,33],generate_password:32,get:[27,29,30,31,33],get_configur:17,get_cont:25,get_execut:27,get_outd:27,get_packag:27,get_servic:22,git:13,gitea:13,give:13,given:[0,1,4,6,7,10,17,18,19,22,27],going:13,good:13,great:29,green:18,grei:18,guid:13,handl:[18,27],hard:13,has:[0,18],have:[6,13,32,33],haven:13,head:13,header:[18,24,25],header_background_color:18,header_foreground_color:18,header_list:25,hear:13,hello:[32,33],help:[6,13,14,29,30,31],here:[13,33],hold:18,host:25,host_nam:23,html:[20,21],http:[20,21,33],immedi:6,implement:[13,22],includ:[1,13,33],index:[27,32,33],info:[13,24],inform:[13,24,33],initi:[5,28,31],inject:32,input:[18,32],instal:[6,12,14,27,28,31,32],instanc:[16,22],instance_typ:22,interact:18,intern:22,introduc:32,invalid:17,investig:13,is_value_token_opt:17,isol:13,issus:13,its:[6,13],join:32,json:[7,8,17,32,33],keep:13,kei:33,key_typ:17,keyword:18,known:17,kwarg:18,languag:[14,31],larger:13,last:18,launch:33,learn:[29,30,33],len:32,length:[18,27,32],letter:32,level:24,lib:33,librari:[1,5,6,7,8,28,29,30,31],licens:32,lifetim:22,like:[13,32],line:[13,18,32],list:[3,6,12,17,18,22,25,27],live:33,load:16,local:[27,28,31],log:[15,25,31],logfil:24,logger:[22,24,25],logger_abc:[15,25,31],logger_servic:[15,31],loggerabc:[24,25],logging_level_enum:[15,31],logging_set:[15,31],logging_settings_name_enum:[15,31],logginglevelenum:24,loggingset:24,loggingsettingsnameenum:24,login:25,look:32,love:13,lower:[27,32],magenta:18,mail:[15,31],mail_set:25,main:[16,32],maintain:13,major:13,make:[13,33],manag:13,master:13,mayb:13,meant:[29,30],member:13,menu:[18,28,31],messag:[3,18,24],method:13,might:13,mind:13,minim:13,mit:13,more:[13,33],most:[6,32,33],msg_len:18,must:[0,1,6,13],name:[0,1,2,5,6,7,8,17,23,24,27,33],navig:33,need:[13,32,33],next:[18,28,31],none:[17,18,22,24,25,27],note:13,object:[16,17,18,22,25,27],occur:17,off:24,often:13,on_blu:18,on_cyan:18,on_default:18,on_green:18,on_grei:18,on_magenta:18,on_r:18,on_whit:18,on_yellow:18,one:13,onli:32,open:[13,32,33],option:[6,13,17,18,22,24,25,27,32],option_background_color:18,option_foreground_color:18,optionalsarg:6,order:13,org:[20,21],origin:13,otherwis:0,ouput:32,our:13,out:[13,32,33],outdat:27,outlin:13,output:[1,6,7,17,18,32,33],outsid:13,overview:[14,31,33],own:6,packag:[4,5,6,10,12,27,28,29,30,31,32],page:29,parent:6,password:32,patch:13,path:[0,1,7,14,17,23,24,31,33],pep:13,pip:[4,10,12,15,31,32,33],place:17,platform:[29,30],pleas:13,point:[13,16,18],port:25,posit:18,possibl:13,prefix:[6,17],prepar:[1,6,7,13,16],prerequisit:[28,31],press:33,prevent:13,print:[18,32],problem:13,proce:13,process:13,product:23,program:24,project:[0,1,4,6,7,8,10,11,13,14,28,31,33],projectmain:32,prompt:33,properti:[17,18,19,20,21,22,23,24,25,26],propos:13,provid:[13,16,22,32,33],publish:[1,6,8,14,31,33],push:13,pycharm:32,pyhton:33,python:[1,13,27,29,30,32,33],question:13,quickli:13,random:[27,32],random_str:27,rang:32,read:[17,18,32],read_lin:18,readi:[13,33],readili:13,readm:32,realli:13,receiv:25,receiver_list:25,red:18,refer:[0,29,30,31],referenc:0,rel:[14,31],relat:13,remov:[0,6,7,14,31],replac:27,repo:13,repositori:13,repres:[18,19,23,25],represent:[20,21,22,24,25,26],reproduc:13,reproduct:13,requir:13,requiredarg:6,reserv:13,reset:[18,27],reset_cursor_posit:18,reset_execut:27,restart:[6,9,33],result:[25,27],right:13,root:6,run:[1,5,16,18,27,32,33],runtim:23,runtime_directori:23,same:6,sampl:32,save:[13,17,21],save_chang:21,scenario:13,schemat:[14,31],scope:22,search:[13,17,22],search_typ:17,section:32,see:[5,13,20,21,32,33],select:[18,32],send:[13,25],send_mail:25,serv:6,server:[6,25,29,30,33],servic:[2,16,22,24,25,32],service_collect:[15,31],service_collection_abc:[15,16,31],service_descriptor:[15,31],service_lifetime_enum:[15,31],service_provid:[15,31],service_provider_abc:[15,16,31],service_typ:22,servicecollect:22,servicecollectionabc:[16,22],servicedescriptor:22,servicelifetimeenum:22,serviceprovid:22,serviceproviderabc:[16,22],session:[20,21],set:[2,16,17,18,19,22,23,24,25,26,27,28,31,32],set_background_color:18,set_cursor_posit:18,set_execut:27,set_foreground_color:18,set_hold_back:18,set_runtime_directori:23,set_working_directori:23,setup:[6,7,8,30,33],sh_cpl:[13,33],should:[17,32,33],show:[3,18],shown:[6,17,33],significantli:13,similar:33,simpl:[5,29,30,33],singleton:22,size:13,small:13,snake:27,snake_cas:27,some:6,sometim:13,soon:13,sourc:[0,1,7,8,13,27,32,33],specifi:[0,6,17],spinner:18,spinner_background_color:18,spinner_foreground_color:18,spinner_thread:[15,31],spinnerthread:18,sqlalchemi:[20,21],src:32,stage:23,standard:27,start:[6,14,29,30,31],start_tim:23,startup:16,startup_abc:[15,31],startupabc:16,statement:6,stderr:27,stdout:27,step:13,stop:18,stop_spin:18,store:17,str:[0,1,2,3,4,5,7,8,10,17,18,20,21,23,24,25,27,32],string:[15,18,20,21,24,25,31,32],style:13,subject:25,submodul:[15,31],subprocess:27,success:33,successfulli:13,suppli:6,sure:13,syntax:[14,31],system:27,tabl:[14,18,27,28,31],take:[6,17],target:[0,1],team:13,termin:[6,18,32,33],test:[13,23,32],text:18,text_background_color:18,text_foreground_color:18,than:13,thank:13,them:1,themselv:13,thi:[3,13,16,29,30,32,33],those:33,thread:[2,18],through:32,throughout:13,thrown:24,time:[13,15,24,31],time_format:[24,26],time_format_set:[15,24,31],time_format_settings_names_enum:[15,31],timeformat:26,timeformatset:[24,26],timeformatsettingsnamesenum:26,to_list:17,todai:13,token:17,topic:13,trace:24,traceback:18,tracker:13,transceiv:25,tree:24,tutori:[32,33],type:[0,1,2,3,4,7,8,10,14,16,17,22,31],ultim:13,under:13,understand:[13,29,30,32,33],unfortun:13,uninstal:[6,14,27,31],union:[17,18,22],unit:13,updat:[6,13,14,31],upfront:13,upper:[27,32],url:[27,33],use:[0,6,16,25,29,30,32,33],use_extens:16,use_startup:16,used:[1,7,8,16],user:32,user_nam:25,usernam:25,uses:32,util:[15,31],valid:[25,32],valu:[0,1,2,3,4,5,7,8,10,17,18,19,22,23,24,25,26],value_token:17,variabl:[17,27],version:[6,14,31],via:[4,10,13],walk:32,want:[13,32],warn:24,watch:33,wealth:13,welcom:32,well:13,what:[28,31],when:18,whether:17,which:[0,6,17,18,27,33],white:18,who:13,window:33,within:[1,6,13],without:[4,6,13],work:[6,13,23],workaround:13,workflow:[14,31],working_directori:23,workspac:[0,1,5,6,8,28,31],world:[32,33],would:13,write:[13,18,24],write_at:18,write_lin:[18,32],write_line_at:18,yellow:18,you:[0,1,6,13,29,30,32,33],your:[4,6,9,13,29,30,33]},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.time","cpl_core.utils","Getting started","Introduction to the CPL Docs","Introduction to the CPL Docs","cpl","Getting started with CPL","Setting up the local environment and workspace"],titleterms:{"new":5,add:0,address:13,api:15,app:33,applic:16,application_abc:16,application_build:16,application_builder_abc:16,application_environ:23,application_environment_abc:23,argument:[0,2,3,4,8,10],background_color_enum:18,basic:6,bug:13,build:1,cli:[6,14,33],code:13,command:6,configur:17,configuration_abc:17,configuration_model_abc:17,configuration_variable_name_enum:17,connect:20,consol:[18,33],console_argu:17,console_cal:18,content:[0,1,2,4,5,6,7,8,10,32,33],context:21,contribut:13,cpl:[0,1,2,3,4,5,7,8,9,10,11,12,13,29,30,31,32],cpl_core:[16,17,18,19,20,21,22,23,24,25,26,27],creat:[32,33],credential_manag:27,databas:[19,20,21],database_connect:20,database_connection_abc:20,database_context:21,database_context_abc:21,database_model:19,database_set:19,database_settings_name_enum:19,dependency_inject:22,descript:[0,1,2,3,4,5,7,8,10],doc:[29,30],email:25,email_client_abc:25,email_client_servic:25,email_client_set:25,email_client_settings_name_enum:25,environ:[23,33],environment_name_enum:23,explor:30,featur:13,feedback:13,foreground_color_enum:18,found:13,gener:2,get:[28,32],guidelin:13,help:3,initi:33,instal:[4,33],introduct:[29,30],issu:13,languag:6,librari:33,licens:13,local:33,log:24,logger_abc:24,logger_servic:24,logging_level_enum:24,logging_set:24,logging_settings_name_enum:24,mail:25,manual:29,menu:32,next:[32,33],overview:6,packag:33,path:6,pip:27,prerequisit:[32,33],project:[5,32],publish:7,pull:13,refer:[6,14,15],rel:6,remov:8,request:13,review:13,rule:13,schemat:[2,6],service_collect:22,service_collection_abc:22,service_descriptor:22,service_lifetime_enum:22,service_provid:22,service_provider_abc:22,set:33,spinner_thread:18,start:[9,28,32,33],startup_abc:16,string:27,submiss:13,submit:13,submodul:19,syntax:6,tabl:[6,32,33],time:26,time_format_set:26,time_format_settings_names_enum:26,type:5,uninstal:10,updat:11,util:27,version:12,what:[32,33],workflow:6,workspac:33}}) \ 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.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.time","cpl_core.utils","cpl_query","cpl_query.exceptions","cpl_query.extension","cpl_query.tests","getting_started","index","introduction","modules","quickstart","setup"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},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.time.rst","cpl_core.utils.rst","cpl_query.rst","cpl_query.exceptions.rst","cpl_query.extension.rst","cpl_query.tests.rst","getting_started.rst","index.rst","introduction.md","modules.rst","quickstart.md","setup.md"],objects:{"cpl_core.application":{application_abc:[16,0,0,"-"],application_builder:[16,0,0,"-"],application_builder_abc:[16,0,0,"-"],startup_abc:[16,0,0,"-"]},"cpl_core.application.application_abc":{ApplicationABC:[16,1,1,""]},"cpl_core.application.application_abc.ApplicationABC":{configure:[16,2,1,""],main:[16,2,1,""],run:[16,2,1,""]},"cpl_core.application.application_builder":{ApplicationBuilder:[16,1,1,""]},"cpl_core.application.application_builder.ApplicationBuilder":{build:[16,2,1,""],use_extension:[16,2,1,""],use_startup:[16,2,1,""]},"cpl_core.application.application_builder_abc":{ApplicationBuilderABC:[16,1,1,""]},"cpl_core.application.application_builder_abc.ApplicationBuilderABC":{build:[16,2,1,""],use_startup:[16,2,1,""]},"cpl_core.application.startup_abc":{StartupABC:[16,1,1,""]},"cpl_core.application.startup_abc.StartupABC":{configure_configuration:[16,2,1,""],configure_services:[16,2,1,""]},"cpl_core.configuration":{configuration:[17,0,0,"-"],configuration_abc:[17,0,0,"-"],configuration_model_abc:[17,0,0,"-"],configuration_variable_name_enum:[17,0,0,"-"],console_argument:[17,0,0,"-"]},"cpl_core.configuration.configuration":{Configuration:[17,1,1,""]},"cpl_core.configuration.configuration.Configuration":{add_configuration:[17,2,1,""],add_console_argument:[17,2,1,""],add_console_arguments:[17,2,1,""],add_environment_variables:[17,2,1,""],add_json_file:[17,2,1,""],additional_arguments:[17,2,1,""],argument_error_function:[17,2,1,""],environment:[17,2,1,""],get_configuration:[17,2,1,""]},"cpl_core.configuration.configuration_abc":{ConfigurationABC:[17,1,1,""]},"cpl_core.configuration.configuration_abc.ConfigurationABC":{add_configuration:[17,2,1,""],add_console_argument:[17,2,1,""],add_console_arguments:[17,2,1,""],add_environment_variables:[17,2,1,""],add_json_file:[17,2,1,""],additional_arguments:[17,2,1,""],argument_error_function:[17,2,1,""],environment:[17,2,1,""],get_configuration:[17,2,1,""]},"cpl_core.configuration.configuration_model_abc":{ConfigurationModelABC:[17,1,1,""]},"cpl_core.configuration.configuration_model_abc.ConfigurationModelABC":{from_dict:[17,2,1,""]},"cpl_core.configuration.configuration_variable_name_enum":{ConfigurationVariableNameEnum:[17,1,1,""]},"cpl_core.configuration.configuration_variable_name_enum.ConfigurationVariableNameEnum":{customer:[17,3,1,""],environment:[17,3,1,""],name:[17,3,1,""],to_list:[17,2,1,""]},"cpl_core.configuration.console_argument":{ConsoleArgument:[17,1,1,""]},"cpl_core.configuration.console_argument.ConsoleArgument":{aliases:[17,2,1,""],console_arguments:[17,2,1,""],is_value_token_optional:[17,2,1,""],name:[17,2,1,""],token:[17,2,1,""],value_token:[17,2,1,""]},"cpl_core.console":{background_color_enum:[18,0,0,"-"],console:[18,0,0,"-"],console_call:[18,0,0,"-"],foreground_color_enum:[18,0,0,"-"],spinner_thread:[18,0,0,"-"]},"cpl_core.console.background_color_enum":{BackgroundColorEnum:[18,1,1,""]},"cpl_core.console.background_color_enum.BackgroundColorEnum":{"default":[18,3,1,""],blue:[18,3,1,""],cyan:[18,3,1,""],green:[18,3,1,""],grey:[18,3,1,""],magenta:[18,3,1,""],red:[18,3,1,""],white:[18,3,1,""],yellow:[18,3,1,""]},"cpl_core.console.console":{Console:[18,1,1,""]},"cpl_core.console.console.Console":{background_color:[18,3,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,2,1,""],foreground_color:[18,3,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:[18,2,1,""]},"cpl_core.console.console_call":{ConsoleCall:[18,1,1,""]},"cpl_core.console.console_call.ConsoleCall":{"function":[18,2,1,""],args:[18,2,1,""]},"cpl_core.console.foreground_color_enum":{ForegroundColorEnum:[18,1,1,""]},"cpl_core.console.foreground_color_enum.ForegroundColorEnum":{"default":[18,3,1,""],blue:[18,3,1,""],cyan:[18,3,1,""],green:[18,3,1,""],grey:[18,3,1,""],magenta:[18,3,1,""],red:[18,3,1,""],white:[18,3,1,""],yellow:[18,3,1,""]},"cpl_core.console.spinner_thread":{SpinnerThread:[18,1,1,""]},"cpl_core.console.spinner_thread.SpinnerThread":{exit:[18,2,1,""],run:[18,2,1,""],stop_spinning:[18,2,1,""]},"cpl_core.database":{database_model:[19,0,0,"-"],database_settings:[19,0,0,"-"],database_settings_name_enum:[19,0,0,"-"]},"cpl_core.database.connection":{database_connection:[20,0,0,"-"],database_connection_abc:[20,0,0,"-"]},"cpl_core.database.connection.database_connection":{DatabaseConnection:[20,1,1,""]},"cpl_core.database.connection.database_connection.DatabaseConnection":{connect:[20,2,1,""],engine:[20,2,1,""],session:[20,2,1,""]},"cpl_core.database.connection.database_connection_abc":{DatabaseConnectionABC:[20,1,1,""]},"cpl_core.database.connection.database_connection_abc.DatabaseConnectionABC":{connect:[20,2,1,""],engine:[20,2,1,""],session:[20,2,1,""]},"cpl_core.database.context":{database_context:[21,0,0,"-"],database_context_abc:[21,0,0,"-"]},"cpl_core.database.context.database_context":{DatabaseContext:[21,1,1,""]},"cpl_core.database.context.database_context.DatabaseContext":{connect:[21,2,1,""],engine:[21,2,1,""],save_changes:[21,2,1,""],session:[21,2,1,""]},"cpl_core.database.context.database_context_abc":{DatabaseContextABC:[21,1,1,""]},"cpl_core.database.context.database_context_abc.DatabaseContextABC":{connect:[21,2,1,""],engine:[21,2,1,""],save_changes:[21,2,1,""],session:[21,2,1,""]},"cpl_core.database.database_settings":{DatabaseSettings:[19,1,1,""]},"cpl_core.database.database_settings.DatabaseSettings":{auth_plugin:[19,2,1,""],case_sensitive:[19,2,1,""],connection_string:[19,2,1,""],credentials:[19,2,1,""],echo:[19,2,1,""],encoding:[19,2,1,""],from_dict:[19,2,1,""]},"cpl_core.database.database_settings_name_enum":{DatabaseSettingsNameEnum:[19,1,1,""]},"cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum":{auth_plugin:[19,3,1,""],case_sensitive:[19,3,1,""],connection_string:[19,3,1,""],credentials:[19,3,1,""],echo:[19,3,1,""],encoding:[19,3,1,""]},"cpl_core.dependency_injection":{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:[22,0,0,"-"]},"cpl_core.dependency_injection.service_collection":{ServiceCollection:[22,1,1,""]},"cpl_core.dependency_injection.service_collection.ServiceCollection":{add_db_context:[22,2,1,""],add_logging:[22,2,1,""],add_scoped:[22,2,1,""],add_singleton:[22,2,1,""],add_transient:[22,2,1,""],build_service_provider:[22,2,1,""]},"cpl_core.dependency_injection.service_collection_abc":{ServiceCollectionABC:[22,1,1,""]},"cpl_core.dependency_injection.service_collection_abc.ServiceCollectionABC":{add_db_context:[22,2,1,""],add_logging:[22,2,1,""],add_scoped:[22,2,1,""],add_singleton:[22,2,1,""],add_transient:[22,2,1,""],build_service_provider:[22,2,1,""]},"cpl_core.dependency_injection.service_descriptor":{ServiceDescriptor:[22,1,1,""]},"cpl_core.dependency_injection.service_descriptor.ServiceDescriptor":{implementation:[22,2,1,""],lifetime:[22,2,1,""],service_type:[22,2,1,""]},"cpl_core.dependency_injection.service_lifetime_enum":{ServiceLifetimeEnum:[22,1,1,""]},"cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum":{"transient":[22,3,1,""],scoped:[22,3,1,""],singleton:[22,3,1,""]},"cpl_core.dependency_injection.service_provider":{ServiceProvider:[22,1,1,""]},"cpl_core.dependency_injection.service_provider.ServiceProvider":{build_service:[22,2,1,""],get_service:[22,2,1,""]},"cpl_core.dependency_injection.service_provider_abc":{ServiceProviderABC:[22,1,1,""]},"cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC":{build_service:[22,2,1,""],get_service:[22,2,1,""]},"cpl_core.environment":{application_environment:[23,0,0,"-"],application_environment_abc:[23,0,0,"-"],environment_name_enum:[23,0,0,"-"]},"cpl_core.environment.application_environment":{ApplicationEnvironment:[23,1,1,""]},"cpl_core.environment.application_environment.ApplicationEnvironment":{application_name:[23,2,1,""],customer:[23,2,1,""],date_time_now:[23,2,1,""],end_time:[23,2,1,""],environment_name:[23,2,1,""],host_name:[23,2,1,""],runtime_directory:[23,2,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,2,1,""],working_directory:[23,2,1,""]},"cpl_core.environment.application_environment_abc":{ApplicationEnvironmentABC:[23,1,1,""]},"cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC":{application_name:[23,2,1,""],customer:[23,2,1,""],date_time_now:[23,2,1,""],end_time:[23,2,1,""],environment_name:[23,2,1,""],host_name:[23,2,1,""],runtime_directory:[23,2,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,2,1,""],working_directory:[23,2,1,""]},"cpl_core.environment.environment_name_enum":{EnvironmentNameEnum:[23,1,1,""]},"cpl_core.environment.environment_name_enum.EnvironmentNameEnum":{development:[23,3,1,""],production:[23,3,1,""],staging:[23,3,1,""],testing:[23,3,1,""]},"cpl_core.logging":{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:[24,0,0,"-"]},"cpl_core.logging.logger_abc":{LoggerABC:[24,1,1,""]},"cpl_core.logging.logger_abc.LoggerABC":{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:[24,2,1,""]},"cpl_core.logging.logger_service":{Logger:[24,1,1,""]},"cpl_core.logging.logger_service.Logger":{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:[24,2,1,""]},"cpl_core.logging.logging_level_enum":{LoggingLevelEnum:[24,1,1,""]},"cpl_core.logging.logging_level_enum.LoggingLevelEnum":{DEBUG:[24,3,1,""],ERROR:[24,3,1,""],FATAL:[24,3,1,""],INFO:[24,3,1,""],OFF:[24,3,1,""],TRACE:[24,3,1,""],WARN:[24,3,1,""]},"cpl_core.logging.logging_settings":{LoggingSettings:[24,1,1,""]},"cpl_core.logging.logging_settings.LoggingSettings":{console:[24,2,1,""],filename:[24,2,1,""],from_dict:[24,2,1,""],level:[24,2,1,""],path:[24,2,1,""]},"cpl_core.logging.logging_settings_name_enum":{LoggingSettingsNameEnum:[24,1,1,""]},"cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum":{console_level:[24,3,1,""],file_level:[24,3,1,""],filename:[24,3,1,""],path:[24,3,1,""]},"cpl_core.mailing":{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:[25,0,0,"-"]},"cpl_core.mailing.email":{EMail:[25,1,1,""]},"cpl_core.mailing.email.EMail":{add_header:[25,2,1,""],add_receiver:[25,2,1,""],body:[25,2,1,""],check_mail:[25,2,1,""],get_content:[25,2,1,""],header:[25,2,1,""],header_list:[25,2,1,""],receiver:[25,2,1,""],receiver_list:[25,2,1,""],subject:[25,2,1,""],transceiver:[25,2,1,""]},"cpl_core.mailing.email_client_abc":{EMailClientABC:[25,1,1,""]},"cpl_core.mailing.email_client_abc.EMailClientABC":{connect:[25,2,1,""],send_mail:[25,2,1,""]},"cpl_core.mailing.email_client_service":{EMailClient:[25,1,1,""]},"cpl_core.mailing.email_client_service.EMailClient":{connect:[25,2,1,""],create:[25,2,1,""],login:[25,2,1,""],send_mail:[25,2,1,""]},"cpl_core.mailing.email_client_settings":{EMailClientSettings:[25,1,1,""]},"cpl_core.mailing.email_client_settings.EMailClientSettings":{credentials:[25,2,1,""],from_dict:[25,2,1,""],host:[25,2,1,""],port:[25,2,1,""],user_name:[25,2,1,""]},"cpl_core.mailing.email_client_settings_name_enum":{EMailClientSettingsNameEnum:[25,1,1,""]},"cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum":{credentials:[25,3,1,""],host:[25,3,1,""],port:[25,3,1,""],user_name:[25,3,1,""]},"cpl_core.time":{time_format_settings:[26,0,0,"-"],time_format_settings_names_enum:[26,0,0,"-"]},"cpl_core.time.time_format_settings":{TimeFormatSettings:[26,1,1,""]},"cpl_core.time.time_format_settings.TimeFormatSettings":{date_format:[26,2,1,""],date_time_format:[26,2,1,""],date_time_log_format:[26,2,1,""],from_dict:[26,2,1,""],time_format:[26,2,1,""]},"cpl_core.time.time_format_settings_names_enum":{TimeFormatSettingsNamesEnum:[26,1,1,""]},"cpl_core.time.time_format_settings_names_enum.TimeFormatSettingsNamesEnum":{date_format:[26,3,1,""],date_time_format:[26,3,1,""],date_time_log_format:[26,3,1,""],time_format:[26,3,1,""]},"cpl_core.utils":{credential_manager:[27,0,0,"-"],pip:[27,0,0,"-"],string:[27,0,0,"-"]},"cpl_core.utils.credential_manager":{CredentialManager:[27,1,1,""]},"cpl_core.utils.credential_manager.CredentialManager":{build_string:[27,2,1,""],decrypt:[27,2,1,""],encrypt:[27,2,1,""]},"cpl_core.utils.pip":{Pip:[27,1,1,""]},"cpl_core.utils.pip.Pip":{get_executable:[27,2,1,""],get_outdated:[27,2,1,""],get_package:[27,2,1,""],install:[27,2,1,""],reset_executable:[27,2,1,""],set_executable:[27,2,1,""],uninstall:[27,2,1,""]},"cpl_core.utils.string":{String:[27,1,1,""]},"cpl_core.utils.string.String":{convert_to_camel_case:[27,2,1,""],convert_to_snake_case:[27,2,1,""],first_to_lower:[27,2,1,""],first_to_upper:[27,2,1,""],random_string:[27,2,1,""]},"cpl_query.exceptions":{ArgumentNoneException:[29,4,1,""],ExceptionArgument:[29,1,1,""],IndexOutOfRangeException:[29,4,1,""],InvalidTypeException:[29,4,1,""],WrongTypeException:[29,4,1,""]},"cpl_query.exceptions.ExceptionArgument":{func:[29,3,1,""],index:[29,3,1,""],list:[29,3,1,""],type:[29,3,1,""],value:[29,3,1,""]},"cpl_query.extension":{iterable_abc:[30,0,0,"-"],list:[30,0,0,"-"],ordered_iterable_abc:[30,0,0,"-"]},"cpl_query.extension.iterable_abc":{IterableABC:[30,1,1,""]},"cpl_query.extension.iterable_abc.IterableABC":{all:[30,2,1,""],any:[30,2,1,""],append:[30,2,1,""],average:[30,2,1,""],contains:[30,2,1,""],count:[30,2,1,""],distinct:[30,2,1,""],element_at:[30,2,1,""],element_at_or_default:[30,2,1,""],extend:[30,2,1,""],first:[30,2,1,""],first_or_default:[30,2,1,""],for_each:[30,2,1,""],last:[30,2,1,""],last_or_default:[30,2,1,""],max:[30,2,1,""],min:[30,2,1,""],order_by:[30,2,1,""],order_by_descending:[30,2,1,""],reverse:[30,2,1,""],single:[30,2,1,""],single_or_default:[30,2,1,""],skip:[30,2,1,""],skip_last:[30,2,1,""],sum:[30,2,1,""],take:[30,2,1,""],take_last:[30,2,1,""],to_list:[30,2,1,""],type:[30,2,1,""],where:[30,2,1,""]},"cpl_query.extension.list":{List:[30,1,1,""]},"cpl_query.extension.ordered_iterable_abc":{OrderedIterableABC:[30,1,1,""]},"cpl_query.extension.ordered_iterable_abc.OrderedIterableABC":{then_by:[30,2,1,""],then_by_descending:[30,2,1,""]},"cpl_query.tests":{iterable_test:[31,0,0,"-"],models:[31,0,0,"-"],query_test:[31,0,0,"-"],tester:[31,0,0,"-"]},"cpl_query.tests.iterable_test":{IterableTest:[31,1,1,""]},"cpl_query.tests.iterable_test.IterableTest":{setUp:[31,2,1,""],test_append:[31,2,1,""]},"cpl_query.tests.models":{Address:[31,1,1,""],User:[31,1,1,""]},"cpl_query.tests.query_test":{QueryTest:[31,1,1,""]},"cpl_query.tests.query_test.QueryTest":{setUp:[31,2,1,""],test_all:[31,2,1,""],test_any:[31,2,1,""],test_avg:[31,2,1,""],test_contains:[31,2,1,""],test_count:[31,2,1,""],test_distinct:[31,2,1,""],test_element_at:[31,2,1,""],test_element_at_or_default:[31,2,1,""],test_first:[31,2,1,""],test_first_or_default:[31,2,1,""],test_for_each:[31,2,1,""],test_last:[31,2,1,""],test_last_or_default:[31,2,1,""],test_max:[31,2,1,""],test_min:[31,2,1,""],test_order_by:[31,2,1,""],test_order_by_descending:[31,2,1,""],test_reverse:[31,2,1,""],test_single:[31,2,1,""],test_single_or_default:[31,2,1,""],test_skip:[31,2,1,""],test_skip_last:[31,2,1,""],test_sum:[31,2,1,""],test_take:[31,2,1,""],test_take_last:[31,2,1,""],test_then_by:[31,2,1,""],test_then_by_descending:[31,2,1,""],test_where:[31,2,1,""]},"cpl_query.tests.tester":{Tester:[31,1,1,""]},"cpl_query.tests.tester.Tester":{create:[31,2,1,""],start:[31,2,1,""]},cpl_query:{exceptions:[29,0,0,"-"],tests:[31,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","attribute","Python attribute"],"4":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:attribute","4":"py:exception"},terms:{"abstract":[2,16,17,20,21,22,23,24,25,30],"byte":27,"case":[13,27,31,36],"char":[18,27],"class":[2,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31],"default":[18,37],"enum":[2,17,18,19,22,23,24,25,26,29],"float":30,"function":[18,27,30,36],"import":[13,36],"int":[18,27,30,36],"new":[6,13,14,18,35,36,37],"public":13,"return":[17,18,22,25,30,36],"short":[3,6],"static":[17,25,27],"transient":22,"true":17,"while":13,Adding:13,For:13,IDE:36,Such:13,That:13,The:[1,2,4,5,6,7,8,10,13,22,25,27,33,34,36,37],These:33,Useful:[18,27],With:6,__init__:36,__main__:36,__name__:36,_extens:30,_func:30,_iterableabc__iter:30,_iterableabc__object:30,abc:[2,16,17,18,20,21,22,23,24,25,30],abl:13,about:[33,37],absolut:6,accept:13,activ:18,add:[5,6,13,14,17,22,25,35,36],add_configur:17,add_console_argu:17,add_db_context:22,add_environment_vari:17,add_head:25,add_json_fil:17,add_log:22,add_receiv:25,add_scop:22,add_singleton:22,add_transi:22,added:0,addit:[6,13],additional_argu:17,address:[25,31],agre:13,alia:6,alias:[6,17],all:[1,7,12,13,30],allow:13,alreadi:[13,36,37],also:[36,37],ani:[6,18,30],api:[13,33,34,35],app:[1,6,16,32,33,34,35,36],append:30,appli:13,applic:[5,9,15,18,23,24,25,33,34,35,36,37],application_abc:[15,35],application_build:[15,35],application_builder_abc:[15,35],application_environ:[15,35],application_environment_abc:[15,16,24,25,35],application_extension_abc:16,application_nam:23,applicationabc:16,applicationbuild:16,applicationbuilderabc:16,applicationenviron:23,applicationenvironmentabc:[16,23,24,25],applicationextensionabc:16,appropri:13,appset:[16,36],arg:[16,18,21,27,29],argument:[1,5,6,7,14,17,18,27,29,35],argument_error_funct:17,argumentnoneexcept:29,artifact:6,ascend:30,ascii_lett:36,ascii_lowercas:36,ascii_uppercas:36,ask:13,attribut:[17,19,24,25,26],auth_plugin:19,authplugin:19,automat:13,avail:[3,6,13],averag:30,back:[13,18],background:18,background_color:18,background_color_enum:[15,35],backgroundcolorenum:18,banner:18,base64:27,base:[2,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,36],basic:[14,35,36,37],been:13,befor:[13,18,31],behavior:13,better:13,bit:13,blue:18,bodi:25,bool:[17,18,25,30],branch:13,build:[6,7,14,16,27,35,36,37],build_servic:22,build_service_provid:22,build_str:27,call:[0,8,16,18],callabl:[17,18,22,30],camel:27,camelcas:27,can:[0,1,6,7,8,13,33,37],case_sensit:19,casesensit:19,chang:[6,9,13,21,36],channel:13,charact:18,check:25,check_mail:25,checkout:13,chnage:37,choic:36,citizen:13,classmethod:[18,27],clear:18,cli:[12,32,33,34,35,36],close:[13,18],code:[36,37],codebas:13,collect:[17,18,22,30],color:18,color_reset:18,command:[0,1,3,5,7,8,13,14,27,35,37],commandnameoralia:6,commit:13,common:[33,34],commun:13,complex:[30,33,34],config:[16,22],configmodel:2,configur:[15,16,19,22,24,25,26,35],configuration_abc:[15,16,22,35],configuration_model_abc:[15,19,24,25,26,35],configuration_variable_name_enum:[15,35],configurationabc:[16,17,22],configurationmodelabc:[17,19,24,25,26],configurationvariablenameenum:17,configure_configur:16,configure_servic:16,confirm:13,connect:[15,19,21,25,35],connection_str:[19,20,21],connectionstr:19,consid:13,consist:13,consol:[1,3,5,6,7,15,17,24,32,35,36],console_argu:[15,35],console_cal:[15,35],console_level:24,consoleargu:17,consolecal:18,consoleloglevel:24,contain:[16,30],content:[14,32,35],context:[15,19,22,35,37],continu:36,contributor:13,convert:[17,24,25,26,27],convert_to_camel_cas:27,convert_to_snake_cas:27,coordin:[13,18],copi:1,core:[20,21],count:[13,30],cpl:[6,14,22,32,37],cpl_core:[7,15,35,36,37],cpl_queri:[28,35],craft:13,creat:[6,7,13,16,22,24,25,27,31,32,33,34,35],credenti:[19,25,27],credential_manag:[15,35],credentialmanag:27,current:[6,23],cursor:18,cursor_background_color:18,cursor_foreground_color:18,custom:[16,17,23],cyan:18,data:7,databas:[15,22,35],database_connect:[15,19,35],database_connection_abc:[15,19,35],database_context:[15,19,35],database_context_abc:[15,19,22,35],database_model:[15,35],database_set:[15,20,21,22,35],database_settings_name_enum:[15,35],databaseconnect:20,databaseconnectionabc:20,databasecontext:21,databasecontextabc:[21,22],databaseset:[19,20,21,22],databasesettingsnameenum:19,date_format:26,date_time_format:26,date_time_log_format:26,date_time_now:23,dateformat:26,datetimeformat:26,datetimelogformat:26,db_context:22,db_context_typ:22,db_set:22,debug:24,declin:37,decod:27,decrypt:27,def:36,defin:[6,17,37],delet:8,deped:4,depend:[6,11,36],dependency_inject:[15,16,35],descend:30,describ:13,descript:[6,14,35],descriptor:22,design:13,desktop:[33,34],detail:33,determin:13,develop:[6,13,23,33,34,36,37],dict:[17,18,19,24,25,26],directli:[1,13],directori:[1,6,7,23,36],disabl:18,discuss:13,dist:[6,7],distinct:30,doc:[20,21],document:13,doesn:13,don:[13,36],done:36,duplic:13,each:6,echo:19,edit:13,edraft:[13,37],effici:[33,34],effort:13,either:6,element:[18,30],element_at:30,element_at_or_default:30,elif:36,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],emailcli:25,emailclientabc:25,emailclientset:25,emailclientsettingsnameenum:25,emul:36,enabl:[18,36],encod:[19,27],encrypt:27,end:[18,24,30],end_tim:23,engin:[20,21],enough:13,ensur:13,enter:37,enterpris:[33,34],entri:[16,18],enumer:[17,18,19,22,23,24,25,26,29],env:[16,24],environ:[15,16,17,24,25,32,35],environment_nam:23,environment_name_enum:[15,35],environmentnameenum:23,error:[17,18,24],essenti:[13,36],even:13,everyth:33,except:[24,28,35],exceptionargu:29,execut:[1,6,7,27],exercis:31,exist:13,exit:[18,36],explor:36,extend:30,extens:[16,28,35],extra:[27,37],extract:13,fatal:24,featur:37,file:[1,2,6,7,8,9,13,17,37],file_level:24,fileloglevel:24,filenam:24,find:13,first:[6,13,27,30,33,34],first_or_default:30,first_to_low:27,first_to_upp:27,fix:13,fixtur:31,fixup:13,folder:36,follow:[6,13,36,37],for_each:30,fore:37,foreground:18,foreground_color:18,foreground_color_enum:[15,35],foregroundcolorenum:18,fork:13,format:[6,24,26],forth:13,found:17,from:[0,6,7,8,10,12,13,16,17,19,30,33,34,36],from_dict:[17,19,24,25,26],full:36,func:[29,30],gener:[5,6,7,14,35,36,37],generate_password:36,get:[27,33,34,35,37],get_configur:17,get_cont:25,get_execut:27,get_outd:27,get_packag:27,get_servic:22,git:13,gitea:13,give:13,given:[0,1,4,6,7,10,17,18,19,22,27],going:13,good:13,great:33,green:18,grei:18,guid:13,handl:[18,27],hard:13,has:[0,18],have:[6,13,36,37],haven:13,head:13,header:[18,24,25],header_background_color:18,header_foreground_color:18,header_list:25,hear:13,hello:[36,37],help:[6,13,14,33,34,35],here:[13,37],hold:18,hook:31,host:25,host_nam:23,html:[20,21],http:[20,21,37],immedi:6,implement:[13,22],includ:[1,13,37],index:[27,29,30,36,37],indexoutofrangeexcept:29,info:[13,24],inform:[13,24,37],initi:[5,32,35],inject:36,input:[18,36],instal:[6,12,14,27,32,35,36],instanc:[16,22],instance_typ:22,interact:18,intern:22,introduc:36,invalid:17,invalidtypeexcept:29,investig:13,is_value_token_opt:17,isol:13,issus:13,iter:30,iterable_abc:[28,35],iterableabc:30,iterabletest:31,its:[6,13],join:36,json:[7,17,36,37],keep:13,kei:37,key_typ:17,keyword:18,known:17,kwarg:18,languag:[14,35],larger:13,last:[18,30],last_or_default:30,launch:37,learn:[33,34,37],len:36,length:[18,27,36],letter:36,level:24,lib:37,librari:[1,5,6,7,32,33,34,35],licens:36,lifetim:22,like:[13,36],line:[13,18,36],list:[3,6,12,17,18,22,25,27,28,29,35],live:37,load:16,local:[27,32,35],log:[15,25,35],logfil:24,logger:[22,24,25],logger_abc:[15,25,35],logger_servic:[15,35],loggerabc:[24,25],logging_level_enum:[15,35],logging_set:[15,35],logging_settings_name_enum:[15,35],logginglevelenum:24,loggingset:24,loggingsettingsnameenum:24,login:25,look:36,love:13,lower:[27,36],magenta:18,mail:[15,35],mail_set:25,main:[16,36],maintain:13,major:13,make:[13,37],manag:13,master:13,max:30,mayb:13,meant:[33,34],member:13,menu:[18,32,35],messag:[3,18,24],method:[13,31],methodnam:31,might:13,min:30,mind:13,minim:13,mit:13,more:[13,37],most:[6,36,37],msg_len:18,must:[0,1,6,8,13],name:[0,1,2,5,6,7,8,17,23,24,27,31,37],navig:37,need:[13,36,37],next:[18,32,35],none:[17,18,22,24,25,27,29,30,31],note:13,number:30,object:[16,17,18,22,25,27,30,31],occur:17,occurr:30,off:24,often:13,on_blu:18,on_cyan:18,on_default:18,on_green:18,on_grei:18,on_magenta:18,on_r:18,on_whit:18,on_yellow:18,one:13,onli:36,open:[13,36,37],option:[6,13,17,18,22,24,25,27,30,36],option_background_color:18,option_foreground_color:18,optionalsarg:6,order:[13,30],order_bi:30,order_by_descend:30,ordered_iterable_abc:[28,35],orderediterableabc:30,orderedlist:30,org:[20,21],origin:13,otherwis:[0,8],ouput:36,our:13,out:[13,36,37],outdat:27,outlin:13,output:[1,6,7,17,18,36,37],outsid:13,overview:[14,35,37],own:6,packag:[4,5,6,10,12,27,32,33,34,35,36],page:33,parent:6,password:36,patch:13,path:[0,1,7,8,14,17,23,24,35,37],pep:13,pip:[4,10,12,15,35,36,37],place:[17,30],platform:[33,34],pleas:13,point:[13,16,18],port:25,posit:18,possibl:13,prefix:[6,17],prepar:[1,6,7,13,16],prerequisit:[32,35],press:37,prevent:13,print:[18,36],problem:13,proce:13,process:13,product:23,program:24,project:[0,1,4,6,7,8,10,11,13,14,32,35,37],projectmain:36,prompt:37,properti:[17,18,19,20,21,22,23,24,25,26,30],propos:13,provid:[13,16,22,36,37],publish:[1,6,14,35,37],push:13,pycharm:36,pyhton:37,python:[1,13,27,33,34,36,37],queri:[33,34,35],querytest:31,question:13,quickli:13,random:[27,36],random_str:27,rang:36,read:[17,18,36],read_lin:18,readi:[13,37],readili:13,readm:36,realli:13,receiv:25,receiver_list:25,red:18,refer:[0,8,33,34,35],referenc:0,rel:[14,35],relat:13,remov:[0,6,7,14,35],replac:27,repo:13,repositori:13,repres:[18,19,23,25],represent:[20,21,22,24,25,26],reproduc:13,reproduct:13,requir:13,requiredarg:6,reserv:13,reset:[18,27],reset_cursor_posit:18,reset_execut:27,restart:[6,9,37],result:[25,27],revers:30,right:13,root:6,run:[1,5,16,18,27,36,37],runtest:31,runtim:23,runtime_directori:23,same:6,sampl:36,save:[13,17,21],save_chang:21,scenario:13,schemat:[14,35],scope:22,search:[13,17,22],search_typ:17,section:36,see:[5,13,20,21,36,37],select:[18,36],send:[13,25],send_mail:25,serv:6,server:[6,25,33,34,37],servic:[2,16,22,24,25,36],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],service_typ:22,servicecollect:22,servicecollectionabc:[16,22],servicedescriptor:22,servicelifetimeenum:22,serviceprovid:22,serviceproviderabc:[16,22],session:[20,21],set:[2,16,17,18,19,22,23,24,25,26,27,31,32,35,36],set_background_color:18,set_cursor_posit:18,set_execut:27,set_foreground_color:18,set_hold_back:18,set_runtime_directori:23,set_working_directori:23,setup:[6,7,31,34,37],sh_cpl:[13,37],should:[17,36,37],show:[3,18],shown:[6,17,37],significantli:13,similar:37,simpl:[5,33,34,37],singl:30,single_or_default:30,singleton:22,size:13,skip:30,skip_last:30,small:13,snake:27,snake_cas:27,some:6,sometim:13,soon:13,sort:30,sourc:[0,1,7,13,27,36,37],specifi:[0,6,8,17],spinner:18,spinner_background_color:18,spinner_foreground_color:18,spinner_thread:[15,35],spinnerthread:18,sqlalchemi:[20,21],src:36,stage:23,standard:27,start:[6,14,31,33,34,35],start_tim:23,startup:16,startup_abc:[15,35],startupabc:16,statement:6,stderr:27,stdout:27,step:13,stop:18,stop_spin:18,store:17,str:[0,1,2,3,4,5,7,8,10,17,18,20,21,23,24,25,27,36],street:31,string:[15,18,20,21,24,25,35,36],style:13,subject:25,submodul:[15,35],subprocess:27,success:37,successfulli:13,sum:30,suppli:6,sure:13,syntax:[14,35],system:27,tabl:[14,18,27,32,35],take:[6,17,30],take_last:30,target:[0,1],team:13,termin:[6,18,36,37],test:[13,23,36],test_al:31,test_ani:31,test_append:31,test_avg:31,test_contain:31,test_count:31,test_distinct:31,test_element_at:31,test_element_at_or_default:31,test_first:31,test_first_or_default:31,test_for_each:31,test_last:31,test_last_or_default:31,test_max:31,test_min:31,test_order_bi:31,test_order_by_descend:31,test_revers:31,test_singl:31,test_single_or_default:31,test_skip:31,test_skip_last:31,test_sum:31,test_tak:31,test_take_last:31,test_then_bi:31,test_then_by_descend:31,test_wher:31,testcas:31,text:18,text_background_color:18,text_foreground_color:18,than:13,thank:13,them:1,themselv:13,then_bi:30,then_by_descend:30,thi:[3,13,16,33,34,36,37],those:37,thread:[2,18],through:36,throughout:13,thrown:24,time:[13,15,24,35],time_format:[24,26],time_format_set:[15,24,35],time_format_settings_names_enum:[15,35],timeformat:26,timeformatset:[24,26],timeformatsettingsnamesenum:26,to_list:[17,30],todai:13,token:17,topic:13,trace:24,traceback:18,tracker:13,transceiv:25,tree:24,tutori:[36,37],type:[0,1,2,3,4,7,8,10,14,16,17,22,29,30,35],ultim:13,under:13,understand:[13,33,34,36,37],unfortun:13,uninstal:[6,14,27,35],union:[17,18,22,30],unit:13,unittest:31,updat:[6,13,14,35],upfront:13,upper:[27,36],url:[27,37],use:[0,6,8,16,25,33,34,36,37],use_extens:16,use_startup:16,used:[1,7,16],user:[31,36],user_nam:25,usernam:25,uses:36,util:[15,35],valid:[25,36],valu:[0,1,2,3,4,5,7,8,10,17,18,19,22,23,24,25,26,29,30],value_token:17,variabl:[17,27],version:[6,14,35],via:[4,10,13],walk:36,want:[13,36],warn:24,watch:37,wealth:13,welcom:36,well:13,what:[32,35],when:[18,29],where:30,whether:17,which:[0,6,17,18,27,37],white:18,who:13,window:37,within:[1,6,13],without:[4,6,13],work:[6,13,23],workaround:13,workflow:[14,35],working_directori:23,workspac:[0,1,5,6,8,32,35],world:[36,37],would:13,write:[13,18,24],write_at:18,write_lin:[18,36],write_line_at:18,wrongtypeexcept:29,yellow:18,you:[0,1,6,8,13,33,34,36,37],your:[4,6,9,13,33,34,37]},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.time","cpl_core.utils","Query Reference","cpl_query.exceptions","cpl_query.extension","cpl_query.tests package","Getting started","Introduction to the CPL Docs","Introduction to the CPL Docs","cpl","Getting started with CPL","Setting up the local environment and workspace"],titleterms:{"new":5,add:0,address:13,api:15,app:37,applic:16,application_abc:16,application_build:16,application_builder_abc:16,application_environ:23,application_environment_abc:23,argument:[0,2,3,4,8,10],background_color_enum:18,basic:6,bug:13,build:1,cli:[6,14,37],code:13,command:6,configur:17,configuration_abc:17,configuration_model_abc:17,configuration_variable_name_enum:17,connect:20,consol:[18,37],console_argu:17,console_cal:18,content:[0,1,2,4,5,6,7,8,10,31,36,37],context:21,contribut:13,cpl:[0,1,2,3,4,5,7,8,9,10,11,12,13,33,34,35,36],cpl_core:[16,17,18,19,20,21,22,23,24,25,26,27],cpl_queri:[29,30,31],creat:[36,37],credential_manag:27,databas:[19,20,21],database_connect:20,database_connection_abc:20,database_context:21,database_context_abc:21,database_model:19,database_set:19,database_settings_name_enum:19,dependency_inject:22,descript:[0,1,2,3,4,5,7,8,10],doc:[33,34],email:25,email_client_abc:25,email_client_servic:25,email_client_set:25,email_client_settings_name_enum:25,environ:[23,37],environment_name_enum:23,except:29,explor:34,extens:30,featur:13,feedback:13,foreground_color_enum:18,found:13,gener:2,get:[32,36],guidelin:13,help:3,initi:37,instal:[4,37],introduct:[33,34],issu:13,iterable_abc:30,iterable_test:31,languag:6,librari:37,licens:13,list:30,local:37,log:24,logger_abc:24,logger_servic:24,logging_level_enum:24,logging_set:24,logging_settings_name_enum:24,mail:25,manual:33,menu:36,model:31,modul:31,next:[36,37],ordered_iterable_abc:30,overview:6,packag:[31,37],path:6,pip:27,prerequisit:[36,37],project:[5,36],publish:7,pull:13,queri:28,query_test:31,refer:[6,14,15,28],rel:6,remov:8,request:13,review:13,rule:13,schemat:[2,6],service_collect:22,service_collection_abc:22,service_descriptor:22,service_lifetime_enum:22,service_provid:22,service_provider_abc:22,set:37,spinner_thread:18,start:[9,32,36,37],startup_abc:16,string:27,submiss:13,submit:13,submodul:[19,31],syntax:6,tabl:[6,36,37],test:31,tester:31,time:26,time_format_set:26,time_format_settings_names_enum:26,type:5,uninstal:10,updat:11,util:27,version:12,what:[36,37],workflow:6,workspac:37}}) \ No newline at end of file diff --git a/docs/build/html/setup.html b/docs/build/html/setup.html index 89071bfd..4a2ed637 100644 --- a/docs/build/html/setup.html +++ b/docs/build/html/setup.html @@ -103,6 +103,7 @@
  • CLI Reference
  • API Reference
  • +
  • Query Reference
  • diff --git a/docs/source/conf.py b/docs/source/conf.py index b4e07d05..6954834c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -51,6 +51,8 @@ templates_path = ['_templates'] exclude_patterns = [ 'cpl_cli/templates/*', 'cpl_cli/*', + 'tests', + 'cpl_query/tests/*', 'tests/*' ] @@ -65,4 +67,4 @@ html_theme = 'sphinx_rtd_theme' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] \ No newline at end of file +html_static_path = ['_static'] diff --git a/docs/source/cpl_query.exceptions.rst b/docs/source/cpl_query.exceptions.rst new file mode 100644 index 00000000..d492c637 --- /dev/null +++ b/docs/source/cpl_query.exceptions.rst @@ -0,0 +1,10 @@ +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 new file mode 100644 index 00000000..3f995913 --- /dev/null +++ b/docs/source/cpl_query.extension.rst @@ -0,0 +1,26 @@ +cpl_query.extension +================================= + +cpl_query.extension.iterable_abc +---------------------------------------------------- + +.. automodule:: cpl_query.extension.iterable_abc + :members: + :undoc-members: + :show-inheritance: + +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: \ No newline at end of file diff --git a/docs/source/cpl_query.rst b/docs/source/cpl_query.rst new file mode 100644 index 00000000..10d6f0d8 --- /dev/null +++ b/docs/source/cpl_query.rst @@ -0,0 +1,8 @@ +Query Reference +=========== + +.. toctree:: + :maxdepth: 4 + + cpl_query.extension + cpl_query.exceptions diff --git a/docs/source/introduction.md b/docs/source/introduction.md index eb36b40f..9e43037c 100644 --- a/docs/source/introduction.md +++ b/docs/source/introduction.md @@ -8,5 +8,6 @@ This CPL docs help you learn, understand and use the package. From your first ap - [Getting started](quickstart) - [Setup](setup) -- [API Reference](cpl) +- [API Reference](cpl_core) - [CLI Reference](cli.overview) +- [Query Reference](cpl_query) diff --git a/scripts/create_docs.sh b/scripts/create_docs.sh index ea3d0d8f..41e6f8f8 100755 --- a/scripts/create_docs.sh +++ b/scripts/create_docs.sh @@ -2,5 +2,7 @@ cd ../docs/ sphinx-apidoc -o source/ ../src/cpl_core +sphinx-apidoc -o source/ ../src/cpl_query make clean -make html; \ No newline at end of file +make html; +rm source/cpl_query.tests.rst \ No newline at end of file diff --git a/src/cpl_query/exceptions.py b/src/cpl_query/exceptions.py index 7fc33909..873de96e 100644 --- a/src/cpl_query/exceptions.py +++ b/src/cpl_query/exceptions.py @@ -12,6 +12,8 @@ class ExceptionArgument(Enum): # exceptions class ArgumentNoneException(Exception): + r"""Exception when argument is None + """ def __init__(self, arg: ExceptionArgument): Exception.__init__(self, f'argument {arg} is None')
  • API Reference