From b3f8174663d170e560e99fd4e0fc391fbf3103e1 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Tue, 2 Nov 2021 18:41:30 +0100 Subject: [PATCH] Added cpl_query to docs --- .../doctrees/cpl_query.extension.doctree | Bin 96646 -> 276108 bytes docs/build/doctrees/environment.pickle | Bin 201229 -> 209282 bytes .../html/_sources/cpl_query.extension.rst.txt | 16 + docs/build/html/cpl_query.extension.html | 766 +++++++++++++++++- docs/build/html/cpl_query.html | 2 + docs/build/html/genindex.html | 210 ++++- docs/build/html/modules.html | 2 + docs/build/html/objects.inv | Bin 3853 -> 4008 bytes docs/build/html/py-modindex.html | 10 + docs/build/html/searchindex.js | 2 +- docs/source/cpl_query.extension.rst | 16 + src/cpl_query/extension/iterable_abc.py | 352 +++++++- 12 files changed, 1280 insertions(+), 96 deletions(-) diff --git a/docs/build/doctrees/cpl_query.extension.doctree b/docs/build/doctrees/cpl_query.extension.doctree index 5d04ffd5acf364ca1e65d051d09070b93b443d82..7b48977604eb1b7bfec79fdaa8040f1ce8b80abc 100644 GIT binary patch literal 276108 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 literal 96646 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%0Akv z5XC+R+N)*Y>TPQbcqponGk1foQjci9uOqCF>eK3IZE?3Oi7s@pEN*9@5A+UWopC*yho{4j^ScBD)Kxe$!^AoO~TFbP?RuUH&AK5e`Yiu>=EsQGox(_ zPBb9eI!!ai=iPE@5BLZ2qh2VWFd{NS<}}iH;nS@k zeWW8yAbLU5jVZ})bZekU#Ih!;hkke~m4ihBRyELwsJodMIulRqZJHg!>CHhS;ifds zco)&tRD0k^%&RpshPxYsN1|P;X)!Wv4j>74y~f4Juo^@X^9Id~;gZ&%hKRd0(Fo|f zRZE)~)`D)-@EA`GG43T}Z_+#!jH1a_Sa=I0Gv?h@tlvuFjp&q3R4C@#Rb(g<A$$t(^EJ(tx%=?@`w`Z=2@V0v zr~8XFIBWG*5d8|rHXm5l(~}v^jM6%<+@tvGy{Gr|w55YW`m`mzLP%e>q*)<-gQdSf zz1xKJq>}@^B;6~dLzeVGA>Cq09~RQ9Ea{U%x`(B7qwp(2`j91E0Jl+bSsi~$U^At~ zd+b@d+LES(^fF6&gOF}zDcvlJR|zw@Xi4#+V3yuuN%7)Smfp)!x;_stXk_V+EGgdM z$I|^QrAw{wQa6^qYDw|tE|wm2YEV{mO#t4!#L^QjDc&5z(zTWpFSB6js3pZq4p^G8 zqbRq^GI>*veEGZuU z#nMfd6pu?{Y1xvVA*452QatH{)855W+RKN>HL&#OmK67lv-CwvihH41`lcnt?XoOg zx+*9Q(tD4Pu4XB1p27WNoc1D1iW_)XnqVm{)5TpBEUj2lT*%MT+bk)r(PrtrEDhH3 zvh-<|(o8C@Ol0Yn(}Mhx6yFiE^e2`S=Wkj1geAqfRhB+yNpUKWrLVD+o-jD8#nQJd zDNg6GbRIks+Rp__i<2iT{gfrer!PxCZ%Oe<6-euuk6zqUZ_I`j-%Wg6ErJgCnr8dU zYAuCdHhSUw%E?lD3H3G2_KzBK^2srrg~FfAn@q!kd|EBM_zdJX7F5fbY;gx1^f;b` z1ucz5i4nYYD^It{z-g`qA>uxEj-C?@EIxjLdn2Z7kV5Rm+r$%Y|*bn)SvZ z$zrLYG+NAFwI0uDy0y9LI&hPHvwM1OhX4N>Drrw+E?j8lm0=4KDEhIG z^nzq{wKDEY9~II*l%@-Htn&6R>PWo+jqS%jYvIqHvBum~9#8s#S#==dh&GdO)>o=5ta`+0&+rsM+m<}aR?Hex@3UJ#*va&S+ zbu`udOk)uooP`UeX(=Y&`wRBpj9$Gs1>18oIB{6o4xUeqXm?|g`E3>U`lOq?e$R|YAl2~GP0{W z1?x9pZQz|~Q*XVJhs(z@u;3NUybHhT!=qtfIa(rFgxl>a)#hMhk^faSUx!_-xZ7Z` zF+Wo)#n0aX0h`^)XnbTLa&svbZ0AyAZyF!Aw3| jz!zAc`T_j*FgUk3RZYN_kwhU|tV54*@uT&z`k41$AVq<_ literal 201229 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 z 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 diff --git a/docs/build/html/_sources/cpl_query.extension.rst.txt b/docs/build/html/_sources/cpl_query.extension.rst.txt index 3f995913..9dfaa401 100644 --- a/docs/build/html/_sources/cpl_query.extension.rst.txt +++ b/docs/build/html/_sources/cpl_query.extension.rst.txt @@ -8,6 +8,14 @@ cpl_query.extension.iterable_abc :members: :undoc-members: :show-inheritance: + +cpl_query.extension.iterable +---------------------------------------------------- + +.. automodule:: cpl_query.extension.iterable + :members: + :undoc-members: + :show-inheritance: cpl_query.extension.list ---------------------------------------------------- @@ -21,6 +29,14 @@ cpl_query.extension.ordered_iterable_abc ---------------------------------------------------- .. automodule:: cpl_query.extension.ordered_iterable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl_query.extension.ordered_iterable +---------------------------------------------------- + +.. automodule:: cpl_query.extension.ordered_iterable :members: :undoc-members: :show-inheritance: \ No newline at end of file diff --git a/docs/build/html/cpl_query.extension.html b/docs/build/html/cpl_query.extension.html index 1f9afb93..9fe680c6 100644 --- a/docs/build/html/cpl_query.extension.html +++ b/docs/build/html/cpl_query.extension.html @@ -44,8 +44,10 @@
  • ConsoleCall (class in cpl_core.console.console_call)
  • -
  • contains() (cpl_query.extension.iterable_abc.IterableABC method) +
  • contains() (cpl_query.extension.iterable.Iterable 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) +
  • count() (cpl_query.extension.iterable.Iterable method) + +
  • cpl_core.application.application_abc @@ -650,6 +670,13 @@
  • +
  • + cpl_query.extension.iterable + +
  • @@ -664,6 +691,13 @@
  • +
  • + cpl_query.extension.ordered_iterable + +
  • @@ -806,8 +840,12 @@
  • disable() (cpl_core.console.console.Console class method)
  • -
  • distinct() (cpl_query.extension.iterable_abc.IterableABC method) +
  • distinct() (cpl_query.extension.iterable.Iterable method) + +
  • @@ -820,10 +858,18 @@
  • (cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum attribute)
  • -
  • element_at() (cpl_query.extension.iterable_abc.IterableABC method) +
  • element_at() (cpl_query.extension.iterable.Iterable method) + +
  • +
  • element_at_or_default() (cpl_query.extension.iterable.Iterable method) + +
  • EMail (class in cpl_core.mailing.email)
  • EMailClient (class in cpl_core.mailing.email_client_service) @@ -850,6 +896,8 @@
  • (cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC property)
  • + + -
      -
    • for_each() (cpl_query.extension.iterable_abc.IterableABC method) +
    • first_to_upper() (cpl_core.utils.string.String static method)
    • +
    • for_each() (cpl_query.extension.iterable.Iterable method) + +
    • foreground_color (cpl_core.console.console.Console property)
    • ForegroundColorEnum (class in cpl_core.console.foreground_color_enum) @@ -1045,6 +1103,8 @@
    • InvalidTypeException
    • is_value_token_optional (cpl_core.configuration.console_argument.ConsoleArgument property) +
    • +
    • Iterable (class in cpl_query.extension.iterable)
    • IterableABC (class in cpl_query.extension.iterable_abc)
    • @@ -1056,20 +1116,28 @@

      L

      - +
    • main() (cpl_core.application.application_abc.ApplicationABC method)
    • -
    • max() (cpl_query.extension.iterable_abc.IterableABC method) +
    • max() (cpl_query.extension.iterable.Iterable method) + +
    • +
    • min() (cpl_query.extension.iterable.Iterable method) + +
    • module @@ -1195,10 +1271,14 @@
    • cpl_core.utils.string
    • cpl_query.exceptions +
    • +
    • cpl_query.extension.iterable
    • cpl_query.extension.iterable_abc
    • cpl_query.extension.list +
    • +
    • cpl_query.extension.ordered_iterable
    • cpl_query.extension.ordered_iterable_abc
    • @@ -1233,11 +1313,21 @@
      @@ -1433,10 +1547,18 @@
      • table() (cpl_core.console.console.Console class method)
      • -
      • take() (cpl_query.extension.iterable_abc.IterableABC method) +
      • take() (cpl_query.extension.iterable.Iterable method) + +
      • +
      • take_last() (cpl_query.extension.iterable.Iterable method) + +
      • test_all() (cpl_query.tests.query_test.QueryTest method)
      • test_any() (cpl_query.tests.query_test.QueryTest method) @@ -1501,10 +1623,18 @@
      • testing (cpl_core.environment.environment_name_enum.EnvironmentNameEnum attribute)
      • -
      • then_by() (cpl_query.extension.ordered_iterable_abc.OrderedIterableABC method) +
      • then_by() (cpl_query.extension.ordered_iterable.OrderedIterable method) + +
      • +
      • then_by_descending() (cpl_query.extension.ordered_iterable.OrderedIterable method) + +
      • time_format (cpl_core.time.time_format_settings.TimeFormatSettings property)
      • -
      • where() (cpl_query.extension.iterable_abc.IterableABC method) +
      • where() (cpl_query.extension.iterable.Iterable method) + +
      • white (cpl_core.console.background_color_enum.BackgroundColorEnum attribute)
          diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html index cade8e27..9e8dc3c6 100644 --- a/docs/build/html/modules.html +++ b/docs/build/html/modules.html @@ -249,8 +249,10 @@
        • Query Reference
          • cpl_query.extension
          • cpl_query.exceptions
              diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 06b02efab2f527db9588c917d6ebca4a25cc9ced..b59e3583f923fc1f60349cbc76dbcf4c4365cb67 100644 GIT binary patch delta 3895 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 diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html index 4d5b223b..8c49e9c6 100644 --- a/docs/build/html/py-modindex.html +++ b/docs/build/html/py-modindex.html @@ -321,6 +321,11 @@     cpl_query.exceptions + + +     + cpl_query.extension.iterable +     @@ -331,6 +336,11 @@     cpl_query.extension.list + + +     + cpl_query.extension.ordered_iterable +     diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index 8d377346..0bf5cfa6 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","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":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},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,3,1,""],argument_error_function:[17,3,1,""],environment:[17,3,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,3,1,""],argument_error_function:[17,3,1,""],environment:[17,3,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,4,1,""],environment:[17,4,1,""],name:[17,4,1,""],to_list:[17,2,1,""]},"cpl_core.configuration.console_argument":{ConsoleArgument:[17,1,1,""]},"cpl_core.configuration.console_argument.ConsoleArgument":{aliases:[17,3,1,""],console_arguments:[17,3,1,""],is_value_token_optional:[17,3,1,""],name:[17,3,1,""],token:[17,3,1,""],value_token:[17,3,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,4,1,""],blue:[18,4,1,""],cyan:[18,4,1,""],green:[18,4,1,""],grey:[18,4,1,""],magenta:[18,4,1,""],red:[18,4,1,""],white:[18,4,1,""],yellow:[18,4,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,3,1,""],args:[18,3,1,""]},"cpl_core.console.foreground_color_enum":{ForegroundColorEnum:[18,1,1,""]},"cpl_core.console.foreground_color_enum.ForegroundColorEnum":{"default":[18,4,1,""],blue:[18,4,1,""],cyan:[18,4,1,""],green:[18,4,1,""],grey:[18,4,1,""],magenta:[18,4,1,""],red:[18,4,1,""],white:[18,4,1,""],yellow:[18,4,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,3,1,""],session:[20,3,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,3,1,""],session:[20,3,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,3,1,""],save_changes:[21,2,1,""],session:[21,3,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,3,1,""],save_changes:[21,2,1,""],session:[21,3,1,""]},"cpl_core.database.database_settings":{DatabaseSettings:[19,1,1,""]},"cpl_core.database.database_settings.DatabaseSettings":{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,""],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,4,1,""],case_sensitive:[19,4,1,""],connection_string:[19,4,1,""],credentials:[19,4,1,""],echo:[19,4,1,""],encoding:[19,4,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,3,1,""],lifetime:[22,3,1,""],service_type:[22,3,1,""]},"cpl_core.dependency_injection.service_lifetime_enum":{ServiceLifetimeEnum:[22,1,1,""]},"cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum":{"transient":[22,4,1,""],scoped:[22,4,1,""],singleton:[22,4,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,3,1,""],customer:[23,3,1,""],date_time_now:[23,3,1,""],end_time:[23,3,1,""],environment_name:[23,3,1,""],host_name:[23,3,1,""],runtime_directory:[23,3,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,3,1,""],working_directory:[23,3,1,""]},"cpl_core.environment.application_environment_abc":{ApplicationEnvironmentABC:[23,1,1,""]},"cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC":{application_name:[23,3,1,""],customer:[23,3,1,""],date_time_now:[23,3,1,""],end_time:[23,3,1,""],environment_name:[23,3,1,""],host_name:[23,3,1,""],runtime_directory:[23,3,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,3,1,""],working_directory:[23,3,1,""]},"cpl_core.environment.environment_name_enum":{EnvironmentNameEnum:[23,1,1,""]},"cpl_core.environment.environment_name_enum.EnvironmentNameEnum":{development:[23,4,1,""],production:[23,4,1,""],staging:[23,4,1,""],testing:[23,4,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,4,1,""],ERROR:[24,4,1,""],FATAL:[24,4,1,""],INFO:[24,4,1,""],OFF:[24,4,1,""],TRACE:[24,4,1,""],WARN:[24,4,1,""]},"cpl_core.logging.logging_settings":{LoggingSettings:[24,1,1,""]},"cpl_core.logging.logging_settings.LoggingSettings":{console:[24,3,1,""],filename:[24,3,1,""],from_dict:[24,2,1,""],level:[24,3,1,""],path:[24,3,1,""]},"cpl_core.logging.logging_settings_name_enum":{LoggingSettingsNameEnum:[24,1,1,""]},"cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum":{console_level:[24,4,1,""],file_level:[24,4,1,""],filename:[24,4,1,""],path:[24,4,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,3,1,""],check_mail:[25,2,1,""],get_content:[25,2,1,""],header:[25,3,1,""],header_list:[25,3,1,""],receiver:[25,3,1,""],receiver_list:[25,3,1,""],subject:[25,3,1,""],transceiver:[25,3,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,3,1,""],from_dict:[25,2,1,""],host:[25,3,1,""],port:[25,3,1,""],user_name:[25,3,1,""]},"cpl_core.mailing.email_client_settings_name_enum":{EMailClientSettingsNameEnum:[25,1,1,""]},"cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum":{credentials:[25,4,1,""],host:[25,4,1,""],port:[25,4,1,""],user_name:[25,4,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,3,1,""],date_time_format:[26,3,1,""],date_time_log_format:[26,3,1,""],from_dict:[26,2,1,""],time_format:[26,3,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,4,1,""],date_time_format:[26,4,1,""],date_time_log_format:[26,4,1,""],time_format:[26,4,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,5,1,""],ExceptionArgument:[29,1,1,""],IndexOutOfRangeException:[29,5,1,""],InvalidTypeException:[29,5,1,""],WrongTypeException:[29,5,1,""]},"cpl_query.exceptions.ExceptionArgument":{func:[29,4,1,""],index:[29,4,1,""],list:[29,4,1,""],type:[29,4,1,""],value:[29,4,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,3,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","property","Python property"],"4":["py","attribute","Python attribute"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:property","4":"py:attribute","5":"py:exception"},terms:{"0":[22,24,36],"1":[22,24,36],"14":[20,21],"2":[22,24,36],"3":24,"4":24,"5":[24,36],"6":24,"8":13,"9":[20,21],"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],"do":[33,36],"enum":[2,17,18,19,22,23,24,25,26,29],"float":30,"function":[18,27,30,36],"import":[13,36],"int":[18,25,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,A:[0,5,13],As:13,Be:13,By:13,For:13,IN:30,If:[0,5,8,13,37],In:[6,13,36],Such:13,That:13,The:[1,2,4,5,6,7,8,10,13,22,25,27,33,34,36,37],These:33,To:[6,13,36,37],With:6,__init__:[20,21,36],__main__:36,__name__:36,_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,ad:[0,13],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,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],an:[1,6,7,17,18,19,22,23,24,25,26,29,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,17,24,25,35],application_extension_abc:16,application_nam:23,applicationabc:16,applicationbuild:16,applicationbuilderabc:16,applicationenviron:23,applicationenvironmentabc:[16,17,23,24,25],applicationextensionabc:16,appropri:13,appset:[16,36],ar:[6,7,13],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,b:[1,6,13],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,19,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,cd:[6,37],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,20,21,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,d:13,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,datetim:23,datetimeformat:26,datetimelogformat:26,db_context:22,db_context_typ:22,db_set:22,de:[13,37],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,e:25,each:6,echo:19,edit:13,edraft:[13,37],edraft_d:[20,21],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,en:[20,21],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,20,21,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,ex:24,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,20,21,30,33,34,36],from_dict:[17,19,24,25,26],full:36,func:[29,30],g:[2,6],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,git_sh:[20,21],gitea:13,give:13,given:[0,1,4,6,7,10,17,18,19,22,27],go:[6,13,33],good:13,great:33,green:18,grei:18,guid:13,h:[3,6],ha:[0,18],handl:[18,27],hard:13,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,home:[20,21],hook:31,host:25,host_nam:23,html:[20,21],http:[20,21,37],i:[4,6,36],id:36,immedi:6,implement:[13,22,30],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,29],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:[20,21,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,md:36,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,modul:[20,21],more:[13,37],most:[6,36,37],msg_len:18,must:[0,1,6,8,13],my:[6,13,37],n:[5,6,36,37],name:[0,1,2,5,6,7,8,17,23,24,27,31,37],navig:37,need:[13,36,37],next:[18,32,35],nextcloud_sven:[20,21],none:[17,18,22,24,25,27,29,30,31],note:13,nr:31,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,orm:[20,21],otherwis:[0,8],ouput:36,our:13,out:[13,29,36,37],outdat:27,outlin:13,output:[1,6,7,17,18,36,37],outsid:13,overview:[14,35,37],own:6,p:[6,7],packag:[4,5,6,10,12,20,21,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,pr: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,py:[6,7,20,21,27,36],pycharm:36,pyhton:37,python3:[20,21],python:[1,13,27,33,34,36,37],queri:[33,34,35],querytest:31,question:13,quickli:13,r:[6,8],random:[27,36],random_str:27,rang:[29,36],re:13,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,rm:13,root:6,run:[1,5,16,18,27,36,37],runtest:31,runtim:23,runtime_directori:23,s:[6,9,13,32,35],same:6,sampl:36,save:[13,17,21],save_chang:21,scenario:13,schemat:[14,35],schreibtisch:[20,21],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:[13,37],sh_cpl:[13,20,21,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,site:[20,21],size:13,skip:30,skip_last:30,small:13,snake:27,snake_cas:27,so:[13,37],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,19,20,21,23,24,25,26,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,sven:[20,21],syntax:[14,35],system:27,t:[13,30,36],tabl:[14,18,27,32,35],take:[6,17,30],take_last:30,target:[0,1],tb:18,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],u:[6,11],ui:[6,10],ultim:13,under:13,understand:[13,33,34,36,37],unexpect:29,unfortun:13,uninstal:[6,14,27,35],union:[17,18,22,30],unit:13,unittest:31,up:[31,32,35],updat:[6,13,14,35],upfront:13,upper:[27,36],url:[27,37],us:[0,1,6,7,8,13,16,18,25,27,33,34,36,37],use_extens:16,use_startup:16,user:[31,36],user_nam:25,usernam:25,util:[15,35],v:[6,12],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],ve:36,version:[6,14,35],via:[4,10,13],vs:36,wa:[17,37],walk:36,want:[13,36],warn:24,watch:37,we:[13,36],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,x:18,y:[18,36],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,an: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,s:[36,37],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,up:37,updat:11,util:27,version:12,what:[36,37],workflow:6,workspac:37}}) \ 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":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},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,3,1,""],argument_error_function:[17,3,1,""],environment:[17,3,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,3,1,""],argument_error_function:[17,3,1,""],environment:[17,3,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,4,1,""],environment:[17,4,1,""],name:[17,4,1,""],to_list:[17,2,1,""]},"cpl_core.configuration.console_argument":{ConsoleArgument:[17,1,1,""]},"cpl_core.configuration.console_argument.ConsoleArgument":{aliases:[17,3,1,""],console_arguments:[17,3,1,""],is_value_token_optional:[17,3,1,""],name:[17,3,1,""],token:[17,3,1,""],value_token:[17,3,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,4,1,""],blue:[18,4,1,""],cyan:[18,4,1,""],green:[18,4,1,""],grey:[18,4,1,""],magenta:[18,4,1,""],red:[18,4,1,""],white:[18,4,1,""],yellow:[18,4,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,3,1,""],args:[18,3,1,""]},"cpl_core.console.foreground_color_enum":{ForegroundColorEnum:[18,1,1,""]},"cpl_core.console.foreground_color_enum.ForegroundColorEnum":{"default":[18,4,1,""],blue:[18,4,1,""],cyan:[18,4,1,""],green:[18,4,1,""],grey:[18,4,1,""],magenta:[18,4,1,""],red:[18,4,1,""],white:[18,4,1,""],yellow:[18,4,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,3,1,""],session:[20,3,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,3,1,""],session:[20,3,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,3,1,""],save_changes:[21,2,1,""],session:[21,3,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,3,1,""],save_changes:[21,2,1,""],session:[21,3,1,""]},"cpl_core.database.database_settings":{DatabaseSettings:[19,1,1,""]},"cpl_core.database.database_settings.DatabaseSettings":{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,""],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,4,1,""],case_sensitive:[19,4,1,""],connection_string:[19,4,1,""],credentials:[19,4,1,""],echo:[19,4,1,""],encoding:[19,4,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,3,1,""],lifetime:[22,3,1,""],service_type:[22,3,1,""]},"cpl_core.dependency_injection.service_lifetime_enum":{ServiceLifetimeEnum:[22,1,1,""]},"cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum":{"transient":[22,4,1,""],scoped:[22,4,1,""],singleton:[22,4,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,3,1,""],customer:[23,3,1,""],date_time_now:[23,3,1,""],end_time:[23,3,1,""],environment_name:[23,3,1,""],host_name:[23,3,1,""],runtime_directory:[23,3,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,3,1,""],working_directory:[23,3,1,""]},"cpl_core.environment.application_environment_abc":{ApplicationEnvironmentABC:[23,1,1,""]},"cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC":{application_name:[23,3,1,""],customer:[23,3,1,""],date_time_now:[23,3,1,""],end_time:[23,3,1,""],environment_name:[23,3,1,""],host_name:[23,3,1,""],runtime_directory:[23,3,1,""],set_runtime_directory:[23,2,1,""],set_working_directory:[23,2,1,""],start_time:[23,3,1,""],working_directory:[23,3,1,""]},"cpl_core.environment.environment_name_enum":{EnvironmentNameEnum:[23,1,1,""]},"cpl_core.environment.environment_name_enum.EnvironmentNameEnum":{development:[23,4,1,""],production:[23,4,1,""],staging:[23,4,1,""],testing:[23,4,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,4,1,""],ERROR:[24,4,1,""],FATAL:[24,4,1,""],INFO:[24,4,1,""],OFF:[24,4,1,""],TRACE:[24,4,1,""],WARN:[24,4,1,""]},"cpl_core.logging.logging_settings":{LoggingSettings:[24,1,1,""]},"cpl_core.logging.logging_settings.LoggingSettings":{console:[24,3,1,""],filename:[24,3,1,""],from_dict:[24,2,1,""],level:[24,3,1,""],path:[24,3,1,""]},"cpl_core.logging.logging_settings_name_enum":{LoggingSettingsNameEnum:[24,1,1,""]},"cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum":{console_level:[24,4,1,""],file_level:[24,4,1,""],filename:[24,4,1,""],path:[24,4,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,3,1,""],check_mail:[25,2,1,""],get_content:[25,2,1,""],header:[25,3,1,""],header_list:[25,3,1,""],receiver:[25,3,1,""],receiver_list:[25,3,1,""],subject:[25,3,1,""],transceiver:[25,3,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,3,1,""],from_dict:[25,2,1,""],host:[25,3,1,""],port:[25,3,1,""],user_name:[25,3,1,""]},"cpl_core.mailing.email_client_settings_name_enum":{EMailClientSettingsNameEnum:[25,1,1,""]},"cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum":{credentials:[25,4,1,""],host:[25,4,1,""],port:[25,4,1,""],user_name:[25,4,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,3,1,""],date_time_format:[26,3,1,""],date_time_log_format:[26,3,1,""],from_dict:[26,2,1,""],time_format:[26,3,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,4,1,""],date_time_format:[26,4,1,""],date_time_log_format:[26,4,1,""],time_format:[26,4,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,5,1,""],ExceptionArgument:[29,1,1,""],IndexOutOfRangeException:[29,5,1,""],InvalidTypeException:[29,5,1,""],WrongTypeException:[29,5,1,""]},"cpl_query.exceptions.ExceptionArgument":{func:[29,4,1,""],index:[29,4,1,""],list:[29,4,1,""],type:[29,4,1,""],value:[29,4,1,""]},"cpl_query.extension":{iterable:[30,0,0,"-"],iterable_abc:[30,0,0,"-"],list:[30,0,0,"-"],ordered_iterable:[30,0,0,"-"],ordered_iterable_abc:[30,0,0,"-"]},"cpl_query.extension.iterable":{Iterable:[30,1,1,""]},"cpl_query.extension.iterable.Iterable":{all:[30,2,1,""],any:[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,""],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,""],where:[30,2,1,""]},"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,3,1,""],where:[30,2,1,""]},"cpl_query.extension.list":{List:[30,1,1,""]},"cpl_query.extension.ordered_iterable":{OrderedIterable:[30,1,1,""]},"cpl_query.extension.ordered_iterable.OrderedIterable":{then_by:[30,2,1,""],then_by_descending:[30,2,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","property","Python property"],"4":["py","attribute","Python attribute"],"5":["py","exception","Python exception"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:property","4":"py:attribute","5":"py:exception"},terms:{"0":[22,24,36],"1":[22,24,36],"14":[20,21],"2":[22,24,36],"3":24,"4":24,"5":[24,36],"6":24,"8":13,"9":[20,21],"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],"do":[33,36],"enum":[2,17,18,19,22,23,24,25,26,29],"float":30,"function":[18,27,30,36],"import":[13,36],"int":[18,25,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,A:[0,5,13],As:13,Be:13,By:13,For:13,If:[0,5,8,13,37],In:[6,13,36],Such:13,That:13,The:[1,2,4,5,6,7,8,10,13,22,25,27,33,34,36,37],These:33,To:[6,13,36,37],With:6,__init__:[20,21,36],__iter:30,__main__:36,__name__:36,__object: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,ad:[0,13],add:[5,6,13,14,17,22,25,30,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,addit:[6,13],additional_argu:17,address:[25,31],after:30,agre:13,alia:6,alias:[6,17],all:[1,7,12,13,30],allow:13,alreadi:[13,36,37],also:[36,37],an:[1,6,7,17,18,19,22,23,24,25,26,29,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,17,24,25,35],application_extension_abc:16,application_nam:23,applicationabc:16,applicationbuild:16,applicationbuilderabc:16,applicationenviron:23,applicationenvironmentabc:[16,17,23,24,25],applicationextensionabc:16,appropri:13,appset:[16,36],ar:[6,7,13],arg:[16,18,21,27,29],argument:[1,5,6,7,14,17,18,27,29,30,35],argument_error_funct:17,argumentnoneexcept:[29,30],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,b:[1,6,13],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,19,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,30],callabl:[17,18,22,30],camel:27,camelcas:27,can:[0,1,6,7,8,13,33,37],case_sensit:19,casesensit:19,cd:[6,37],chang:[6,9,13,21,36],channel:13,charact:18,check:[25,30],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,30],convert_to_camel_cas:27,convert_to_snake_cas:27,coordin:[13,18],copi:1,core:[20,21],count:[13,30],cpl:[6,14,20,21,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,d:13,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,datetim:23,datetimeformat:26,datetimelogformat:26,db_context:22,db_context_typ:22,db_set:22,de:[13,37],debug:24,declin:37,decod:27,decrypt:27,def:36,defin:[6,17,30,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,e:25,each:[6,30],echo:19,edit:13,edraft:[13,37],edraft_d:[20,21],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,en:[20,21],enabl:[18,36],encod:[19,27],encrypt:27,end:[18,24],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,20,21,24],environ:[15,16,17,24,25,32,35],environment_nam:23,environment_name_enum:[15,35],environmentnameenum:23,equal:30,error:[17,18,24],essenti:[13,36],even:13,everi:30,everyth:33,ex:24,except:[24,28,30,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,30],from:[0,6,7,8,10,12,13,16,17,19,20,21,30,33,34,36],from_dict:[17,19,24,25,26],full:36,func:[29,30],g:[2,6],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,git_sh:[20,21],gitea:13,give:13,given:[0,1,4,6,7,10,17,18,19,22,27,30],go:[6,13,33],good:13,great:33,green:18,grei:18,guid:13,h:[3,6],ha:[0,18],handl:[18,27],hard:13,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],highest:30,hold:18,home:[20,21],hook:31,host:25,host_nam:23,html:[20,21],http:[20,21,37],i:[4,6,36],id:36,immedi:6,implement:[13,22,30],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,29],invalidtypeexcept:29,investig:13,is_value_token_opt:17,isol:13,issus:13,iter:[28,35],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,30,36],letter:36,level:24,lib:[20,21,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,md:36,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,modul:[20,21],more:[13,30,37],most:[6,36,37],msg_len:18,must:[0,1,6,8,13],my:[6,13,37],n:[5,6,36,37],name:[0,1,2,5,6,7,8,17,23,24,27,31,37],navig:37,need:[13,36,37],next:[18,32,35],nextcloud_sven:[20,21],none:[17,18,22,24,25,27,29,30,31],note:13,nr:31,object:[16,17,18,22,25,27,30,31],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,30],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_iter:[28,35],ordered_iterable_abc:[28,35],orderediter:30,orderediterableabc:30,orderedlist:30,org:[20,21],origin:13,orm:[20,21],otherwis:[0,8],ouput:36,our:13,out:[13,29,36,37],outdat:27,outlin:13,output:[1,6,7,17,18,36,37],outsid:13,overview:[14,35,37],own:6,p:[6,7],packag:[4,5,6,10,12,20,21,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,platform:[33,34],pleas:13,point:[13,16,18],port:25,posit:18,possibl:13,pr: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,py:[6,7,20,21,27,36],pycharm:36,pyhton:37,python3:[20,21],python:[1,13,27,33,34,36,37],queri:[33,34,35],querytest:31,question:13,quickli:13,r:[6,8],random:[27,36],random_str:27,rang:[29,36],re:13,read:[17,18,36],read_lin:18,readi:[13,37],readili:13,readm:36,realli:13,receiv:25,receiver_list:25,red:18,redund:30,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,30],revers:30,right:13,rm:13,root:6,run:[1,5,16,18,27,30,36,37],runtest:31,runtim:23,runtime_directori:23,s:[6,9,13,32,35],same:6,sampl:36,save:[13,17,21],save_chang:21,scenario:13,schemat:[14,35],schreibtisch:[20,21],scope:22,search:[13,17,22],search_typ:17,section:36,see:[5,13,20,21,36,37],select:[18,30,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:[13,37],sh_cpl:[13,20,21,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,site:[20,21],size:13,skip:30,skip_last:30,small:13,snake:27,snake_cas:27,so:[13,37],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,19,20,21,23,24,25,26,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,sven:[20,21],syntax:[14,35],system:27,t:[13,30,36],tabl:[14,18,27,32,35],take:[6,17,30],take_last:30,target:[0,1],tb:18,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,30],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],u:[6,11],ui:[6,10],ultim:13,under:13,understand:[13,33,34,36,37],unexpect:29,unfortun:13,uninstal:[6,14,27,35],union:[17,18,22,30],unit:13,unittest:31,up:[31,32,35],updat:[6,13,14,35],upfront:13,upper:[27,36],url:[27,37],us:[0,1,6,7,8,13,16,18,25,27,33,34,36,37],use_extens:16,use_startup:16,user:[31,36],user_nam:25,usernam:25,util:[15,35],v:[6,12],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],ve:36,version:[6,14,35],via:[4,10,13],vs:36,wa:[17,37],walk:36,want:[13,36],warn:24,watch:37,we:[13,36],wealth:13,welcom:36,well:13,what:[32,35],when:[18,29,30],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,30],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,x:18,y:[18,36],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,an: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,iter:30,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_iter:30,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,s:[36,37],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,up:37,updat:11,util:27,version:12,what:[36,37],workflow:6,workspac:37}}) \ No newline at end of file diff --git a/docs/source/cpl_query.extension.rst b/docs/source/cpl_query.extension.rst index 3f995913..9dfaa401 100644 --- a/docs/source/cpl_query.extension.rst +++ b/docs/source/cpl_query.extension.rst @@ -8,6 +8,14 @@ cpl_query.extension.iterable_abc :members: :undoc-members: :show-inheritance: + +cpl_query.extension.iterable +---------------------------------------------------- + +.. automodule:: cpl_query.extension.iterable + :members: + :undoc-members: + :show-inheritance: cpl_query.extension.list ---------------------------------------------------- @@ -21,6 +29,14 @@ cpl_query.extension.ordered_iterable_abc ---------------------------------------------------- .. automodule:: cpl_query.extension.ordered_iterable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl_query.extension.ordered_iterable +---------------------------------------------------- + +.. automodule:: cpl_query.extension.ordered_iterable :members: :undoc-members: :show-inheritance: \ No newline at end of file diff --git a/src/cpl_query/extension/iterable_abc.py b/src/cpl_query/extension/iterable_abc.py index f10547f6..e04a4ce5 100644 --- a/src/cpl_query/extension/iterable_abc.py +++ b/src/cpl_query/extension/iterable_abc.py @@ -3,6 +3,8 @@ from typing import Optional, Callable, Union, Iterable class IterableABC(ABC, list): + r"""ABC to define functions on list + """ @abstractmethod def __init__(self, t: type = None, values: list = None): @@ -21,12 +23,43 @@ class IterableABC(ABC, list): return self._type @abstractmethod - def any(self, func: Callable) -> bool: pass + def all(self, func: Callable) -> bool: + r"""Checks if every element of list equals result found by function + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + bool + """ + pass @abstractmethod - def all(self, func: Callable) -> bool: pass + def any(self, func: Callable) -> bool: + r"""Checks if list contains result found by function + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + bool + """ + pass def append(self, __object: object) -> None: + r"""Adds element to list + + Parameter + --------- + __object: :class:`object` + value + """ if self._type is not None and type(__object) != self._type and not isinstance(type(__object), self._type) \ and not issubclass(type(__object), self._type): raise Exception(f'Unexpected type: {type(__object)}') @@ -37,80 +70,347 @@ class IterableABC(ABC, list): super().append(__object) @abstractmethod - def average(self, func: Callable = None) -> Union[int, float, complex]: pass + def average(self, func: Callable = None) -> Union[int, float, complex]: + r"""Returns average value of list + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + Union[int, float, complex] + """ + pass @abstractmethod - def contains(self, value: object) -> bool: pass + def contains(self, value: object) -> bool: + r"""Checks if list contains value given by function + + Parameter + --------- + value: :class:`object` + value + + Returns + ------- + bool + """ + pass @abstractmethod - def count(self, func: Callable) -> int: pass + def count(self, func: Callable) -> int: + r"""Returns length of list or count of found elements + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + int + """ + pass @abstractmethod - def distinct(self, func: Callable) -> 'IterableABC': pass + def distinct(self, func: Callable) -> 'IterableABC': + r"""Returns list without redundancies + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass @abstractmethod - def element_at(self, index: int) -> any: pass + def element_at(self, index: int) -> any: + r"""Returns element at given index + + Parameter + --------- + index: :class:`int` + index + + Returns + ------- + Value at index: any + """ + pass @abstractmethod - def element_at_or_default(self, index: int) -> Optional[any]: pass + def element_at_or_default(self, index: int) -> Optional[any]: + r"""Returns element at given index or None + + Parameter + --------- + index: :class:`int` + index + + Returns + ------- + Value at index: Optional[any] + """ + pass def extend(self, __iterable: Iterable) -> None: + r"""Adds elements of given list to list + + Parameter + --------- + __iterable: :class: `cpl_query.extension.iterable.Iterable` + index + """ for value in __iterable: self.append(value) @abstractmethod - def last(self) -> any: pass + def last(self) -> any: + r"""Returns last element + + Returns + ------- + Last element of list: any + """ + pass @abstractmethod - def last_or_default(self) -> any: pass + def last_or_default(self) -> any: + r"""Returns last element or None + + Returns + ------- + Last element of list: Optional[any] + """ + pass @abstractmethod - def first(self) -> any: pass + def first(self) -> any: + r"""Returns first element + + Returns + ------- + First element of list: any + """ + pass @abstractmethod - def first_or_default(self) -> any: pass + def first_or_default(self) -> any: + r"""Returns first element or None + + Returns + ------- + First element of list: Optional[any] + """ + pass @abstractmethod - def for_each(self, func: Callable) -> Union[int, float, complex]: pass + def for_each(self, func: Callable): + r"""Runs given function for each element of list + + Parameter + --------- + func: :class: `Callable` + function to call + """ + pass @abstractmethod - def max(self, func: Callable = None) -> Union[int, float, complex]: pass + def max(self, func: Callable = None) -> Union[int, float, complex]: + r"""Returns highest value + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + Union[int, float, complex] + """ + pass @abstractmethod - def min(self, func: Callable = None) -> Union[int, float, complex]: pass + def min(self, func: Callable = None) -> Union[int, float, complex]: + r"""Returns highest value + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + Union[int, float, complex] + """ + pass @abstractmethod - def order_by(self, func: Callable) -> 'IterableABC': pass + def order_by(self, func: Callable) -> 'IterableABC': + r"""Sorts elements by function in ascending order + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass @abstractmethod - def order_by_descending(self, func: Callable) -> 'IterableABC': pass + def order_by_descending(self, func: Callable) -> 'IterableABC': + r"""Sorts elements by function in descending order + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass @abstractmethod - def reverse(self) -> 'IterableABC': pass + def reverse(self) -> 'IterableABC': + r"""Reverses list + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass @abstractmethod - def single(self) -> any: pass + def single(self) -> any: + r"""Returns one single element of list + + Returns + ------- + Found value: any + + Raises + ------ + ArgumentNoneException: when argument is None + Exception: when argument is None or found more than one element + """ + pass @abstractmethod - def single_or_default(self) -> Optional[any]: pass + def single_or_default(self) -> Optional[any]: + r"""Returns one single element of list + + Returns + ------- + Found value: Optional[any] + """ + pass @abstractmethod - def skip(self, index: int) -> 'IterableABC': pass + def skip(self, index: int) -> 'IterableABC': + r"""Skips all elements from index + + Parameter + --------- + index: :class:`int` + index + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass @abstractmethod - def skip_last(self, index: int) -> 'IterableABC': pass + def skip_last(self, index: int) -> 'IterableABC': + r"""Skips all elements after index + + Parameter + --------- + index: :class:`int` + index + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass @abstractmethod - def sum(self, func: Callable = None) -> Union[int, float, complex]: pass + def sum(self, func: Callable = None) -> Union[int, float, complex]: + r"""Sum of all values + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + Union[int, float, complex] + """ + pass @abstractmethod - def take(self, index: int) -> 'IterableABC': pass + def take(self, index: int) -> 'IterableABC': + r"""Takes all elements from index + + Parameter + --------- + index: :class:`int` + index + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass @abstractmethod - def take_last(self, index: int) -> 'IterableABC': pass + def take_last(self, index: int) -> 'IterableABC': + r"""Takes all elements after index + + Parameter + --------- + index: :class:`int` + index + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass def to_list(self) -> list: + r"""Converts :class: `cpl_query.extension.iterable_abc.IterableABC` to :class: `list` + + Returns + ------- + :class: `list` + """ return list(self) @abstractmethod - def where(self, func: Callable) -> 'IterableABC': pass + def where(self, func: Callable) -> 'IterableABC': + r"""Select element by function + + Parameter + --------- + func: :class:`Callable` + selected value + + Returns + ------- + :class: `cpl_query.extension.iterable_abc.IterableABC` + """ + pass
  • Query Reference @@ -320,14 +332,22 @@