From 5f10603fe5c36482e2dd544fe4d77c121f7c2b17 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 5 Dec 2022 23:08:52 +0100 Subject: [PATCH 001/124] [WIP] Improved cpl new templating #139 --- src/cpl_cli/.cpl/project_console.py | 42 +++ src/cpl_cli/.cpl/project_file_appsettings.py | 29 ++ .../.cpl/project_file_code_application.py | 49 +++ src/cpl_cli/.cpl/project_file_code_main.py | 93 +++++ src/cpl_cli/.cpl/project_file_code_startup.py | 29 ++ src/cpl_cli/.cpl/project_file_license.py | 11 + src/cpl_cli/.cpl/project_file_readme.py | 11 + .../{abc_schematic.py => schematic_abc.py} | 0 ...{class_schematic.py => schematic_class.py} | 0 ..._schematic.py => schematic_configmodel.py} | 0 .../{enum_schematic.py => schematic_enum.py} | 0 .../{init_schematic.py => schematic_init.py} | 0 .../{pipe_schematic.py => schematic_pipe.py} | 0 ...vice_schematic.py => schematic_service.py} | 0 ...se_schematic.py => schematic_test_case.py} | 0 ...hread_schematic.py => schematic_thread.py} | 0 ...or_schematic.py => schematic_validator.py} | 0 src/cpl_cli/abc/code_file_template_abc.py | 24 ++ src/cpl_cli/abc/file_template_abc.py | 10 +- src/cpl_cli/abc/generate_schematic_abc.py | 8 +- src/cpl_cli/abc/project_type_abc.py | 35 ++ src/cpl_cli/command/generate_service.py | 2 +- src/cpl_cli/command/new_old_service.py | 356 ++++++++++++++++++ src/cpl_cli/command/new_service.py | 94 ++++- .../source_creator/template_builder.py | 45 ++- ...ustom_schematic.py => schematic_custom.py} | 0 26 files changed, 822 insertions(+), 16 deletions(-) create mode 100644 src/cpl_cli/.cpl/project_console.py create mode 100644 src/cpl_cli/.cpl/project_file_appsettings.py create mode 100644 src/cpl_cli/.cpl/project_file_code_application.py create mode 100644 src/cpl_cli/.cpl/project_file_code_main.py create mode 100644 src/cpl_cli/.cpl/project_file_code_startup.py create mode 100644 src/cpl_cli/.cpl/project_file_license.py create mode 100644 src/cpl_cli/.cpl/project_file_readme.py rename src/cpl_cli/.cpl/{abc_schematic.py => schematic_abc.py} (100%) rename src/cpl_cli/.cpl/{class_schematic.py => schematic_class.py} (100%) rename src/cpl_cli/.cpl/{configmodel_schematic.py => schematic_configmodel.py} (100%) rename src/cpl_cli/.cpl/{enum_schematic.py => schematic_enum.py} (100%) rename src/cpl_cli/.cpl/{init_schematic.py => schematic_init.py} (100%) rename src/cpl_cli/.cpl/{pipe_schematic.py => schematic_pipe.py} (100%) rename src/cpl_cli/.cpl/{service_schematic.py => schematic_service.py} (100%) rename src/cpl_cli/.cpl/{test_case_schematic.py => schematic_test_case.py} (100%) rename src/cpl_cli/.cpl/{thread_schematic.py => schematic_thread.py} (100%) rename src/cpl_cli/.cpl/{validator_schematic.py => schematic_validator.py} (100%) create mode 100644 src/cpl_cli/abc/code_file_template_abc.py create mode 100644 src/cpl_cli/abc/project_type_abc.py create mode 100644 src/cpl_cli/command/new_old_service.py rename tests/custom/general/.cpl/{custom_schematic.py => schematic_custom.py} (100%) diff --git a/src/cpl_cli/.cpl/project_console.py b/src/cpl_cli/.cpl/project_console.py new file mode 100644 index 00000000..7028172d --- /dev/null +++ b/src/cpl_cli/.cpl/project_console.py @@ -0,0 +1,42 @@ +import os + +from cpl_cli.abc.project_type_abc import ProjectTypeABC +from cpl_cli.configuration import WorkspaceSettings +from cpl_core.utils import String + + +class Console(ProjectTypeABC): + + def __init__( + self, + base_path: str, + project_name: str, + workspace: WorkspaceSettings, + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + ): + from project_file_license import ProjectFileLicense + from project_file_readme import ProjectFileReadme + from schematic_init import Init + from project_file_code_application import ProjectFileApplication + from project_file_code_main import ProjectFileMain + from project_file_code_startup import ProjectFileStartup + + ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async) + + project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/' + + self.add_template(ProjectFileLicense('')) + self.add_template(ProjectFileReadme('')) + self.add_template(Init('', 'init', f'{base_path}tests/')) + self.add_template(Init('', 'init', project_path)) + + if use_application_api: + self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + if use_startup: + self.add_template(ProjectFileStartup(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + self.add_template(ProjectFileMain(project_path, use_application_api, use_startup, use_service_providing, use_async)) diff --git a/src/cpl_cli/.cpl/project_file_appsettings.py b/src/cpl_cli/.cpl/project_file_appsettings.py new file mode 100644 index 00000000..e7b0e3ec --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_appsettings.py @@ -0,0 +1,29 @@ +import textwrap + +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class ProjectFileAppsettings(FileTemplateABC): + + def __init__(self, path: str): + code = textwrap.dedent("""\ + { + "TimeFormatSettings": { + "DateFormat": "%Y-%m-%d", + "TimeFormat": "%H:%M:%S", + "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", + "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" + }, + + "LoggingSettings": { + "Path": "logs/", + "Filename": "log_$start_time.log", + "ConsoleLogLevel": "ERROR", + "FileLogLevel": "WARN" + } + } + """) + FileTemplateABC.__init__(self, 'appsettings.json', path, code) + + def get_code(self) -> str: + return self._code diff --git a/src/cpl_cli/.cpl/project_file_code_application.py b/src/cpl_cli/.cpl/project_file_code_application.py new file mode 100644 index 00000000..59bc447a --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_code_application.py @@ -0,0 +1,49 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class ProjectFileApplication(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'application', path, '', use_application_api, use_startup, use_service_providing, use_async) + + def get_code(self) -> str: + import textwrap + + if self._use_async: + return textwrap.dedent("""\ + from cpl_core.application import ApplicationABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.console import Console + from cpl_core.dependency_injection import ServiceProviderABC + + + class Application(ApplicationABC): + + def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): + ApplicationABC.__init__(self, config, services) + + async def configure(self): + pass + + async def main(self): + Console.write_line('Hello World') + """) + + return textwrap.dedent("""\ + from cpl_core.application import ApplicationABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.console import Console + from cpl_core.dependency_injection import ServiceProviderABC + + + class Application(ApplicationABC): + + def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): + ApplicationABC.__init__(self, config, services) + + def configure(self): + pass + + def main(self): + Console.write_line('Hello World') + """) diff --git a/src/cpl_cli/.cpl/project_file_code_main.py b/src/cpl_cli/.cpl/project_file_code_main.py new file mode 100644 index 00000000..43b5988f --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_code_main.py @@ -0,0 +1,93 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class ProjectFileMain(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'main', path, '', use_application_api, use_startup, use_service_providing, use_async) + + import textwrap + + import_pkg = f'{self._name}.' + + self._main_with_application_host_and_startup = textwrap.dedent(f"""\ + {"import asyncio" if self._use_async else ''} + + from cpl_core.application import ApplicationBuilder + + from {import_pkg}application import Application + from {import_pkg}startup import Startup + + + {self._async()}def main(): + app_builder = ApplicationBuilder(Application) + app_builder.use_startup(Startup) + {"app: Application = await app_builder.build_async()" if self._use_async else ""} + {"await app.run_async()" if self._use_async else "app_builder.build().run()"} + + + if __name__ == '__main__': + {"asyncio.run(main())" if self._use_async else "main()"} + """) + self._main_with_application_base = textwrap.dedent(f"""\ + {"import asyncio" if self._use_async else ''} + + from cpl_core.application import ApplicationBuilder + + from {import_pkg}application import Application + + + {self._async()}def main(): + app_builder = ApplicationBuilder(Application) + {"app: Application = await app_builder.build_async()" if self._use_async else ""} + {"await app.run_async()" if self._use_async else "app_builder.build().run()"} + + + if __name__ == '__main__': + {"asyncio.run(main())" if self._use_async else "main()"} + """) + + self._main_with_dependency_injection = textwrap.dedent(f"""\ + {"import asyncio" if self._use_async else ''} + + from cpl_core.application import ApplicationBuilder + + from {import_pkg}application import Application + + + {self._async()}def configure_configuration() -> ConfigurationABC: + config = Configuration() + return config + + + {self._async()}def configure_services(config: ConfigurationABC) -> ServiceProviderABC: + services = ServiceCollection(config) + return services.build_service_provider() + + + {self._async()}def main(): + config = {self._async()}configure_configuration() + provider = {self._async()}configure_services(config) + Console.write_line('Hello World') + + + if __name__ == '__main__': + {"asyncio.run(main())" if self._use_async else "main()"} + """) + + def _async(self) -> str: + if self._use_async: + return 'async ' + return '' + + def get_code(self) -> str: + if self._use_application_api and self._use_startup: + return self._main_with_application_host_and_startup + + if self._use_application_api: + return self._main_with_application_base + + if self._use_service_providing: + return self._main_with_dependency_injection + + return self._main_with_application_base diff --git a/src/cpl_cli/.cpl/project_file_code_startup.py b/src/cpl_cli/.cpl/project_file_code_startup.py new file mode 100644 index 00000000..51ce07c1 --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_code_startup.py @@ -0,0 +1,29 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class ProjectFileStartup(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'startup', path, '', use_application_api, use_startup, use_service_providing, use_async) + + def get_code(self) -> str: + import textwrap + + return textwrap.dedent("""\ + from cpl_core.application import StartupABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC + from cpl_core.environment import ApplicationEnvironment + + + class Startup(StartupABC): + + def __init__(self): + StartupABC.__init__(self) + + def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: + return configuration + + def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: + return services.build_service_provider() + """) diff --git a/src/cpl_cli/.cpl/project_file_license.py b/src/cpl_cli/.cpl/project_file_license.py new file mode 100644 index 00000000..49030517 --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_license.py @@ -0,0 +1,11 @@ +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class ProjectFileLicense(FileTemplateABC): + + def __init__(self, path: str): + FileTemplateABC.__init__(self, '', path, '') + self._name = 'LICENSE' + + def get_code(self) -> str: + return self._code diff --git a/src/cpl_cli/.cpl/project_file_readme.py b/src/cpl_cli/.cpl/project_file_readme.py new file mode 100644 index 00000000..ff45ab52 --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_readme.py @@ -0,0 +1,11 @@ +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class ProjectFileReadme(FileTemplateABC): + + def __init__(self, path: str): + FileTemplateABC.__init__(self, '', path, '') + self._name = 'README.md' + + def get_code(self) -> str: + return self._code diff --git a/src/cpl_cli/.cpl/abc_schematic.py b/src/cpl_cli/.cpl/schematic_abc.py similarity index 100% rename from src/cpl_cli/.cpl/abc_schematic.py rename to src/cpl_cli/.cpl/schematic_abc.py diff --git a/src/cpl_cli/.cpl/class_schematic.py b/src/cpl_cli/.cpl/schematic_class.py similarity index 100% rename from src/cpl_cli/.cpl/class_schematic.py rename to src/cpl_cli/.cpl/schematic_class.py diff --git a/src/cpl_cli/.cpl/configmodel_schematic.py b/src/cpl_cli/.cpl/schematic_configmodel.py similarity index 100% rename from src/cpl_cli/.cpl/configmodel_schematic.py rename to src/cpl_cli/.cpl/schematic_configmodel.py diff --git a/src/cpl_cli/.cpl/enum_schematic.py b/src/cpl_cli/.cpl/schematic_enum.py similarity index 100% rename from src/cpl_cli/.cpl/enum_schematic.py rename to src/cpl_cli/.cpl/schematic_enum.py diff --git a/src/cpl_cli/.cpl/init_schematic.py b/src/cpl_cli/.cpl/schematic_init.py similarity index 100% rename from src/cpl_cli/.cpl/init_schematic.py rename to src/cpl_cli/.cpl/schematic_init.py diff --git a/src/cpl_cli/.cpl/pipe_schematic.py b/src/cpl_cli/.cpl/schematic_pipe.py similarity index 100% rename from src/cpl_cli/.cpl/pipe_schematic.py rename to src/cpl_cli/.cpl/schematic_pipe.py diff --git a/src/cpl_cli/.cpl/service_schematic.py b/src/cpl_cli/.cpl/schematic_service.py similarity index 100% rename from src/cpl_cli/.cpl/service_schematic.py rename to src/cpl_cli/.cpl/schematic_service.py diff --git a/src/cpl_cli/.cpl/test_case_schematic.py b/src/cpl_cli/.cpl/schematic_test_case.py similarity index 100% rename from src/cpl_cli/.cpl/test_case_schematic.py rename to src/cpl_cli/.cpl/schematic_test_case.py diff --git a/src/cpl_cli/.cpl/thread_schematic.py b/src/cpl_cli/.cpl/schematic_thread.py similarity index 100% rename from src/cpl_cli/.cpl/thread_schematic.py rename to src/cpl_cli/.cpl/schematic_thread.py diff --git a/src/cpl_cli/.cpl/validator_schematic.py b/src/cpl_cli/.cpl/schematic_validator.py similarity index 100% rename from src/cpl_cli/.cpl/validator_schematic.py rename to src/cpl_cli/.cpl/schematic_validator.py diff --git a/src/cpl_cli/abc/code_file_template_abc.py b/src/cpl_cli/abc/code_file_template_abc.py new file mode 100644 index 00000000..439d8e4f --- /dev/null +++ b/src/cpl_cli/abc/code_file_template_abc.py @@ -0,0 +1,24 @@ +from abc import ABC, abstractmethod + +from cpl_cli.abc.file_template_abc import FileTemplateABC +from cpl_core.utils import String + + +class CodeFileTemplateABC(FileTemplateABC): + + @abstractmethod + def __init__( + self, + name: str, + path: str, + code: str, + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + ): + FileTemplateABC.__init__(self, name, path, code) + self._use_application_api = use_application_api + self._use_startup = use_startup + self._use_service_providing = use_service_providing + self._use_async = use_async diff --git a/src/cpl_cli/abc/file_template_abc.py b/src/cpl_cli/abc/file_template_abc.py index 09e39f23..e86cd436 100644 --- a/src/cpl_cli/abc/file_template_abc.py +++ b/src/cpl_cli/abc/file_template_abc.py @@ -11,6 +11,9 @@ class FileTemplateABC(ABC): self._path = path self._code = code + def __repr__(self): + return f'<{type(self).__name__} {self._path}{self._name}>' + @property def name(self) -> str: return self._name @@ -18,11 +21,14 @@ class FileTemplateABC(ABC): @property def path(self) -> str: return self._path + + @path.setter + def path(self, value: str): + self._path = value @property def value(self) -> str: return self.get_code() @abstractmethod - def get_code(self) -> str: - return self._code + def get_code(self) -> str: pass diff --git a/src/cpl_cli/abc/generate_schematic_abc.py b/src/cpl_cli/abc/generate_schematic_abc.py index 7254e176..5a0b958d 100644 --- a/src/cpl_cli/abc/generate_schematic_abc.py +++ b/src/cpl_cli/abc/generate_schematic_abc.py @@ -15,7 +15,10 @@ class GenerateSchematicABC(FileTemplateABC): if schematic in name.lower(): self._name = f'{String.convert_to_snake_case(name)}.py' - self._class_name = f'{String.first_to_upper(name)}{String.first_to_upper(schematic)}' + self._class_name = name + if name != '': + self._class_name = f'{String.first_to_upper(name)}{String.first_to_upper(schematic)}' + if schematic in name.lower(): self._class_name = f'{String.first_to_upper(name)}' @@ -24,7 +27,8 @@ class GenerateSchematicABC(FileTemplateABC): return self._class_name @abstractmethod - def get_code(self) -> str: pass + def get_code(self) -> str: + pass @classmethod def build_code_str(cls, code: str, **kwargs) -> str: diff --git a/src/cpl_cli/abc/project_type_abc.py b/src/cpl_cli/abc/project_type_abc.py new file mode 100644 index 00000000..7a6d8532 --- /dev/null +++ b/src/cpl_cli/abc/project_type_abc.py @@ -0,0 +1,35 @@ +from abc import ABC, abstractmethod +from typing import Optional + +from cpl_cli.abc.file_template_abc import FileTemplateABC +from cpl_cli.configuration import WorkspaceSettings + + +class ProjectTypeABC(ABC): + + @abstractmethod + def __init__( + self, + base_path: str, + project_name: str, + workspace: Optional[WorkspaceSettings], + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + ): + self._templates: list[FileTemplateABC] = [] + self._base_path = base_path + self._project_name = project_name + self._workspace = workspace + self._use_application_api = use_application_api + self._use_startup = use_startup + self._use_service_providing = use_service_providing + self._use_async = use_async + + @property + def templates(self) -> list[FileTemplateABC]: + return self._templates + + def add_template(self, t: FileTemplateABC): + self._templates.append(t) diff --git a/src/cpl_cli/command/generate_service.py b/src/cpl_cli/command/generate_service.py index 975770d7..32f2f061 100644 --- a/src/cpl_cli/command/generate_service.py +++ b/src/cpl_cli/command/generate_service.py @@ -144,7 +144,7 @@ class GenerateService(CommandABC): for r, d, f in os.walk(os.path.join(path, '.cpl')): for file in f: - if not file.endswith('_schematic.py'): + if not file.startswith('schematic_') and not file.endswith('.py'): continue code = '' diff --git a/src/cpl_cli/command/new_old_service.py b/src/cpl_cli/command/new_old_service.py new file mode 100644 index 00000000..5715f5cd --- /dev/null +++ b/src/cpl_cli/command/new_old_service.py @@ -0,0 +1,356 @@ +import os +import sys +import textwrap +from typing import Optional + +from packaging import version + +import cpl_cli +import cpl_core +from cpl_cli.configuration.venv_helper_service import VenvHelper +from cpl_cli.source_creator.unittest_builder import UnittestBuilder + +from cpl_core.configuration.configuration_abc import ConfigurationABC +from cpl_core.console.foreground_color_enum import ForegroundColorEnum +from cpl_core.console.console import Console +from cpl_core.utils.string import String +from cpl_cli.command_abc import CommandABC +from cpl_cli.configuration.build_settings import BuildSettings +from cpl_cli.configuration.build_settings_name_enum import BuildSettingsNameEnum +from cpl_cli.configuration.project_settings import ProjectSettings +from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum +from cpl_cli.configuration.project_type_enum import ProjectTypeEnum +from cpl_cli.configuration.version_settings_name_enum import VersionSettingsNameEnum +from cpl_cli.configuration.workspace_settings import WorkspaceSettings +from cpl_cli.source_creator.console_builder import ConsoleBuilder +from cpl_cli.source_creator.library_builder import LibraryBuilder + + +class NewService(CommandABC): + + def __init__(self, configuration: ConfigurationABC): + """ + Service for the CLI command new + :param configuration: + """ + CommandABC.__init__(self) + + self._config = configuration + self._env = self._config.environment + + self._workspace: WorkspaceSettings = self._config.get_configuration(WorkspaceSettings) + self._project: ProjectSettings = ProjectSettings() + self._project_dict = {} + self._build: BuildSettings = BuildSettings() + self._build_dict = {} + self._project_json = {} + + self._name: str = '' + self._rel_path: str = '' + self._schematic: ProjectTypeEnum = ProjectTypeEnum.console + self._use_nothing: bool = False + self._use_application_api: bool = False + self._use_startup: bool = False + self._use_service_providing: bool = False + self._use_async: bool = False + self._use_venv: bool = False + self._use_base: bool = False + + @property + def help_message(self) -> str: + return textwrap.dedent("""\ + Generates a workspace and initial project or add a project to workspace. + Usage: cpl new + + Arguments: + type The project type of the initial project + name Name of the workspace or the project + + Types: + console (c|C) + library (l|L) + unittest (ut|UT) + """) + + def _create_project_settings(self): + self._rel_path = os.path.dirname(self._name) + self._project_dict = { + ProjectSettingsNameEnum.name.value: os.path.basename(self._name), + ProjectSettingsNameEnum.version.value: { + VersionSettingsNameEnum.major.value: '0', + VersionSettingsNameEnum.minor.value: '0', + VersionSettingsNameEnum.micro.value: '0' + }, + ProjectSettingsNameEnum.author.value: '', + ProjectSettingsNameEnum.author_email.value: '', + ProjectSettingsNameEnum.description.value: '', + ProjectSettingsNameEnum.long_description.value: '', + ProjectSettingsNameEnum.url.value: '', + ProjectSettingsNameEnum.copyright_date.value: '', + ProjectSettingsNameEnum.copyright_name.value: '', + ProjectSettingsNameEnum.license_name.value: '', + ProjectSettingsNameEnum.license_description.value: '', + ProjectSettingsNameEnum.dependencies.value: [ + f'cpl-core>={version.parse(cpl_core.__version__)}' + ], + ProjectSettingsNameEnum.dev_dependencies.value: [ + f'cpl-cli>={version.parse(cpl_cli.__version__)}' + ], + ProjectSettingsNameEnum.python_version.value: f'>={sys.version.split(" ")[0]}', + ProjectSettingsNameEnum.python_path.value: { + sys.platform: '../../venv/bin/python' if self._use_venv else '' + }, + ProjectSettingsNameEnum.classifiers.value: [] + } + + self._project.from_dict(self._project_dict) + + def _create_build_settings(self): + self._build_dict = { + BuildSettingsNameEnum.project_type.value: self._schematic, + BuildSettingsNameEnum.source_path.value: '', + BuildSettingsNameEnum.output_path.value: '../../dist', + BuildSettingsNameEnum.main.value: f'{String.convert_to_snake_case(self._project.name)}.main', + BuildSettingsNameEnum.entry_point.value: self._project.name, + BuildSettingsNameEnum.include_package_data.value: False, + BuildSettingsNameEnum.included.value: [], + BuildSettingsNameEnum.excluded.value: [ + '*/__pycache__', + '*/logs', + '*/tests' + ], + BuildSettingsNameEnum.package_data.value: {}, + BuildSettingsNameEnum.project_references.value: [] + } + self._build.from_dict(self._build_dict) + + def _create_project_json(self): + """ + Creates cpl.json content + :return: + """ + self._project_json = { + ProjectSettings.__name__: self._project_dict, + BuildSettings.__name__: self._build_dict + } + + def _get_project_path(self) -> Optional[str]: + """ + Gets project path + :return: + """ + if self._workspace is None: + project_path = os.path.join(self._env.working_directory, self._rel_path, self._project.name) + else: + base = '' if self._use_base else 'src' + project_path = os.path.join(self._env.working_directory, base, self._rel_path, String.convert_to_snake_case(self._project.name)) + + if os.path.isdir(project_path) and len(os.listdir(project_path)) > 0: + Console.write_line(project_path) + Console.error('Project path is not empty\n') + return None + + return project_path + + def _get_project_information(self, is_unittest=False): + """ + Gets project information's from user + :return: + """ + if self._use_application_api or self._use_startup or self._use_service_providing or self._use_async or self._use_nothing: + Console.set_foreground_color(ForegroundColorEnum.default) + Console.write_line('Skipping question due to given flags') + return + + if not is_unittest: + self._use_application_api = Console.read('Do you want to use application base? (y/n) ').lower() == 'y' + + if not is_unittest and self._use_application_api: + self._use_startup = Console.read('Do you want to use startup? (y/n) ').lower() == 'y' + + if not is_unittest and not self._use_application_api: + self._use_service_providing = Console.read('Do you want to use service providing? (y/n) ').lower() == 'y' + + if not self._use_async: + self._use_async = Console.read('Do you want to use async? (y/n) ').lower() == 'y' + + Console.set_foreground_color(ForegroundColorEnum.default) + + def _console(self, args: list[str]): + """ + Generates new console project + :param args: + :return: + """ + self._create_project_settings() + self._create_build_settings() + self._create_project_json() + path = self._get_project_path() + if path is None: + return + + self._get_project_information() + project_name = self._project.name + if self._rel_path != '': + project_name = f'{self._rel_path}/{project_name}' + try: + ConsoleBuilder.build( + path, + self._use_application_api, + self._use_startup, + self._use_service_providing, + self._use_async, + project_name, + self._project_json, + self._workspace + ) + except Exception as e: + Console.error('Could not create project', str(e)) + + def _unittest(self, args: list[str]): + """ + Generates new unittest project + :param args: + :return: + """ + self._create_project_settings() + self._create_build_settings() + self._create_project_json() + path = self._get_project_path() + if path is None: + return + + self._get_project_information(is_unittest=True) + project_name = self._project.name + if self._rel_path != '': + project_name = f'{self._rel_path}/{project_name}' + try: + UnittestBuilder.build( + path, + self._use_application_api, + self._use_async, + project_name, + self._project_json, + self._workspace + ) + except Exception as e: + Console.error('Could not create project', str(e)) + + def _library(self, args: list[str]): + """ + Generates new library project + :param args: + :return: + """ + self._create_project_settings() + self._create_build_settings() + self._create_project_json() + path = self._get_project_path() + if path is None: + return + + self._get_project_information() + project_name = self._project.name + if self._rel_path != '': + project_name = f'{self._rel_path}/{project_name}' + try: + LibraryBuilder.build( + path, + self._use_application_api, + self._use_startup, + self._use_service_providing, + self._use_async, + project_name, + self._project_json, + self._workspace + ) + except Exception as e: + Console.error('Could not create project', str(e)) + + def _create_venv(self): + + project = self._project.name + if self._workspace is not None: + project = self._workspace.default_project + + if self._env.working_directory.endswith(project): + project = '' + + if self._workspace is None and self._use_base: + project = f'{self._rel_path}/{project}' + + VenvHelper.init_venv( + False, + self._env, + self._project, + explicit_path=os.path.join(self._env.working_directory, project, self._project.python_executable.replace('../', '')) + ) + + def execute(self, args: list[str]): + """ + Entry point of command + :param args: + :return: + """ + if 'nothing' in args: + self._use_nothing = True + self._use_async = False + self._use_application_api = False + self._use_startup = False + self._use_service_providing = False + if 'async' in args: + args.remove('async') + if 'application-base' in args: + args.remove('application-base') + if 'startup' in args: + args.remove('startup') + if 'service-providing' in args: + args.remove('service-providing') + + if 'async' in args: + self._use_async = True + args.remove('async') + if 'application-base' in args: + self._use_application_api = True + args.remove('application-base') + if 'startup' in args: + self._use_startup = True + args.remove('startup') + if 'service-providing' in args: + self._use_service_providing = True + args.remove('service-providing') + if 'venv' in args: + self._use_venv = True + args.remove('venv') + if 'base' in args: + self._use_base = True + args.remove('base') + + console = self._config.get_configuration(ProjectTypeEnum.console.value) + library = self._config.get_configuration(ProjectTypeEnum.library.value) + unittest = self._config.get_configuration(ProjectTypeEnum.unittest.value) + if console is not None and library is None and unittest is None: + self._name = console + self._schematic = ProjectTypeEnum.console.value + self._console(args) + if self._use_venv: + self._create_venv() + + elif console is None and library is not None and unittest is None: + self._name = library + self._schematic = ProjectTypeEnum.library.value + self._library(args) + if self._use_venv: + self._create_venv() + + elif console is None and library is None and unittest is not None: + self._name = unittest + self._schematic = ProjectTypeEnum.unittest.value + self._unittest(args) + if self._use_venv: + self._create_venv() + + else: + Console.error(f'Project type not found') + Console.write_line(self.help_message) + return diff --git a/src/cpl_cli/command/new_service.py b/src/cpl_cli/command/new_service.py index 5715f5cd..8b399d58 100644 --- a/src/cpl_cli/command/new_service.py +++ b/src/cpl_cli/command/new_service.py @@ -7,7 +7,9 @@ from packaging import version import cpl_cli import cpl_core +from cpl_cli.abc.project_type_abc import ProjectTypeABC from cpl_cli.configuration.venv_helper_service import VenvHelper +from cpl_cli.source_creator.template_builder import TemplateBuilder from cpl_cli.source_creator.unittest_builder import UnittestBuilder from cpl_core.configuration.configuration_abc import ConfigurationABC @@ -47,7 +49,7 @@ class NewService(CommandABC): self._name: str = '' self._rel_path: str = '' - self._schematic: ProjectTypeEnum = ProjectTypeEnum.console + self._project_type: ProjectTypeEnum = ProjectTypeEnum.console self._use_nothing: bool = False self._use_application_api: bool = False self._use_startup: bool = False @@ -107,7 +109,7 @@ class NewService(CommandABC): def _create_build_settings(self): self._build_dict = { - BuildSettingsNameEnum.project_type.value: self._schematic, + BuildSettingsNameEnum.project_type.value: self._project_type, BuildSettingsNameEnum.source_path.value: '', BuildSettingsNameEnum.output_path.value: '../../dist', BuildSettingsNameEnum.main.value: f'{String.convert_to_snake_case(self._project.name)}.main', @@ -286,6 +288,85 @@ class NewService(CommandABC): explicit_path=os.path.join(self._env.working_directory, project, self._project.python_executable.replace('../', '')) ) + @staticmethod + def _read_custom_project_types_from_path(path: str): + if not os.path.exists(os.path.join(path, '.cpl')): + return + + sys.path.insert(0, os.path.join(path, '.cpl')) + for r, d, f in os.walk(os.path.join(path, '.cpl')): + for file in f: + if not file.startswith('project_') or not file.endswith('.py'): + continue + + code = '' + with open(os.path.join(r, file), 'r') as py_file: + code = py_file.read() + py_file.close() + + exec(code) + + def _create_project(self): + self._read_custom_project_types_from_path(self._env.runtime_directory) + self._read_custom_project_types_from_path(self._env.working_directory) + + self._create_project_settings() + self._create_build_settings() + self._create_project_json() + path = self._get_project_path() + if path is None: + return + + self._get_project_information() + project_name = self._project.name + if self._rel_path != '': + project_name = f'{self._rel_path}/{project_name}' + + project_type = None + for p in ProjectTypeABC.__subclasses__(): + if p.__name__.lower() != self._project_type: + continue + + project_type = p + + base = 'src/' + split_project_name = project_name.split('/') + if self._use_base and len(split_project_name) > 0: + base = f'{split_project_name[0]}/' + + project = project_type( + base if self._workspace is not None else 'src/', + project_name, + self._workspace, + self._use_application_api, + self._use_startup, + self._use_service_providing, + self._use_async, + ) + + if self._workspace is None: + TemplateBuilder.create_workspace( + f'{project_name}/cpl-workspace.json', + project_name.split('/')[-1], + { + project_name: project_name + }, + {} + ) + else: + self._workspace.projects[project_name] = f'{base}{String.convert_to_snake_case(project_name.split("/")[-1])}' + TemplateBuilder.create_workspace('cpl-workspace.json', self._workspace.default_project, self._workspace.projects, self._workspace.scripts) + + for template in project.templates: + Console.spinner( + f'Creating {os.path.join(project_name, template.path, template.name)}', + TemplateBuilder.build, + project_name, + template, + text_foreground_color=ForegroundColorEnum.green, + spinner_foreground_color=ForegroundColorEnum.cyan + ) + def execute(self, args: list[str]): """ Entry point of command @@ -331,21 +412,22 @@ class NewService(CommandABC): unittest = self._config.get_configuration(ProjectTypeEnum.unittest.value) if console is not None and library is None and unittest is None: self._name = console - self._schematic = ProjectTypeEnum.console.value - self._console(args) + self._project_type = ProjectTypeEnum.console.value + self._create_project() + # self._console(args) if self._use_venv: self._create_venv() elif console is None and library is not None and unittest is None: self._name = library - self._schematic = ProjectTypeEnum.library.value + self._project_type = ProjectTypeEnum.library.value self._library(args) if self._use_venv: self._create_venv() elif console is None and library is None and unittest is not None: self._name = unittest - self._schematic = ProjectTypeEnum.unittest.value + self._project_type = ProjectTypeEnum.unittest.value self._unittest(args) if self._use_venv: self._create_venv() diff --git a/src/cpl_cli/source_creator/template_builder.py b/src/cpl_cli/source_creator/template_builder.py index 20939a64..c661cd7a 100644 --- a/src/cpl_cli/source_creator/template_builder.py +++ b/src/cpl_cli/source_creator/template_builder.py @@ -1,12 +1,49 @@ +import json import os +from typing import Union from cpl_cli._templates.template_file_abc import TemplateFileABC +from cpl_cli.abc.file_template_abc import FileTemplateABC +from cpl_cli.configuration import WorkspaceSettings, WorkspaceSettingsNameEnum +from cpl_core.console import Console, ForegroundColorEnum class TemplateBuilder: @staticmethod - def build(project_path: str, template: TemplateFileABC): + def _create_file(file_name: str, content: dict): + if not os.path.isabs(file_name): + file_name = os.path.abspath(file_name) + + path = os.path.dirname(file_name) + if not os.path.isdir(path): + os.makedirs(path) + + with open(file_name, 'w') as project_json: + project_json.write(json.dumps(content, indent=2)) + project_json.close() + + @classmethod + def create_workspace(cls, path: str, project_name, projects: dict, scripts: dict): + ws_dict = { + WorkspaceSettings.__name__: { + WorkspaceSettingsNameEnum.default_project.value: project_name, + WorkspaceSettingsNameEnum.projects.value: projects, + WorkspaceSettingsNameEnum.scripts.value: scripts + } + } + + Console.spinner( + f'Creating {path}', + cls._create_file, + path, + ws_dict, + text_foreground_color=ForegroundColorEnum.green, + spinner_foreground_color=ForegroundColorEnum.cyan + ) + + @staticmethod + def build(project_path: str, template: Union[TemplateFileABC, FileTemplateABC]): """ Creates template :param project_path: @@ -14,10 +51,8 @@ class TemplateBuilder: :return: """ file_path = os.path.join(project_path, template.path, template.name) - file_rel_path = os.path.join(project_path, template.path) - - if not os.path.isdir(file_rel_path): - os.makedirs(file_rel_path) + if not os.path.isdir(os.path.dirname(file_path)): + os.makedirs(os.path.dirname(file_path)) with open(file_path, 'w') as file: file.write(template.value) diff --git a/tests/custom/general/.cpl/custom_schematic.py b/tests/custom/general/.cpl/schematic_custom.py similarity index 100% rename from tests/custom/general/.cpl/custom_schematic.py rename to tests/custom/general/.cpl/schematic_custom.py -- 2.49.1 From e24453555741807dc1684762c80198f1f838752e Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Tue, 6 Dec 2022 17:42:55 +0100 Subject: [PATCH 002/124] Improved cpl n custom templating #139 --- src/cpl_cli/.cpl/project_console.py | 23 +- src/cpl_cli/.cpl/project_file.py | 14 + src/cpl_cli/.cpl/project_file_appsettings.py | 22 +- src/cpl_cli/.cpl/project_file_code_main.py | 7 +- .../project_file_code_test_application.py | 59 ++++ .../.cpl/project_file_code_test_case.py | 37 +++ src/cpl_cli/.cpl/project_library.py | 49 ++++ src/cpl_cli/.cpl/project_unittest.py | 42 +++ src/cpl_cli/.cpl/schematic_abc.py | 2 - src/cpl_cli/.cpl/schematic_test_case.py | 3 +- src/cpl_cli/_templates/new/__init__.py | 26 -- .../_templates/new/console/__init__.py | 26 -- .../new/console/appsettings_json.py | 41 --- src/cpl_cli/_templates/new/console/license.py | 23 -- .../_templates/new/console/readme_py.py | 23 -- .../_templates/new/console/source/__init__.py | 26 -- .../new/console/source/name/__init__.py | 26 -- .../new/console/source/name/application.py | 64 ----- .../new/console/source/name/init.py | 27 -- .../new/console/source/name/main.py | 254 ------------------ .../new/console/source/name/startup.py | 43 --- .../new/console/source/tests/__init__.py | 26 -- .../new/console/source/tests/init.py | 27 -- .../_templates/new/library/__init__.py | 26 -- .../new/library/appsettings_json.py | 41 --- src/cpl_cli/_templates/new/library/license.py | 23 -- .../_templates/new/library/readme_py.py | 23 -- .../_templates/new/library/source/__init__.py | 26 -- .../new/library/source/name/__init__.py | 26 -- .../new/library/source/name/application.py | 63 ----- .../new/library/source/name/init.py | 27 -- .../new/library/source/name/main.py | 249 ----------------- .../new/library/source/name/startup.py | 42 --- .../new/library/source/tests/__init__.py | 26 -- .../new/library/source/tests/init.py | 27 -- .../_templates/new/unittest/__init__.py | 26 -- .../_templates/new/unittest/license.py | 23 -- .../_templates/new/unittest/readme_py.py | 23 -- .../new/unittest/source/__init__.py | 26 -- .../new/unittest/source/name/__init__.py | 26 -- .../new/unittest/source/name/application.py | 74 ----- .../new/unittest/source/name/init.py | 27 -- .../new/unittest/source/name/main.py | 62 ----- .../new/unittest/source/name/test_case.py | 52 ---- src/cpl_cli/abc/project_type_abc.py | 2 + src/cpl_cli/command/generate_service.py | 19 +- src/cpl_cli/command/new_service.py | 189 ++++--------- src/cpl_cli/publish/publisher_service.py | 14 +- src/cpl_cli/source_creator/console_builder.py | 182 ------------- src/cpl_cli/source_creator/library_builder.py | 186 ------------- .../source_creator/template_builder.py | 11 +- .../source_creator/unittest_builder.py | 164 ----------- .../unittests_cli/abc/command_test_case.py | 6 +- unittests/unittests_cli/add_test_case.py | 2 +- unittests/unittests_cli/new_test_case.py | 15 +- unittests/unittests_cli/publish_test_case.py | 15 +- 56 files changed, 329 insertions(+), 2304 deletions(-) create mode 100644 src/cpl_cli/.cpl/project_file.py create mode 100644 src/cpl_cli/.cpl/project_file_code_test_application.py create mode 100644 src/cpl_cli/.cpl/project_file_code_test_case.py create mode 100644 src/cpl_cli/.cpl/project_library.py create mode 100644 src/cpl_cli/.cpl/project_unittest.py delete mode 100644 src/cpl_cli/_templates/new/__init__.py delete mode 100644 src/cpl_cli/_templates/new/console/__init__.py delete mode 100644 src/cpl_cli/_templates/new/console/appsettings_json.py delete mode 100644 src/cpl_cli/_templates/new/console/license.py delete mode 100644 src/cpl_cli/_templates/new/console/readme_py.py delete mode 100644 src/cpl_cli/_templates/new/console/source/__init__.py delete mode 100644 src/cpl_cli/_templates/new/console/source/name/__init__.py delete mode 100644 src/cpl_cli/_templates/new/console/source/name/application.py delete mode 100644 src/cpl_cli/_templates/new/console/source/name/init.py delete mode 100644 src/cpl_cli/_templates/new/console/source/name/main.py delete mode 100644 src/cpl_cli/_templates/new/console/source/name/startup.py delete mode 100644 src/cpl_cli/_templates/new/console/source/tests/__init__.py delete mode 100644 src/cpl_cli/_templates/new/console/source/tests/init.py delete mode 100644 src/cpl_cli/_templates/new/library/__init__.py delete mode 100644 src/cpl_cli/_templates/new/library/appsettings_json.py delete mode 100644 src/cpl_cli/_templates/new/library/license.py delete mode 100644 src/cpl_cli/_templates/new/library/readme_py.py delete mode 100644 src/cpl_cli/_templates/new/library/source/__init__.py delete mode 100644 src/cpl_cli/_templates/new/library/source/name/__init__.py delete mode 100644 src/cpl_cli/_templates/new/library/source/name/application.py delete mode 100644 src/cpl_cli/_templates/new/library/source/name/init.py delete mode 100644 src/cpl_cli/_templates/new/library/source/name/main.py delete mode 100644 src/cpl_cli/_templates/new/library/source/name/startup.py delete mode 100644 src/cpl_cli/_templates/new/library/source/tests/__init__.py delete mode 100644 src/cpl_cli/_templates/new/library/source/tests/init.py delete mode 100644 src/cpl_cli/_templates/new/unittest/__init__.py delete mode 100644 src/cpl_cli/_templates/new/unittest/license.py delete mode 100644 src/cpl_cli/_templates/new/unittest/readme_py.py delete mode 100644 src/cpl_cli/_templates/new/unittest/source/__init__.py delete mode 100644 src/cpl_cli/_templates/new/unittest/source/name/__init__.py delete mode 100644 src/cpl_cli/_templates/new/unittest/source/name/application.py delete mode 100644 src/cpl_cli/_templates/new/unittest/source/name/init.py delete mode 100644 src/cpl_cli/_templates/new/unittest/source/name/main.py delete mode 100644 src/cpl_cli/_templates/new/unittest/source/name/test_case.py delete mode 100644 src/cpl_cli/source_creator/console_builder.py delete mode 100644 src/cpl_cli/source_creator/library_builder.py delete mode 100644 src/cpl_cli/source_creator/unittest_builder.py diff --git a/src/cpl_cli/.cpl/project_console.py b/src/cpl_cli/.cpl/project_console.py index 7028172d..cdf2ec62 100644 --- a/src/cpl_cli/.cpl/project_console.py +++ b/src/cpl_cli/.cpl/project_console.py @@ -16,22 +16,29 @@ class Console(ProjectTypeABC): use_startup: bool, use_service_providing: bool, use_async: bool, + project_file_data: dict, ): - from project_file_license import ProjectFileLicense - from project_file_readme import ProjectFileReadme - from schematic_init import Init + from project_file import ProjectFile + from project_file_appsettings import ProjectFileAppsettings from project_file_code_application import ProjectFileApplication from project_file_code_main import ProjectFileMain from project_file_code_startup import ProjectFileStartup + from project_file_readme import ProjectFileReadme + from project_file_license import ProjectFileLicense + from schematic_init import Init - ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async) + ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data) project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/' - self.add_template(ProjectFileLicense('')) - self.add_template(ProjectFileReadme('')) - self.add_template(Init('', 'init', f'{base_path}tests/')) + self.add_template(ProjectFile(project_name.split('/')[-1], project_path, project_file_data)) + if workspace is None: + self.add_template(ProjectFileLicense('')) + self.add_template(ProjectFileReadme('')) + self.add_template(Init('', 'init', f'{base_path}tests/')) + self.add_template(Init('', 'init', project_path)) + self.add_template(ProjectFileAppsettings(project_path)) if use_application_api: self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) @@ -39,4 +46,4 @@ class Console(ProjectTypeABC): if use_startup: self.add_template(ProjectFileStartup(project_path, use_application_api, use_startup, use_service_providing, use_async)) - self.add_template(ProjectFileMain(project_path, use_application_api, use_startup, use_service_providing, use_async)) + self.add_template(ProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) diff --git a/src/cpl_cli/.cpl/project_file.py b/src/cpl_cli/.cpl/project_file.py new file mode 100644 index 00000000..ecee56ce --- /dev/null +++ b/src/cpl_cli/.cpl/project_file.py @@ -0,0 +1,14 @@ +import json + +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class ProjectFile(FileTemplateABC): + + def __init__(self, name: str, path: str, code: dict): + FileTemplateABC.__init__(self, '', path, '{}') + self._name = f'{name}.json' + self._code = code + + def get_code(self) -> str: + return json.dumps(self._code, indent=2) diff --git a/src/cpl_cli/.cpl/project_file_appsettings.py b/src/cpl_cli/.cpl/project_file_appsettings.py index e7b0e3ec..c6a62b88 100644 --- a/src/cpl_cli/.cpl/project_file_appsettings.py +++ b/src/cpl_cli/.cpl/project_file_appsettings.py @@ -1,29 +1,11 @@ -import textwrap - from cpl_cli.abc.file_template_abc import FileTemplateABC class ProjectFileAppsettings(FileTemplateABC): def __init__(self, path: str): - code = textwrap.dedent("""\ - { - "TimeFormatSettings": { - "DateFormat": "%Y-%m-%d", - "TimeFormat": "%H:%M:%S", - "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", - "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" - }, - - "LoggingSettings": { - "Path": "logs/", - "Filename": "log_$start_time.log", - "ConsoleLogLevel": "ERROR", - "FileLogLevel": "WARN" - } - } - """) - FileTemplateABC.__init__(self, 'appsettings.json', path, code) + FileTemplateABC.__init__(self, '', path, '{}') + self._name = 'appsettings.json' def get_code(self) -> str: return self._code diff --git a/src/cpl_cli/.cpl/project_file_code_main.py b/src/cpl_cli/.cpl/project_file_code_main.py index 43b5988f..614eb1d2 100644 --- a/src/cpl_cli/.cpl/project_file_code_main.py +++ b/src/cpl_cli/.cpl/project_file_code_main.py @@ -1,14 +1,15 @@ from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC +from cpl_core.utils import String class ProjectFileMain(CodeFileTemplateABC): - def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + def __init__(self, name: str, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): CodeFileTemplateABC.__init__(self, 'main', path, '', use_application_api, use_startup, use_service_providing, use_async) import textwrap - import_pkg = f'{self._name}.' + import_pkg = f'{String.convert_to_snake_case(name)}.' self._main_with_application_host_and_startup = textwrap.dedent(f"""\ {"import asyncio" if self._use_async else ''} @@ -51,8 +52,6 @@ class ProjectFileMain(CodeFileTemplateABC): {"import asyncio" if self._use_async else ''} from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application {self._async()}def configure_configuration() -> ConfigurationABC: diff --git a/src/cpl_cli/.cpl/project_file_code_test_application.py b/src/cpl_cli/.cpl/project_file_code_test_application.py new file mode 100644 index 00000000..06221cd6 --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_code_test_application.py @@ -0,0 +1,59 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class ProjectFileTestApplication(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'application', path, '', use_application_api, use_startup, use_service_providing, use_async) + + def get_code(self) -> str: + import textwrap + + if self._use_async: + return textwrap.dedent("""\ + import unittest + from unittest import TestSuite + + from cpl_core.application import ApplicationABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC + from unittests.test_case import TestCase + + + class Application(ApplicationABC): + + def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): + ApplicationABC.__init__(self, config, services) + self._suite: TestSuite = unittest.TestSuite() + + async def configure(self): + self._suite.addTest(TestCase('test_equal')) + + async def main(self): + runner = unittest.TextTestRunner() + runner.run(self._suite) + """) + + return textwrap.dedent("""\ + import unittest + from unittest import TestSuite + + from cpl_core.application import ApplicationABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC + from unittests.test_case import TestCase + + + class Application(ApplicationABC): + + def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): + ApplicationABC.__init__(self, config, services) + self._suite: TestSuite = unittest.TestSuite() + + def configure(self): + self._suite.addTest(TestCase('test_equal')) + + def main(self): + runner = unittest.TextTestRunner() + runner.run(self._suite) + """) diff --git a/src/cpl_cli/.cpl/project_file_code_test_case.py b/src/cpl_cli/.cpl/project_file_code_test_case.py new file mode 100644 index 00000000..731e9b93 --- /dev/null +++ b/src/cpl_cli/.cpl/project_file_code_test_case.py @@ -0,0 +1,37 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class ProjectFileTestCase(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'test_case', path, '', use_application_api, use_startup, use_service_providing, use_async) + + def get_code(self) -> str: + import textwrap + + if self._use_async: + return textwrap.dedent("""\ + import unittest + + + class TestCase(unittest.TestCase): + + async def setUp(self) -> None: + pass + + async def test_equal(self): + self.assertEqual(True, True) + """) + + return textwrap.dedent("""\ + import unittest + + + class TestCase(unittest.TestCase): + + def setUp(self) -> None: + pass + + def test_equal(self): + self.assertEqual(True, True) + """) diff --git a/src/cpl_cli/.cpl/project_library.py b/src/cpl_cli/.cpl/project_library.py new file mode 100644 index 00000000..91579b10 --- /dev/null +++ b/src/cpl_cli/.cpl/project_library.py @@ -0,0 +1,49 @@ +import os + +from cpl_cli.abc.project_type_abc import ProjectTypeABC +from cpl_cli.configuration import WorkspaceSettings +from cpl_core.utils import String + + +class Library(ProjectTypeABC): + + def __init__( + self, + base_path: str, + project_name: str, + workspace: WorkspaceSettings, + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + project_file_data: dict, + ): + from project_file import ProjectFile + from project_file_appsettings import ProjectFileAppsettings + from project_file_code_application import ProjectFileApplication + from project_file_code_main import ProjectFileMain + from project_file_code_startup import ProjectFileStartup + from project_file_readme import ProjectFileReadme + from project_file_license import ProjectFileLicense + from schematic_init import Init + + ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data) + + project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/' + + self.add_template(ProjectFile(project_name.split('/')[-1], project_path, project_file_data)) + if workspace is None: + self.add_template(ProjectFileLicense('')) + self.add_template(ProjectFileReadme('')) + self.add_template(Init('', 'init', f'{base_path}tests/')) + + self.add_template(Init('', 'init', project_path)) + self.add_template(ProjectFileAppsettings(project_path)) + + if use_application_api: + self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + if use_startup: + self.add_template(ProjectFileStartup(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + self.add_template(ProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) diff --git a/src/cpl_cli/.cpl/project_unittest.py b/src/cpl_cli/.cpl/project_unittest.py new file mode 100644 index 00000000..7b4b4d2b --- /dev/null +++ b/src/cpl_cli/.cpl/project_unittest.py @@ -0,0 +1,42 @@ +import os + +from cpl_cli.abc.project_type_abc import ProjectTypeABC +from cpl_cli.configuration import WorkspaceSettings +from cpl_core.utils import String + + +class Unittest(ProjectTypeABC): + + def __init__( + self, + base_path: str, + project_name: str, + workspace: WorkspaceSettings, + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + project_file_data: dict, + ): + from project_file import ProjectFile + from project_file_code_application import ProjectFileApplication + from project_file_code_main import ProjectFileMain + from project_file_code_test_case import ProjectFileTestCase + from project_file_readme import ProjectFileReadme + from project_file_license import ProjectFileLicense + from schematic_init import Init + + ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data) + + project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/' + + self.add_template(ProjectFile(project_name.split('/')[-1], project_path, project_file_data)) + if workspace is None: + self.add_template(ProjectFileLicense('')) + self.add_template(ProjectFileReadme('')) + self.add_template(Init('', 'init', f'{base_path}tests/')) + + self.add_template(Init('', 'init', project_path)) + self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) + self.add_template(ProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) + self.add_template(ProjectFileTestCase(project_path, use_application_api, use_startup, use_service_providing, use_async)) diff --git a/src/cpl_cli/.cpl/schematic_abc.py b/src/cpl_cli/.cpl/schematic_abc.py index 917a60a6..aaa74cc3 100644 --- a/src/cpl_cli/.cpl/schematic_abc.py +++ b/src/cpl_cli/.cpl/schematic_abc.py @@ -1,5 +1,3 @@ -import textwrap - from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC diff --git a/src/cpl_cli/.cpl/schematic_test_case.py b/src/cpl_cli/.cpl/schematic_test_case.py index 63ffe56c..d0f2b4bd 100644 --- a/src/cpl_cli/.cpl/schematic_test_case.py +++ b/src/cpl_cli/.cpl/schematic_test_case.py @@ -21,8 +21,7 @@ class TestCase(GenerateSchematicABC): def test_equal(self): pass """ - x = self.build_code_str(code, Name=self._class_name) - return x + return self.build_code_str(code, Name=self._class_name) @classmethod def register(cls): diff --git a/src/cpl_cli/_templates/new/__init__.py b/src/cpl_cli/_templates/new/__init__.py deleted file mode 100644 index 6ab3639e..00000000 --- a/src/cpl_cli/_templates/new/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/console/__init__.py b/src/cpl_cli/_templates/new/console/__init__.py deleted file mode 100644 index f9bacfd9..00000000 --- a/src/cpl_cli/_templates/new/console/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.console' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/console/appsettings_json.py b/src/cpl_cli/_templates/new/console/appsettings_json.py deleted file mode 100644 index 5bd03eaa..00000000 --- a/src/cpl_cli/_templates/new/console/appsettings_json.py +++ /dev/null @@ -1,41 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class AppsettingsTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'appsettings.json' - self._path = '' - self._value = textwrap.dedent("""\ - { - "TimeFormatSettings": { - "DateFormat": "%Y-%m-%d", - "TimeFormat": "%H:%M:%S", - "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", - "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" - }, - - "LoggingSettings": { - "Path": "logs/", - "Filename": "log_$start_time.log", - "ConsoleLogLevel": "ERROR", - "FileLogLevel": "WARN" - } - } - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/console/license.py b/src/cpl_cli/_templates/new/console/license.py deleted file mode 100644 index fb586904..00000000 --- a/src/cpl_cli/_templates/new/console/license.py +++ /dev/null @@ -1,23 +0,0 @@ -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class LicenseTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'LICENSE' - self._path = '' - self._value = """""" - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/console/readme_py.py b/src/cpl_cli/_templates/new/console/readme_py.py deleted file mode 100644 index a40286a8..00000000 --- a/src/cpl_cli/_templates/new/console/readme_py.py +++ /dev/null @@ -1,23 +0,0 @@ -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class ReadmeTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'README.md' - self._path = '' - self._value = """""" - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/console/source/__init__.py b/src/cpl_cli/_templates/new/console/source/__init__.py deleted file mode 100644 index 406a219a..00000000 --- a/src/cpl_cli/_templates/new/console/source/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.console.source' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/console/source/name/__init__.py b/src/cpl_cli/_templates/new/console/source/name/__init__.py deleted file mode 100644 index 162a07c3..00000000 --- a/src/cpl_cli/_templates/new/console/source/name/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.console.source.name' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/console/source/name/application.py b/src/cpl_cli/_templates/new/console/source/name/application.py deleted file mode 100644 index 56d9990f..00000000 --- a/src/cpl_cli/_templates/new/console/source/name/application.py +++ /dev/null @@ -1,64 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class ApplicationTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'application.py' - self._path = path - self._use_async = use_async - - if self._use_async: - self._value = textwrap.dedent("""\ - from cpl_core.application import ApplicationABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceProviderABC - - - class Application(ApplicationABC): - - def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): - ApplicationABC.__init__(self, config, services) - - async def configure(self): - pass - - async def main(self): - Console.write_line('Hello World') - """) - else: - self._value = textwrap.dedent("""\ - from cpl_core.application import ApplicationABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceProviderABC - - - class Application(ApplicationABC): - - def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): - ApplicationABC.__init__(self, config, services) - - def configure(self): - pass - - def main(self): - Console.write_line('Hello World') - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/console/source/name/init.py b/src/cpl_cli/_templates/new/console/source/name/init.py deleted file mode 100644 index b3cbdecb..00000000 --- a/src/cpl_cli/_templates/new/console/source/name/init.py +++ /dev/null @@ -1,27 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class MainInitTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str): - TemplateFileABC.__init__(self) - - self._name = '__init__.py' - self._path = path - self._value = textwrap.dedent("""\ - # imports: - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/console/source/name/main.py b/src/cpl_cli/_templates/new/console/source/name/main.py deleted file mode 100644 index 8549c490..00000000 --- a/src/cpl_cli/_templates/new/console/source/name/main.py +++ /dev/null @@ -1,254 +0,0 @@ -import textwrap - -from cpl_core.utils.string import String -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class MainWithApplicationHostAndStartupTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - name = String.convert_to_snake_case(name) - self._name = 'main.py' - self._path = path - - import_pkg = f'{name}.' - - if use_async: - self._value = textwrap.dedent(f"""\ - import asyncio - - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - from {import_pkg}startup import Startup - - - async def main(): - app_builder = ApplicationBuilder(Application) - app_builder.use_startup(Startup) - app: Application = await app_builder.build_async() - await app.run_async() - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent(f"""\ - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - from {import_pkg}startup import Startup - - - def main(): - app_builder = ApplicationBuilder(Application) - app_builder.use_startup(Startup) - app_builder.build().run() - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value - - -class MainWithApplicationBaseTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - name = String.convert_to_snake_case(name) - self._name = 'main.py' - self._path = path - - import_pkg = f'{name}.' - - if use_async: - self._value = textwrap.dedent(f"""\ - import asyncio - - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - - - async def main(): - app_builder = ApplicationBuilder(Application) - app: Application = await app_builder.build_async() - await app.run_async() - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent(f"""\ - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - - - def main(): - app_builder = ApplicationBuilder(Application) - app_builder.build().run() - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value - - -class MainWithoutApplicationBaseTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - name = String.convert_to_snake_case(name) - self._name = 'main.py' - self._path = path - - import_pkg = f'{name}.' - - if use_async: - self._value = textwrap.dedent("""\ - import asyncio - - from cpl_core.console import Console - - - async def main(): - Console.write_line('Hello World') - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent("""\ - from cpl_core.console import Console - - - def main(): - Console.write_line('Hello World') - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value - - -class MainWithDependencyInjection(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - name = String.convert_to_snake_case(name) - self._name = 'main.py' - self._path = path - - import_pkg = f'{name}.' - - if use_async: - self._value = textwrap.dedent("""\ - import asyncio - - from cpl_core.configuration import Configuration, ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceCollection, ServiceProviderABC - - - async def configure_configuration() -> ConfigurationABC: - config = Configuration() - return config - - - async def configure_services(config: ConfigurationABC) -> ServiceProviderABC: - services = ServiceCollection(config) - return services.build_service_provider() - - - async def main(): - config = await configure_configuration() - provider = await configure_services(config) - Console.write_line('Hello World') - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent("""\ - from cpl_core.configuration import Configuration, ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceCollection, ServiceProviderABC - - - def configure_configuration() -> ConfigurationABC: - config = Configuration() - return config - - - def configure_services(config: ConfigurationABC) -> ServiceProviderABC: - services = ServiceCollection(config) - return services.build_service_provider() - - - def main(): - config = configure_configuration() - provider = configure_services(config) - Console.write_line('Hello World') - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/console/source/name/startup.py b/src/cpl_cli/_templates/new/console/source/name/startup.py deleted file mode 100644 index 20e14842..00000000 --- a/src/cpl_cli/_templates/new/console/source/name/startup.py +++ /dev/null @@ -1,43 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class StartupTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str): - TemplateFileABC.__init__(self) - - self._name = 'startup.py' - self._path = path - - self._value = textwrap.dedent("""\ - from cpl_core.application import StartupABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC - from cpl_core.environment import ApplicationEnvironment - - - class Startup(StartupABC): - - def __init__(self): - StartupABC.__init__(self) - - def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: - return configuration - - def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: - return services.build_service_provider() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/console/source/tests/__init__.py b/src/cpl_cli/_templates/new/console/source/tests/__init__.py deleted file mode 100644 index 5c376a46..00000000 --- a/src/cpl_cli/_templates/new/console/source/tests/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.console.source.tests' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/console/source/tests/init.py b/src/cpl_cli/_templates/new/console/source/tests/init.py deleted file mode 100644 index 338ad115..00000000 --- a/src/cpl_cli/_templates/new/console/source/tests/init.py +++ /dev/null @@ -1,27 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class TestsInitTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = '__init__.py' - self._path = 'src/tests/' - self._value = textwrap.dedent("""\ - # imports: - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/__init__.py b/src/cpl_cli/_templates/new/library/__init__.py deleted file mode 100644 index e1cc62fe..00000000 --- a/src/cpl_cli/_templates/new/library/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.library' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/library/appsettings_json.py b/src/cpl_cli/_templates/new/library/appsettings_json.py deleted file mode 100644 index 5bd03eaa..00000000 --- a/src/cpl_cli/_templates/new/library/appsettings_json.py +++ /dev/null @@ -1,41 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class AppsettingsTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'appsettings.json' - self._path = '' - self._value = textwrap.dedent("""\ - { - "TimeFormatSettings": { - "DateFormat": "%Y-%m-%d", - "TimeFormat": "%H:%M:%S", - "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", - "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" - }, - - "LoggingSettings": { - "Path": "logs/", - "Filename": "log_$start_time.log", - "ConsoleLogLevel": "ERROR", - "FileLogLevel": "WARN" - } - } - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/license.py b/src/cpl_cli/_templates/new/library/license.py deleted file mode 100644 index fb586904..00000000 --- a/src/cpl_cli/_templates/new/library/license.py +++ /dev/null @@ -1,23 +0,0 @@ -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class LicenseTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'LICENSE' - self._path = '' - self._value = """""" - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/readme_py.py b/src/cpl_cli/_templates/new/library/readme_py.py deleted file mode 100644 index a40286a8..00000000 --- a/src/cpl_cli/_templates/new/library/readme_py.py +++ /dev/null @@ -1,23 +0,0 @@ -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class ReadmeTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'README.md' - self._path = '' - self._value = """""" - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/source/__init__.py b/src/cpl_cli/_templates/new/library/source/__init__.py deleted file mode 100644 index e13d13b4..00000000 --- a/src/cpl_cli/_templates/new/library/source/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.library.source' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/library/source/name/__init__.py b/src/cpl_cli/_templates/new/library/source/name/__init__.py deleted file mode 100644 index a688ce5f..00000000 --- a/src/cpl_cli/_templates/new/library/source/name/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.library.source.name' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/library/source/name/application.py b/src/cpl_cli/_templates/new/library/source/name/application.py deleted file mode 100644 index 5ca0b146..00000000 --- a/src/cpl_cli/_templates/new/library/source/name/application.py +++ /dev/null @@ -1,63 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class ApplicationTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'application.py' - self._path = path - - if use_async: - self._value = textwrap.dedent("""\ - from cpl_core.application import ApplicationABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceProviderABC - - - class Application(ApplicationABC): - - def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): - ApplicationABC.__init__(self, config, services) - - async def configure(self): - pass - - async def main(self): - Console.write_line('Hello World') - """) - else: - self._value = textwrap.dedent("""\ - from cpl_core.application import ApplicationABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceProviderABC - - - class Application(ApplicationABC): - - def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): - ApplicationABC.__init__(self, config, services) - - def configure(self): - pass - - def main(self): - Console.write_line('Hello World') - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/source/name/init.py b/src/cpl_cli/_templates/new/library/source/name/init.py deleted file mode 100644 index a3b0b8ea..00000000 --- a/src/cpl_cli/_templates/new/library/source/name/init.py +++ /dev/null @@ -1,27 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class NameInitTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str): - TemplateFileABC.__init__(self) - - self._name = '__init__.py' - self._path = path - self._value = textwrap.dedent("""\ - # imports: - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/source/name/main.py b/src/cpl_cli/_templates/new/library/source/name/main.py deleted file mode 100644 index c40fef1c..00000000 --- a/src/cpl_cli/_templates/new/library/source/name/main.py +++ /dev/null @@ -1,249 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class MainWithApplicationHostAndStartupTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'main.py' - self._path = path - - import_pkg = f'{name}.' - if name == '': - import_pkg = '' - - if use_async: - self._value = textwrap.dedent(f"""\ - import asyncio - - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - from {import_pkg}startup import Startup - - - async def main(): - app_builder = ApplicationBuilder(Application) - app_builder.use_startup(Startup) - app: Application = await app_builder.build_async() - await app.run_async() - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent(f"""\ - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - from {import_pkg}startup import Startup - - - def main(): - app_builder = ApplicationBuilder(Application) - app_builder.use_startup(Startup) - app_builder.build().run() - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value - - -class MainWithApplicationBaseTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'main.py' - self._path = path - - import_pkg = f'{name}.' - if name == '': - import_pkg = '' - - if use_async: - self._value = textwrap.dedent(f"""\ - import asyncio - - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - - - async def main(): - app_builder = ApplicationBuilder(Application) - app: Application = await app_builder.build_async() - await app.run_async() - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent(f"""\ - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - - - def main(): - app_builder = ApplicationBuilder(Application) - app_builder.build().run() - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value - - -class MainWithoutApplicationBaseTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'main.py' - self._path = path - - if use_async: - self._value = textwrap.dedent("""\ - import asyncio - - from cpl_core.console import Console - - - async def main(): - Console.write_line('Hello World') - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent("""\ - from cpl_core.console import Console - - - def main(): - Console.write_line('Hello World') - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value - - -class MainWithDependencyInjection(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'main.py' - self._path = path - - if use_async: - self._value = textwrap.dedent("""\ - import asyncio - - from cpl_core.configuration import Configuration, ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceCollection, ServiceProviderABC - - - async def configure_configuration() -> ConfigurationABC: - config = Configuration() - return config - - - async def configure_services(config: ConfigurationABC) -> ServiceProviderABC: - services = ServiceCollection(config) - return services.build_service_provider() - - - async def main(): - config = await configure_configuration() - provider = await configure_services(config) - Console.write_line('Hello World') - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent("""\ - from cpl_core.configuration import Configuration, ConfigurationABC - from cpl_core.console import Console - from cpl_core.dependency_injection import ServiceCollection, ServiceProviderABC - - - def configure_configuration() -> ConfigurationABC: - config = Configuration() - return config - - - def configure_services(config: ConfigurationABC) -> ServiceProviderABC: - services = ServiceCollection(config) - return services.build_service_provider() - - - def main(): - config = configure_configuration() - provider = configure_services(config) - Console.write_line('Hello World') - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/source/name/startup.py b/src/cpl_cli/_templates/new/library/source/name/startup.py deleted file mode 100644 index 959bc0ce..00000000 --- a/src/cpl_cli/_templates/new/library/source/name/startup.py +++ /dev/null @@ -1,42 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class StartupTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str): - TemplateFileABC.__init__(self) - - self._name = 'startup.py' - self._path = path - self._value = textwrap.dedent("""\ - from cpl_core.application import StartupABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC - from cpl_core.environment import ApplicationEnvironment - - - class Startup(StartupABC): - - def __init__(self): - StartupABC.__init__(self) - - def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: - return configuration - - def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: - return services.build_service_provider() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/library/source/tests/__init__.py b/src/cpl_cli/_templates/new/library/source/tests/__init__.py deleted file mode 100644 index c030a958..00000000 --- a/src/cpl_cli/_templates/new/library/source/tests/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.library.source.tests' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/library/source/tests/init.py b/src/cpl_cli/_templates/new/library/source/tests/init.py deleted file mode 100644 index 338ad115..00000000 --- a/src/cpl_cli/_templates/new/library/source/tests/init.py +++ /dev/null @@ -1,27 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class TestsInitTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = '__init__.py' - self._path = 'src/tests/' - self._value = textwrap.dedent("""\ - # imports: - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/unittest/__init__.py b/src/cpl_cli/_templates/new/unittest/__init__.py deleted file mode 100644 index 869714c3..00000000 --- a/src/cpl_cli/_templates/new/unittest/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.unittest' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/unittest/license.py b/src/cpl_cli/_templates/new/unittest/license.py deleted file mode 100644 index fb586904..00000000 --- a/src/cpl_cli/_templates/new/unittest/license.py +++ /dev/null @@ -1,23 +0,0 @@ -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class LicenseTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'LICENSE' - self._path = '' - self._value = """""" - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/unittest/readme_py.py b/src/cpl_cli/_templates/new/unittest/readme_py.py deleted file mode 100644 index a40286a8..00000000 --- a/src/cpl_cli/_templates/new/unittest/readme_py.py +++ /dev/null @@ -1,23 +0,0 @@ -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class ReadmeTemplate(TemplateFileABC): - - def __init__(self): - TemplateFileABC.__init__(self) - - self._name = 'README.md' - self._path = '' - self._value = """""" - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/unittest/source/__init__.py b/src/cpl_cli/_templates/new/unittest/source/__init__.py deleted file mode 100644 index 00b558a0..00000000 --- a/src/cpl_cli/_templates/new/unittest/source/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.unittest.source' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/unittest/source/name/__init__.py b/src/cpl_cli/_templates/new/unittest/source/name/__init__.py deleted file mode 100644 index 38c212d0..00000000 --- a/src/cpl_cli/_templates/new/unittest/source/name/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -""" -cpl-cli sh-edraft Common Python library CLI -~~~~~~~~~~~~~~~~~~~ - -sh-edraft Common Python library Command Line Interface - -:copyright: (c) 2020 - 2022 sh-edraft.de -:license: MIT, see LICENSE for more details. - -""" - -__title__ = 'cpl_cli._templates.new.unittest.source.name' -__author__ = 'Sven Heidemann' -__license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' - -from collections import namedtuple - - -# imports: - -VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/_templates/new/unittest/source/name/application.py b/src/cpl_cli/_templates/new/unittest/source/name/application.py deleted file mode 100644 index 6c40e867..00000000 --- a/src/cpl_cli/_templates/new/unittest/source/name/application.py +++ /dev/null @@ -1,74 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class ApplicationTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'application.py' - self._path = path - self._use_async = use_async - - if self._use_async: - self._value = textwrap.dedent("""\ - import unittest - from unittest import TestSuite - - from cpl_core.application import ApplicationABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.dependency_injection import ServiceProviderABC - from unittests.test_case import TestCase - - - class Application(ApplicationABC): - - def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): - ApplicationABC.__init__(self, config, services) - self._suite: TestSuite = unittest.TestSuite() - - async def configure(self): - self._suite.addTest(TestCase('test_equal')) - - async def main(self): - runner = unittest.TextTestRunner() - runner.run(self._suite) - """) - else: - self._value = textwrap.dedent("""\ - import unittest - from unittest import TestSuite - - from cpl_core.application import ApplicationABC - from cpl_core.configuration import ConfigurationABC - from cpl_core.dependency_injection import ServiceProviderABC - from unittests.test_case import TestCase - - - class Application(ApplicationABC): - - def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): - ApplicationABC.__init__(self, config, services) - self._suite: TestSuite = unittest.TestSuite() - - def configure(self): - self._suite.addTest(TestCase('test_equal')) - - def main(self): - runner = unittest.TextTestRunner() - runner.run(self._suite) - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/unittest/source/name/init.py b/src/cpl_cli/_templates/new/unittest/source/name/init.py deleted file mode 100644 index b3cbdecb..00000000 --- a/src/cpl_cli/_templates/new/unittest/source/name/init.py +++ /dev/null @@ -1,27 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class MainInitTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str): - TemplateFileABC.__init__(self) - - self._name = '__init__.py' - self._path = path - self._value = textwrap.dedent("""\ - # imports: - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/unittest/source/name/main.py b/src/cpl_cli/_templates/new/unittest/source/name/main.py deleted file mode 100644 index ba8e3b41..00000000 --- a/src/cpl_cli/_templates/new/unittest/source/name/main.py +++ /dev/null @@ -1,62 +0,0 @@ -import textwrap - -from cpl_core.utils.string import String -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class MainWithApplicationBaseTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - name = String.convert_to_snake_case(name) - self._name = 'main.py' - self._path = path - - import_pkg = f'{name}.' - - if use_async: - self._value = textwrap.dedent(f"""\ - import asyncio - - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - - - async def main(): - app_builder = ApplicationBuilder(Application) - app: Application = await app_builder.build_async() - await app.run_async() - - - if __name__ == '__main__': - asyncio.run(main()) - """) - else: - self._value = textwrap.dedent(f"""\ - from cpl_core.application import ApplicationBuilder - - from {import_pkg}application import Application - - - def main(): - app_builder = ApplicationBuilder(Application) - app_builder.build().run() - - - if __name__ == '__main__': - main() - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/_templates/new/unittest/source/name/test_case.py b/src/cpl_cli/_templates/new/unittest/source/name/test_case.py deleted file mode 100644 index 096518bd..00000000 --- a/src/cpl_cli/_templates/new/unittest/source/name/test_case.py +++ /dev/null @@ -1,52 +0,0 @@ -import textwrap - -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class TestCaseTemplate(TemplateFileABC): - - def __init__(self, name: str, path: str, use_async: bool): - TemplateFileABC.__init__(self) - - self._name = 'test_case.py' - self._path = path - self._use_async = use_async - - if self._use_async: - self._value = textwrap.dedent("""\ - import unittest - - - class TestCase(unittest.TestCase): - - async def setUp(self) -> None: - pass - - async def test_equal(self): - self.assertEqual(True, True) - """) - else: - self._value = textwrap.dedent("""\ - import unittest - - - class TestCase(unittest.TestCase): - - def setUp(self) -> None: - pass - - def test_equal(self): - self.assertEqual(True, True) - """) - - @property - def name(self) -> str: - return self._name - - @property - def path(self) -> str: - return self._path - - @property - def value(self) -> str: - return self._value diff --git a/src/cpl_cli/abc/project_type_abc.py b/src/cpl_cli/abc/project_type_abc.py index 7a6d8532..68016e49 100644 --- a/src/cpl_cli/abc/project_type_abc.py +++ b/src/cpl_cli/abc/project_type_abc.py @@ -17,6 +17,7 @@ class ProjectTypeABC(ABC): use_startup: bool, use_service_providing: bool, use_async: bool, + project_file_data: dict, ): self._templates: list[FileTemplateABC] = [] self._base_path = base_path @@ -26,6 +27,7 @@ class ProjectTypeABC(ABC): self._use_startup = use_startup self._use_service_providing = use_service_providing self._use_async = use_async + self._project_file_data = project_file_data @property def templates(self) -> list[FileTemplateABC]: diff --git a/src/cpl_cli/command/generate_service.py b/src/cpl_cli/command/generate_service.py index 32f2f061..b1ee7967 100644 --- a/src/cpl_cli/command/generate_service.py +++ b/src/cpl_cli/command/generate_service.py @@ -1,6 +1,7 @@ import os import sys import textwrap +import traceback from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC from cpl_cli.command_abc import CommandABC @@ -34,6 +35,10 @@ class GenerateService(CommandABC): self._read_custom_schematics_from_path(self._env.runtime_directory) self._read_custom_schematics_from_path(self._env.working_directory) + + if len(GenerateSchematicABC.__subclasses__()) == 0: + Console.error(f'No schematics found in template directory: .cpl') + sys.exit() for schematic in GenerateSchematicABC.__subclasses__(): schematic.register() @@ -142,17 +147,17 @@ class GenerateService(CommandABC): if not os.path.exists(os.path.join(path, '.cpl')): return + sys.path.insert(0, os.path.join(path, '.cpl')) for r, d, f in os.walk(os.path.join(path, '.cpl')): for file in f: - if not file.startswith('schematic_') and not file.endswith('.py'): + if not file.startswith('schematic_') or not file.endswith('.py'): continue - code = '' - with open(os.path.join(r, file), 'r') as py_file: - code = py_file.read() - py_file.close() - - exec(code) + try: + exec(open(os.path.join(r, file), 'r').read()) + except Exception as e: + Console.error(str(e), traceback.format_exc()) + sys.exit(-1) def _get_schematic_by_alias(self, schematic: str) -> str: for key in self._schematics: diff --git a/src/cpl_cli/command/new_service.py b/src/cpl_cli/command/new_service.py index 8b399d58..32c27def 100644 --- a/src/cpl_cli/command/new_service.py +++ b/src/cpl_cli/command/new_service.py @@ -1,6 +1,7 @@ import os import sys import textwrap +import traceback from typing import Optional from packaging import version @@ -8,24 +9,20 @@ from packaging import version import cpl_cli import cpl_core from cpl_cli.abc.project_type_abc import ProjectTypeABC -from cpl_cli.configuration.venv_helper_service import VenvHelper -from cpl_cli.source_creator.template_builder import TemplateBuilder -from cpl_cli.source_creator.unittest_builder import UnittestBuilder - -from cpl_core.configuration.configuration_abc import ConfigurationABC -from cpl_core.console.foreground_color_enum import ForegroundColorEnum -from cpl_core.console.console import Console -from cpl_core.utils.string import String from cpl_cli.command_abc import CommandABC from cpl_cli.configuration.build_settings import BuildSettings from cpl_cli.configuration.build_settings_name_enum import BuildSettingsNameEnum from cpl_cli.configuration.project_settings import ProjectSettings from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum from cpl_cli.configuration.project_type_enum import ProjectTypeEnum +from cpl_cli.configuration.venv_helper_service import VenvHelper from cpl_cli.configuration.version_settings_name_enum import VersionSettingsNameEnum from cpl_cli.configuration.workspace_settings import WorkspaceSettings -from cpl_cli.source_creator.console_builder import ConsoleBuilder -from cpl_cli.source_creator.library_builder import LibraryBuilder +from cpl_cli.source_creator.template_builder import TemplateBuilder +from cpl_core.configuration.configuration_abc import ConfigurationABC +from cpl_core.console.console import Console +from cpl_core.console.foreground_color_enum import ForegroundColorEnum +from cpl_core.utils.string import String class NewService(CommandABC): @@ -45,7 +42,6 @@ class NewService(CommandABC): self._project_dict = {} self._build: BuildSettings = BuildSettings() self._build_dict = {} - self._project_json = {} self._name: str = '' self._rel_path: str = '' @@ -107,9 +103,9 @@ class NewService(CommandABC): self._project.from_dict(self._project_dict) - def _create_build_settings(self): + def _create_build_settings(self, project_type: ProjectTypeEnum): self._build_dict = { - BuildSettingsNameEnum.project_type.value: self._project_type, + BuildSettingsNameEnum.project_type.value: project_type.value, BuildSettingsNameEnum.source_path.value: '', BuildSettingsNameEnum.output_path.value: '../../dist', BuildSettingsNameEnum.main.value: f'{String.convert_to_snake_case(self._project.name)}.main', @@ -178,99 +174,7 @@ class NewService(CommandABC): Console.set_foreground_color(ForegroundColorEnum.default) - def _console(self, args: list[str]): - """ - Generates new console project - :param args: - :return: - """ - self._create_project_settings() - self._create_build_settings() - self._create_project_json() - path = self._get_project_path() - if path is None: - return - - self._get_project_information() - project_name = self._project.name - if self._rel_path != '': - project_name = f'{self._rel_path}/{project_name}' - try: - ConsoleBuilder.build( - path, - self._use_application_api, - self._use_startup, - self._use_service_providing, - self._use_async, - project_name, - self._project_json, - self._workspace - ) - except Exception as e: - Console.error('Could not create project', str(e)) - - def _unittest(self, args: list[str]): - """ - Generates new unittest project - :param args: - :return: - """ - self._create_project_settings() - self._create_build_settings() - self._create_project_json() - path = self._get_project_path() - if path is None: - return - - self._get_project_information(is_unittest=True) - project_name = self._project.name - if self._rel_path != '': - project_name = f'{self._rel_path}/{project_name}' - try: - UnittestBuilder.build( - path, - self._use_application_api, - self._use_async, - project_name, - self._project_json, - self._workspace - ) - except Exception as e: - Console.error('Could not create project', str(e)) - - def _library(self, args: list[str]): - """ - Generates new library project - :param args: - :return: - """ - self._create_project_settings() - self._create_build_settings() - self._create_project_json() - path = self._get_project_path() - if path is None: - return - - self._get_project_information() - project_name = self._project.name - if self._rel_path != '': - project_name = f'{self._rel_path}/{project_name}' - try: - LibraryBuilder.build( - path, - self._use_application_api, - self._use_startup, - self._use_service_providing, - self._use_async, - project_name, - self._project_json, - self._workspace - ) - except Exception as e: - Console.error('Could not create project', str(e)) - def _create_venv(self): - project = self._project.name if self._workspace is not None: project = self._workspace.default_project @@ -296,22 +200,25 @@ class NewService(CommandABC): sys.path.insert(0, os.path.join(path, '.cpl')) for r, d, f in os.walk(os.path.join(path, '.cpl')): for file in f: - if not file.startswith('project_') or not file.endswith('.py'): + if file.startswith('project_file_') or not file.startswith('project_') or not file.endswith('.py'): continue - code = '' - with open(os.path.join(r, file), 'r') as py_file: - code = py_file.read() - py_file.close() + try: + exec(open(os.path.join(r, file), 'r').read()) + except Exception as e: + Console.error(str(e), traceback.format_exc()) + sys.exit(-1) - exec(code) - - def _create_project(self): + def _create_project(self, project_type: ProjectTypeEnum): self._read_custom_project_types_from_path(self._env.runtime_directory) self._read_custom_project_types_from_path(self._env.working_directory) + if len(ProjectTypeABC.__subclasses__()) == 0: + Console.error(f'No project types found in template directory: .cpl') + sys.exit() + self._create_project_settings() - self._create_build_settings() + self._create_build_settings(project_type) self._create_project_json() path = self._get_project_path() if path is None: @@ -322,19 +229,23 @@ class NewService(CommandABC): if self._rel_path != '': project_name = f'{self._rel_path}/{project_name}' - project_type = None + project_class = None for p in ProjectTypeABC.__subclasses__(): - if p.__name__.lower() != self._project_type: + if p.__name__.lower() != project_type.value and p.__name__.lower()[0] != project_type.value[0]: continue - project_type = p + project_class = p + + if project_class is None: + Console.error(f'Project type {project_type.value} not found in template directory: .cpl/') + sys.exit() base = 'src/' split_project_name = project_name.split('/') if self._use_base and len(split_project_name) > 0: base = f'{split_project_name[0]}/' - project = project_type( + project = project_class( base if self._workspace is not None else 'src/', project_name, self._workspace, @@ -342,6 +253,7 @@ class NewService(CommandABC): self._use_startup, self._use_service_providing, self._use_async, + self._project_json ) if self._workspace is None: @@ -349,24 +261,41 @@ class NewService(CommandABC): f'{project_name}/cpl-workspace.json', project_name.split('/')[-1], { - project_name: project_name + project_name: f'{base if self._workspace is not None else "src/"}{String.convert_to_snake_case(project_name)}/{project_name}.json' }, {} ) else: - self._workspace.projects[project_name] = f'{base}{String.convert_to_snake_case(project_name.split("/")[-1])}' + self._workspace.projects[project_name] = f'{base if self._workspace is not None else "src/"}{String.convert_to_snake_case(project_name)}/{project_name}.json' TemplateBuilder.create_workspace('cpl-workspace.json', self._workspace.default_project, self._workspace.projects, self._workspace.scripts) for template in project.templates: + rel_base = '/'.join(project_name.split('/')[:-1]) + template_path_base = template.path.split('/')[0] + if not self._use_base and rel_base != '' and template_path_base != '' and template_path_base != rel_base: + template.path = template.path.replace(f'{template_path_base}/', f'{template_path_base}/{rel_base}/') + + if template.name.endswith(f'{project_name.split("/")[-1]}.json'): + pass + + file_path = os.path.join( + project_name if self._workspace is None else '', + template.path, + template.name + ) + Console.spinner( - f'Creating {os.path.join(project_name, template.path, template.name)}', + f'Creating {file_path}', TemplateBuilder.build, - project_name, + file_path, template, text_foreground_color=ForegroundColorEnum.green, spinner_foreground_color=ForegroundColorEnum.cyan ) + if self._use_venv: + self._create_venv() + def execute(self, args: list[str]): """ Entry point of command @@ -412,25 +341,15 @@ class NewService(CommandABC): unittest = self._config.get_configuration(ProjectTypeEnum.unittest.value) if console is not None and library is None and unittest is None: self._name = console - self._project_type = ProjectTypeEnum.console.value - self._create_project() - # self._console(args) - if self._use_venv: - self._create_venv() + self._create_project(ProjectTypeEnum.console) elif console is None and library is not None and unittest is None: self._name = library - self._project_type = ProjectTypeEnum.library.value - self._library(args) - if self._use_venv: - self._create_venv() + self._create_project(ProjectTypeEnum.library) elif console is None and library is None and unittest is not None: self._name = unittest - self._project_type = ProjectTypeEnum.unittest.value - self._unittest(args) - if self._use_venv: - self._create_venv() + self._create_project(ProjectTypeEnum.unittest) else: Console.error(f'Project type not found') diff --git a/src/cpl_cli/publish/publisher_service.py b/src/cpl_cli/publish/publisher_service.py index b1639023..ca1a5382 100644 --- a/src/cpl_cli/publish/publisher_service.py +++ b/src/cpl_cli/publish/publisher_service.py @@ -404,7 +404,7 @@ class PublisherService(PublisherABC): f'--bdist-dir={os.path.join(self._output_path, "bdist")}', f'--dist-dir={os.path.join(self._output_path, "setup")}' ]) - os.remove(setup_py) + # os.remove(setup_py) except Exception as e: Console.error('Executing setup.py failed', str(e)) @@ -492,10 +492,10 @@ class PublisherService(PublisherABC): Console.write_line('Running setup.py:\n') self._run_setup() - Console.spinner( - 'Cleaning dist path:', - self._clean_dist_files, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.blue - ) + # Console.spinner( + # 'Cleaning dist path:', + # self._clean_dist_files, + # text_foreground_color=ForegroundColorEnum.green, + # spinner_foreground_color=ForegroundColorEnum.blue + # ) Console.write_line() diff --git a/src/cpl_cli/source_creator/console_builder.py b/src/cpl_cli/source_creator/console_builder.py deleted file mode 100644 index e8b86f84..00000000 --- a/src/cpl_cli/source_creator/console_builder.py +++ /dev/null @@ -1,182 +0,0 @@ -import json -import os -from typing import Optional - -from cpl_core.console.foreground_color_enum import ForegroundColorEnum -from cpl_core.console.console import Console -from cpl_core.utils.string import String -from cpl_cli.configuration.workspace_settings import WorkspaceSettings -from cpl_cli.configuration.workspace_settings_name_enum import WorkspaceSettingsNameEnum -from cpl_cli.source_creator.template_builder import TemplateBuilder -from cpl_cli._templates.new.console.appsettings_json import AppsettingsTemplate -from cpl_cli._templates.new.console.license import LicenseTemplate -from cpl_cli._templates.new.console.readme_py import ReadmeTemplate -from cpl_cli._templates.new.console.source.name.application import ApplicationTemplate -from cpl_cli._templates.new.console.source.name.init import MainInitTemplate -from cpl_cli._templates.new.console.source.name.main import MainWithApplicationHostAndStartupTemplate, \ - MainWithoutApplicationBaseTemplate, MainWithApplicationBaseTemplate, MainWithDependencyInjection -from cpl_cli._templates.new.console.source.name.startup import StartupTemplate -from cpl_cli._templates.new.console.source.tests.init import TestsInitTemplate -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class ConsoleBuilder: - - def __init__(self): - pass - - @staticmethod - def _create_file(file_name: str, content: dict): - if not os.path.isabs(file_name): - file_name = os.path.abspath(file_name) - - path = os.path.dirname(file_name) - if not os.path.isdir(path): - os.makedirs(path) - - with open(file_name, 'w') as project_json: - project_json.write(json.dumps(content, indent=2)) - project_json.close() - - @classmethod - def _create_workspace(cls, path: str, project_name, projects: dict, scripts: dict): - ws_dict = { - WorkspaceSettings.__name__: { - WorkspaceSettingsNameEnum.default_project.value: project_name, - WorkspaceSettingsNameEnum.projects.value: projects, - WorkspaceSettingsNameEnum.scripts.value: scripts - } - } - - Console.spinner( - f'Creating {path}', - cls._create_file, - path, - ws_dict, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) - - @classmethod - def build(cls, project_path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, - use_async: bool, project_name: str, project_settings: dict, workspace: Optional[WorkspaceSettings]): - """ - Builds the console project files - :param project_path: - :param use_application_api: - :param use_startup: - :param use_service_providing: - :param use_async: - :param project_name: - :param project_settings: - :param workspace: - :return: - """ - pj_name = project_name - if '/' in pj_name: - pj_name = pj_name.split('/')[len(pj_name.split('/')) - 1] - - project_name_snake = String.convert_to_snake_case(pj_name) - - if workspace is None: - templates: list[TemplateFileABC] = [ - LicenseTemplate(), - ReadmeTemplate(), - TestsInitTemplate(), - AppsettingsTemplate(), - MainInitTemplate(project_name, os.path.join('src/', project_name_snake)) - ] - else: - project_path = os.path.join( - os.path.dirname(project_path), - project_name_snake - ) - - templates: list[TemplateFileABC] = [ - AppsettingsTemplate(), - MainInitTemplate('', '') - ] - - if not os.path.isdir(project_path): - os.makedirs(project_path) - - py_src_rel_path = '' - src_name = project_name_snake - if workspace is None: - py_src_rel_path = f'src/{src_name}' - - if use_application_api: - templates.append(ApplicationTemplate(src_name, py_src_rel_path, use_async)) - - if use_startup: - templates.append(StartupTemplate(src_name, py_src_rel_path)) - templates.append(MainWithApplicationHostAndStartupTemplate(src_name, py_src_rel_path, use_async)) - else: - templates.append(MainWithApplicationBaseTemplate(src_name, py_src_rel_path, use_async)) - else: - if use_service_providing: - templates.append(MainWithDependencyInjection(src_name, py_src_rel_path, use_async)) - else: - templates.append(MainWithoutApplicationBaseTemplate(src_name, py_src_rel_path, use_async)) - - src_rel_path = '' - if '/' in project_name: - old_pj_name = project_name - parts = project_name.split('/') - project_name = parts[len(parts) - 1] - src_rel_path = old_pj_name.split(project_name)[0] - - proj_name = project_name - if src_rel_path.endswith('/'): - src_rel_path = src_rel_path[:len(src_rel_path) - 1] - - if src_rel_path != '': - proj_name = f'{src_rel_path}/{project_name}' - if workspace is not None: - proj_name = project_name_snake - - if src_rel_path != '': - project_file_path = f'{src_rel_path}/{project_name_snake}/{project_name}.json' - else: - project_file_path = f'{project_name_snake}/{project_name}.json' - - if workspace is None: - src_path = f'src/{project_name_snake}' - workspace_file_path = f'{proj_name}/cpl-workspace.json' - project_file_rel_path = f'{src_path}/{project_name}.json' - project_file_path = f'{proj_name}/{src_path}/{project_name}.json' - cls._create_workspace( - workspace_file_path, - project_name, - { - project_name: project_file_rel_path - }, - {} - ) - - else: - workspace.projects[project_name] = f'src/{project_file_path}' - cls._create_workspace('cpl-workspace.json', workspace.default_project, workspace.projects, workspace.scripts) - - Console.spinner( - f'Creating {project_file_path}', - cls._create_file, - project_file_path if workspace is None else f'src/{project_file_path}', - project_settings, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) - - for template in templates: - divider = '' - if template.path != '' and not template.path.endswith('/'): - divider = '/' - - Console.spinner( - f'Creating {proj_name}/{template.path}{divider}{template.name}', - TemplateBuilder.build, - project_path, - template, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) diff --git a/src/cpl_cli/source_creator/library_builder.py b/src/cpl_cli/source_creator/library_builder.py deleted file mode 100644 index 702aa449..00000000 --- a/src/cpl_cli/source_creator/library_builder.py +++ /dev/null @@ -1,186 +0,0 @@ -import json -import os -from typing import Optional - -from cpl_core.console.foreground_color_enum import ForegroundColorEnum -from cpl_core.console.console import Console -from cpl_core.utils.string import String -from cpl_cli.configuration.workspace_settings import WorkspaceSettings -from cpl_cli.configuration.workspace_settings_name_enum import WorkspaceSettingsNameEnum -from cpl_cli.source_creator.template_builder import TemplateBuilder -from cpl_cli._templates.new.library.appsettings_json import AppsettingsTemplate -from cpl_cli._templates.new.library.license import LicenseTemplate -from cpl_cli._templates.new.library.readme_py import ReadmeTemplate -from cpl_cli._templates.new.library.source.name.application import ApplicationTemplate -from cpl_cli._templates.new.library.source.name.init import NameInitTemplate -from cpl_cli._templates.new.library.source.name.main import MainWithApplicationHostAndStartupTemplate, \ - MainWithoutApplicationBaseTemplate, MainWithApplicationBaseTemplate, MainWithDependencyInjection -from cpl_cli._templates.new.library.source.name.startup import StartupTemplate -from cpl_cli._templates.new.library.source.tests.init import TestsInitTemplate -from cpl_cli._templates.template_file_abc import TemplateFileABC - - -class LibraryBuilder: - - def __init__(self): - pass - - @staticmethod - def _create_file(file_name: str, content: dict): - if not os.path.isabs(file_name): - file_name = os.path.abspath(file_name) - - path = os.path.dirname(file_name) - if not os.path.isdir(path): - os.makedirs(path) - - with open(file_name, 'w') as project_json: - project_json.write(json.dumps(content, indent=2)) - project_json.close() - - @classmethod - def _create_workspace(cls, path: str, project_name, projects: dict, scripts: dict): - ws_dict = { - WorkspaceSettings.__name__: { - WorkspaceSettingsNameEnum.default_project.value: project_name, - WorkspaceSettingsNameEnum.projects.value: projects, - WorkspaceSettingsNameEnum.scripts.value: scripts, - } - } - - Console.spinner( - f'Creating {path}', - cls._create_file, - path, - ws_dict, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) - - @classmethod - def build(cls, project_path: str, use_application_api: bool, use_startup: bool, - use_async: bool, use_service_providing: bool, project_name: str, project_settings: dict, - workspace: Optional[WorkspaceSettings]): - """ - Builds the library project files - :param project_path: - :param use_application_api: - :param use_startup: - :param use_service_providing: - :param use_async: - :param project_name: - :param project_settings: - :param workspace: - :return: - """ - pj_name = project_name - if '/' in pj_name: - pj_name = pj_name.split('/')[len(pj_name.split('/')) - 1] - - project_name_snake = String.convert_to_snake_case(pj_name) - - if workspace is None: - templates: list[TemplateFileABC] = [ - LicenseTemplate(), - ReadmeTemplate(), - TestsInitTemplate(), - NameInitTemplate(project_name, os.path.join( - 'src/', project_name_snake)), - AppsettingsTemplate() - ] - else: - project_path = os.path.join( - os.path.dirname(project_path), - project_name_snake - ) - - templates: list[TemplateFileABC] = [ - LicenseTemplate(), - ReadmeTemplate(), - NameInitTemplate('', ''), - AppsettingsTemplate() - ] - - if not os.path.isdir(project_path): - os.makedirs(project_path) - - py_src_rel_path = '' - src_name = project_name_snake - if workspace is None: - py_src_rel_path = f'src/{src_name}' - - if use_application_api: - templates.append(ApplicationTemplate(src_name, py_src_rel_path, use_async)) - - if use_startup: - templates.append(StartupTemplate(src_name, py_src_rel_path)) - templates.append(MainWithApplicationHostAndStartupTemplate(src_name, py_src_rel_path, use_async)) - else: - templates.append(MainWithApplicationBaseTemplate(src_name, py_src_rel_path, use_async)) - else: - if use_service_providing: - templates.append(MainWithDependencyInjection(src_name, py_src_rel_path, use_async)) - else: - templates.append(MainWithoutApplicationBaseTemplate(src_name, py_src_rel_path, use_async)) - - src_rel_path = '' - if '/' in project_name: - old_pj_name = project_name - parts = project_name.split('/') - project_name = parts[len(parts) - 1] - src_rel_path = old_pj_name.split(project_name)[0] - - proj_name = project_name - if src_rel_path.endswith('/'): - src_rel_path = src_rel_path[:len(src_rel_path) - 1] - - if src_rel_path != '': - proj_name = f'{src_rel_path}/{project_name}' - if workspace is not None: - proj_name = project_name_snake - - if src_rel_path != '': - project_file_path = f'{src_rel_path}/{project_name_snake}/{project_name}.json' - else: - project_file_path = f'{project_name_snake}/{project_name}.json' - - if workspace is None: - src_path = f'src/{project_name_snake}' - workspace_file_path = f'{proj_name}/cpl-workspace.json' - project_file_rel_path = f'{src_path}/{project_name}.json' - project_file_path = f'{proj_name}/{src_path}/{project_name}.json' - cls._create_workspace( - workspace_file_path, - project_name, - { - project_name: project_file_rel_path - }, - {} - ) - - else: - workspace.projects[project_name] = f'src/{project_file_path}' - cls._create_workspace('cpl-workspace.json', workspace.default_project, workspace.projects, workspace.scripts) - - Console.spinner( - f'Creating {project_file_path}', - cls._create_file, - project_file_path if workspace is None else f'src/{project_file_path}', - project_settings, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) - - for template in templates: - divider = '' - if template.path != '' and not template.path.endswith('/'): - divider = '/' - - Console.spinner( - f'Creating {proj_name}/{template.path}{divider}{template.name}', - TemplateBuilder.build, - project_path, - template, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) diff --git a/src/cpl_cli/source_creator/template_builder.py b/src/cpl_cli/source_creator/template_builder.py index c661cd7a..798b4a9b 100644 --- a/src/cpl_cli/source_creator/template_builder.py +++ b/src/cpl_cli/source_creator/template_builder.py @@ -1,8 +1,6 @@ import json import os -from typing import Union -from cpl_cli._templates.template_file_abc import TemplateFileABC from cpl_cli.abc.file_template_abc import FileTemplateABC from cpl_cli.configuration import WorkspaceSettings, WorkspaceSettingsNameEnum from cpl_core.console import Console, ForegroundColorEnum @@ -11,7 +9,7 @@ from cpl_core.console import Console, ForegroundColorEnum class TemplateBuilder: @staticmethod - def _create_file(file_name: str, content: dict): + def build_cpl_file(file_name: str, content: dict): if not os.path.isabs(file_name): file_name = os.path.abspath(file_name) @@ -35,7 +33,7 @@ class TemplateBuilder: Console.spinner( f'Creating {path}', - cls._create_file, + cls.build_cpl_file, path, ws_dict, text_foreground_color=ForegroundColorEnum.green, @@ -43,14 +41,13 @@ class TemplateBuilder: ) @staticmethod - def build(project_path: str, template: Union[TemplateFileABC, FileTemplateABC]): + def build(file_path: str, template: FileTemplateABC): """ Creates template - :param project_path: + :param file_path: :param template: :return: """ - file_path = os.path.join(project_path, template.path, template.name) if not os.path.isdir(os.path.dirname(file_path)): os.makedirs(os.path.dirname(file_path)) diff --git a/src/cpl_cli/source_creator/unittest_builder.py b/src/cpl_cli/source_creator/unittest_builder.py deleted file mode 100644 index 805c6363..00000000 --- a/src/cpl_cli/source_creator/unittest_builder.py +++ /dev/null @@ -1,164 +0,0 @@ -import json -import os -from typing import Optional - -from cpl_cli._templates.new.unittest.license import LicenseTemplate -from cpl_cli._templates.new.unittest.readme_py import ReadmeTemplate -from cpl_cli._templates.new.unittest.source.name.application import ApplicationTemplate -from cpl_cli._templates.new.unittest.source.name.init import MainInitTemplate -from cpl_cli._templates.new.unittest.source.name.main import MainWithApplicationBaseTemplate -from cpl_cli._templates.new.unittest.source.name.test_case import TestCaseTemplate -from cpl_cli._templates.template_file_abc import TemplateFileABC -from cpl_cli.configuration.workspace_settings import WorkspaceSettings -from cpl_cli.configuration.workspace_settings_name_enum import WorkspaceSettingsNameEnum -from cpl_cli.source_creator.template_builder import TemplateBuilder -from cpl_core.console.console import Console -from cpl_core.console.foreground_color_enum import ForegroundColorEnum -from cpl_core.utils.string import String - - -class UnittestBuilder: - - def __init__(self): - pass - - @staticmethod - def _create_file(file_name: str, content: dict): - if not os.path.isabs(file_name): - file_name = os.path.abspath(file_name) - - path = os.path.dirname(file_name) - if not os.path.isdir(path): - os.makedirs(path) - - with open(file_name, 'w') as project_json: - project_json.write(json.dumps(content, indent=2)) - project_json.close() - - @classmethod - def _create_workspace(cls, path: str, project_name, projects: dict, scripts: dict): - ws_dict = { - WorkspaceSettings.__name__: { - WorkspaceSettingsNameEnum.default_project.value: project_name, - WorkspaceSettingsNameEnum.projects.value: projects, - WorkspaceSettingsNameEnum.scripts.value: scripts - } - } - - Console.spinner( - f'Creating {path}', - cls._create_file, - path, - ws_dict, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) - - @classmethod - def build(cls, project_path: str, use_application_api: bool, - use_async: bool, project_name: str, project_settings: dict, workspace: Optional[WorkspaceSettings]): - """ - Builds the console project files - :param project_path: - :param use_application_api: - :param use_async: - :param project_name: - :param project_settings: - :param workspace: - :return: - """ - pj_name = project_name - if '/' in pj_name: - pj_name = pj_name.split('/')[len(pj_name.split('/')) - 1] - - project_name_snake = String.convert_to_snake_case(pj_name) - - if workspace is None: - templates: list[TemplateFileABC] = [ - LicenseTemplate(), - ReadmeTemplate(), - MainInitTemplate(project_name, os.path.join('src/', project_name_snake)) - ] - else: - project_path = os.path.join( - os.path.dirname(project_path), - project_name_snake - ) - - templates: list[TemplateFileABC] = [ - MainInitTemplate('', '') - ] - - if not os.path.isdir(project_path): - os.makedirs(project_path) - - py_src_rel_path = '' - src_name = project_name_snake - if workspace is None: - py_src_rel_path = f'src/{src_name}' - - templates.append(ApplicationTemplate(src_name, py_src_rel_path, use_async)) - templates.append(MainWithApplicationBaseTemplate(src_name, py_src_rel_path, use_async)) - templates.append(TestCaseTemplate(src_name, py_src_rel_path, use_async)) - - src_rel_path = '' - if '/' in project_name: - old_pj_name = project_name - parts = project_name.split('/') - project_name = parts[len(parts) - 1] - src_rel_path = old_pj_name.split(project_name)[0] - - proj_name = project_name - if src_rel_path.endswith('/'): - src_rel_path = src_rel_path[:len(src_rel_path) - 1] - - if src_rel_path != '': - proj_name = f'{src_rel_path}/{project_name}' - if workspace is not None: - proj_name = project_name_snake - - if src_rel_path != '': - project_file_path = f'{src_rel_path}/{project_name_snake}/{project_name}.json' - else: - project_file_path = f'{project_name_snake}/{project_name}.json' - - if workspace is None: - src_path = f'src/{project_name_snake}' - workspace_file_path = f'{proj_name}/cpl-workspace.json' - project_file_rel_path = f'{src_path}/{project_name}.json' - project_file_path = f'{proj_name}/{src_path}/{project_name}.json' - cls._create_workspace( - workspace_file_path, - project_name, - { - project_name: project_file_rel_path - }, - {} - ) - - else: - workspace.projects[project_name] = f'src/{project_file_path}' - cls._create_workspace('cpl-workspace.json', workspace.default_project, workspace.projects, workspace.scripts) - - Console.spinner( - f'Creating {project_file_path}', - cls._create_file, - project_file_path if workspace is None else f'src/{project_file_path}', - project_settings, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) - - for template in templates: - divider = '' - if template.path != '' and not template.path.endswith('/'): - divider = '/' - - Console.spinner( - f'Creating {proj_name}/{template.path}{divider}{template.name}', - TemplateBuilder.build, - project_path, - template, - text_foreground_color=ForegroundColorEnum.green, - spinner_foreground_color=ForegroundColorEnum.cyan - ) diff --git a/unittests/unittests_cli/abc/command_test_case.py b/unittests/unittests_cli/abc/command_test_case.py index 3b609cab..6f216e00 100644 --- a/unittests/unittests_cli/abc/command_test_case.py +++ b/unittests/unittests_cli/abc/command_test_case.py @@ -7,6 +7,7 @@ from unittests_cli.constants import PLAYGROUND_PATH class CommandTestCase(unittest.TestCase): + _skip_tear_down = False def __init__(self, method_name: str): unittest.TestCase.__init__(self, method_name) @@ -18,7 +19,8 @@ class CommandTestCase(unittest.TestCase): if os.path.exists(PLAYGROUND_PATH): shutil.rmtree(os.path.abspath(os.path.join(PLAYGROUND_PATH))) - os.makedirs(PLAYGROUND_PATH) + if not os.path.exists(PLAYGROUND_PATH): + os.makedirs(PLAYGROUND_PATH) os.chdir(PLAYGROUND_PATH) except Exception as e: print(f'Setup of {__name__} failed: {traceback.format_exc()}') @@ -28,6 +30,8 @@ class CommandTestCase(unittest.TestCase): @classmethod def tearDownClass(cls): + if cls._skip_tear_down: + return try: if os.path.exists(PLAYGROUND_PATH): shutil.rmtree(os.path.abspath(os.path.join(PLAYGROUND_PATH))) diff --git a/unittests/unittests_cli/add_test_case.py b/unittests/unittests_cli/add_test_case.py index 18efb1bd..e78ade03 100644 --- a/unittests/unittests_cli/add_test_case.py +++ b/unittests/unittests_cli/add_test_case.py @@ -28,7 +28,7 @@ class AddTestCase(CommandTestCase): # create projects CLICommands.new('console', self._source, '--ab', '--s') os.chdir(os.path.join(os.getcwd(), self._source)) - CLICommands.new('console', self._target, '--ab', '--s') + CLICommands.new('library', self._target, '--ab', '--s') def test_add(self): CLICommands.add(self._source, self._target) diff --git a/unittests/unittests_cli/new_test_case.py b/unittests/unittests_cli/new_test_case.py index 21191333..22c830f3 100644 --- a/unittests/unittests_cli/new_test_case.py +++ b/unittests/unittests_cli/new_test_case.py @@ -1,5 +1,6 @@ import json import os +import unittest from cpl_core.utils import String from unittests_cli.abc.command_test_case import CommandTestCase @@ -32,8 +33,8 @@ class NewTestCase(CommandTestCase): project_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, base, name, 'src/', String.convert_to_snake_case(name))) self.assertTrue(os.path.exists(project_path)) - self.assertTrue(os.path.join(project_path, f'{name}.json')) - self.assertTrue(os.path.join(project_path, f'main.py')) + self.assertTrue(os.path.exists(os.path.join(project_path, f'{name}.json'))) + self.assertTrue(os.path.exists(os.path.join(project_path, f'main.py'))) if '--ab' in args: self.assertTrue(os.path.isfile(os.path.join(project_path, f'application.py'))) @@ -110,23 +111,23 @@ class NewTestCase(CommandTestCase): def test_console_without_anything(self): self._test_project('console', 'test-console-without-anything', '--n') - def test_sub_console(self): + def test_console_sub(self): self._test_sub_project('console', 'test-sub-console', 'test-console', '--ab', '--s', '--sp', '--venv', test_venv=True) - def test_sub_console_with_other_base(self): + def test_console_sub_with_other_base(self): self._test_sub_project('console', 'tools/test-sub-console', 'test-console', '--ab', '--s', '--sp', '--venv', '--base', test_venv=True) def test_library(self): self._test_project('library', 'test-library', '--ab', '--s', '--sp') - def test_sub_library(self): + def test_library_sub(self): self._test_sub_project('library', 'test-sub-library', 'test-console', '--ab', '--s', '--sp') - def test_sub_directory_library(self): + def test_library_sub_directory(self): self._test_sub_directory_project('library', 'directory', 'test-sub-library', 'test-console', '--ab', '--s', '--sp') def test_unittest(self): self._test_project('unittest', 'test-unittest', '--ab') - def test_sub_unittest(self): + def test_unittest_sub(self): self._test_sub_project('unittest', 'test-unittest', 'test-console', '--ab', '--s', '--sp') diff --git a/unittests/unittests_cli/publish_test_case.py b/unittests/unittests_cli/publish_test_case.py index 9992626b..c22dfba5 100644 --- a/unittests/unittests_cli/publish_test_case.py +++ b/unittests/unittests_cli/publish_test_case.py @@ -12,6 +12,7 @@ from unittests_shared.cli_commands import CLICommands class PublishTestCase(CommandTestCase): + CommandTestCase._skip_tear_down = True def __init__(self, method_name: str): CommandTestCase.__init__(self, method_name) @@ -26,6 +27,14 @@ class PublishTestCase(CommandTestCase): return project_json + def _get_appsettings(self): + with open(os.path.join(os.getcwd(), os.path.dirname(self._project_file), 'appsettings.json'), 'r', encoding='utf-8') as cfg: + # load json + project_json = json.load(cfg) + cfg.close() + + return project_json + def _save_project_settings(self, settings: dict): with open(os.path.join(os.getcwd(), self._project_file), 'w', encoding='utf-8') as project_file: project_file.write(json.dumps(settings, indent=2)) @@ -34,7 +43,7 @@ class PublishTestCase(CommandTestCase): def setUp(self): if not os.path.exists(PLAYGROUND_PATH): os.makedirs(PLAYGROUND_PATH) - + os.chdir(PLAYGROUND_PATH) # create projects CLICommands.new('console', self._source, '--ab', '--s') @@ -86,4 +95,8 @@ class PublishTestCase(CommandTestCase): with open(f'{full_dist_path}/{self._source}.json', 'w') as file: file.write(json.dumps(self._get_project_settings(), indent=2)) file.close() + + with open(f'{full_dist_path}/appsettings.json', 'w') as file: + file.write(json.dumps(self._get_appsettings(), indent=2)) + file.close() self.assertTrue(self._are_dir_trees_equal(f'./src/{String.convert_to_snake_case(self._source)}', full_dist_path)) -- 2.49.1 From 42fb88c35d9a6457b3e545b120bf111d83540bba Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Wed, 7 Dec 2022 15:45:10 +0100 Subject: [PATCH 003/124] Removed old new command #139 --- src/cpl_cli/command/new_old_service.py | 356 ------------------------- 1 file changed, 356 deletions(-) delete mode 100644 src/cpl_cli/command/new_old_service.py diff --git a/src/cpl_cli/command/new_old_service.py b/src/cpl_cli/command/new_old_service.py deleted file mode 100644 index 5715f5cd..00000000 --- a/src/cpl_cli/command/new_old_service.py +++ /dev/null @@ -1,356 +0,0 @@ -import os -import sys -import textwrap -from typing import Optional - -from packaging import version - -import cpl_cli -import cpl_core -from cpl_cli.configuration.venv_helper_service import VenvHelper -from cpl_cli.source_creator.unittest_builder import UnittestBuilder - -from cpl_core.configuration.configuration_abc import ConfigurationABC -from cpl_core.console.foreground_color_enum import ForegroundColorEnum -from cpl_core.console.console import Console -from cpl_core.utils.string import String -from cpl_cli.command_abc import CommandABC -from cpl_cli.configuration.build_settings import BuildSettings -from cpl_cli.configuration.build_settings_name_enum import BuildSettingsNameEnum -from cpl_cli.configuration.project_settings import ProjectSettings -from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum -from cpl_cli.configuration.project_type_enum import ProjectTypeEnum -from cpl_cli.configuration.version_settings_name_enum import VersionSettingsNameEnum -from cpl_cli.configuration.workspace_settings import WorkspaceSettings -from cpl_cli.source_creator.console_builder import ConsoleBuilder -from cpl_cli.source_creator.library_builder import LibraryBuilder - - -class NewService(CommandABC): - - def __init__(self, configuration: ConfigurationABC): - """ - Service for the CLI command new - :param configuration: - """ - CommandABC.__init__(self) - - self._config = configuration - self._env = self._config.environment - - self._workspace: WorkspaceSettings = self._config.get_configuration(WorkspaceSettings) - self._project: ProjectSettings = ProjectSettings() - self._project_dict = {} - self._build: BuildSettings = BuildSettings() - self._build_dict = {} - self._project_json = {} - - self._name: str = '' - self._rel_path: str = '' - self._schematic: ProjectTypeEnum = ProjectTypeEnum.console - self._use_nothing: bool = False - self._use_application_api: bool = False - self._use_startup: bool = False - self._use_service_providing: bool = False - self._use_async: bool = False - self._use_venv: bool = False - self._use_base: bool = False - - @property - def help_message(self) -> str: - return textwrap.dedent("""\ - Generates a workspace and initial project or add a project to workspace. - Usage: cpl new - - Arguments: - type The project type of the initial project - name Name of the workspace or the project - - Types: - console (c|C) - library (l|L) - unittest (ut|UT) - """) - - def _create_project_settings(self): - self._rel_path = os.path.dirname(self._name) - self._project_dict = { - ProjectSettingsNameEnum.name.value: os.path.basename(self._name), - ProjectSettingsNameEnum.version.value: { - VersionSettingsNameEnum.major.value: '0', - VersionSettingsNameEnum.minor.value: '0', - VersionSettingsNameEnum.micro.value: '0' - }, - ProjectSettingsNameEnum.author.value: '', - ProjectSettingsNameEnum.author_email.value: '', - ProjectSettingsNameEnum.description.value: '', - ProjectSettingsNameEnum.long_description.value: '', - ProjectSettingsNameEnum.url.value: '', - ProjectSettingsNameEnum.copyright_date.value: '', - ProjectSettingsNameEnum.copyright_name.value: '', - ProjectSettingsNameEnum.license_name.value: '', - ProjectSettingsNameEnum.license_description.value: '', - ProjectSettingsNameEnum.dependencies.value: [ - f'cpl-core>={version.parse(cpl_core.__version__)}' - ], - ProjectSettingsNameEnum.dev_dependencies.value: [ - f'cpl-cli>={version.parse(cpl_cli.__version__)}' - ], - ProjectSettingsNameEnum.python_version.value: f'>={sys.version.split(" ")[0]}', - ProjectSettingsNameEnum.python_path.value: { - sys.platform: '../../venv/bin/python' if self._use_venv else '' - }, - ProjectSettingsNameEnum.classifiers.value: [] - } - - self._project.from_dict(self._project_dict) - - def _create_build_settings(self): - self._build_dict = { - BuildSettingsNameEnum.project_type.value: self._schematic, - BuildSettingsNameEnum.source_path.value: '', - BuildSettingsNameEnum.output_path.value: '../../dist', - BuildSettingsNameEnum.main.value: f'{String.convert_to_snake_case(self._project.name)}.main', - BuildSettingsNameEnum.entry_point.value: self._project.name, - BuildSettingsNameEnum.include_package_data.value: False, - BuildSettingsNameEnum.included.value: [], - BuildSettingsNameEnum.excluded.value: [ - '*/__pycache__', - '*/logs', - '*/tests' - ], - BuildSettingsNameEnum.package_data.value: {}, - BuildSettingsNameEnum.project_references.value: [] - } - self._build.from_dict(self._build_dict) - - def _create_project_json(self): - """ - Creates cpl.json content - :return: - """ - self._project_json = { - ProjectSettings.__name__: self._project_dict, - BuildSettings.__name__: self._build_dict - } - - def _get_project_path(self) -> Optional[str]: - """ - Gets project path - :return: - """ - if self._workspace is None: - project_path = os.path.join(self._env.working_directory, self._rel_path, self._project.name) - else: - base = '' if self._use_base else 'src' - project_path = os.path.join(self._env.working_directory, base, self._rel_path, String.convert_to_snake_case(self._project.name)) - - if os.path.isdir(project_path) and len(os.listdir(project_path)) > 0: - Console.write_line(project_path) - Console.error('Project path is not empty\n') - return None - - return project_path - - def _get_project_information(self, is_unittest=False): - """ - Gets project information's from user - :return: - """ - if self._use_application_api or self._use_startup or self._use_service_providing or self._use_async or self._use_nothing: - Console.set_foreground_color(ForegroundColorEnum.default) - Console.write_line('Skipping question due to given flags') - return - - if not is_unittest: - self._use_application_api = Console.read('Do you want to use application base? (y/n) ').lower() == 'y' - - if not is_unittest and self._use_application_api: - self._use_startup = Console.read('Do you want to use startup? (y/n) ').lower() == 'y' - - if not is_unittest and not self._use_application_api: - self._use_service_providing = Console.read('Do you want to use service providing? (y/n) ').lower() == 'y' - - if not self._use_async: - self._use_async = Console.read('Do you want to use async? (y/n) ').lower() == 'y' - - Console.set_foreground_color(ForegroundColorEnum.default) - - def _console(self, args: list[str]): - """ - Generates new console project - :param args: - :return: - """ - self._create_project_settings() - self._create_build_settings() - self._create_project_json() - path = self._get_project_path() - if path is None: - return - - self._get_project_information() - project_name = self._project.name - if self._rel_path != '': - project_name = f'{self._rel_path}/{project_name}' - try: - ConsoleBuilder.build( - path, - self._use_application_api, - self._use_startup, - self._use_service_providing, - self._use_async, - project_name, - self._project_json, - self._workspace - ) - except Exception as e: - Console.error('Could not create project', str(e)) - - def _unittest(self, args: list[str]): - """ - Generates new unittest project - :param args: - :return: - """ - self._create_project_settings() - self._create_build_settings() - self._create_project_json() - path = self._get_project_path() - if path is None: - return - - self._get_project_information(is_unittest=True) - project_name = self._project.name - if self._rel_path != '': - project_name = f'{self._rel_path}/{project_name}' - try: - UnittestBuilder.build( - path, - self._use_application_api, - self._use_async, - project_name, - self._project_json, - self._workspace - ) - except Exception as e: - Console.error('Could not create project', str(e)) - - def _library(self, args: list[str]): - """ - Generates new library project - :param args: - :return: - """ - self._create_project_settings() - self._create_build_settings() - self._create_project_json() - path = self._get_project_path() - if path is None: - return - - self._get_project_information() - project_name = self._project.name - if self._rel_path != '': - project_name = f'{self._rel_path}/{project_name}' - try: - LibraryBuilder.build( - path, - self._use_application_api, - self._use_startup, - self._use_service_providing, - self._use_async, - project_name, - self._project_json, - self._workspace - ) - except Exception as e: - Console.error('Could not create project', str(e)) - - def _create_venv(self): - - project = self._project.name - if self._workspace is not None: - project = self._workspace.default_project - - if self._env.working_directory.endswith(project): - project = '' - - if self._workspace is None and self._use_base: - project = f'{self._rel_path}/{project}' - - VenvHelper.init_venv( - False, - self._env, - self._project, - explicit_path=os.path.join(self._env.working_directory, project, self._project.python_executable.replace('../', '')) - ) - - def execute(self, args: list[str]): - """ - Entry point of command - :param args: - :return: - """ - if 'nothing' in args: - self._use_nothing = True - self._use_async = False - self._use_application_api = False - self._use_startup = False - self._use_service_providing = False - if 'async' in args: - args.remove('async') - if 'application-base' in args: - args.remove('application-base') - if 'startup' in args: - args.remove('startup') - if 'service-providing' in args: - args.remove('service-providing') - - if 'async' in args: - self._use_async = True - args.remove('async') - if 'application-base' in args: - self._use_application_api = True - args.remove('application-base') - if 'startup' in args: - self._use_startup = True - args.remove('startup') - if 'service-providing' in args: - self._use_service_providing = True - args.remove('service-providing') - if 'venv' in args: - self._use_venv = True - args.remove('venv') - if 'base' in args: - self._use_base = True - args.remove('base') - - console = self._config.get_configuration(ProjectTypeEnum.console.value) - library = self._config.get_configuration(ProjectTypeEnum.library.value) - unittest = self._config.get_configuration(ProjectTypeEnum.unittest.value) - if console is not None and library is None and unittest is None: - self._name = console - self._schematic = ProjectTypeEnum.console.value - self._console(args) - if self._use_venv: - self._create_venv() - - elif console is None and library is not None and unittest is None: - self._name = library - self._schematic = ProjectTypeEnum.library.value - self._library(args) - if self._use_venv: - self._create_venv() - - elif console is None and library is None and unittest is not None: - self._name = unittest - self._schematic = ProjectTypeEnum.unittest.value - self._unittest(args) - if self._use_venv: - self._create_venv() - - else: - Console.error(f'Project type not found') - Console.write_line(self.help_message) - return -- 2.49.1 From fe8ffb2839fd72e0e7810b6e9d88a9b978b9d9b7 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Wed, 7 Dec 2022 15:46:32 +0100 Subject: [PATCH 004/124] Removed comments #139 --- src/cpl_cli/publish/publisher_service.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/cpl_cli/publish/publisher_service.py b/src/cpl_cli/publish/publisher_service.py index ca1a5382..b1639023 100644 --- a/src/cpl_cli/publish/publisher_service.py +++ b/src/cpl_cli/publish/publisher_service.py @@ -404,7 +404,7 @@ class PublisherService(PublisherABC): f'--bdist-dir={os.path.join(self._output_path, "bdist")}', f'--dist-dir={os.path.join(self._output_path, "setup")}' ]) - # os.remove(setup_py) + os.remove(setup_py) except Exception as e: Console.error('Executing setup.py failed', str(e)) @@ -492,10 +492,10 @@ class PublisherService(PublisherABC): Console.write_line('Running setup.py:\n') self._run_setup() - # Console.spinner( - # 'Cleaning dist path:', - # self._clean_dist_files, - # text_foreground_color=ForegroundColorEnum.green, - # spinner_foreground_color=ForegroundColorEnum.blue - # ) + Console.spinner( + 'Cleaning dist path:', + self._clean_dist_files, + text_foreground_color=ForegroundColorEnum.green, + spinner_foreground_color=ForegroundColorEnum.blue + ) Console.write_line() -- 2.49.1 From 1ca459e67add989cf351ba428e97377022ee1e74 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Wed, 7 Dec 2022 15:48:37 +0100 Subject: [PATCH 005/124] Removed skip test case #139 --- unittests/unittests_cli/publish_test_case.py | 1 - 1 file changed, 1 deletion(-) diff --git a/unittests/unittests_cli/publish_test_case.py b/unittests/unittests_cli/publish_test_case.py index c22dfba5..5d6a8f75 100644 --- a/unittests/unittests_cli/publish_test_case.py +++ b/unittests/unittests_cli/publish_test_case.py @@ -12,7 +12,6 @@ from unittests_shared.cli_commands import CLICommands class PublishTestCase(CommandTestCase): - CommandTestCase._skip_tear_down = True def __init__(self, method_name: str): CommandTestCase.__init__(self, method_name) -- 2.49.1 From 6818fe9a5c239c4c964c11bee5579bbf761c175f Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Wed, 7 Dec 2022 20:06:54 +0100 Subject: [PATCH 006/124] Improved cpl new appsettings template --- src/cpl_cli/.cpl/project_file_appsettings.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/cpl_cli/.cpl/project_file_appsettings.py b/src/cpl_cli/.cpl/project_file_appsettings.py index c6a62b88..dabf4a29 100644 --- a/src/cpl_cli/.cpl/project_file_appsettings.py +++ b/src/cpl_cli/.cpl/project_file_appsettings.py @@ -1,3 +1,5 @@ +import textwrap + from cpl_cli.abc.file_template_abc import FileTemplateABC @@ -8,4 +10,20 @@ class ProjectFileAppsettings(FileTemplateABC): self._name = 'appsettings.json' def get_code(self) -> str: - return self._code + return textwrap.dedent("""\ + { + "TimeFormatSettings": { + "DateFormat": "%Y-%m-%d", + "TimeFormat": "%H:%M:%S", + "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", + "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" + }, + + "LoggingSettings": { + "Path": "logs/", + "Filename": "log_$start_time.log", + "ConsoleLogLevel": "ERROR", + "FileLogLevel": "WARN" + } + } + """) -- 2.49.1 From 4fbb3ec838b5f15ed9e70ceea7fba3308708d558 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Wed, 7 Dec 2022 20:12:07 +0100 Subject: [PATCH 007/124] Updated readme --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 103a87b2..a6515be0 100644 --- a/README.md +++ b/README.md @@ -87,17 +87,17 @@ Install the CPL package ```sh -pip install sh_cpl --extra-index-url https://pip.sh-edraft.de +pip install cpl --extra-index-url https://pip.sh-edraft.de ``` Install the CPL CLI ```sh -pip install sh_cpl-cli --extra-index-url https://pip.sh-edraft.de +pip install cpl-cli --extra-index-url https://pip.sh-edraft.de ``` Create workspace: ```sh -cpl new +cpl new ``` Run the application: @@ -110,7 +110,7 @@ cpl start ## Roadmap -See the [open issues](https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib/issues) for a list of proposed features (and known issues). +See the [open issues](https://git.sh-edraft.de/sh-edraft.de/sh_cpl/issues) for a list of proposed features (and known issues). @@ -139,7 +139,7 @@ Distributed under the MIT License. See [LICENSE] for more information. Sven Heidemann - sven.heidemann@sh-edraft.de -Project link: [https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib](https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib) +Project link: [https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib](https://git.sh-edraft.de/sh-edraft.de/sh_cpl) [pip_url]: https://pip.sh-edraft.de @@ -147,7 +147,7 @@ Project link: [https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib](https://g [pip]: https://pypi.org/project/pip/ -[project]: https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib -[quickstart]: https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib/wiki/quickstart -[contributing]: https://git.sh-edraft.de/sh-edraft.de/sh_common_py_lib/wiki/contributing +[project]: https://git.sh-edraft.de/sh-edraft.de/sh_cpl +[quickstart]: https://git.sh-edraft.de/sh-edraft.de/sh_cpl/wiki/quickstart +[contributing]: https://git.sh-edraft.de/sh-edraft.de/sh_cpl/wiki/contributing [license]: LICENSE -- 2.49.1 From 2f8dc63cdc0ae81410ed94dc8130e393a3f466d2 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 8 Dec 2022 10:36:23 +0100 Subject: [PATCH 008/124] Added discord command & event to cpl g schematics #143 --- src/cpl_cli/.cpl/schematic_abc.py | 8 ++- src/cpl_cli/command/generate_service.py | 7 ++- src/cpl_cli/command/version_service.py | 15 +---- src/cpl_cli/helper/__init__.py | 0 src/cpl_cli/helper/dependencies.py | 22 +++++++ src/cpl_discord/.cpl/__init__.py | 0 src/cpl_discord/.cpl/schematic_command.py | 44 ++++++++++++++ src/cpl_discord/.cpl/schematic_event.py | 63 ++++++++++++++++++++ src/cpl_discord/events/on_group_join_abc.py | 2 +- tests/custom/general/src/general/__init__.py | 1 + 10 files changed, 146 insertions(+), 16 deletions(-) create mode 100644 src/cpl_cli/helper/__init__.py create mode 100644 src/cpl_cli/helper/dependencies.py create mode 100644 src/cpl_discord/.cpl/__init__.py create mode 100644 src/cpl_discord/.cpl/schematic_command.py create mode 100644 src/cpl_discord/.cpl/schematic_event.py create mode 100644 tests/custom/general/src/general/__init__.py diff --git a/src/cpl_cli/.cpl/schematic_abc.py b/src/cpl_cli/.cpl/schematic_abc.py index aaa74cc3..eaaab12e 100644 --- a/src/cpl_cli/.cpl/schematic_abc.py +++ b/src/cpl_cli/.cpl/schematic_abc.py @@ -1,10 +1,14 @@ from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC +from cpl_core.utils import String class ABC(GenerateSchematicABC): - def __init__(self, *args): - GenerateSchematicABC.__init__(self, *args) + def __init__(self, name: str, schematic: str, path: str): + GenerateSchematicABC.__init__(self, name, schematic, path) + self._class_name = name + if name != '': + self._class_name = f'{String.first_to_upper(name.replace(schematic, ""))}ABC' def get_code(self) -> str: code = """\ diff --git a/src/cpl_cli/command/generate_service.py b/src/cpl_cli/command/generate_service.py index b1ee7967..a615f095 100644 --- a/src/cpl_cli/command/generate_service.py +++ b/src/cpl_cli/command/generate_service.py @@ -1,3 +1,4 @@ +import importlib import os import sys import textwrap @@ -7,6 +8,7 @@ from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC from cpl_cli.command_abc import CommandABC from cpl_cli.configuration import WorkspaceSettings from cpl_cli.configuration.schematic_collection import SchematicCollection +from cpl_cli.helper.dependencies import Dependencies from cpl_core.configuration.configuration_abc import ConfigurationABC from cpl_core.console.console import Console from cpl_core.console.foreground_color_enum import ForegroundColorEnum @@ -33,7 +35,10 @@ class GenerateService(CommandABC): self._env = self._config.environment self._schematics = {} - self._read_custom_schematics_from_path(self._env.runtime_directory) + for package_name in Dependencies.get_cpl_packages(): + package = importlib.import_module(String.convert_to_snake_case(package_name[0])) + self._read_custom_schematics_from_path(os.path.dirname(package.__file__)) + self._read_custom_schematics_from_path(self._env.working_directory) if len(GenerateSchematicABC.__subclasses__()) == 0: diff --git a/src/cpl_cli/command/version_service.py b/src/cpl_cli/command/version_service.py index 3f5d705d..03ae7726 100644 --- a/src/cpl_cli/command/version_service.py +++ b/src/cpl_cli/command/version_service.py @@ -5,6 +5,7 @@ import pkg_resources import textwrap import cpl_cli +from cpl_cli.helper.dependencies import Dependencies from cpl_core.console.console import Console from cpl_core.console.foreground_color_enum import ForegroundColorEnum from cpl_cli.command_abc import CommandABC @@ -31,16 +32,6 @@ class VersionService(CommandABC): :param args: :return: """ - packages = [] - cpl_packages = [] - dependencies = dict(tuple(str(ws).split()) for ws in pkg_resources.working_set) - for p in dependencies: - if str(p).startswith('cpl-'): - cpl_packages.append([p, dependencies[p]]) - continue - - packages.append([p, dependencies[p]]) - Console.set_foreground_color(ForegroundColorEnum.yellow) Console.banner('CPL CLI') Console.set_foreground_color(ForegroundColorEnum.default) @@ -52,6 +43,6 @@ class VersionService(CommandABC): Console.write(f'{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}') Console.write_line(f'OS: {platform.system()} {platform.processor()}') Console.write_line('\nCPL packages:') - Console.table(['Name', 'Version'], cpl_packages) + Console.table(['Name', 'Version'], Dependencies.get_cpl_packages()) Console.write_line('\nPython packages:') - Console.table(['Name', 'Version'], packages) + Console.table(['Name', 'Version'], Dependencies.get_packages()) diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/cpl_cli/helper/dependencies.py b/src/cpl_cli/helper/dependencies.py new file mode 100644 index 00000000..80d7cf44 --- /dev/null +++ b/src/cpl_cli/helper/dependencies.py @@ -0,0 +1,22 @@ +import pkg_resources + + +class Dependencies: + _packages = [] + _cpl_packages = [] + + _dependencies = dict(tuple(str(ws).split()) for ws in pkg_resources.working_set) + for p in _dependencies: + if str(p).startswith('cpl-'): + _cpl_packages.append([p, _dependencies[p]]) + continue + + _packages.append([p, _dependencies[p]]) + + @classmethod + def get_cpl_packages(cls) -> list[list]: + return cls._cpl_packages + + @classmethod + def get_packages(cls) -> list[list]: + return cls._packages diff --git a/src/cpl_discord/.cpl/__init__.py b/src/cpl_discord/.cpl/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/cpl_discord/.cpl/schematic_command.py b/src/cpl_discord/.cpl/schematic_command.py new file mode 100644 index 00000000..e120aa72 --- /dev/null +++ b/src/cpl_discord/.cpl/schematic_command.py @@ -0,0 +1,44 @@ +import textwrap + +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class Command(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + code = """\ + from cpl_core.logging import LoggerABC + from cpl_discord.command import DiscordCommandABC + from cpl_discord.service import DiscordBotServiceABC + from discord.ext import commands + from discord.ext.commands import Context + + + class $Name(DiscordCommandABC): + + def __init__( + self, + logger: LoggerABC, + bot: DiscordBotServiceABC + ): + DiscordCommandABC.__init__(self) + + self._logger = logger + self._bot = bot + + @commands.hybrid_command() + async def ping(self, ctx: Context): + await ctx.send('Pong') + """ + return self.build_code_str(code, Name=self._class_name) + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'command', + [] + ) diff --git a/src/cpl_discord/.cpl/schematic_event.py b/src/cpl_discord/.cpl/schematic_event.py new file mode 100644 index 00000000..28e2aa85 --- /dev/null +++ b/src/cpl_discord/.cpl/schematic_event.py @@ -0,0 +1,63 @@ +import sys +import textwrap + +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC +from cpl_core.console import Console +from cpl_core.utils import String + + +class Command(GenerateSchematicABC): + + def __init__(self, name: str, schematic: str, path: str): + GenerateSchematicABC.__init__(self, name, schematic, path) + + event = None + + from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum + for event_type in DiscordEventTypesEnum: + event_name = event_type.value.__name__.replace("ABC", '') + + if event_name in name: + name = name.replace(event_name, "") + event = event_name + break + + if event is None: + Console.error(f'No valid event found in name {name}') + sys.exit() + + self._event_class = f'{event}ABC' + self._name = f'{String.convert_to_snake_case(name)}_{String.convert_to_snake_case(self._event_class.replace("ABC", ""))}_{schematic}.py' + self._class_name = f'{String.first_to_upper(name)}{self._event_class.replace("ABC", "")}{String.first_to_upper(schematic)}' + + def get_code(self) -> str: + code = """\ + from cpl_core.logging import LoggerABC + from cpl_discord.events import $EventClass + from cpl_discord.service import DiscordBotServiceABC + + + class $Name($EventClass): + + def __init__( + self, + logger: LoggerABC, + bot: DiscordBotServiceABC, + ): + OnReadyABC.__init__(self) + + self._logger = logger + self._bot = bot + + async def on_ready(self): + pass + """ + return self.build_code_str(code, Name=self._class_name, EventClass=self._event_class) + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'event', + [] + ) diff --git a/src/cpl_discord/events/on_group_join_abc.py b/src/cpl_discord/events/on_group_join_abc.py index e0b3aaaf..70fffbb7 100644 --- a/src/cpl_discord/events/on_group_join_abc.py +++ b/src/cpl_discord/events/on_group_join_abc.py @@ -9,4 +9,4 @@ class OnGroupJoinABC(ABC): @abstractmethod async def on_group_join( - self, chhanel: discord.GroupChannel, user: discord.User): pass + self, channel: discord.GroupChannel, user: discord.User): pass diff --git a/tests/custom/general/src/general/__init__.py b/tests/custom/general/src/general/__init__.py new file mode 100644 index 00000000..425ab6c1 --- /dev/null +++ b/tests/custom/general/src/general/__init__.py @@ -0,0 +1 @@ +# imports -- 2.49.1 From 604bb8f55c86168fa3352162ac1d4d7f05c33941 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 8 Dec 2022 11:02:54 +0100 Subject: [PATCH 009/124] Updated discord test app #143 --- .../discord/src/discord_bot/__init__.py | 25 +++++++++++++++++++ .../discord/src/discord_bot/discord-bot.json | 8 +++--- tests/custom/discord/src/discord_bot/main.py | 8 +++--- .../custom/discord/src/discord_bot/startup.py | 3 ++- .../src/modules/hello_world/__init__.py | 25 +++++++++++++++++++ .../src/modules/hello_world/hello-world.json | 8 +++--- 6 files changed, 65 insertions(+), 12 deletions(-) diff --git a/tests/custom/discord/src/discord_bot/__init__.py b/tests/custom/discord/src/discord_bot/__init__.py index ad5eca30..b91b4151 100644 --- a/tests/custom/discord/src/discord_bot/__init__.py +++ b/tests/custom/discord/src/discord_bot/__init__.py @@ -1 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +discord-bot +~~~~~~~~~~~~~~~~~~~ + + + +:copyright: (c) +:license: + +""" + +__title__ = 'discord_bot' +__author__ = '' +__license__ = '' +__copyright__ = 'Copyright (c) ' +__version__ = '0.0.0' + +from collections import namedtuple + + # imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='0', minor='0', micro='0') diff --git a/tests/custom/discord/src/discord_bot/discord-bot.json b/tests/custom/discord/src/discord_bot/discord-bot.json index c543ea19..4a1b4bb2 100644 --- a/tests/custom/discord/src/discord_bot/discord-bot.json +++ b/tests/custom/discord/src/discord_bot/discord-bot.json @@ -16,10 +16,10 @@ "LicenseName": "", "LicenseDescription": "", "Dependencies": [ - "cpl-core>=2022.7.0" + "cpl-core==2022.12.0" ], "DevDependencies": [ - "cpl-cli>=2022.7.0" + "cpl-cli==2022.12.0" ], "PythonVersion": ">=3.10.4", "PythonPath": {}, @@ -39,6 +39,8 @@ "*/tests" ], "PackageData": {}, - "ProjectReferences": [] + "ProjectReferences": [ + "../modules/hello_world/hello-world.json" + ] } } \ No newline at end of file diff --git a/tests/custom/discord/src/discord_bot/main.py b/tests/custom/discord/src/discord_bot/main.py index 669645fe..bb67168b 100644 --- a/tests/custom/discord/src/discord_bot/main.py +++ b/tests/custom/discord/src/discord_bot/main.py @@ -7,7 +7,7 @@ from discord_bot.application import Application from discord_bot.startup import Startup -class Main: +class Program: def __init__(self): self._app: Optional[Application] = None @@ -23,8 +23,8 @@ class Main: if __name__ == '__main__': - main = Main() + program = Program() try: - asyncio.run(main.main()) + asyncio.run(program.main()) except KeyboardInterrupt: - asyncio.run(main.stop()) + asyncio.run(program.stop()) diff --git a/tests/custom/discord/src/discord_bot/startup.py b/tests/custom/discord/src/discord_bot/startup.py index 11599cb2..5108e27c 100644 --- a/tests/custom/discord/src/discord_bot/startup.py +++ b/tests/custom/discord/src/discord_bot/startup.py @@ -1,5 +1,6 @@ from cpl_core.application import StartupABC from cpl_core.configuration import ConfigurationABC +from cpl_core.console import Console from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC from cpl_core.environment import ApplicationEnvironment from cpl_discord import get_discord_collection @@ -16,7 +17,7 @@ class Startup(StartupABC): StartupABC.__init__(self) def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: - configuration.add_json_file('appsettings.json', optional=True) + configuration.add_json_file('appsettings.json', optional=False) configuration.add_environment_variables('CPL_') configuration.add_environment_variables('DISCORD_') diff --git a/tests/custom/discord/src/modules/hello_world/__init__.py b/tests/custom/discord/src/modules/hello_world/__init__.py index ad5eca30..c576f0a0 100644 --- a/tests/custom/discord/src/modules/hello_world/__init__.py +++ b/tests/custom/discord/src/modules/hello_world/__init__.py @@ -1 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +discord-bot +~~~~~~~~~~~~~~~~~~~ + + + +:copyright: (c) +:license: + +""" + +__title__ = 'modules.hello_world' +__author__ = '' +__license__ = '' +__copyright__ = 'Copyright (c) ' +__version__ = '0.0.0' + +from collections import namedtuple + + # imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='0', minor='0', micro='0') diff --git a/tests/custom/discord/src/modules/hello_world/hello-world.json b/tests/custom/discord/src/modules/hello_world/hello-world.json index f5dd8fcc..459a531b 100644 --- a/tests/custom/discord/src/modules/hello_world/hello-world.json +++ b/tests/custom/discord/src/modules/hello_world/hello-world.json @@ -16,10 +16,10 @@ "LicenseName": "", "LicenseDescription": "", "Dependencies": [ - "cpl-core>=2022.7.0" + "cpl-core==2022.12.0" ], "DevDependencies": [ - "cpl-cli>=2022.7.0.post1" + "cpl-cli==2022.12.0" ], "PythonVersion": ">=3.10.4", "PythonPath": {}, @@ -29,8 +29,8 @@ "ProjectType": "library", "SourcePath": "", "OutputPath": "../../dist", - "Main": "hello_world.main", - "EntryPoint": "hello-world", + "Main": "", + "EntryPoint": "", "IncludePackageData": false, "Included": [], "Excluded": [ -- 2.49.1 From 59920c59e033ccf4cfbfce452944bd354f1fc6d7 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 8 Dec 2022 12:14:58 +0100 Subject: [PATCH 010/124] Added cpl g & n discord support #143 --- src/cpl_cli/command/generate_service.py | 7 +++ src/cpl_cli/command/new_service.py | 62 +++++++++---------- src/cpl_cli/startup_argument_extension.py | 3 - src/cpl_discord/.cpl/project_discord_bot.py | 54 ++++++++++++++++ src/cpl_discord/.cpl/project_file_discord.py | 14 +++++ .../.cpl/project_file_discord_appsettings.py | 34 ++++++++++ .../project_file_discord_code_application.py | 53 ++++++++++++++++ .../.cpl/project_file_discord_code_main.py | 47 ++++++++++++++ .../.cpl/project_file_discord_code_startup.py | 47 ++++++++++++++ .../.cpl/project_file_discord_license.py | 11 ++++ .../.cpl/project_file_discord_readme.py | 11 ++++ ...ommand.py => schematic_discord_command.py} | 0 ...ic_event.py => schematic_discord_event.py} | 12 +++- .../.cpl/schematic_discord_init.py | 24 +++++++ 14 files changed, 342 insertions(+), 37 deletions(-) create mode 100644 src/cpl_discord/.cpl/project_discord_bot.py create mode 100644 src/cpl_discord/.cpl/project_file_discord.py create mode 100644 src/cpl_discord/.cpl/project_file_discord_appsettings.py create mode 100644 src/cpl_discord/.cpl/project_file_discord_code_application.py create mode 100644 src/cpl_discord/.cpl/project_file_discord_code_main.py create mode 100644 src/cpl_discord/.cpl/project_file_discord_code_startup.py create mode 100644 src/cpl_discord/.cpl/project_file_discord_license.py create mode 100644 src/cpl_discord/.cpl/project_file_discord_readme.py rename src/cpl_discord/.cpl/{schematic_command.py => schematic_discord_command.py} (100%) rename src/cpl_discord/.cpl/{schematic_event.py => schematic_discord_event.py} (73%) create mode 100644 src/cpl_discord/.cpl/schematic_discord_init.py diff --git a/src/cpl_cli/command/generate_service.py b/src/cpl_cli/command/generate_service.py index a615f095..fa511a58 100644 --- a/src/cpl_cli/command/generate_service.py +++ b/src/cpl_cli/command/generate_service.py @@ -44,7 +44,14 @@ class GenerateService(CommandABC): if len(GenerateSchematicABC.__subclasses__()) == 0: Console.error(f'No schematics found in template directory: .cpl') sys.exit() + + known_schematics = [] for schematic in GenerateSchematicABC.__subclasses__(): + if schematic.__name__ in known_schematics: + Console.error(f'Duplicate of schematic {schematic.__name__} found!') + sys.exit() + + known_schematics.append(schematic.__name__) schematic.register() self._schematics = SchematicCollection.get_schematics() diff --git a/src/cpl_cli/command/new_service.py b/src/cpl_cli/command/new_service.py index 32c27def..eef6e8d4 100644 --- a/src/cpl_cli/command/new_service.py +++ b/src/cpl_cli/command/new_service.py @@ -1,3 +1,4 @@ +import importlib import os import sys import textwrap @@ -18,6 +19,7 @@ from cpl_cli.configuration.project_type_enum import ProjectTypeEnum from cpl_cli.configuration.venv_helper_service import VenvHelper from cpl_cli.configuration.version_settings_name_enum import VersionSettingsNameEnum from cpl_cli.configuration.workspace_settings import WorkspaceSettings +from cpl_cli.helper.dependencies import Dependencies from cpl_cli.source_creator.template_builder import TemplateBuilder from cpl_core.configuration.configuration_abc import ConfigurationABC from cpl_core.console.console import Console @@ -103,9 +105,9 @@ class NewService(CommandABC): self._project.from_dict(self._project_dict) - def _create_build_settings(self, project_type: ProjectTypeEnum): + def _create_build_settings(self, project_type: str): self._build_dict = { - BuildSettingsNameEnum.project_type.value: project_type.value, + BuildSettingsNameEnum.project_type.value: project_type, BuildSettingsNameEnum.source_path.value: '', BuildSettingsNameEnum.output_path.value: '../../dist', BuildSettingsNameEnum.main.value: f'{String.convert_to_snake_case(self._project.name)}.main', @@ -209,14 +211,35 @@ class NewService(CommandABC): Console.error(str(e), traceback.format_exc()) sys.exit(-1) - def _create_project(self, project_type: ProjectTypeEnum): - self._read_custom_project_types_from_path(self._env.runtime_directory) + def _create_project(self, project_type: str): + for package_name in Dependencies.get_cpl_packages(): + package = importlib.import_module(String.convert_to_snake_case(package_name[0])) + self._read_custom_project_types_from_path(os.path.dirname(package.__file__)) + self._read_custom_project_types_from_path(self._env.working_directory) if len(ProjectTypeABC.__subclasses__()) == 0: Console.error(f'No project types found in template directory: .cpl') sys.exit() + project_class = None + known_project_types = [] + for p in ProjectTypeABC.__subclasses__(): + if p.__name__ in known_project_types: + Console.error(f'Duplicate of project type {p.__name__} found!') + sys.exit() + + known_project_types.append(p.__name__) + if p.__name__.lower() != project_type and p.__name__.lower()[0] != project_type[0]: + continue + + project_class = p + + if project_class is None: + Console.error(f'Project type {project_type} not found in template directory: .cpl/') + sys.exit() + + project_type = String.convert_to_snake_case(project_class.__name__) self._create_project_settings() self._create_build_settings(project_type) self._create_project_json() @@ -229,17 +252,6 @@ class NewService(CommandABC): if self._rel_path != '': project_name = f'{self._rel_path}/{project_name}' - project_class = None - for p in ProjectTypeABC.__subclasses__(): - if p.__name__.lower() != project_type.value and p.__name__.lower()[0] != project_type.value[0]: - continue - - project_class = p - - if project_class is None: - Console.error(f'Project type {project_type.value} not found in template directory: .cpl/') - sys.exit() - base = 'src/' split_project_name = project_name.split('/') if self._use_base and len(split_project_name) > 0: @@ -336,22 +348,10 @@ class NewService(CommandABC): self._use_base = True args.remove('base') - console = self._config.get_configuration(ProjectTypeEnum.console.value) - library = self._config.get_configuration(ProjectTypeEnum.library.value) - unittest = self._config.get_configuration(ProjectTypeEnum.unittest.value) - if console is not None and library is None and unittest is None: - self._name = console - self._create_project(ProjectTypeEnum.console) - - elif console is None and library is not None and unittest is None: - self._name = library - self._create_project(ProjectTypeEnum.library) - - elif console is None and library is None and unittest is not None: - self._name = unittest - self._create_project(ProjectTypeEnum.unittest) - - else: + if len(args) <= 1: Console.error(f'Project type not found') Console.write_line(self.help_message) return + + self._name = args[1] + self._create_project(args[0]) diff --git a/src/cpl_cli/startup_argument_extension.py b/src/cpl_cli/startup_argument_extension.py index 835a9b67..07de63dd 100644 --- a/src/cpl_cli/startup_argument_extension.py +++ b/src/cpl_cli/startup_argument_extension.py @@ -38,9 +38,6 @@ class StartupArgumentExtension(StartupExtensionABC): .add_console_argument(ArgumentTypeEnum.Flag, '--', 'cpl-exp', ['ce', 'CE']) \ .add_console_argument(ArgumentTypeEnum.Flag, '--', 'cpl-dev', ['cd', 'CD']) config.create_console_argument(ArgumentTypeEnum.Executable, '', 'new', ['n', 'N'], NewService, True) \ - .add_console_argument(ArgumentTypeEnum.Variable, '', 'console', ['c', 'C'], ' ') \ - .add_console_argument(ArgumentTypeEnum.Variable, '', 'library', ['l', 'L'], ' ') \ - .add_console_argument(ArgumentTypeEnum.Variable, '', 'unittest', ['ut', 'UT'], ' ') \ .add_console_argument(ArgumentTypeEnum.Flag, '--', 'async', ['a', 'A']) \ .add_console_argument(ArgumentTypeEnum.Flag, '--', 'application-base', ['ab', 'AB']) \ .add_console_argument(ArgumentTypeEnum.Flag, '--', 'startup', ['s', 'S']) \ diff --git a/src/cpl_discord/.cpl/project_discord_bot.py b/src/cpl_discord/.cpl/project_discord_bot.py new file mode 100644 index 00000000..e78d5d8d --- /dev/null +++ b/src/cpl_discord/.cpl/project_discord_bot.py @@ -0,0 +1,54 @@ +import os + +from cpl_cli.abc.project_type_abc import ProjectTypeABC +from cpl_cli.configuration import WorkspaceSettings +from cpl_core.utils import String + + +class DiscordBot(ProjectTypeABC): + + def __init__( + self, + base_path: str, + project_name: str, + workspace: WorkspaceSettings, + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + project_file_data: dict, + ): + from project_file_discord import DiscordBotProjectFile + from project_file_discord_appsettings import DiscordBotProjectFileAppsettings + from project_file_discord_code_application import DiscordBotProjectFileApplication + from project_file_discord_code_main import DiscordBotProjectFileMain + from project_file_discord_code_startup import DiscordBotProjectFileStartup + from project_file_discord_readme import DiscordBotProjectFileReadme + from project_file_discord_license import DiscordBotProjectFileLicense + from schematic_discord_init import DiscordBotInit + from schematic_discord_event import Event + from schematic_discord_command import Command + + use_application_api, use_startup, use_service_providing, use_async = True, True, True, True + + ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data) + + project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/' + + self.add_template(DiscordBotProjectFile(project_name.split('/')[-1], project_path, project_file_data)) + if workspace is None: + self.add_template(DiscordBotProjectFileLicense('')) + self.add_template(DiscordBotProjectFileReadme('')) + self.add_template(DiscordBotInit('', 'init', f'{base_path}tests/')) + + self.add_template(DiscordBotInit('', 'init', project_path)) + self.add_template(DiscordBotProjectFileAppsettings(project_path)) + + self.add_template(DiscordBotInit('', 'init', f'{project_path}events/')) + self.add_template(Event('OnReady', 'event', f'{project_path}events/')) + self.add_template(DiscordBotInit('', 'init', f'{project_path}commands/')) + self.add_template(Command('Ping', 'command', f'{project_path}commands/')) + + self.add_template(DiscordBotProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) + self.add_template(DiscordBotProjectFileStartup(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) + self.add_template(DiscordBotProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) diff --git a/src/cpl_discord/.cpl/project_file_discord.py b/src/cpl_discord/.cpl/project_file_discord.py new file mode 100644 index 00000000..1027c949 --- /dev/null +++ b/src/cpl_discord/.cpl/project_file_discord.py @@ -0,0 +1,14 @@ +import json + +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class DiscordBotProjectFile(FileTemplateABC): + + def __init__(self, name: str, path: str, code: dict): + FileTemplateABC.__init__(self, '', path, '{}') + self._name = f'{name}.json' + self._code = code + + def get_code(self) -> str: + return json.dumps(self._code, indent=2) diff --git a/src/cpl_discord/.cpl/project_file_discord_appsettings.py b/src/cpl_discord/.cpl/project_file_discord_appsettings.py new file mode 100644 index 00000000..cf0c29ad --- /dev/null +++ b/src/cpl_discord/.cpl/project_file_discord_appsettings.py @@ -0,0 +1,34 @@ +import textwrap + +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class DiscordBotProjectFileAppsettings(FileTemplateABC): + + def __init__(self, path: str): + FileTemplateABC.__init__(self, '', path, '{}') + self._name = 'appsettings.json' + + def get_code(self) -> str: + return textwrap.dedent("""\ + { + "TimeFormatSettings": { + "DateFormat": "%Y-%m-%d", + "TimeFormat": "%H:%M:%S", + "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", + "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" + }, + + "LoggingSettings": { + "Path": "logs/", + "Filename": "log_$start_time.log", + "ConsoleLogLevel": "ERROR", + "FileLogLevel": "WARN" + }, + + "DiscordBotSettings": { + "Token": "", + "Prefix": "!bot " + } + } + """) diff --git a/src/cpl_discord/.cpl/project_file_discord_code_application.py b/src/cpl_discord/.cpl/project_file_discord_code_application.py new file mode 100644 index 00000000..dbdd4f23 --- /dev/null +++ b/src/cpl_discord/.cpl/project_file_discord_code_application.py @@ -0,0 +1,53 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class DiscordBotProjectFileApplication(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'application', path, '', use_application_api, use_startup, use_service_providing, use_async) + + def get_code(self) -> str: + import textwrap + + return textwrap.dedent("""\ + from cpl_core.application import ApplicationABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.console import Console + from cpl_core.dependency_injection import ServiceProviderABC + from cpl_core.logging import LoggerABC + from cpl_discord.application.discord_bot_application_abc import DiscordBotApplicationABC + from cpl_discord.configuration.discord_bot_settings import DiscordBotSettings + from cpl_discord.service.discord_bot_service import DiscordBotService + from cpl_discord.service.discord_bot_service_abc import DiscordBotServiceABC + + + class Application(DiscordBotApplicationABC): + + def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): + ApplicationABC.__init__(self, config, services) + + self._bot: DiscordBotServiceABC = services.get_service(DiscordBotServiceABC) + self._logger: LoggerABC = services.get_service(LoggerABC) + self._bot_settings: DiscordBotSettings = config.get_configuration(DiscordBotSettings) + + async def configure(self): + pass + + async def main(self): + try: + self._logger.debug(__name__, f'Starting...\\n') + self._logger.trace(__name__, f'Try to start {DiscordBotService.__name__}') + await self._bot.start_async() + except Exception as e: + self._logger.error(__name__, 'Start failed', e) + + async def stop_async(self): + try: + self._logger.trace(__name__, f'Try to stop {DiscordBotService.__name__}') + await self._bot.close() + self._logger.trace(__name__, f'Stopped {DiscordBotService.__name__}') + except Exception as e: + self._logger.error(__name__, 'stop failed', e) + + Console.write_line() + """) diff --git a/src/cpl_discord/.cpl/project_file_discord_code_main.py b/src/cpl_discord/.cpl/project_file_discord_code_main.py new file mode 100644 index 00000000..e99183ce --- /dev/null +++ b/src/cpl_discord/.cpl/project_file_discord_code_main.py @@ -0,0 +1,47 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC +from cpl_core.utils import String + + +class DiscordBotProjectFileMain(CodeFileTemplateABC): + + def __init__(self, name: str, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'main', path, '', use_application_api, use_startup, use_service_providing, use_async) + + import textwrap + + import_pkg = f'{String.convert_to_snake_case(name)}.' + + self._main_with_application_host_and_startup = textwrap.dedent(f"""\ + import asyncio + from typing import Optional + + from cpl_core.application import ApplicationBuilder, ApplicationABC + from {import_pkg}application import Application + from {import_pkg}startup import Startup + + + class Program: + + def __init__(self): + self._app: Optional[Application] = None + + async def main(self): + app_builder = ApplicationBuilder(Application) + app_builder.use_startup(Startup) + self._app: ApplicationABC = await app_builder.build_async() + await self._app.run_async() + + async def stop(self): + await self._app.stop_async() + + + if __name__ == '__main__': + program = Program() + try: + asyncio.run(program.main()) + except KeyboardInterrupt: + asyncio.run(program.stop()) + """) + + def get_code(self) -> str: + return self._main_with_application_host_and_startup diff --git a/src/cpl_discord/.cpl/project_file_discord_code_startup.py b/src/cpl_discord/.cpl/project_file_discord_code_startup.py new file mode 100644 index 00000000..885aea67 --- /dev/null +++ b/src/cpl_discord/.cpl/project_file_discord_code_startup.py @@ -0,0 +1,47 @@ +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC +from cpl_core.utils import String + + +class DiscordBotProjectFileStartup(CodeFileTemplateABC): + + def __init__(self, project_name: str, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'startup', path, '', use_application_api, use_startup, use_service_providing, use_async) + self._project_name = project_name + + def get_code(self) -> str: + import textwrap + + import_pkg = f'{String.convert_to_snake_case(self._project_name)}.' + + return textwrap.dedent(f"""\ + from cpl_core.application import StartupABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC + from cpl_core.environment import ApplicationEnvironment + from cpl_discord import get_discord_collection + from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum + from {import_pkg}commands.ping_command import PingCommand + from {import_pkg}events.on_ready_event import OnReadyEvent + + + class Startup(StartupABC): + + def __init__(self): + StartupABC.__init__(self) + + def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: + configuration.add_json_file('appsettings.json', optional=False) + configuration.add_environment_variables('CPL_') + configuration.add_environment_variables('DISCORD_') + + return configuration + + def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: + services.add_logging() + services.add_discord() + dc_collection = get_discord_collection(services) + dc_collection.add_event(DiscordEventTypesEnum.on_ready.value, OnReadyEvent) + dc_collection.add_command(PingCommand) + + return services.build_service_provider() + """) diff --git a/src/cpl_discord/.cpl/project_file_discord_license.py b/src/cpl_discord/.cpl/project_file_discord_license.py new file mode 100644 index 00000000..4592aba0 --- /dev/null +++ b/src/cpl_discord/.cpl/project_file_discord_license.py @@ -0,0 +1,11 @@ +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class DiscordBotProjectFileLicense(FileTemplateABC): + + def __init__(self, path: str): + FileTemplateABC.__init__(self, '', path, '') + self._name = 'LICENSE' + + def get_code(self) -> str: + return self._code diff --git a/src/cpl_discord/.cpl/project_file_discord_readme.py b/src/cpl_discord/.cpl/project_file_discord_readme.py new file mode 100644 index 00000000..e3dceea1 --- /dev/null +++ b/src/cpl_discord/.cpl/project_file_discord_readme.py @@ -0,0 +1,11 @@ +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class DiscordBotProjectFileReadme(FileTemplateABC): + + def __init__(self, path: str): + FileTemplateABC.__init__(self, '', path, '') + self._name = 'README.md' + + def get_code(self) -> str: + return self._code diff --git a/src/cpl_discord/.cpl/schematic_command.py b/src/cpl_discord/.cpl/schematic_discord_command.py similarity index 100% rename from src/cpl_discord/.cpl/schematic_command.py rename to src/cpl_discord/.cpl/schematic_discord_command.py diff --git a/src/cpl_discord/.cpl/schematic_event.py b/src/cpl_discord/.cpl/schematic_discord_event.py similarity index 73% rename from src/cpl_discord/.cpl/schematic_event.py rename to src/cpl_discord/.cpl/schematic_discord_event.py index 28e2aa85..43f08354 100644 --- a/src/cpl_discord/.cpl/schematic_event.py +++ b/src/cpl_discord/.cpl/schematic_discord_event.py @@ -6,7 +6,7 @@ from cpl_core.console import Console from cpl_core.utils import String -class Command(GenerateSchematicABC): +class Event(GenerateSchematicABC): def __init__(self, name: str, schematic: str, path: str): GenerateSchematicABC.__init__(self, name, schematic, path) @@ -24,11 +24,17 @@ class Command(GenerateSchematicABC): if event is None: Console.error(f'No valid event found in name {name}') + Console.write_line('Available events:') + for event_type in DiscordEventTypesEnum: + Console.write_line(f'\t{event_type.value.__name__.replace("ABC", "")}') sys.exit() self._event_class = f'{event}ABC' - self._name = f'{String.convert_to_snake_case(name)}_{String.convert_to_snake_case(self._event_class.replace("ABC", ""))}_{schematic}.py' - self._class_name = f'{String.first_to_upper(name)}{self._event_class.replace("ABC", "")}{String.first_to_upper(schematic)}' + self._name = f'{String.convert_to_snake_case(self._event_class.replace("ABC", ""))}_{schematic}.py' + self._class_name = f'{self._event_class.replace("ABC", "")}{String.first_to_upper(schematic)}' + if name != '': + self._name = f'{String.convert_to_snake_case(name)}_{self._name}' + self._class_name = f'{String.first_to_upper(name)}{self._class_name}' def get_code(self) -> str: code = """\ diff --git a/src/cpl_discord/.cpl/schematic_discord_init.py b/src/cpl_discord/.cpl/schematic_discord_init.py new file mode 100644 index 00000000..8b7ce010 --- /dev/null +++ b/src/cpl_discord/.cpl/schematic_discord_init.py @@ -0,0 +1,24 @@ +import textwrap + +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class DiscordBotInit(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + self._name = f'__init__.py' + + def get_code(self) -> str: + code = """\ + # imports + """ + return self.build_code_str(code, Name=self._class_name) + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'init', + [] + ) -- 2.49.1 From e46711dc547c65ebf1537b0d831cb5ba0373492e Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 8 Dec 2022 14:23:46 +0100 Subject: [PATCH 011/124] Added unittests #143 --- unittests/unittests_cli/generate_test_case.py | 26 ++++++++++++++----- unittests/unittests_cli/new_test_case.py | 24 +++++++++++++++++ 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/unittests/unittests_cli/generate_test_case.py b/unittests/unittests_cli/generate_test_case.py index 16bb382b..64fa4302 100644 --- a/unittests/unittests_cli/generate_test_case.py +++ b/unittests/unittests_cli/generate_test_case.py @@ -9,6 +9,7 @@ from unittests_shared.cli_commands import CLICommands class GenerateTestCase(CommandTestCase): _project = 'test-console' _t_path = 'test' + _skip_tear_down = True @classmethod def setUpClass(cls): @@ -19,29 +20,32 @@ class GenerateTestCase(CommandTestCase): os.chdir(PLAYGROUND_PATH) def _test_file(self, schematic: str, suffix: str, path=None): - file = 'GeneratedFile' - expected_path = f'generated_file{suffix}.py' + file = f'GeneratedFile{"OnReady" if schematic == "event" else ""}' + expected_path = f'generated_file{"_on_ready" if schematic == "event" else ""}{suffix}.py' + if path is not None: file = f'{path}/{file}' expected_path = f'{path}/{expected_path}' + CLICommands.generate(schematic, file) file_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, expected_path)) file_exists = os.path.exists(file_path) self.assertTrue(file_exists) def _test_file_with_project(self, schematic: str, suffix: str, path=None, enter=True): - file = f'GeneratedFile' - excepted_path = f'generated_file{suffix}.py' + file = f'GeneratedFile{"OnReady" if schematic == "event" else ""}' + excepted_path = f'generated_file{"_on_ready" if schematic == "event" else ""}{suffix}.py' if path is not None: - excepted_path = f'{self._project}/src/{String.convert_to_snake_case(self._project)}/{path}/generated_file_in_project{suffix}.py' + excepted_path = f'{self._project}/src/{String.convert_to_snake_case(self._project)}/{path}/generated_file_in_project{"_on_ready" if schematic == "event" else ""}{suffix}.py' if enter: os.chdir(path) - excepted_path = f'{path}/src/{String.convert_to_snake_case(self._project)}/generated_file_in_project{suffix}.py' + excepted_path = f'{path}/src/{String.convert_to_snake_case(self._project)}/generated_file_in_project{"_on_ready" if schematic == "event" else ""}{suffix}.py' - file = f'{path}/GeneratedFileInProject' + file = f'{path}/GeneratedFileInProject{"OnReady" if schematic == "event" else ""}' CLICommands.generate(schematic, file) file_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, excepted_path)) + print(file_path) self.assertTrue(os.path.exists(file_path)) def test_abc(self): @@ -88,3 +92,11 @@ class GenerateTestCase(CommandTestCase): def test_validator(self): self._test_file('validator', '_validator') self._test_file_with_project('validator', '_validator', path=self._project) + + def test_discord_command(self): + self._test_file('command', '_command') + self._test_file_with_project('command', '_command', path=self._project) + + def test_discord_event(self): + self._test_file('event', '_event') + self._test_file_with_project('event', '_event', path=self._project) diff --git a/unittests/unittests_cli/new_test_case.py b/unittests/unittests_cli/new_test_case.py index 22c830f3..80ff154d 100644 --- a/unittests/unittests_cli/new_test_case.py +++ b/unittests/unittests_cli/new_test_case.py @@ -52,6 +52,15 @@ class NewTestCase(CommandTestCase): else: self.assertFalse(os.path.isfile(os.path.join(project_path, f'test_case.py'))) + if project_type == 'discord-bot': + self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/__init__.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/__init__.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) + else: + self.assertFalse(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) + self.assertFalse(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) + def _test_sub_project(self, project_type: str, name: str, workspace_name: str, *args, test_venv=False): os.chdir(os.path.abspath(os.path.join(os.getcwd(), workspace_name))) CLICommands.new(project_type, name, *args) @@ -72,6 +81,15 @@ class NewTestCase(CommandTestCase): self.assertTrue(os.path.exists(project_path)) self.assertTrue(os.path.join(project_path, f'{name}.json')) + if project_type == 'discord-bot': + self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/__init__.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/__init__.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) + else: + self.assertFalse(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) + self.assertFalse(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) + def _test_sub_directory_project(self, project_type: str, directory: str, name: str, workspace_name: str, *args): os.chdir(os.path.abspath(os.path.join(os.getcwd(), workspace_name))) CLICommands.new(project_type, f'{directory}/{name}', *args) @@ -117,6 +135,12 @@ class NewTestCase(CommandTestCase): def test_console_sub_with_other_base(self): self._test_sub_project('console', 'tools/test-sub-console', 'test-console', '--ab', '--s', '--sp', '--venv', '--base', test_venv=True) + def test_discord_bot(self): + self._test_project('discord-bot', 'test-bot', '--ab', '--s', '--venv', test_venv=True) + + def test_discord_bot_sub(self): + self._test_sub_project('discord-bot', 'test-bot-sub', 'test-console', '--ab', '--s', '--venv', test_venv=True) + def test_library(self): self._test_project('library', 'test-library', '--ab', '--s', '--sp') -- 2.49.1 From 6f3099a8db24ae335814542d3c30d8d192a0d41d Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 8 Dec 2022 15:29:48 +0100 Subject: [PATCH 012/124] Updated packages & improved docs #143 --- docs/build/doctrees/cli.generate.doctree | Bin 21443 -> 23619 bytes docs/build/doctrees/cli.new.doctree | Bin 19666 -> 20076 bytes .../doctrees/cpl_core.configuration.doctree | Bin 165504 -> 158508 bytes .../build/doctrees/cpl_discord.events.doctree | Bin 308142 -> 308142 bytes docs/build/doctrees/cpl_query.base.doctree | Bin 208470 -> 179814 bytes .../doctrees/cpl_query.enumerable.doctree | Bin 21864 -> 19690 bytes .../build/doctrees/cpl_query.iterable.doctree | Bin 32376 -> 35914 bytes docs/build/doctrees/environment.pickle | Bin 543750 -> 543088 bytes .../doctrees/tutorials.appsettings.doctree | Bin 3020 -> 3016 bytes .../tutorials.console-arguments.doctree | Bin 3034 -> 3030 bytes docs/build/doctrees/tutorials.console.doctree | Bin 3040 -> 3036 bytes .../doctrees/tutorials.create-startup.doctree | Bin 3015 -> 3011 bytes docs/build/doctrees/tutorials.doctree | Bin 2968 -> 2996 bytes .../tutorials.extend-application.doctree | Bin 3011 -> 3007 bytes .../doctrees/tutorials.extend-startup.doctree | Bin 2991 -> 2987 bytes docs/build/doctrees/tutorials.logging.doctree | Bin 3000 -> 2996 bytes docs/build/doctrees/tutorials.mail.doctree | Bin 2965 -> 2961 bytes .../doctrees/tutorials.templating.doctree | Bin 0 -> 21264 bytes docs/build/html/_sources/cli.generate.md.txt | 26 +- docs/build/html/_sources/cli.new.md.txt | 2 + .../_sources/tutorials.appsettings.md.txt | 2 +- .../tutorials.console-arguments.md.txt | 2 +- .../html/_sources/tutorials.console.md.txt | 2 +- .../_sources/tutorials.create-startup.md.txt | 2 +- .../tutorials.extend-application.md.txt | 2 +- .../_sources/tutorials.extend-startup.md.txt | 2 +- .../html/_sources/tutorials.logging.md.txt | 2 +- .../build/html/_sources/tutorials.mail.md.txt | 2 +- docs/build/html/_sources/tutorials.rst.txt | 3 +- .../html/_sources/tutorials.templating.md.txt | 181 +++++++++++ docs/build/html/cli.generate.html | 9 + docs/build/html/cli.new.html | 1 + docs/build/html/contributing.html | 4 +- docs/build/html/cpl_core.configuration.html | 12 +- docs/build/html/cpl_discord.events.html | 2 +- docs/build/html/cpl_query.base.html | 94 +----- docs/build/html/cpl_query.enumerable.html | 6 - docs/build/html/cpl_query.html | 4 +- docs/build/html/cpl_query.iterable.html | 17 +- docs/build/html/genindex.html | 58 +--- docs/build/html/getting_started.html | 23 +- docs/build/html/modules.html | 27 +- docs/build/html/objects.inv | Bin 7181 -> 7110 bytes docs/build/html/py-modindex.html | 10 - docs/build/html/searchindex.js | 2 +- docs/build/html/tutorials.appsettings.html | 7 +- .../html/tutorials.console-arguments.html | 7 +- docs/build/html/tutorials.console.html | 7 +- docs/build/html/tutorials.create-startup.html | 7 +- .../html/tutorials.extend-application.html | 7 +- docs/build/html/tutorials.extend-startup.html | 7 +- docs/build/html/tutorials.html | 24 +- docs/build/html/tutorials.logging.html | 7 +- docs/build/html/tutorials.mail.html | 11 +- docs/build/html/tutorials.templating.html | 304 ++++++++++++++++++ docs/source/cli.generate.md | 26 +- docs/source/cli.new.md | 2 + docs/source/tutorials.appsettings.md | 2 +- docs/source/tutorials.console-arguments.md | 2 +- docs/source/tutorials.console.md | 2 +- docs/source/tutorials.create-startup.md | 2 +- docs/source/tutorials.extend-application.md | 2 +- docs/source/tutorials.extend-startup.md | 2 +- docs/source/tutorials.logging.md | 2 +- docs/source/tutorials.mail.md | 2 +- docs/source/tutorials.rst | 3 +- docs/source/tutorials.templating.md | 181 +++++++++++ src/cpl_cli/.cpl/project_console.py | 2 - src/cpl_cli/.cpl/schematic_enum.py | 10 +- src/cpl_core/configuration/configuration.py | 2 +- .../configuration/configuration_abc.py | 2 +- src/cpl_core/cpl-core.json | 25 +- src/cpl_core/{typing.py => type.py} | 0 src/cpl_core/utils/pip.py | 2 +- tools/set_pip_urls/set-pip-urls.json | 2 +- tools/set_version/set-version.json | 8 +- 76 files changed, 878 insertions(+), 288 deletions(-) create mode 100644 docs/build/doctrees/tutorials.templating.doctree create mode 100644 docs/build/html/_sources/tutorials.templating.md.txt create mode 100644 docs/build/html/tutorials.templating.html create mode 100644 docs/source/tutorials.templating.md rename src/cpl_core/{typing.py => type.py} (100%) diff --git a/docs/build/doctrees/cli.generate.doctree b/docs/build/doctrees/cli.generate.doctree index bd1c7d8ba4e8a16785ea9460071d10516ebb95e0..f088d0e205813a0370638f9b02601263c0a5a328 100644 GIT binary patch literal 23619 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 delta 3960 zcmb7`ZEO@p7{{5pw>>Oyy>eX3wf92lL2rA#yVe#96iWmuEgS-h9toPF*kv0*i)SQ( zR5b93M8b1IFhNTyf`}yb#E@uA1gpjmkP?Y8N>Xx83gi zpXdL3X6BhWcLtq1hFq_>-Z-;%*wyBTA1V&uG7M-=+FPO2C=E(T^}@;NyF;__q)Fr@ zMt@Z+4)!hFJt@CYt%DVT1>=2}gdTnl>_=;%BbY&tKzTd@(U>ok)q;1A4ZaF`W>$kQ zm_jPk^b$=J-cEp!Y>A;qbUM)n+ux+?^Nh#u;A? zzlMFN2zSFWzGZ3P7tO#85m4YB7q}sgdvvTLBkI286(o;uK?YYkD5#HvR&vnkaA&rR z$^pev!t+$em}RjFMr*d=76&X2rco0a9D%pek^dFYsV+gTwoJZ~CGQgPynIThlEI0_ zdj@pEy67|l`D`?UcbM{2ambfhp1cvV-wKj=F80Qnk^hkXHLHZPWM35F@3VxT#8%qY$&Kvw)0G#CC&v*Z_#<|zBlsDWAT0I*u=(tFg#Z#Jqjf= zc%>6!?Tw<^U1Ob;+EgzSJVOOxEQ1n^bK?RmF`s3#8#v?6LiDU z!Zppp6+NP0AENAHLl2JiWaJE{{Dd=+O5t*sv13I!=M=cwB;(00<1Bhy7A=c*p!#$z zZgkPMg=MNRO{1+!=fqu>7M3v!59tBLR`Zb2rN%W5=hIE)gfrii#CcPa80UO}CD~%) z?6c$SZ%*R<8t3b}Eis?AsuJfZOA9BMg=2a^!Pz$v&W~Ft=hrPs{Jkm3EY5j}CAnzg zykN&U(wfA7Yn*@RwgjiGs>JDc(e4T<@R@`mc^8j(Ci#sg9Q*Qpi&n;@-awp7RLhn{xOEUO1Q>Hkl9ndoE zFwt(eqwQXr!Gjv@VcnaURa;ew_ESp_XEYC|^@xIY`$TA=a|R(j(K!#_G-a8?Nv~^J zu9`?M+mQ}GJP$i1wu2E2cbhKEwxSYfR5C6tVWC=LjjBon6r7hCr?}${0y%BP{Vq;k zWcaskikIKY$Hl1W7HUj~pGc zjy&>vy<2*o+w|i0=QnMmw^Efx$TD@7DYHzKWr}QGiP14Mfl|hzD@iT%HJYi6CGgTz NG`8w5-dev7{Rgjh75e}H diff --git a/docs/build/doctrees/cli.new.doctree b/docs/build/doctrees/cli.new.doctree index 449ea977000f906d8c53b913daaa063093297031..3dcb91910437eec7c060baa8bb6c5ea8cc903d59 100644 GIT binary patch delta 3884 zcmbuCdu&rx9LIak?Q6u7jMxzNKU>13}gt!O46*bIv`t>s@c?0N%b%(>D_jL)={tep_DLxvG^Ifs-o_LIpruHNgeSH5wLX1U| zd~&cqwug@l^3j1`N!;g>vx@&}f7TffFi2f+duSAb&}5m6k-OA#p_MMrmb$ z=;eGzKnJn0C1@5Z1xJRjR0NwD)96Z5Wk6&LSW&;Z1c|0=&>v>| zVW~iTts4$W7JDHI*Zc2kakj__4@(w@s6}2n209S1qe+)G?=dOrHp*b!BHb-TSBjm5 zJMc~I^bC<{7bTRs5)&utA=*CA1251Cn9nAlluf_{MEy=XJf}!)TrIWs(kH+a`k-_j zyh*&_T+7Pf4Pt9Y2`&#M%C^suJx^gL=!Ahs1;s}AqoNQh{vAM%ZdvMJ1xKVZleC1R zq=g(Qsa&9OC>O}h3Unr$UA;cnD$Ed_C$8vbe{tw)ZjU7<~Nzp$`X|e*-IU^v8I&+^mG9Z4CJnIJljR?O76Dv z=%%9pGyd)H!M_xY3mM}dl<{{3p&$sQf)^Co+_{r2b9FSh>cjUo0WK@ z%$$15A>JJC?@7FTVJ&!?R%sY{d~Uh#4rPa(*6!P6c`w4{=R2L@J%jNm-lWl;67G^;`h4IL=5Uxq*79mt!O!c+at9_d(>bS>&NoZ9 zfS+kPQ<>?Ulhcu9Jf7_!w~XmNrooD3+}h9%?n9q1n&B(H%0R7oqhJP*KCPlt66Zzuokln3jjNI1hg(gGh z#?i@;=Njn7@qR<*s%A8(2zAxUP0($idpL(7b6GPQWSPp%VO;*ajI7~C@q;EK>$jcg zqX4gLx7CbjJ<_%L!J@IYwh92kW1Xwk0`St<@zuX^e0`IAh~m8Xzw#jTnL&eoEh$7_ zw_EwkBmsPgN<~KIKb08hiY8L=q_eLlp2BCsQSk~|(6N}i&I}&uuz|}c)lpyeDK^V# z@B=#EVc##}*Wxa6`5vG0#Ba%EIbNE?7IImO+lSarE)g&Ny5H-mowadssc delta 3463 zcmbuCe@t6d6vw%@Ek6|G*9sf`U16oPr4%eheyr_4$t>$Klj-J$f*bMeIetVSMA0~+ zW=qE6*y$E=gk_N}7;(;EVq(-~B*tXPGF@V_sGB5Hvp6+jQ!{@gdhdPrb?>EpLGceR z+;`tO=X1XO_PocBQ|QtpGVC=R`LyF*Lw^yJuDS@;;sW@_W{2CwM(`L%O-7uNA(+G> z`pYcn1dHGmtg(#YC&dytXKY&TJX?;3fi)#CQ1U!(!|=JS21UVE>Nka@?9Hj!Bd}yP z!;LyW-p&H>R(!a*W!Zoot9^J-3K*aPImrqT4OM41O7%jtcy>_Q6cIF^v59QlV~H0M zm4ZRY6tX%Km0|?WIqdf|4?R23v#zVFD?zV9b#WNoP>+FhB!!f2|PSPt>(VPUe44n>SR|WfAc{v5rl{{iI8+_<;WZz9M zSYt-`&h-u|hY6oAoKN;9uAxIOS%PShOYT&E1;xUYOO<5qAa`=^1bH~iCeI~uzMjvW zH0SjxIYlj-TVTmugSHUp0Df4nbn>Ruy2*)!_OO86dW8cw>6uWeLlyrGl5uY}D>(J|@vbRX&L&?T9KB|XqXB7rj2Zyve2>Ujp_gM$;DLXjCI*@0@ z!PMyVB2vDWswv-V)ph7=6`!5+U6%O1Q1M+#tw0sFz?8oV{m%G)Q}SI>DSS}caeoHs zt_m*KB>h=SYgyNdMpC6)sOU@xF7o5621icY~I@rmN z{f7VL;8q^avZZlwn)83{U@E@5&W(0bYUpY;;4XvG#ht0O@3{E6WYCC#I60d?Njo7D z^2=l3F_um?avIeCX5_6wYLwn!9hxP@eTCe|Yq`=h2Ik`vsvf4bdKjpG6n&EHVL{o$ zH0?pQ^0Cwe+E)G`WFv%MhBlxdl!Pu$_`O7UO+~nvT0m0yRzok!g6{hRNDqHEt&n)TAK_$nlgzg3puEFn4KT{@K!x4lum^O1xbw!;6M% z3EEINgwCkYsyNylLwi$&c1jCvG_oCCU})!+Xs1?&cFy61i_tuScO@D?H&u8Zj`uUe zyP?9nu7!7X{T7^`Mc>A8ZkFO%b)E6a@5;xh8?*T!Z6zCza*jr*)0df}(60Ks3?COTMV0n=b3=En%_@kLUDt_x8|#0S4(m2O`Z7XVGyM8D~*( m77-s79P}PqK*(j;1)r4qDy`(sr@84H56dn3=Swy|g8l*9Ta|GD diff --git a/docs/build/doctrees/cpl_core.configuration.doctree b/docs/build/doctrees/cpl_core.configuration.doctree index ef32c21da33a9288f9358e666e44776708cc366c..d725a0f371a28ae3e5e5dea1cc2df40f7c68e106 100644 GIT binary patch literal 158508 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
  • SM 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 CFJD9e diff --git a/docs/build/doctrees/cpl_discord.events.doctree b/docs/build/doctrees/cpl_discord.events.doctree index 00bf809b93e88d36e385b81af1f5f4226e29f5e6..a06155489455682155b3bdbed0ee1c66742db9df 100644 GIT binary patch delta 65 zcmZ4YTxi{Mp$+e5Pk(ZsNnrE8*}=?AiFuPh%(j`_KVN*hyZ|G|bR!*R`N``at2cj{ V-~MGjBM>tIG4u8>^I3KY0{|c(A5Z`Q delta 42 wcmZ4YTxi{Mp$+e5Gi4-h{xCa{d2;Ty#m!&lw||+>2*gZ4%)I@}e3o6p0QM3V(*OVf diff --git a/docs/build/doctrees/cpl_query.base.doctree b/docs/build/doctrees/cpl_query.base.doctree index 3d440b8e8a88eb4f170b615dd1b45d34edd78476..2d7ab57a1d7297cfafe9677c17990858aa6d824e 100644 GIT binary patch delta 6106 zcma)=eQ;FO6~Oo1&5~X6tx1GrvrB>o60>mwkzKOcC1GfT2E$kD3}7fp++lr{1Ohu# zs=?3>t<^Z7yKoyB8Fj?gD$vxS8QTQy1hj)ju>)cW+Dx1(RD*S3K)!qLeS7b|bKk3x zKeFteyT9ML=bZaqUOqaV{`s}ZDc!c6mcA5!uTmWg_Le&;mxnh*!|iQhe5?ExrG3oVL;{@Yfe?5sfdrXFJNEO^N`O8dbtQP*<((2vktRV|TeUGbTb zlID0%VcYtLJtVWv&7RhljbYEmM4FzK*0y*{%Npb|V+=-HW{V=w7rC;v2{(+NC}M) z%9BHADH`zMPlr%H8ua15Bd7rP9Y!Vg0kS;e>WRm;9$yyA&YX`sj-a~4l3MzeuaBTH z@s;tnQ3?65Kj$4ZqU5lQ@_9z8*VkYFE_z%+ll`%r*Q!#SYN~(NFj|8O{IU8|rH(0n zqM{$-r-#u>Wb@x93^sqXmF4n-S(% zRj(hf{s0wGRM!U*>L(oafIzu#v)+r=0n`J2Ja`QGioIk}&!mkV(ayGTT&=c|cPS4) z)E2!Z=gXu#nU5U5yjUk92++Gd%{ z+eR}~a_~1D$c?*)k)3znG8bo@M7|I#_~OZig0oq%rI8nQa8$a4oE@nHN(EP!2{qk| zQe#w?O{h+^;s2KD>SaRBcHNd#^XAYMq?ThDqB-rSv|2uON~+}+PJKjB*@k+I zRJsCEZ;WWvqSF%fcbxi?pt4*KCaJtbFU`fxpBOsyOqO|v;@KnztwVH)Nr#Sc^{`O0 z4Si}<4^OCeXa|LeoT^dnfG0<}%+(i#nw^}~8hSzE&7nb3#+n?_oI|6mjIkU4FrIm( z1aFO^GTd!d9Ax6%HGJaP5%K~u4MK9$n2s!`+X%=D1)1f%f{}TX7S`Z>pBb)OowpjA z6myN5>|qlyZ4f55hhG5Gh6zoHo@gd{PtO60^ z-v-nnL1pfjlP`Zb__C8#Xd>!2!M)!^%A4Toe!zM=j^?o?OZMqac- zLYEj137Qh1w@flmc>yp_r2+k|GcPcaRewH=R;f9to?Ao0%J#aLS^4>(K~llM6w#N} z<5~qj%u$TPg;Y*mE2yk5KLb=6gw%8A^i(<57^m(KRF>-tph7zW_`d%d&c)BC8v25_ z7n|iiz%6eG3(Nf|u)Hy$CDDh3Mc&K5xn&Gm&I8L>0Ixf5n6a}3hP{wNI#q8WdC_K! zE-{(0%-Y0^rPYENbJpr-EUgw_zhJO#B6R6DB4+(-(n^<@Sbf}DEv&3>KVViqV>C#n z;bx(jvG*@((=dJ!o>H`i1DgeqwWu8cX^;Td6baz!Z#7`ow-WF-9QZ2;!~jTx1o*N` z0MA|4fEiaL;Ga0~00h1TfHX*eRc-;?a#aI9cU1z8aNx%R$ZB|&0r@@Q<68X5HACkH z+~%EYDkgeuUg#2&&ZPts^P&X7yxbDh&x;bA$g0048Ljf!@NjE6v<85+JczH~H0<>P z*^}9n9xD-hrAtiqdOx==7gko`2Z42Y5bsf}KKje`NyS>^w$Wdao$AZC3w-W$Q~YBb z|ER#TnSBc2A5G%dTE7b~*X;KkzgOT{_J3x0e#U5!4BVnS#K7H5v9gCJm(2>F!#?D| z_XUvU`!4{bK?vMFNdxYmBmu8*;3WZM8QMeoS-KR&=Tf!$&afv7FmtA;Z|MxP`YO}0 zvX4A}ug|mQJEn!ev{nJbw2(0LJHE>xl~`G%Gu#6WD}mvj5Y9}~_Rx@)G&GcnJy_^} zjZZRBouLyNehCbnA-pF&F@@<#!~NyLFlcVrqciM=hSz{$cL-NzYKFC$NkjNfVR(O(Va*~v%Au+A5|_ICd0=>E%%kJU4-gHKdGD%V2S}22RU~DJzZu{I<0e}|^SNxE zkg>C{gvqiJ&+{}$WPbd@WyOs!(e*6}Jqd89V_RgbB=rf0olHpzo0}0SC5MTATg{_HeKF delta 15904 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 UM-_0yFTF#4-zbq!`yp%pe=di{m;e9( diff --git a/docs/build/doctrees/cpl_query.enumerable.doctree b/docs/build/doctrees/cpl_query.enumerable.doctree index db8a26cb658f0aca56a6f09fbeff73f0aa1605c0..4af22b0d00ced14f12e03ae0f48307e1e59b44f6 100644 GIT binary patch delta 625 zcmaE{it*JYk_sLsq_e}n2Z$7!pN@TK&Lo}oHTnX)o4Om4TToBY&Kd9ty!#$*GhlS~P$lm9x)Ocr;pWy)lotSD^^5;^T` z0Fmfrs(}k0bkUrwV8hK6%R2eH%WTfYK+`g0vKE5mb@=B)cymCMT$ae>Ypy9un?W4* z*eO}_m>3u|8>iGx(a2!Uf{A8`^=MC?=%hWl+J&EK2iO+Itw4v$PZkK_oGfR<$;t{e zej`}qfEx?vdYBE954tD`&w^S6qU60nDyPF#a!iG&oCFi#oB$C3I((PA@#H8Q7tuFB zk*q^NXJx$wu?~Y-lQ-L_PQGL$H+j7@+vI)^7qMS(Rlnh?ezR_V=^@L^XtbH#=L@qt z4;xTBCx|!&GUGUiU;%L%fkbH!XI^4%YDr~5YB9+7Ss>MZV3mGgReq%zN+5C0$xZ=5 z9F;)X47r|3lkM!2Cik-&Ox6n&5eAu)brxjoYYpns)yC4 zt&&cC@G($yl*0t))HG%a)xE2d$!IRL|Xk@JsVMHi?37eEyk+zKQHONyp+z z65ijtcVpMU@TpibOWKWiDwQ-Xszt2;y>6birukRNc{Yv`e$=z6`6KJJ1yjwhNdo1} zW=VXJY@B{wELKs9#V(Qm7h{0lEm~DOw1BH1B93XRoOeQ1PG2MVJ9JnxJ#w7_S}-Vu zh2qtqP{j5Gr9(pDb9s8}6o-SOds@PY4A}+#F4W~&Iboa#+h~_7REzOkCfsy+;Y{uJ zG9C@@?bhM*RSx$V+2JVQ z$u%A(8DlgV8#6K~L#&#S7&SJvb!8UyMecR;sz_BT`~>B zuLC<4r<)X6TITtx;7YSDEy11Ue=3&NQ&F9*z=M_%=}`&KF8H9ePkJc${BfIRvY*l0 z%SwY#gPTXFflFQ;wb(5M&ea`)(YC!6E5a;5--at~zsXxvINRZcx%O$a!pYgHg)LfbYkz%DmJzB5|%i}Mr!z%}CYH-FmXEHHCtRW}wo*l70 O6<&IszdXzyJo*GxUG@L~ diff --git a/docs/build/doctrees/cpl_query.iterable.doctree b/docs/build/doctrees/cpl_query.iterable.doctree index 38b30928e5c908af0366cb8cbf775257e88fce5d..56087112b67c9e5b4c4d6795f19ee3494d79d7e4 100644 GIT binary patch delta 3406 zcma)8eQZhY0LFg7WWG){;DbSX5%!RF*r71~lnfDT5dO=A?Qbz0l4AQg$N`#k49Kife; z+CR_N=l<^RoO^!voO}QNFLw6(-28<3d&`o?%&*=LgKG{$#WE)>)Joy%{oSk(dIRNf zq|?nE7P!#)Q=Htx=AqFIh4Wn8Yk`~oTJ{xba0jGeTX8K5p}|kHH@a4^wQ@GlvIyE1 z1o#>Y9B!X!te)?_7p^TR;1y(b!=YJrr*K%NP1DLXljas~V8L%V-DId}Wm=g~E%3_1 zQYi2K!j|ggBO}qF&6UFu5$%gt#)m88TC`GHVsbdpKN@dHY1WM?&6WH=(NCuKrgo=l zG_%-GPRqnoGWd~hms80_vCjfmO6r^#OcMSFL9MmXm>&dGKw| z95}yfIsZp4uZTDD`c7V6kLRL24bQFqI`cvAgFdKSP!FP{9)8@ih*iU(_6j&K-C8WX zR=NL4i&$_bKVpH#h3jA-=!65U)19Y@RM+MhX;TZoZQZAI=!?VX!0$MkgS4g(KUlBSi0|p--q4Gw{*<@d^$5ip2Tpy>PfSV6!C8~ zdEi>N)$m9xJqW2~8wd!Wwp)3t6<&|s=Qx(13slbaD!R~>J3%9<+zBf*gzn+uX!=mc zO~x+4!OpL;3+eNnKE^)6So9kB&?;--wlt7jXh6BRS%H&P_puM*)2?PdTY-apHJIx` zK2ymS03tI&vFkGPc>X=&0_|2m|JP_(5l%#+S|uGz&&HHEV>JXQ-5wnr-VseDv^s4I zR*R07bus~eUH1dEMUk0VMb7JB4`$}9B$SY5xUl}`e3JsN)z5*a7kdk~A{t%~l=DFa z_BNM8tf8LwQ?PDW+EmKN6eucbfd4dDcnArbJkAUmr5R~ZK7*bt8^GM%tfuq`zMGA} zSVZ!DhsZsKejA8F>Sthx=4*uU@pTd^6>L^WLFYt%mf(7Dq3b02(j`1aBPro2g(NhI zvsO6V5wHdHjP>-!;pxy~>{~_tItZ_^n8@;Z=pObGEdTNgWGO&P3L3SlUeD@ybbD`P zAi6vlYRImy>FFQZ9NpPe**_Hb$tF{yz39s{kEEK#8T}{ElI<~?1vhwwlHKI^9VJSN zp3KIuhhmWOYrn`++w&ajiilBkK^5{0@q3g^hl@!TY;gH3eFX9GO%h23!rI}rnBVzcR!K~mtd9wF zq}Rte8p--Nr|R`_8I#=+Nc%VZfw4c!?a`h8feLMp+;V+D5$X-;77Z!;VlJ%jX=f(5 zIPQaA_r&>s^;F>9;WO@zsn+E+vMZ`=WFK$xI&@l@_xIu8U>Q8SYdWmx{pE}ro8cPI zBe@-c!pLsch;Fl2M~w~Mip-x1YU%qXTX6@JdJJ|#=T*5A>9X2}QkTN)&7(>``70A! zXi;HQ{}Z7fx44Q2Vsn4VIQ_#ng&4sGWE7Vew?Rj=g*~3{>@gc$jQR{mB5 z_&FP#*Zk}jN)CvG@|+ZWqVp3&m+nVFLbQgQN(tf6CR= z1#a8qMW@>7qN9Jk-Y@dm_RLLJ4=nxHHn5cI{8j}(a>yB@F`n_WpGx!IL=+-xPZ4QZ~f?DX2~^jdp*VyMW(llJu0ZJ(J| z#b~CFJ}=V??I-kkg#JE^pF~m}>K%;6$48>0^cEC^4ohTMqQVKyL-sy9%-OMq|Hcjj zJ6^6-Vep??(oD?cH`Umv6XyYK6PAXGCG{t-WN>?dSoRF2KtAhsn!B~JO~R;-YXj#Vh0(ld~t hA1rljv=y*qmkNK{U0O|@Vk(E#x#NjNHuv$a{{a=?6#W1I delta 2401 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 GV*dvSA*vk! literal 543750 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�jO%3y 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�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%0Dk6whprL2NymtpVSm8HAi4ys; zG#AN;`RtE0n{+8pv%z{ODVQxXm-?yZ^IcU4uyFr;0?Fix0OPzo?W#zs7~@mxp96uz zNj>dUIn{Qs3pLY5EDCc~d6BivN)8ZpC?V(-~TWvpZCFgb5csU*+wk~k&^t|g)Sep4F9 zKtpUVssd4%u7+7OVF-*3D@oAawUo>Q%X`Nu;KpD!A;?aNLfF(&kM~HjX(rDl|>vqOmR5< znoi%v^&Qr9J=ZRS!=s7kBUKE?uw9o5*CJqM`55WA<2uGSAACJM5CUYBpEOBH9>FO; zZIY5d>>xYt)s&8#(E1g3^>AGzFT%Q_RR%MMXkwgar5x*GH%8Y)wDrJPIg*^eM;tfJp?t^sM zaHECd%5}zw<4|5j&tf^wx9bVV+WBe`L^(`VmhQ3Yl*)xQl*&eIeVrBdn5{DYqclH7?gQ{!r`Qut zs=!z+KsPqlubsWb;X=+)o_NLskE5s29KZ*Mi_Z%*oSxtcCIRm;&kZozBk>Zu_u(G?OyE-nz z!zn=G@K$=rR*!(Ystf51EE#iD%KQkz>v(9J=`K2+$WV`%i9+(SSf^7|%Ij8#P**OS z4o4FvAV?yoYdZ&*z;O+$!3XKHTn-03 z(4TQ$yYGyamiXfMVtQ(wT!p{RT!?RV5jyltCwh}W$1(H)flg!S;|6WPImJwd?hMWDAc^lXC;MBN`UG$qg%8TyJqk2uR|jrRmPk)cE8+hr!**$f?P z(0^bnv@>+RKvy#KDuW)tbMIv6dVxN|(0dHJ4bR=k&?g1@0z+Rg=q^0>U54%!=w}Qa zvj9%0_!XUd)Y(o;o+Qwz44oy=nG9Vn&;<3@jiE;x^e+d&4%7 zTEx&R1iFf$j|uc~hW^5!v@yaahW<{V&oJ~Qfo@^wn*!a+&>aHZ&d}Wg-Nn$)1o{a> z2Q0O1MK#*b(BT3d0K1u)8O2co9m>$-1bR3_PZH=jhRzh|2@IVp(CG|aBG6MAdZ|EX zF|##a#gnx=^6F`<+2A7AWojXV6Z8;;v@~ z%?K2?^fG9#Kyf!KgMLe(xX+V8ZxSf(cx2GK1d5yd81x~5;>I@y{h2^I2x{!gHo<807j7ud{n zE+*_6bgV!z;nbja3lvid47ypM_$=3;TMTMHxiskO0>!6^2K}o+>3I@99y913gHqTX zpBNc*pFr_>jzP!3Eq8T(MPUPsxEu6Xfnu=Qpl1jaV~7S_E>Miw*l01{KEI_{8h{y# z7%bQb!GLSa)r0v$6c3hKdve+CY!5yp$iso^k4ghmk&ajjk4!2J?v7=u*$X#Zg#4vp z`JQ+pvkIbwoe@YrDvb;~qEkz9*;SPgLFWTIei>wjmlz7vcGnb$$_9H)3HoQ)+3fE1l@G*XD*x7J*&3)VZy6fiXg zzo&cixQc$JE74sp9ZBDMB9J7Q!`*G*U??4dq{-6oh0!H+cy{HdWCry6He9JCn@LA< zE5gt;z2)`L6}r;a=aFDNOrN)(Q9~8(0GpMDL$Wj>`QA(cvqta6qoW|F9THHmW3a1m9BJ2u3|2Y^IiXD(9 zUH}Kf(IojRBp40{;n`3sk;aFcaC9@#q9qbty`XzFj1FWMtWz`{Da6BIs_aS_H)sf2 zR~qR&n(v9g=04)5QE-m}8fA3lr_pQ?njenOn3fpzNMjVv!1#krmHb2IbO6^iro^QL65$4j8>QW@Sp0;!Xz3>4N1F TGn9dnsheny<7fpzM^jVv!1C3&3lb8|EE(iMvH^Yf-;u*Xix5bFU6PG)9Gl;KH+$m)V+ U6El>7(yFmjdO+fv>zKSa0Xk?KdH?_b diff --git a/docs/build/doctrees/tutorials.console-arguments.doctree b/docs/build/doctrees/tutorials.console-arguments.doctree index 81a2d8387cd3c6651bc13851d3c924b2240dd4bc..ea98b3c6779d82f4e0badeebb54261a12d75ab90 100644 GIT binary patch delta 73 zcmca5eodUEfpzNXjVzxS#krmHb2IbO6^iro^QL65$4j8>Q=4VQj;!Xz3>4N1F TGn9dnsLiuOn#gIzW5Zn diff --git a/docs/build/doctrees/tutorials.console.doctree b/docs/build/doctrees/tutorials.console.doctree index af9aea73d06ea682dc275662568d379bc34f800f..c336c5140b45ed9c7475a0c6b9c58e289196f244 100644 GIT binary patch delta 73 zcmaDLen*_8fpzM|jVvD+#krmHb2IbO6^iro^QL65$4j8>Q=4DEh;!Xz3>4N1F TGn9dns7(yFmjdO+fv+nB;Q0Z$wo+5i9m diff --git a/docs/build/doctrees/tutorials.create-startup.doctree b/docs/build/doctrees/tutorials.create-startup.doctree index 9cc71581ec4f6839b60b3fa176ce78e49668dac3..e986753990ed01f9d64e284d70957bbfe6da4e69 100644 GIT binary patch delta 73 zcmX>uepsBPfpzMRjV#X@#krmHb2IbO6^iro^QL65$4j8>QW?@Q{;!Xz3>4N1F TGn9dnsseq5ZTfpzMhjV#X@C3&3lb8|EE(iMvH^Yf-;u*Xix5bFU6PG(|Cl;KH+$m)V+ U6El>7(yFmjdO+fvYnj|Q0X3u>WB>pF diff --git a/docs/build/doctrees/tutorials.doctree b/docs/build/doctrees/tutorials.doctree index f197f99f28676f8d9783e04f0fb28a8a0d7723ef..98870ee6d886c0ba45a9f3d14f806fe4d2d00fff 100644 GIT binary patch delta 90 zcmbOszD1m+fpzN2jVvFT#Ql0iN=i%ei!u{)iuFoTa|?13OEUA)Cx2p6W6B8FEWs?t t%-Fx#ob3a%OlC$}aSvx+Vs2_lWkG83l-em7nSR9?iaszF(ZBfpzMZjV#X@#krmHb2IbO6^iro^QL65$4j8>QW?@Q{;!Xz3>4N1F TGn9dns7(yFmjdO+fvYnhxl0Wv5XQ~&?~ diff --git a/docs/build/doctrees/tutorials.extend-startup.doctree b/docs/build/doctrees/tutorials.extend-startup.doctree index 1e8849257e99fe1c7c26d481ac0c6ce7c160a438..8623dd4f9617f2f76749ab30ca37d22656d0fdba 100644 GIT binary patch delta 73 zcmZ24zFM56fpzMFjV!kr#krmHb2IbO6^iro^QL65$4j8>Q{=t|i#hnb6(*?^V UW+($CRb!|00EIV~GFfo~0LkMTF#rGn delta 77 zcmZ22zFwTAfpzMVjV!krC3&3lb8|EE(iMvH^Yf-;u*Xix5bFU6PX5N2D8rKsk<|su VCT1uDrB!36^nk=S7cyCK0sug)8|wf7 diff --git a/docs/build/doctrees/tutorials.logging.doctree b/docs/build/doctrees/tutorials.logging.doctree index b48d37b53a01740daf207d41c3b7b656c1a73b78..76efdd338bfdc8c4820e2ea5ae696fb593f59d7a 100644 GIT binary patch delta 73 zcmdlXzD1m+fpzN2jVyN<#krmHb2IbO6^iro^QL65$4j8>Q{>hjq#hnb6(*?^V UW+($CRb!|00EIV~F*$Jp0MW4;R{#J2 delta 77 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 | -| ```class``` | Class | `````` | -| ```enum``` | Enum class | `````` | -| ```pipe``` | Pipe class | `````` | -| ```service``` | Service class | `````` | -| ```settings``` | [Configmodel](cpl_core.configuration) | `````` | -| ```test``` | Test class | `````` | -| ```thread``` | Thread class | `````` | -| ```validator``` | Validator class | `````` | +| Schematic | Description | Arguments | +|-----------------|:--------------------------------------:|:------------:| +| ```abc``` | Abstract base class | `````` | +| ```class``` | Class | `````` | +| ```enum``` | Enum class | `````` | +| ```pipe``` | Pipe class | `````` | +| ```service``` | Service class | `````` | +| ```settings``` | [Configmodel](cpl_core.configuration) | `````` | +| ```test``` | Test class | `````` | +| ```thread``` | Thread class | `````` | +| ```validator``` | Validator class | `````` | +| ```command``` | Discord bot command class | `````` | +| ```event``` | Discord bot event class | `````` | diff --git a/docs/build/html/_sources/cli.new.md.txt b/docs/build/html/_sources/cli.new.md.txt index f000dcd6..1301c1ad 100644 --- a/docs/build/html/_sources/cli.new.md.txt +++ b/docs/build/html/_sources/cli.new.md.txt @@ -16,6 +16,8 @@ cpl **N** *<type>* *<name>* Generates a workspace and initial project or add a project to workspace. +You can define custom project types by creating templates in a ```.cpl``` folder. + If the command is running in a CPL workspace, it will add the new project to the workspace. | Argument | Description | Value type | diff --git a/docs/build/html/_sources/tutorials.appsettings.md.txt b/docs/build/html/_sources/tutorials.appsettings.md.txt index ffe26cba..4eabffa2 100644 --- a/docs/build/html/_sources/tutorials.appsettings.md.txt +++ b/docs/build/html/_sources/tutorials.appsettings.md.txt @@ -1,3 +1,3 @@ # Using appsettings.json -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.console-arguments.md.txt b/docs/build/html/_sources/tutorials.console-arguments.md.txt index a0be2c0f..0a3b5a42 100644 --- a/docs/build/html/_sources/tutorials.console-arguments.md.txt +++ b/docs/build/html/_sources/tutorials.console-arguments.md.txt @@ -1,3 +1,3 @@ # Handle console arguments -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.console.md.txt b/docs/build/html/_sources/tutorials.console.md.txt index c7d22b99..fcbaaba1 100644 --- a/docs/build/html/_sources/tutorials.console.md.txt +++ b/docs/build/html/_sources/tutorials.console.md.txt @@ -1,3 +1,3 @@ # Use cpl_core.console.Console -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.create-startup.md.txt b/docs/build/html/_sources/tutorials.create-startup.md.txt index ee443126..028d072c 100644 --- a/docs/build/html/_sources/tutorials.create-startup.md.txt +++ b/docs/build/html/_sources/tutorials.create-startup.md.txt @@ -1,3 +1,3 @@ # Create startup class -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.extend-application.md.txt b/docs/build/html/_sources/tutorials.extend-application.md.txt index 3697cbc9..1eec6e9e 100644 --- a/docs/build/html/_sources/tutorials.extend-application.md.txt +++ b/docs/build/html/_sources/tutorials.extend-application.md.txt @@ -1,3 +1,3 @@ # Extend application -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.extend-startup.md.txt b/docs/build/html/_sources/tutorials.extend-startup.md.txt index 66e3e54f..98b90da4 100644 --- a/docs/build/html/_sources/tutorials.extend-startup.md.txt +++ b/docs/build/html/_sources/tutorials.extend-startup.md.txt @@ -1,3 +1,3 @@ # Extend startup -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.logging.md.txt b/docs/build/html/_sources/tutorials.logging.md.txt index c98020c5..660fbfe1 100644 --- a/docs/build/html/_sources/tutorials.logging.md.txt +++ b/docs/build/html/_sources/tutorials.logging.md.txt @@ -1,3 +1,3 @@ # Use builtin logger -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.mail.md.txt b/docs/build/html/_sources/tutorials.mail.md.txt index e7a2b778..7b6c9150 100644 --- a/docs/build/html/_sources/tutorials.mail.md.txt +++ b/docs/build/html/_sources/tutorials.mail.md.txt @@ -1,3 +1,3 @@ # Send mails -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.rst.txt b/docs/build/html/_sources/tutorials.rst.txt index f85e9b8c..b8fd6668 100644 --- a/docs/build/html/_sources/tutorials.rst.txt +++ b/docs/build/html/_sources/tutorials.rst.txt @@ -11,4 +11,5 @@ Tutorials tutorials.console-arguments tutorials.console tutorials.logging - tutorials.mail \ No newline at end of file + tutorials.mail + tutorials.templating \ No newline at end of file diff --git a/docs/build/html/_sources/tutorials.templating.md.txt b/docs/build/html/_sources/tutorials.templating.md.txt new file mode 100644 index 00000000..4530b17c --- /dev/null +++ b/docs/build/html/_sources/tutorials.templating.md.txt @@ -0,0 +1,181 @@ +# Using cpl g & cpl n templating + +## Contents + +- [Prerequisites](#prerequisites) +- [Generate schematics](#cpl-generate-scmatics) +- [Project types](#cpl-new-project-types) + +## Prerequisites + +Create a folder called ```.cpl``` + +## cpl generate schematics + +Create a file which begins with ```schematic_your_schematic.py```. +A schematic template is detected by starting with ```schematic_``` and endswith ```.py```. + +You should replace ```your_schematic``` with an appropriate name of your schematic. For example, we will choose ```Enum```. +Attention: It is important that you do not overwrite templates by creating a file or class with the same name. + +In the template create a class with the name of your schematic. For example: + +```python +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class Enum(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + import textwrap + code = textwrap.dedent("""\ + from enum import Enum + + + class $Name(Enum): + + atr = 0 + """) + return self.build_code_str(code, Name=self._class_name) + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'enum', + ['e', 'E'] + ) + +``` + +You can test it by calling ```cpl g --help``` your schematic should be listed as available. + +## cpl new project types + +The project templating is a little more complex and is therefore divided into several files. +First of all, for information, it is very important not to overwrite any existing files or classes! + +Template structure explained by the example of the internal type ```console```: + +``` +- project_console.py +- project_file_license.py +- project_file_appsettings.py +- project_file.py +- project_file_readme.py +- project_file_code_main.py +- project_file_code_startup.py +- project_file_code_application.py +``` + +Here the template ```project_console.py``` defines how a console project has to look like when it is generated. Here is the code to illustrate this: + +```python +from cpl_cli.abc.project_type_abc import ProjectTypeABC +from cpl_cli.configuration import WorkspaceSettings +from cpl_core.utils import String + + +class Console(ProjectTypeABC): + + def __init__( + self, + base_path: str, + project_name: str, + workspace: WorkspaceSettings, + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + project_file_data: dict, + ): + from project_file import ProjectFile + from project_file_appsettings import ProjectFileAppsettings + from project_file_code_application import ProjectFileApplication + from project_file_code_main import ProjectFileMain + from project_file_code_startup import ProjectFileStartup + from project_file_readme import ProjectFileReadme + from project_file_license import ProjectFileLicense + from schematic_init import Init + + ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data) + + project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/' + + self.add_template(ProjectFile(project_name.split('/')[-1], project_path, project_file_data)) + if workspace is None: + self.add_template(ProjectFileLicense('')) + self.add_template(ProjectFileReadme('')) + self.add_template(Init('', 'init', f'{base_path}tests/')) + + self.add_template(Init('', 'init', project_path)) + self.add_template(ProjectFileAppsettings(project_path)) + + if use_application_api: + self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + if use_startup: + self.add_template(ProjectFileStartup(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + self.add_template(ProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) +``` + +The class must be named exactly as the project type should be named. It is also checked on the initial letter of the class as alias. +Now create a class for normal files which inherits from ```FileTemplateABC``` and a class for code files which inherits from ```CodeFileTemplateABC```. + +For example: + +project_file_code_startup.py: +```python +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class ProjectFileStartup(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'startup', path, '', use_application_api, use_startup, use_service_providing, use_async) + + def get_code(self) -> str: + import textwrap + + return textwrap.dedent("""\ + from cpl_core.application import StartupABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC + from cpl_core.environment import ApplicationEnvironment + + + class Startup(StartupABC): + + def __init__(self): + StartupABC.__init__(self) + + def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: + return configuration + + def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: + return services.build_service_provider() + """) +``` + +project_file.py: + +```python +import json + +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class ProjectFile(FileTemplateABC): + + def __init__(self, name: str, path: str, code: dict): + FileTemplateABC.__init__(self, '', path, '{}') + self._name = f'{name}.json' + self._code = code + + def get_code(self) -> str: + return json.dumps(self._code, indent=2) +``` diff --git a/docs/build/html/cli.generate.html b/docs/build/html/cli.generate.html index 7356f273..e0f330eb 100644 --- a/docs/build/html/cli.generate.html +++ b/docs/build/html/cli.generate.html @@ -112,6 +112,7 @@ cpl G <schematic> <name>

    Description

    Generates files based on a schematic.

    +

    You can define custom schematics by creating templates in a .cpl folder.

    Arguments

    @@ -184,6 +185,14 @@ cpl G <schematic> <name>

    Validator class

    <name>

    +

    command

    +

    Discord bot command class

    +

    <name>

    + +

    event

    +

    Discord bot event class

    +

    <name>

    +
    diff --git a/docs/build/html/cli.new.html b/docs/build/html/cli.new.html index ed47b5ca..982eacc3 100644 --- a/docs/build/html/cli.new.html +++ b/docs/build/html/cli.new.html @@ -112,6 +112,7 @@ cpl N <type> <name>

    Description

    Generates a workspace and initial project or add a project to workspace.

    +

    You can define custom project types by creating templates in a .cpl folder.

    If the command is running in a CPL workspace, it will add the new project to the workspace.

    diff --git a/docs/build/html/contributing.html b/docs/build/html/contributing.html index 9ca2df3c..05c75b17 100644 --- a/docs/build/html/contributing.html +++ b/docs/build/html/contributing.html @@ -20,7 +20,7 @@ - + @@ -189,7 +189,7 @@ See - + diff --git a/docs/build/html/cpl_core.configuration.html b/docs/build/html/cpl_core.configuration.html index 4c1c0197..fed12943 100644 --- a/docs/build/html/cpl_core.configuration.html +++ b/docs/build/html/cpl_core.configuration.html @@ -104,13 +104,13 @@

    Bases: ConfigurationABC

    -add_configuration(key_type: Union[str, type], value: Union[str, ConfigurationModelABC])
    +add_configuration(key_type: Union[str, type], value: any)

    Add configuration object

    key_type: Union[str, type]

    Type of the value

    -
    value: Union[str, cpl_core.configuration.configuration_model_abc.ConfigurationModelABC]

    Object of the value

    +
    value: any

    Object of the value

    @@ -217,7 +217,7 @@
    -get_configuration(search_type: Union[str, Type[ConfigurationModelABC]]) Optional[Union[str, ConfigurationModelABC]]
    +get_configuration(search_type: Type[T]) Optional[T]

    Returns value from configuration by given type

    @@ -256,13 +256,13 @@

    Bases: ABC

    -abstract add_configuration(key_type: Union[str, type], value: Union[str, ConfigurationModelABC])
    +abstract add_configuration(key_type: Union[str, type], value: any)

    Add configuration object

    key_type: Union[str, type]

    Type of the value

    -
    value: Union[str, cpl_core.configuration.configuration_model_abc.ConfigurationModelABC]

    Object of the value

    +
    value: any

    Object of the value

    @@ -369,7 +369,7 @@
    -abstract get_configuration(search_type: Union[str, Type[ConfigurationModelABC]]) Union[str, ConfigurationModelABC]
    +abstract get_configuration(search_type: Union[str, Type[ConfigurationModelABC]]) Optional[T]

    Returns value from configuration by given type

    diff --git a/docs/build/html/cpl_discord.events.html b/docs/build/html/cpl_discord.events.html index 7633c306..962c25c9 100644 --- a/docs/build/html/cpl_discord.events.html +++ b/docs/build/html/cpl_discord.events.html @@ -244,7 +244,7 @@

    Bases: ABC

    -abstract async on_group_join(chhanel: GroupChannel, user: User)
    +abstract async on_group_join(channel: GroupChannel, user: User)
    diff --git a/docs/build/html/cpl_query.base.html b/docs/build/html/cpl_query.base.html index 2e00c6d8..c442a914 100644 --- a/docs/build/html/cpl_query.base.html +++ b/docs/build/html/cpl_query.base.html @@ -51,8 +51,8 @@
  • cpl_query.base.ordered_queryable
  • cpl_query.base.ordered_queryable_abc
  • cpl_query.base.queryable_abc
  • -
  • cpl_query.base.sequence_abc
  • -
  • cpl_query.base.sequence_values
  • +
  • cpl_query.base.sequence_abc
  • +
  • cpl_query.base.sequence_values
  • cpl_query.enumerable
  • @@ -170,7 +170,7 @@
    class cpl_query.base.queryable_abc.QueryableABC(t: Optional[type] = None, values: Optional[list] = None)
    -

    Bases: SequenceABC

    +

    Bases: Sequence

    all(_func: Optional[Callable] = None) bool
    @@ -603,91 +603,11 @@ Exception: when argument is None or found more than one element

    -
    -

    cpl_query.base.sequence_abc

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

    Bases: ABC

    -
    -
    -copy() SequenceABC
    -

    Creates a copy of sequence

    -
    -

    SequenceABC

    -
    -
    - -
    -
    -classmethod empty() SequenceABC
    -

    Returns an empty sequence

    -
    -

    Sequence object that contains no elements

    -
    -
    - -
    -
    -index(_object: object) int
    -

    Returns the index of given element

    -
    -

    Index of object

    -
    -
    -

    IndexError if object not in sequence

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

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

    -
    -
    -
    class
    -

    list

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

    cpl_query.base.sequence_abc

    -
    -

    cpl_query.base.sequence_values

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

    Bases: object

    -
    -
    -next()
    -
    - -
    -
    -reset()
    -
    - -
    - +
    +

    cpl_query.base.sequence_values

    diff --git a/docs/build/html/cpl_query.enumerable.html b/docs/build/html/cpl_query.enumerable.html index 36b65ec3..ee7f4347 100644 --- a/docs/build/html/cpl_query.enumerable.html +++ b/docs/build/html/cpl_query.enumerable.html @@ -103,12 +103,6 @@ class cpl_query.enumerable.enumerable_abc.EnumerableABC(t: Optional[type] = None, values: Optional[list] = None)

    Bases: QueryableABC

    ABC to define functions on list

    -
    -
    -set_remove_error_check(_value: bool)
    -

    Set flag to check if element exists before removing

    -
    -
    to_iterable() IterableABC
    diff --git a/docs/build/html/cpl_query.html b/docs/build/html/cpl_query.html index 7c9bdb8d..33dcf0a6 100644 --- a/docs/build/html/cpl_query.html +++ b/docs/build/html/cpl_query.html @@ -88,8 +88,8 @@
  • cpl_query.base.ordered_queryable
  • cpl_query.base.ordered_queryable_abc
  • cpl_query.base.queryable_abc
  • -
  • cpl_query.base.sequence_abc
  • -
  • cpl_query.base.sequence_values
  • +
  • cpl_query.base.sequence_abc
  • +
  • cpl_query.base.sequence_values
  • cpl_query.enumerable
      diff --git a/docs/build/html/cpl_query.iterable.html b/docs/build/html/cpl_query.iterable.html index 98c321c0..c9b0ec82 100644 --- a/docs/build/html/cpl_query.iterable.html +++ b/docs/build/html/cpl_query.iterable.html @@ -119,7 +119,8 @@ Parameter
      append(_object: object)
      -
      +

      Append object to the end of the list.

      +
  • @@ -149,6 +150,20 @@ Parameter
    +
    +
    +remove_at(_index: int)
    +

    Removes element from list +Parameter +———

    +
    +
    +
    _object: object

    value

    +
    +
    +
    +
    +
    to_enumerable() EnumerableABC
    diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index a0918e35..829e9e55 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -388,8 +388,6 @@
  • convert_to_camel_case() (cpl_core.utils.string.String static method)
  • convert_to_snake_case() (cpl_core.utils.string.String static method) -
  • -
  • copy() (cpl_query.base.sequence_abc.SequenceABC method)
  • count() (cpl_query.base.queryable_abc.QueryableABC method)
  • @@ -1275,20 +1273,6 @@ -
  • - cpl_query.base.sequence_abc - -
  • -
  • - cpl_query.base.sequence_values - -
  • @@ -1527,8 +1511,6 @@
  • EMailClientSettingsNameEnum (class in cpl_core.mailing.email_client_settings_name_enum)
  • emojis (cpl_discord.container.guild.Guild attribute) -
  • -
  • empty() (cpl_query.base.sequence_abc.SequenceABC class method)
  • enable() (cpl_core.console.console.Console class method)
  • @@ -1775,19 +1757,17 @@
  • implementation (cpl_core.dependency_injection.service_descriptor.ServiceDescriptor property) -
  • -
  • index() (cpl_query.base.sequence_abc.SequenceABC method)
  • INFO (cpl_core.logging.logging_level_enum.LoggingLevelEnum attribute)
  • - -
    + - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + @@ -205,7 +206,7 @@ cpl start or other required elements. - thead: [ 1, "
  • cpl_query.enumerable
      diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index afa7006971d814c07399602b775a272afac9eef0..765699ce4345a20428f05c9f2cda119134f887d8 100644 GIT binary patch delta 6413 zcmV+o8S>_hIL0@ShFO=KI+EVsUs31GoY|Svz3rWyw(oe3eeLn1d&yCPGE*)RXb@GE z|9&L#5+Df@MW|+DR|@I-B7#upEs`>elcJ&#Da(u{gtH>o|BlHqc_?rHxE5)X(TBg0 z-XQ^ZvH^hsf3ti3mw5c469m-E_X-dtP0fpIJAp|!uh_BS^wp%91+mu`Nap+hAqg+y zjMe+AhYVTKktC1js%UcA56fiqcGU(|#8nUMn9;i-^&k^n&OXxk;YY`;alR}tqU1*M zAVeuWktX9oxXu-&c_^k^5TYwNi%3F(a8)!7!t;D#e>{wr-)NQ<&mL6W|DN%s|Nk(e z?T8{Xl!X}_edfE7^SoPqG{xyV(UOc3K(L~wU|`C7Dq2$x1(~v1ws}x+GzUeK<5(y# zF><0f?k5JJDU_5FOY}N&3I|xrp<7ec!gb1`X3oLeo!~XiXu{#pcx(z1P}pcj;IYZM zps+7Rf0in{fPt0_GG21XD*s${Z7mpBOgJnaWbGUg{l$zEl4US0zk=$8Jan-8y8sI~ zIaOGD2jC^_hAGb#=y^qk7_J#HqmM(X?{IB1zVC2tJCWybZ99?waBVx6?{Mudrdtpq z|KZwpF2CX0b{^m1+IA-I;ab-c$NVz%A@_%we<@h>qy71FfZh>VT#ylcVY{0wC$M!B ztS4^Gi!xR@Sbn~jAtj=pLu!>Jr>d11(&91A{0>cpt?zRqQ}n(|J50zIZ`sNXMB0}y z8x)^ib?R*mK03YJ9Y@2^+ZU%W+)FJSEfuycRDo-1<__p=E+NACoI?s|*W>hsPehOj zf9npXif!^XBZ015Pw4cnkz+*8690UZGVtL$s+AbsUv11`+}6qtB?C)y1d5ov^ne^uRL3L;CN1({}LKMxSgrKqv(RSNHYE-LJo zUltX%Ci3u7le45qDLzvLO0l+e%O_}QJ80>%uZ?;V&$) z9udPb_u(rns~*t;Gj~BQEbA=p1t+g|vC@*}Db15x%<|vb{0>WGk1@-fGkm7PfA-M0 zjVk)lCLJc^%dlwWh9OlaDbnL)N?_T&2q8pPoX^&|+aMB@thA0uLh#p#Xy4P<6hPQN zqujQAB8UvUB6-cMhab>oXb;2pSw)xYiKVvv6tKcL<~=Y1P z6hYZb5=YNw*l`e}d(T93f+-Ta=)obAu?E<1kq$VM2%Vl-5bbN?ugx zp?sw3RewJrM~UGs(nxjZ`K`21h+s>=u4P8$c_-r9Duymb#!i&8>+9K}&xHLldPQB6 zNpK!NVe7U2+$Gv)mZ0@CF-K#2WFDJ_5khZ_UQv!oON1uJB${LTT~E~OfBH=$MsYVA z;j}r!YsIYm-JyKt?5{vCPpZG3@^Zs|AkBk}1$DByvY6w*72eQJZWAM{uiK;u>hd-r zU_4(tjy}04aCS_6>GOI)tE+E7*RLV`FeP0$`hpXPY?8e{4{z$8p$VYhQ4o|kmDNdg z9P)N&bx?NUp|Pt^jz~P-f0OhoFI=vRy$*BLFZ;ne7Y?ui~D?GMee+|aTY0dX@b}Po}f7gsspU>)tOQ7hp z`qS3snILY45*~GIEDPK_5gnJz>_j{fPBKu$3nkVS$(@iaKNX;Wydt*gr=5t;q{=-3 z^;t1*r|!Ty3H`i!e~Q)3Bf==#V?tDw86-qqnL$ESmKh{SZJA*LRF@edM17e-`c@d( z*U4m)?dX-%y!-X1wNZrO`0)Mv*YC(2AK(6b`x%+z z(_bIIB2#?*_z{`m=l8dV56B$W34I=);!|Y2jcKpfv=wU)9yEydSNi31v?( zc*i2OPEFm1f0SHk@)!^1_mr#qXau)zH@**Ud;$K7wphdc?*4%K`-DRS6tHfNzq?xv z{K3@bJrITCBxBBHx%+Co2G@#uP`_=nQ1=TtLv>%y;SXQS)gtfu*b_LXL-rZEAA)Lf zLs;4X3u$(g`9(jD*xh%YsY;A<&=hXTt%~C1nP{&&z7vtRVjXiQ)37l6h z;8HtpKftA)xbdC*>iDGS)fbsMNon@iHj~v`XBg2t@z=KwY~g|$)+Ug)|92{?t2w^8 z@lLF&f4RKftBU0(mWpR#DNj9ZkkLo^;2_d}7N2G6P7~aP4`Cg_(v&5XVJ2v;%s-1? zGR4atZdgAvure0IUIv%m_dp9P+1 zRm-hcp1SKW(LdWCJ2kdJ?bTCmQ&a!QPr+Qt+6YQzw`ywzi++m4k1EYMavI@x}llwCu0$csX53wOU1AXwo=7Xto`xXt=CjsV`1Rl1E`# z9~hR`y#F-VPKfp^f-u&BLuzsl)wGJXf6wDufau47bEn@;%FD$K(I-`7>Txi#UoQjf z*u(dS9mfA^Dg+Qu%_sQdiB5bf`d)Vi)9xZS{j^BbrNzgB$NDJ}(g3vkrY?aj--PC-EXI5`!X)8I&gc14sDXde}ogF zjSO`x3_&ntZ;?mo&tE#C9ir=>t=HeZb--#a>egb7MDr}$K-NJE!si&Bp;MO?J+T+V zfDN6Q7mqaeCgz0Y^3;Op;GB!Hu>ePhF5xf|S$sw3*-tQLV8;8p z;0e#N_aBBTluEYMF9fFg^c;psfB$$iKAZYTP4}>N*IFRPr$XJD2}#-i1s5HLzYaRK zS3nr5ABcnsE&8*^^p~u~ipc3vkG0+oILDR~En?sbk6j8cdSO>N;dG_fBdtWwrpa-M zN;zoF)g7=HR9#hK6r`5u$lW)MlDx&U{Nyr%Z_8m4ttu*Swogb#F$k`#xyri@&uT-*k;u<|%X!HZ zjjV2tL*zwjn|dnF5TavMe`N4&Ud>tZh*A5&yU-JG^~Vf9RRYRnu5rga#8d zs_vLNNUf7#(f1C~tHupTfE8lIycDeFz?ckL$aVt(I4WFEUkA-)TL#t`kH}#C{1Fm# zdUAy2lpw%*eNtMxi)^i%wRT7j?ugReYTiTY_K((ocCRdQiZG)}vv zA6#m}d5F{6lM=&uSeuvt04qLG~eYL&*y02=VWWTfKIK@V3O{NS*@`&PzSBe4(yhvz*hl#2)f8h2NVhIk{NKarvXYi-c zC8^{}9SSx=Lp+&V1Z&79sL?;=FQ{>Z9opZ^>63VMbyVc>vB@5X_#~`NId$&S>`J<< zvkD%4&EJV9U)l%nRk~xxrcMdPWhr6ZFt|;IEgN0$GN8W0^=rPqx%F-_C#c#pAVY}% zOJUcwZPmMMe=@}$6*&y)V20X6Wi9|@NOeCmybTA~QKt_w3Cwa1f<-oOQ>ja&AdNHt zD(TfP0Lz$BwP&7&P$|H+m|_aS-wz4i7I9-wb9kBtxEkr+4O4GSh(o%k^5?2(%2+O` z!C7F6DTMx0Cj5{1?QIGt^fUvAVJdnpo+z|wM$}$|fA1;<$UF}Cc_v>YsY9&8_60yY zErF#jGWBhr=x?oUB!;XYX6yICbzhYQw%roF*R2~c9Ml6KBW`E2l>s#=^q9qlK2s8C z)N(JItqiD1OP1GhQ>KWnI-{7W`%OIkr5*ws_zqfUVNi49TH2~DihE?dH`zAtz4E8AjV`lr{{Ks0L!EnieA}I+G9}j?%{Qo1~E8r*L;H6s|M3G zcR^1xfEWh6Yd%BmHGt}xuffkV!5B$?00XCkIfEYb5y_xk%Pl;{+;9fO=}yj|b;UqC zl3RF;x#0|m(@@Nyb;Up%hAlkC+#m+jjt4*+e{crfEB0$l2D0ELB4c(K6Qa1^(j!2< z&H+EqhE0F5*ND(TfP0Lz$BwP!$v zfNtlFTajS5JZ+*_W&|=AO&NzbSC2Ys@Y3tf5b_zPu$>hc~&dpTh9f1)f1u8=I$23!>MqFw<2Ha)i09a>0C*>xtqhb&!6TkI0s)7*Z6t=Q{$@*W zpvG$9TItgpgk=_pL%O%}b#n!El^#zCD}Mm!Z^9g(c$$FU#1QTbXMzz=i2GCh@HT-N zb9~}y0`*;E=;7uJR0#g72Aeite*vFm@ib3+9Jl6@4BAR&Y@v@j_4`An1DWg|CUbsI zGd|Pfr6?ZZr;`l8Lal#wsX*r2NMgvk%WM~#mGW$S5fA6N>$v;yljGXSu9(YiZe;nD z+#&g(^O;Pi(?Rg`pSH4^%ta{b`;&0lXnFwkBL2)oBGs36o5YxYlm^bG2HeTFZu||niJ`r|#&y2}AlGUq4vECMr_9#w0)b^ye;uI!T=EX^{_A^z=-NJBe7wa+(?>czNx?(m6nd!>R3zNM zgXxEEQWSTzQ(}6hn-#-3G5UnFZU$s$&^Zm2`y3=^pCf4_bKg*YVVwp09| zl=qxw2PF;?1-6{BhUMCDDjA+IWQE*v>J^l5%NbEv!XV0RJFEyx7RFCDoS%bb3K2@S zo#uiib03NV<_hBUYln7VX@dFthJzzOTz8(QKw=GJ*FD?pk*LG4Zr-wu!ROx5hsL9d~)BCHOL0t)HvVWB@U_io~`d{UQUjbOB3|UJs)&o}ALRS!^)d4$Y zfJK7sh`o|)% zgVZzO4XYJe`kpK4I1%@R;H1MA8L2Zy#|ME z45yL&FhvW%S)M?{ir)T}<~$~Nz;RKQvbt1%Y z1V}vdUdanIB2AfLPRA3JK_jX*4&DKJSjZM}%1}`e*=y*)Uek<%$I2EozQVU|wXkbO zQ9$wPe_H*>N(9IlA?Sz^GB6@1j}!qCL;2^6=;z*vN%Q6^I$Uy4GX81l%4&J-9ahDO47ZXR?oo0<^NQqk zrncHd{ogb$S-GsgdR9{nu|q{a`=8%BV7-bgaPI|dABwTzvYT=jwp{42-R7}Jc@1w6 ze^{hhZu8hHssTF63X+1^!bTtmHZ|p3bd+mUGC>lLQ|N{<6f_w+$>7akEXHQd(`i+F zSxRqc<$RoRd!(6@LJj7gMQP8TDHgkkhAf9e!4#OCF1K z34h2nuZkTT>G_jFT6*`I^qjnSIDGr8s+fSE6l{~mS6hv5Q9ddvy2vil+Wc?7nexkl zUB(hs>5OHy=Pk~gv8+(!#Li7+FFna&Dqj~FwUw057G=cSAnHOsQ=$H$wN%udX|l;{ z$baX=;$rZ+3M4ZvQK%eHi+6F0S^nE4k|E;)jpk3RDss6FXav!oFUn@c`8@Z~*|SBN zD`A5Q2yDDD074qt>egQ;|TH>Rzqc6Gn;+Iy?v$NTHeyS!`# z^}Sm9G{`)EJGr59sd@X^+Z`wB%?0O?Wj;e}E;XA$HqWhEicTg`jT1cPf|L21Wp`~} zXx{O9(0Xo~jYKzyiAeOKij%<_#(#C#2R-?BExKW22}6Hl@vw)Y%dW_w{eKDghE(U~ zIuD7CY%NLqDT;?)s^O_lpbjX!QSWm4LTq`u&S877p)aQfsv2xN<^IOfjJfi)@E_VK zdo6tl?v#0&X9C)#X@G_f%HrYp+T;LFy!{9HfL0oe?3b7^x*w{6l2PMlGE!~$ delta 6489 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 diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html index 548a0117..3be92766 100644 --- a/docs/build/html/py-modindex.html +++ b/docs/build/html/py-modindex.html @@ -731,16 +731,6 @@
  •     cpl_query.base.queryable_abc
        - cpl_query.base.sequence_abc -
        - cpl_query.base.sequence_values -
        diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index a2b6df51..521b689f 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.run", "cli.start", "cli.uninstall", "cli.update", "cli.version", "contributing", "cpl_cli", "cpl_core", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "cpl_discord", "cpl_discord.application", "cpl_discord.command", "cpl_discord.configuration", "cpl_discord.container", "cpl_discord.events", "cpl_discord.helper", "cpl_discord.service", "cpl_query", "cpl_query.base", "cpl_query.enumerable", "cpl_query.extension", "cpl_query.iterable", "cpl_translation", "getting_started", "index", "introduction", "modules", "quickstart", "setup", "tutorials", "tutorials.appsettings", "tutorials.console", "tutorials.console-arguments", "tutorials.create-startup", "tutorials.extend-application", "tutorials.extend-startup", "tutorials.logging", "tutorials.mail"], "filenames": ["cli.add.md", "cli.build.md", "cli.generate.md", "cli.help.md", "cli.install.md", "cli.new.md", "cli.overview.md", "cli.publish.md", "cli.remove.md", "cli.run.md", "cli.start.md", "cli.uninstall.md", "cli.update.md", "cli.version.md", "contributing.md", "cpl_cli.rst", "cpl_core.rst", "cpl_core.application.rst", "cpl_core.configuration.rst", "cpl_core.console.rst", "cpl_core.database.rst", "cpl_core.database.connection.rst", "cpl_core.database.context.rst", "cpl_core.dependency_injection.rst", "cpl_core.environment.rst", "cpl_core.logging.rst", "cpl_core.mailing.rst", "cpl_core.pipes.rst", "cpl_core.time.rst", "cpl_core.utils.rst", "cpl_discord.rst", "cpl_discord.application.rst", "cpl_discord.command.rst", "cpl_discord.configuration.rst", "cpl_discord.container.rst", "cpl_discord.events.rst", "cpl_discord.helper.rst", "cpl_discord.service.rst", "cpl_query.rst", "cpl_query.base.rst", "cpl_query.enumerable.rst", "cpl_query.extension.rst", "cpl_query.iterable.rst", "cpl_translation.rst", "getting_started.rst", "index.rst", "introduction.md", "modules.rst", "quickstart.md", "setup.md", "tutorials.rst", "tutorials.appsettings.md", "tutorials.console.md", "tutorials.console-arguments.md", "tutorials.create-startup.md", "tutorials.extend-application.md", "tutorials.extend-startup.md", "tutorials.logging.md", "tutorials.mail.md"], "titles": ["cpl add", "cpl build", "cpl generate", "cpl help", "cpl install", "cpl new", "CLI Overview and Command Reference", "cpl publish", "cpl remove", "cpl run", "cpl start", "cpl uninstall", "cpl update", "cpl version", "Contributing to CPL", "CLI reference", "API reference", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "Discord reference", "cpl_discord.application", "cpl_discord.command", "cpl_discord.configuration", "cpl_discord.container", "cpl_discord.events", "cpl_discord.helper", "cpl_discord.service", "Query reference", "cpl_query.base", "cpl_query.enumerable", "cpl_query.extension", "cpl_query.iterable", "Translation reference", "Getting started", "Introduction to the CPL Docs", "Introduction to the CPL Docs", "cpl", "Getting started with CPL", "Setting up the local environment and workspace", "Tutorials", "Using appsettings.json", "Use cpl_core.console.Console", "Handle console arguments", "Create startup class", "Extend application", "Extend startup", "Use builtin logger", "Send mails"], "terms": {"remov": [0, 6, 7, 15, 40, 42, 47], "project": [0, 1, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 44, 47, 49], "from": [0, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 34, 39, 42, 45, 46, 48], "workspac": [0, 1, 5, 6, 8, 44, 47], "sourc": [0, 1, 7, 9, 10, 14, 29, 48, 49], "target": [0, 1], "A": [0, 5, 14, 34], "refer": [0, 8, 45, 46, 47], "given": [0, 1, 4, 6, 7, 11, 18, 19, 20, 23, 29, 39, 42], "If": [0, 5, 8, 14, 19, 49], "you": [0, 1, 6, 8, 14, 34, 45, 46, 48, 49], "call": [0, 8, 17, 18, 19, 34, 39], "command": [0, 1, 3, 4, 5, 7, 8, 11, 12, 14, 15, 29, 30, 45, 46, 47, 49], "can": [0, 1, 6, 7, 8, 14, 34, 45, 49], "us": [0, 1, 2, 5, 6, 7, 8, 14, 17, 19, 26, 29, 44, 45, 46, 47, 48, 49, 50], "name": [0, 1, 2, 5, 6, 7, 8, 18, 24, 25, 29, 32, 34, 49], "otherwis": [0, 8, 19], "path": [0, 1, 2, 5, 7, 8, 15, 18, 24, 25, 47, 49], "must": [0, 1, 6, 8, 14, 19], "specifi": [0, 4, 5, 6, 8, 9, 11, 12, 18, 19], "valu": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 18, 19, 20, 23, 24, 25, 26, 27, 28, 39, 40, 41, 42, 43], "type": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 15, 17, 18, 23, 34, 36, 37, 39, 40, 41, 42, 47], "which": [0, 6, 9, 18, 19, 29, 49], "ha": [0, 19], "ad": [0, 14], "str": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 33, 34, 35, 37, 43, 48], "referenc": 0, "simul": [0, 4, 8, 11, 12], "whether": [0, 4, 5, 8, 11, 12, 18], "copi": [1, 39], "an": [1, 6, 7, 17, 18, 19, 20, 23, 24, 25, 26, 28, 39, 48, 49], "python": [1, 14, 29, 45, 46, 48, 49], "app": [1, 6, 17, 44, 45, 46, 47, 48], "output": [1, 6, 7, 18, 19, 45, 46, 48, 49], "directori": [1, 6, 7, 24, 45, 46, 48], "execut": [1, 6, 7, 18, 29], "within": [1, 6, 14], "b": [1, 6, 14], "The": [1, 2, 4, 5, 6, 7, 8, 11, 14, 23, 26, 29, 34, 37, 45, 46, 48, 49], "consol": [1, 3, 5, 6, 7, 16, 18, 25, 44, 45, 46, 47, 48, 50], "librari": [1, 5, 6, 7, 44, 45, 46, 47], "all": [1, 7, 13, 14, 18, 34, 39], "includ": [1, 14, 49], "file": [1, 2, 6, 7, 8, 10, 14, 18, 45, 49], "run": [1, 5, 10, 17, 18, 19, 22, 29, 39, 45, 46, 48, 49], "directli": [1, 14], "prepar": [1, 6, 7, 14, 17, 45], "publish": [1, 6, 15, 45, 47, 49], "them": 1, "argument": [1, 5, 6, 7, 9, 10, 12, 15, 18, 19, 29, 39, 44, 45, 46, 47, 50], "base": [2, 5, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 48], "g": [2, 5, 6], "first": [2, 5, 6, 14, 27, 29, 34, 39, 45, 46], "element": [2, 5, 19, 22, 34, 39, 40, 42], "src": [2, 5, 48], "For": [2, 5, 14], "exampl": [2, 5], "c": [2, 5, 45], "test": [2, 5, 14, 24, 45, 46, 48], "creat": [2, 5, 6, 7, 14, 17, 18, 19, 23, 25, 26, 29, 39, 44, 45, 46, 47, 50], "would": [2, 5, 14], "abc": [2, 17, 18, 21, 22, 23, 24, 25, 26, 27, 32, 35, 37, 39, 40, 42, 43], "abstract": [2, 17, 18, 21, 22, 23, 24, 25, 26, 27, 31, 35, 37, 39, 43], "class": [2, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50], "enum": [2, 18, 19, 20, 23, 24, 25, 26, 28], "pipe": [2, 16, 23, 45, 46, 47], "servic": [2, 5, 17, 18, 23, 25, 26, 30, 31, 45, 46, 47, 48], "set": [2, 9, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 29, 33, 40, 43, 44, 47, 48], "configmodel": 2, "thread": [2, 19, 30, 47], "valid": [2, 26, 48], "list": [3, 6, 13, 18, 19, 22, 23, 26, 27, 29, 34, 35, 36, 37, 38, 39, 40, 42, 43, 45, 47], "avail": [3, 6, 14], "short": [3, 6], "h": [3, 6], "show": [3, 19], "messag": [3, 19, 25, 35, 37], "thi": [3, 14, 17, 34, 45, 46, 48, 49], "packag": [4, 5, 6, 11, 13, 29, 44, 45, 46, 47, 48], "via": [4, 11, 14, 45, 46], "pip": [4, 11, 13, 16, 45, 46, 47, 48, 49], "i": [4, 6, 48], "without": [4, 6, 14, 39], "deped": 4, "your": [4, 6, 9, 10, 14, 45, 46, 49], "dev": [4, 9, 10, 11], "develop": [4, 6, 11, 14, 24, 45, 46, 48, 49], "mode": [4, 11], "virtual": [4, 11], "gener": [5, 6, 7, 15, 45, 47, 48, 49], "initi": [5, 44, 47], "add": [5, 6, 14, 15, 18, 23, 26, 42, 47, 48], "n": [5, 6, 48, 49], "see": [5, 14, 21, 34, 48, 49], "simpl": [5, 45, 46, 49], "applic": [5, 9, 10, 16, 19, 24, 25, 26, 30, 44, 45, 46, 47, 48, 49, 50], "async": [5, 17, 35, 37], "startup": [5, 17, 44, 45, 46, 47, 50], "provid": [5, 14, 17, 23, 34, 45, 46, 48, 49], "noth": 5, "venv": 5, "instal": [6, 13, 15, 29, 44, 47, 48], "cpl": [6, 15, 23, 44, 49], "To": [6, 9, 10, 14, 48, 49], "build": [6, 7, 9, 10, 15, 17, 29, 45, 47, 48, 49], "serv": 6, "new": [6, 14, 15, 19, 34, 47, 48, 49], "server": [6, 21, 26, 45, 46, 49], "go": [6, 14, 45], "parent": 6, "follow": [6, 14, 48, 49], "my": [6, 14, 49], "cd": [6, 49], "start": [6, 9, 15, 39, 45, 46, 47], "In": [6, 14, 48], "termin": [6, 19, 48, 49], "commandnameoralia": 6, "requiredarg": 6, "optionalsarg": 6, "most": [6, 34, 48, 49], "some": 6, "option": [6, 9, 14, 18, 19, 20, 23, 25, 26, 29, 34, 35, 37, 39, 40, 41, 42, 45, 46, 48], "have": [6, 14, 34, 48, 49], "alias": [6, 18], "ar": [6, 7, 14, 18, 34], "shown": [6, 18, 49], "statement": [6, 22], "each": [6, 18, 39], "prefix": [6, 18, 33], "absolut": 6, "current": [6, 24, 34], "work": [6, 14, 24, 45, 46], "either": 6, "root": 6, "take": [6, 18, 39], "artifact": 6, "addit": [6, 14], "ani": [6, 19, 27, 32, 37, 39, 43], "defin": [6, 18, 19, 40, 42, 49], "its": [6, 14], "own": 6, "suppli": 6, "same": 6, "format": [6, 25, 28, 39], "immedi": 6, "alia": 6, "descript": [6, 9, 10, 12, 15, 34, 47], "dist": [6, 7, 9, 10], "help": [6, 14, 15, 45, 46, 47], "With": 6, "depend": [6, 12, 45, 46, 48], "p": [6, 7], "setup": [6, 7, 46, 49], "py": [6, 7, 29, 45, 48], "r": [6, 8, 9], "s": [6, 10, 14, 34, 44, 47], "restart": [6, 10, 49], "chang": [6, 10, 14, 22, 48], "uninstal": [6, 15, 29, 47], "ui": [6, 11, 34], "updat": [6, 14, 15, 47], "u": [6, 12], "version": [6, 15, 34, 47], "v": [6, 13], "data": [7, 19, 34, 39], "cpl_core": [7, 16, 44, 47, 48, 49, 50], "json": [7, 18, 44, 45, 46, 47, 48, 49, 50], "delet": 8, "onc": 9, "paramet": [9, 42], "default": [9, 19, 34, 49], "after": [9, 10, 35, 37, 39], "cli": [13, 44, 45, 46, 47, 48], "we": [14, 48], "love": 14, "make": [14, 49], "even": 14, "better": 14, "than": [14, 39], "todai": 14, "As": 14, "contributor": 14, "here": [14, 49], "like": [14, 45, 48], "issus": 14, "find": 14, "our": 14, "gitea": 14, "repositori": 14, "fix": 14, "implement": [14, 23, 39, 40, 41], "pleas": 14, "consid": 14, "size": 14, "order": [14, 34, 39], "determin": 14, "right": 14, "step": 14, "proce": 14, "major": 14, "open": [14, 48, 49], "outlin": 14, "propos": 14, "so": [14, 49], "discuss": 14, "process": 14, "allow": 14, "coordin": [14, 19], "effort": 14, "prevent": 14, "duplic": 14, "craft": 14, "successfulli": 14, "accept": 14, "note": [14, 34], "topic": [14, 34], "document": 14, "significantli": 14, "re": 14, "write": [14, 19, 25, 45, 46], "count": [14, 39], "small": 14, "befor": [14, 19, 35, 37, 40], "search": [14, 18, 23], "tracker": 14, "mayb": 14, "problem": 14, "alreadi": [14, 48, 49], "exist": [14, 40], "might": 14, "inform": [14, 25, 49], "workaround": 14, "readili": 14, "want": [14, 48], "soon": [14, 44, 47, 50], "possibl": [14, 18], "need": [14, 34, 48, 49], "reproduc": 14, "confirm": 14, "requir": [14, 34], "minim": 14, "reproduct": 14, "scenario": 14, "give": 14, "wealth": 14, "import": [14, 48], "back": [14, 19], "forth": 14, "question": 14, "quickli": 14, "point": [14, 17, 19], "out": [14, 48, 49], "well": 14, "save": [14, 18, 22], "maintain": 14, "time": [14, 16, 25, 34, 47], "ultim": 14, "abl": 14, "more": [14, 39, 49], "often": 14, "themselv": 14, "while": 14, "understand": [14, 45, 46, 48, 49], "sometim": 14, "hard": 14, "extract": 14, "essenti": [14, 48], "bit": 14, "larger": 14, "codebas": 14, "realli": 14, "isol": 14, "unfortun": 14, "investig": 14, "don": [14, 48], "t": [14, 39, 40, 41, 42, 48], "hear": 14, "close": [14, 19], "doesn": 14, "enough": 14, "info": [14, 25, 45, 46], "pr": 14, "relat": 14, "Be": 14, "sure": 14, "describ": 14, "design": 14, "d": 14, "upfront": 14, "ensur": 14, "readi": [14, 49], "fork": 14, "sh": [14, 49], "edraft": [14, 49], "de": [14, 49], "repo": 14, "git": 14, "branch": 14, "checkout": 14, "master": 14, "patch": 14, "appropri": 14, "case": [14, 27, 29, 48], "commit": 14, "line": [14, 19, 48], "automat": 14, "rm": 14, "edit": 14, "push": 14, "origin": 14, "send": [14, 26, 44, 45, 46, 47, 50], "team": 14, "reserv": 14, "commun": 14, "member": [14, 30, 35, 37, 47], "who": 14, "haven": 14, "been": 14, "good": 14, "citizen": 14, "Such": 14, "behavior": 14, "appli": 14, "outsid": 14, "manag": [14, 34, 45, 46], "channel": [14, 34, 35, 37], "ask": 14, "fixup": 14, "head": 14, "That": 14, "thank": 14, "consist": 14, "throughout": 14, "keep": 14, "mind": 14, "one": [14, 39], "unit": 14, "public": 14, "api": [14, 45, 46, 47], "method": 14, "pep": 14, "8": 14, "style": 14, "guid": 14, "By": 14, "agre": 14, "under": [14, 34], "mit": 14, "overview": [15, 47, 49], "tabl": [15, 19, 29, 44, 45, 46, 47], "content": [15, 44, 47], "basic": [15, 47, 48, 49], "workflow": [15, 47], "languag": [15, 43, 47], "syntax": [15, 47], "rel": [15, 47], "schemat": [15, 47], "flag": [15, 40, 47], "application_abc": [16, 47], "application_build": [16, 47], "application_builder_abc": [16, 47], "startup_abc": [16, 47], "configur": [16, 17, 23, 30, 45, 46, 47], "configuration_abc": [16, 17, 23, 47], "configuration_model_abc": [16, 47], "configuration_variable_name_enum": [16, 47], "console_argu": [16, 47], "background_color_enum": [16, 47], "console_cal": [16, 47], "foreground_color_enum": [16, 47], "spinner_thread": [16, 47], "databas": [16, 23, 47], "connect": [16, 20, 22, 26, 37, 47], "database_connect": [16, 20, 47], "database_connection_abc": [16, 20, 47], "context": [16, 20, 23, 35, 37, 47, 49], "database_context": [16, 20, 47], "database_context_abc": [16, 20, 23, 47], "database_model": [16, 47], "database_set": [16, 21, 22, 47], "database_settings_name_enum": [16, 47], "dependency_inject": [16, 17, 47], "service_collect": [16, 37, 47], "service_collection_abc": [16, 17, 47], "service_descriptor": [16, 47], "service_lifetime_enum": [16, 47], "service_provid": [16, 47], "service_provider_abc": [16, 17, 47], "environ": [16, 17, 18, 25, 26, 44, 45, 46, 47], "application_environ": [16, 47], "application_environment_abc": [16, 17, 25, 26, 47], "environment_name_enum": [16, 47], "log": [16, 26, 45, 46, 47], "logger_abc": [16, 26, 47], "logger_servic": [16, 47], "logging_level_enum": [16, 47], "logging_set": [16, 47], "logging_settings_name_enum": [16, 47], "mail": [16, 44, 45, 46, 47, 50], "email": [16, 47], "email_client_abc": [16, 47], "email_client_servic": [16, 47], "email_client_set": [16, 47], "email_client_settings_name_enum": [16, 47], "bool_pip": [16, 47], "first_char_to_lower_pip": [16, 47], "first_to_upper_pip": [16, 47], "ip_address_pip": [16, 47], "pipe_abc": [16, 47], "to_camel_case_pip": [16, 47], "to_snake_case_pip": [16, 47], "version_pip": [16, 47], "time_format_set": [16, 25, 47], "time_format_settings_names_enum": [16, 47], "util": [16, 45, 46, 47], "credential_manag": [16, 47], "string": [16, 19, 21, 25, 26, 27, 45, 46, 47, 48], "applicationabc": [17, 31], "config": [17, 23, 31, 37], "configurationabc": [17, 18, 23, 31, 37], "serviceproviderabc": [17, 18, 23, 31], "contain": [17, 30, 36, 39, 47], "object": [17, 18, 19, 23, 26, 29, 34, 36, 39, 42, 45, 46], "load": [17, 43], "appset": [17, 44, 47, 48, 50], "instanc": [17, 23], "main": [17, 48], "custom": [17, 18, 24, 45, 46], "entri": [17, 19], "run_async": 17, "applicationbuild": 17, "applicationbuilderabc": 17, "build_async": 17, "use_extens": 17, "extens": [17, 38, 39, 42, 45, 46, 47], "union": [17, 18, 19, 23, 35, 36, 37, 39], "applicationextensionabc": 17, "startupextensionabc": 17, "use_startup": 17, "startupabc": 17, "arg": [17, 18, 19, 22, 27, 29, 32, 35, 37, 43], "configure_configur": 17, "env": [17, 25, 37], "applicationenvironmentabc": [17, 18, 24, 25, 26, 37], "configure_servic": 17, "servicecollectionabc": [17, 23, 37], "add_configur": 18, "key_typ": 18, "configurationmodelabc": [18, 20, 25, 26, 28, 33, 43], "add_console_argu": 18, "argumentabc": 18, "known": 18, "consoleargumentabc": 18, "add_environment_vari": 18, "read": [18, 19, 48], "variabl": [18, 29], "add_json_fil": 18, "bool": [18, 19, 20, 26, 27, 34, 39, 40], "none": [18, 19, 23, 25, 26, 29, 39, 40, 41, 42], "true": 18, "error": [18, 19, 25, 35, 37, 45, 46], "should": [18, 48, 49], "occur": 18, "wa": [18, 49], "found": [18, 39], "place": 18, "store": 18, "properti": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 33, 34, 37, 39, 42, 43], "additional_argu": 18, "argument_error_funct": 18, "callabl": [18, 19, 23, 39], "argument_abc": 18, "create_console_argu": 18, "arg_typ": 18, "argumenttypeenum": 18, "token": [18, 33], "kwarg": [18, 19, 32, 35, 37], "begin": 18, "value_token": 18, "were": 18, "is_value_token_opt": 18, "runnabl": 18, "when": [18, 19, 35, 37, 39], "for_each_argu": 18, "iter": [18, 38, 39, 40, 41, 47], "through": [18, 48], "function": [18, 19, 29, 39, 40, 42, 45, 48], "get_configur": 18, "search_typ": 18, "return": [18, 19, 23, 26, 34, 39, 48], "parse_console_argu": 18, "invalid": 18, "from_dict": [18, 20, 25, 26, 28, 33, 43], "dict": [18, 19, 20, 25, 26, 27, 28, 33, 43], "convert": [18, 25, 26, 27, 28, 29, 33, 36, 39, 40, 41, 42, 43, 45, 46], "attribut": [18, 20, 25, 26, 28, 33, 43], "configurationvariablenameenum": 18, "enumer": [18, 19, 20, 23, 24, 25, 26, 28, 38, 41, 42, 47], "static": [18, 26, 29, 36], "to_list": [18, 39], "backgroundcolorenum": 19, "blue": 19, "on_blu": 19, "cyan": 19, "on_cyan": 19, "on_default": 19, "green": 19, "on_green": 19, "grei": 19, "on_grei": 19, "magenta": 19, "on_magenta": 19, "red": 19, "on_r": 19, "white": 19, "on_whit": 19, "yellow": 19, "on_yellow": 19, "handl": [19, 29, 44, 45, 46, 47, 50], "input": [19, 45, 46, 48], "background_color": 19, "bytes_or_buff": 19, "encod": [19, 29], "expos": 19, "buffer": [19, 20], "decod": [19, 29], "handler": 19, "result": [19, 26, 29, 39], "__str__": 19, "repr": 19, "sy": 19, "getdefaultencod": 19, "strict": 19, "classmethod": [19, 29, 39], "banner": [19, 45, 46], "print": [19, 48], "clear": 19, "color_reset": 19, "reset": [19, 29, 39], "color": 19, "disabl": 19, "interact": 19, "enabl": [19, 48], "tb": 19, "traceback": 19, "foreground_color": 19, "read_lin": 19, "next": [19, 39, 44, 47], "reset_cursor_posit": 19, "cursor": [19, 21, 22], "posit": [19, 34], "select": [19, 22, 39, 48], "char": [19, 27, 29], "header_foreground_color": 19, "foregroundcolorenum": 19, "header_background_color": 19, "option_foreground_color": 19, "option_background_color": 19, "cursor_foreground_color": 19, "cursor_background_color": 19, "menu": [19, 44, 45, 46, 47], "charact": 19, "header": [19, 25, 26], "foreground": 19, "background": 19, "set_background_color": 19, "set_cursor_posit": 19, "x": [19, 39], "int": [19, 20, 26, 27, 29, 34, 39, 48], "y": [19, 48], "set_foreground_color": 19, "set_hold_back": 19, "spinner": [19, 45, 46], "text_foreground_color": 19, "spinner_foreground_color": 19, "text_background_color": 19, "spinner_background_color": 19, "end": [19, 25], "stop": 19, "text": [19, 34], "keyword": 19, "activ": [19, 34], "last": [19, 39], "write_at": [19, 45, 46], "write_lin": [19, 45, 46, 48], "write_line_at": [19, 45, 46], "consolecal": 19, "repres": [19, 20, 24, 26], "hold": 19, "spinnerthread": 19, "msg_len": 19, "length": [19, 29, 39, 48], "exit": [19, 48], "stop_spin": 19, "databaseset": [20, 21, 22, 23], "auth_plugin": 20, "charset": 20, "host": [20, 26], "password": [20, 48], "port": [20, 26], "use_unicod": 20, "user": [20, 35, 37, 48], "databasesettingsnameenum": 20, "authplugin": 20, "useunicod": 20, "databaseconnect": 21, "databaseconnectionabc": 21, "represent": [21, 22, 23, 25, 26, 28], "connection_str": 21, "http": [21, 49], "doc": 21, "sqlalchemi": 21, "org": 21, "en": 21, "14": 21, "core": [21, 45, 49], "engin": 21, "html": 21, "mysqlcursorbuff": [21, 22], "mysqlconnectionabstract": 21, "databasecontext": 22, "databasecontextabc": [22, 23], "save_chang": 22, "tupl": [22, 34], "sql": 22, "fetch": 22, "servicecollect": 23, "collect": 23, "add_db_context": 23, "db_context_typ": 23, "db_set": 23, "db_context": 23, "add_log": 23, "intern": 23, "logger": [23, 25, 26, 37, 44, 45, 46, 47, 50], "add_pip": 23, "transient": [23, 45, 46], "add_scop": 23, "service_typ": 23, "scope": [23, 45, 46], "lifetim": [23, 45, 46], "self": 23, "add_singleton": 23, "singleton": [23, 45, 46], "add_transi": 23, "build_service_provid": 23, "add_discord": 23, "discord": [23, 35, 37, 45, 47], "add_transl": 23, "translat": [23, 45, 47], "servicedescriptor": 23, "servicelifetimeenum": 23, "base_typ": 23, "descriptor": 23, "1": [23, 25, 48], "0": [23, 25, 34, 48], "2": [23, 25, 34, 48], "serviceprovid": 23, "build_servic": 23, "instance_typ": 23, "create_scop": 23, "scopeabc": 23, "get_servic": 23, "set_scop": 23, "applicationenviron": 24, "environmentnameenum": 24, "product": [24, 45, 46], "application_nam": 24, "date_time_now": 24, "datetim": [24, 34, 35, 37], "end_tim": 24, "environment_nam": 24, "host_nam": 24, "runtime_directori": 24, "set_runtime_directori": 24, "runtim": [24, 45, 46], "set_working_directori": 24, "working_directori": 24, "start_tim": 24, "stage": [24, 45, 46], "loggerabc": [25, 26, 37], "debug": [25, 45, 46], "ex": 25, "except": [25, 39], "thrown": 25, "fatal": [25, 45, 46], "program": 25, "trace": [25, 45, 46], "warn": [25, 45, 46], "loggingset": [25, 37], "time_format": [25, 28], "timeformatset": [25, 28], "tree": 25, "logfil": 25, "logginglevelenum": 25, "5": [25, 48], "4": 25, "off": 25, "6": 25, "3": 25, "filenam": 25, "level": [25, 45, 46], "loggingsettingsnameenum": 25, "console_level": 25, "consoleloglevel": 25, "file_level": 25, "fileloglevel": 25, "subject": 26, "bodi": 26, "transceiv": 26, "receiv": 26, "e": 26, "add_head": 26, "add_receiv": 26, "check_mail": 26, "address": 26, "check": [26, 39, 40], "get_cont": 26, "header_list": 26, "receiver_list": 26, "emailclientabc": 26, "emailcli": 26, "send_mail": 26, "mail_set": 26, "emailclientset": 26, "login": 26, "credenti": [26, 29, 45, 46], "user_nam": 26, "emailclientsettingsnameenum": 26, "usernam": 26, "boolpip": 27, "pipeabc": [27, 43], "transform": [27, 43], "firstchartolowerpip": 27, "lower": [27, 29, 48], "firsttoupperpip": 27, "upper": [27, 29, 48], "ipaddresspip": 27, "tocamelcasepip": 27, "camel": [27, 29], "camelcas": [27, 29], "tosnakecasepip": 27, "snake": [27, 29], "snake_cas": [27, 29], "versionpip": 27, "date_format": 28, "date_time_format": 28, "date_time_log_format": 28, "timeformatsettingsnamesenum": 28, "dateformat": 28, "datetimeformat": 28, "datetimelogformat": 28, "timeformat": 28, "credentialmanag": 29, "encrypt": [29, 45, 46], "decrypt": 29, "build_str": 29, "replac": 29, "base64": [29, 45, 46], "get_execut": 29, "get_outd": 29, "byte": 29, "get": [29, 45, 46, 47, 49], "outdat": 29, "get_packag": 29, "local": [29, 44, 47], "stdout": 29, "stderr": 29, "extra": [29, 49], "index": [29, 39, 42, 48, 49], "url": [29, 49], "subprocess": [29, 45, 46], "reset_execut": 29, "system": 29, "standard": [29, 45, 46], "set_execut": 29, "convert_to_camel_cas": 29, "convert_to_snake_cas": 29, "first_to_low": 29, "first_to_upp": 29, "random_str": 29, "random": [29, 48], "cpl_discord": [30, 47], "discord_bot_application_abc": [30, 47], "discord_command_abc": [30, 47], "discord_commands_meta": [30, 47], "discord_bot_set": [30, 37, 47], "category_channel": [30, 47], "guild": [30, 35, 37, 47], "role": [30, 35, 37, 47], "text_channel": [30, 47], "voice_channel": [30, 47], "event": [30, 37, 47], "on_bulk_message_delete_abc": [30, 47], "on_command_abc": [30, 47], "on_command_completion_abc": [30, 47], "on_command_error_abc": [30, 47], "on_connect_abc": [30, 47], "on_disconnect_abc": [30, 47], "on_error_abc": [30, 47], "on_group_join_abc": [30, 47], "on_group_remove_abc": [30, 47], "on_guild_available_abc": [30, 47], "on_guild_channel_create_abc": [30, 47], "on_guild_channel_delete_abc": [30, 47], "on_guild_channel_pins_update_abc": [30, 47], "on_guild_channel_update_abc": [30, 47], "on_guild_emojis_update_abc": [30, 47], "on_guild_integrations_update_abc": [30, 47], "on_guild_join_abc": [30, 47], "on_guild_remove_abc": [30, 47], "on_guild_role_create_abc": [30, 47], "on_guild_role_delete_abc": [30, 47], "on_guild_role_update_abc": [30, 47], "on_guild_unavailable_abc": [30, 47], "on_guild_update_abc": [30, 47], "on_invite_create_abc": [30, 47], "on_invite_delete_abc": [30, 47], "on_member_ban_abc": [30, 47], "on_member_join_abc": [30, 47], "on_member_remove_abc": [30, 47], "on_member_unban_abc": [30, 47], "on_member_update_abc": [30, 47], "on_message_abc": [30, 47], "on_message_delete_abc": [30, 47], "on_message_edit_abc": [30, 47], "on_private_channel_create_abc": [30, 47], "on_private_channel_delete_abc": [30, 47], "on_private_channel_pins_update_abc": [30, 47], "on_private_channel_update_abc": [30, 47], "on_raw_reaction_add_abc": [30, 47], "on_raw_reaction_clear_abc": [30, 47], "on_raw_reaction_clear_emoji_abc": [30, 47], "on_raw_reaction_remove_abc": [30, 47], "on_reaction_add_abc": [30, 47], "on_reaction_clear_abc": [30, 47], "on_reaction_clear_emoji_abc": [30, 47], "on_reaction_remove_abc": [30, 47], "on_ready_abc": [30, 47], "on_resume_abc": [30, 47], "on_typing_abc": [30, 47], "on_user_update_abc": [30, 47], "on_voice_state_update_abc": [30, 47], "on_webhooks_update_abc": [30, 47], "helper": [30, 47], "to_containers_convert": [30, 47], "command_error_handler_servic": [30, 47], "discord_bot_servic": [30, 47], "discord_bot_service_abc": [30, 47], "discord_collect": [30, 47], "discord_collection_abc": [30, 47], "discord_servic": [30, 47], "discord_service_abc": [30, 47], "discordbotapplicationabc": 31, "stop_async": [31, 37], "discordcommandabc": [32, 37], "cog": [32, 37], "discordcogmeta": 32, "namespac": 32, "abcmeta": 32, "cogmeta": 32, "discordbotset": [33, 37], "categorychannel": 34, "_t": [34, 36, 37, 39], "category_id": 34, "id": [34, 48], "nsfw": 34, "textchannel": 34, "categori": 34, "voicechannel": 34, "voic": 34, "_o": 34, "afk_channel": 34, "afk_timeout": 34, "approximate_member_count": 34, "approximate_presence_count": 34, "belong": 34, "sort": [34, 39, 45], "top": 34, "bottom": 34, "default_notif": 34, "emoji": [34, 35, 37], "explicit_content_filt": 34, "featur": [34, 49], "max_memb": 34, "max_pres": 34, "max_video_channel_us": 34, "sequenc": [34, 35, 36, 37, 39], "mfa_level": 34, "nsfw_level": 34, "owner_id": 34, "preferred_local": 34, "premium_progress_bar_en": 34, "premium_subscription_count": 34, "premium_ti": 34, "hierarchi": 34, "lowest": [34, 39], "sticker": 34, "permiss": 34, "view": 34, "unavail": 34, "vanity_url_cod": 34, "verification_level": 34, "widget_en": 34, "activitytyp": 34, "joined_at": 34, "nick": 34, "pend": 34, "premium_sinc": 34, "alwai": 34, "everyon": 34, "These": [34, 45], "timed_out_until": 34, "hoist": 34, "mention": 34, "tag": 34, "unicode_emoji": 34, "default_auto_archive_dur": 34, "last_message_id": 34, "slowmode_delai": 34, "archive_timestamp": 34, "archiv": 34, "archiver_id": 34, "auto_archive_dur": 34, "invit": [34, 35, 37], "lock": 34, "me": 34, "member_count": 34, "threadmemb": 34, "intent": 34, "properli": 34, "fill": 34, "howev": 34, "gatewai": 34, "fetch_memb": 34, "message_count": 34, "parent_id": 34, "insid": 34, "onbulkmessagedeleteabc": 35, "on_bulk_message_delet": [35, 37], "oncommandabc": 35, "on_command": [35, 37], "ctx": [35, 37], "oncommandcompletionabc": 35, "on_command_complet": [35, 37], "oncommanderrorabc": [35, 37], "on_command_error": [35, 37], "commanderror": [35, 37], "onconnectabc": 35, "on_connect": [35, 37], "ondisconnectabc": 35, "on_disconnect": [35, 37], "onerrorabc": 35, "on_error": [35, 37], "ongroupjoinabc": 35, "on_group_join": [35, 37], "chhanel": [35, 37], "groupchannel": [35, 37], "ongroupremoveabc": 35, "on_group_remov": [35, 37], "onguildavailableabc": 35, "on_guild_avail": [35, 37], "onguildchannelcreateabc": 35, "on_guild_channel_cr": [35, 37], "guildchannel": [35, 37], "onguildchanneldeleteabc": 35, "on_guild_channel_delet": [35, 37], "onguildchannelpinsupdateabc": 35, "on_guild_channel_pins_upd": [35, 37], "list_pin": [35, 37], "onguildchannelupdateabc": 35, "on_guild_channel_upd": [35, 37], "onguildemojisupdateabc": 35, "on_guild_emojis_upd": [35, 37], "onguildintegrationsupdateabc": 35, "on_guild_integrations_upd": [35, 37], "onguildjoinabc": 35, "on_guild_join": [35, 37], "onguildremoveabc": 35, "on_guild_remov": [35, 37], "onguildrolecreateabc": 35, "on_guild_role_cr": [35, 37], "onguildroledeleteabc": 35, "on_guild_role_delet": [35, 37], "onguildroleupdateabc": 35, "on_guild_role_upd": [35, 37], "onguildunavailableabc": 35, "on_guild_unavail": [35, 37], "onguildupdateabc": 35, "on_guild_upd": [35, 37], "oninvitecreateabc": 35, "on_invite_cr": [35, 37], "oninvitedeleteabc": 35, "on_invite_delet": [35, 37], "onmemberbanabc": 35, "on_member_ban": [35, 37], "onmemberjoinabc": 35, "on_member_join": [35, 37], "onmemberremoveabc": 35, "on_member_remov": [35, 37], "onmemberunbanabc": 35, "on_member_unban": [35, 37], "onmemberupdateabc": 35, "on_member_upd": [35, 37], "onmessageabc": 35, "on_messag": [35, 37], "onmessagedeleteabc": 35, "on_message_delet": [35, 37], "onmessageeditabc": 35, "on_message_edit": [35, 37], "onprivatechannelcreateabc": 35, "on_private_channel_cr": [35, 37], "privatechannel": [35, 37], "onprivatechanneldeleteabc": 35, "on_private_channel_delet": [35, 37], "onprivatechannelpinsupdateabc": 35, "on_private_channel_pins_upd": [35, 37], "onprivatechannelupdateabc": 35, "on_private_channel_upd": [35, 37], "onrawreactionaddabc": 35, "on_raw_reaction_add": [35, 37], "payload": [35, 37], "rawreactionactionev": [35, 37], "onrawreactionclearabc": 35, "on_raw_reaction_clear": [35, 37], "onrawreactionclearemojiabc": 35, "on_raw_reaction_clear_emoji": [35, 37], "onrawreactionremoveabc": 35, "on_raw_reaction_remov": [35, 37], "onreactionaddabc": 35, "on_reaction_add": [35, 37], "reaction": [35, 37], "onreactionclearabc": 35, "on_reaction_clear": [35, 37], "onreactionclearemojiabc": 35, "on_reaction_clear_emoji": [35, 37], "onreactionremoveabc": 35, "on_reaction_remov": [35, 37], "onreadyabc": 35, "on_readi": [35, 37], "onresumeabc": 35, "on_resum": [35, 37], "ontypingabc": 35, "on_typ": [35, 37], "onuserupdateabc": 35, "on_user_upd": [35, 37], "onvoicestateupdateabc": 35, "on_voice_state_upd": [35, 37], "voicest": [35, 37], "onwebhooksupdateabc": 35, "on_webhooks_upd": [35, 37], "tocontainersconvert": 36, "_l": 36, "commanderrorhandlerservic": 37, "discordbotservic": 37, "logging_st": 37, "discordserviceabc": 37, "discordbotserviceabc": 37, "client": 37, "start_async": 37, "bot": 37, "discordcollect": 37, "discordcollectionabc": 37, "add_command": 37, "add_ev": 37, "_t_event": 37, "get_command": 37, "get_events_by_bas": 37, "discordservic": 37, "init": 37, "cpl_queri": [38, 47], "default_lambda": [38, 47], "ordered_query": [38, 47], "ordered_queryable_abc": [38, 47], "queryable_abc": [38, 47], "sequence_abc": [38, 47], "sequence_valu": [38, 47], "enumerable_abc": [38, 41, 42, 47], "iterable_abc": [38, 40, 41, 47], "orderedquery": 39, "_valu": [39, 40], "_func": 39, "orderedqueryableabc": 39, "orderediterableabc": 39, "then_bi": 39, "orderedlist": 39, "ascend": 39, "func": 39, "ordered_iterable_abc": 39, "then_by_descend": 39, "descend": 39, "queryableabc": [39, 40, 42], "sequenceabc": 39, "everi": 39, "equal": 39, "averag": 39, "float": 39, "complex": [39, 45, 46], "distinct": 39, "redund": 39, "element_at": 39, "_index": 39, "element_at_or_default": 39, "first_or_default": 39, "for_each": 39, "group_bi": 39, "group": 39, "last_or_default": 39, "max": 39, "highest": 39, "median": 39, "min": 39, "order_bi": 39, "order_by_descend": 39, "revers": 39, "select_mani": 39, "flatten": 39, "singl": 39, "argumentnoneexcept": 39, "single_or_default": 39, "skip": 39, "skip_last": 39, "sum": 39, "take_last": 39, "where": 39, "empti": 39, "_object": [39, 42], "indexerror": 39, "rang": [39, 48], "sequencevalu": 39, "enumerableabc": [40, 41, 42], "set_remove_error_check": 40, "to_iter": [40, 41], "iterableabc": [40, 41, 42], "to_enumer": [41, 42], "append": 42, "extend": [42, 44, 47, 50], "_iterableabc__iter": 42, "__iter": 42, "translatepip": 43, "translationserviceabc": 43, "translationservic": 43, "lang": 43, "load_by_set": 43, "translationset": 43, "set_default_lang": 43, "set_lang": 43, "kei": [43, 45, 49], "default_languag": 43, "prerequisit": [44, 47], "what": [44, 47], "up": [44, 47], "queri": [44, 45, 46, 47], "tutori": [44, 47, 48, 49], "com": [44, 47, 50], "builtin": [44, 47, 50], "common": [45, 46], "platform": [45, 46], "meant": [45, 46], "effici": [45, 46], "desktop": [45, 46], "learn": [45, 46, 49], "enterpris": [45, 46], "expandl": [45, 46], "builder": [45, 46], "map": [45, 46], "inject": [45, 46, 48], "appnam": [45, 46], "hostnam": [45, 46], "wrapper": [45, 46], "differ": [45, 46], "variant": [45, 46], "to_lower_cas": [45, 46], "to_camel_cas": [45, 46], "code": [45, 48, 49], "connector": 45, "between": 45, "filter": 45, "linq": 45, "xd": 45, "dot": 45, "notat": 45, "page": 45, "great": 45, "detail": 45, "about": [45, 49], "everyth": 45, "do": [45, 48], "contribut": 45, "cpl_translat": 47, "translate_pip": 47, "translation_servic": 47, "translation_service_abc": 47, "translation_set": 47, "welcom": 48, "introduc": 48, "walk": 48, "also": [48, 49], "sampl": 48, "ouput": 48, "look": 48, "licens": 48, "done": 48, "readm": 48, "md": 48, "__init__": 48, "projectmain": 48, "vs": 48, "pycharm": 48, "folder": 48, "hello": [48, 49], "world": [48, 49], "emul": 48, "def": 48, "onli": 48, "__name__": 48, "__main__": 48, "generate_password": 48, "letter": 48, "join": 48, "choic": 48, "ascii_lowercas": 48, "elif": 48, "ascii_uppercas": 48, "ascii_lett": 48, "len": 48, "full": 48, "section": 48, "ve": 48, "continu": 48, "explor": 48, "window": 49, "prompt": 49, "declin": 49, "enter": 49, "press": 49, "lib": 49, "live": 49, "navig": 49, "launch": 49, "watch": 49, "chnage": 49, "those": 49, "success": 49, "similar": 49, "fore": 49, "pyhton": 49}, "objects": {"cpl_core.application": [[17, 0, 0, "-", "application_abc"], [17, 0, 0, "-", "application_builder"], [17, 0, 0, "-", "application_builder_abc"], [17, 0, 0, "-", "startup_abc"]], "cpl_core.application.application_abc": [[17, 1, 1, "", "ApplicationABC"]], "cpl_core.application.application_abc.ApplicationABC": [[17, 2, 1, "", "configure"], [17, 2, 1, "", "main"], [17, 2, 1, "", "run"], [17, 2, 1, "", "run_async"]], "cpl_core.application.application_builder": [[17, 1, 1, "", "ApplicationBuilder"]], "cpl_core.application.application_builder.ApplicationBuilder": [[17, 2, 1, "", "build"], [17, 2, 1, "", "build_async"], [17, 2, 1, "", "use_extension"], [17, 2, 1, "", "use_startup"]], "cpl_core.application.application_builder_abc": [[17, 1, 1, "", "ApplicationBuilderABC"]], "cpl_core.application.application_builder_abc.ApplicationBuilderABC": [[17, 2, 1, "", "build"], [17, 2, 1, "", "build_async"], [17, 2, 1, "", "use_startup"]], "cpl_core.application.startup_abc": [[17, 1, 1, "", "StartupABC"]], "cpl_core.application.startup_abc.StartupABC": [[17, 2, 1, "", "configure_configuration"], [17, 2, 1, "", "configure_services"]], "cpl_core.configuration": [[18, 0, 0, "-", "configuration"], [18, 0, 0, "-", "configuration_abc"], [18, 0, 0, "-", "configuration_model_abc"], [18, 0, 0, "-", "configuration_variable_name_enum"]], "cpl_core.configuration.configuration": [[18, 1, 1, "", "Configuration"]], "cpl_core.configuration.configuration.Configuration": [[18, 2, 1, "", "add_configuration"], [18, 2, 1, "", "add_console_argument"], [18, 2, 1, "", "add_environment_variables"], [18, 2, 1, "", "add_json_file"], [18, 3, 1, "", "additional_arguments"], [18, 3, 1, "", "argument_error_function"], [18, 3, 1, "", "arguments"], [18, 2, 1, "", "create_console_argument"], [18, 3, 1, "", "environment"], [18, 2, 1, "", "for_each_argument"], [18, 2, 1, "", "get_configuration"], [18, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_abc": [[18, 1, 1, "", "ConfigurationABC"]], "cpl_core.configuration.configuration_abc.ConfigurationABC": [[18, 2, 1, "", "add_configuration"], [18, 2, 1, "", "add_console_argument"], [18, 2, 1, "", "add_environment_variables"], [18, 2, 1, "", "add_json_file"], [18, 3, 1, "", "additional_arguments"], [18, 3, 1, "", "argument_error_function"], [18, 3, 1, "", "arguments"], [18, 2, 1, "", "create_console_argument"], [18, 3, 1, "", "environment"], [18, 2, 1, "", "for_each_argument"], [18, 2, 1, "", "get_configuration"], [18, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_model_abc": [[18, 1, 1, "", "ConfigurationModelABC"]], "cpl_core.configuration.configuration_model_abc.ConfigurationModelABC": [[18, 2, 1, "", "from_dict"]], "cpl_core.configuration.configuration_variable_name_enum": [[18, 1, 1, "", "ConfigurationVariableNameEnum"]], "cpl_core.configuration.configuration_variable_name_enum.ConfigurationVariableNameEnum": [[18, 4, 1, "", "customer"], [18, 4, 1, "", "environment"], [18, 4, 1, "", "name"], [18, 2, 1, "", "to_list"]], "cpl_core.console": [[19, 0, 0, "-", "background_color_enum"], [19, 0, 0, "-", "console"], [19, 0, 0, "-", "console_call"], [19, 0, 0, "-", "foreground_color_enum"], [19, 0, 0, "-", "spinner_thread"]], "cpl_core.console.background_color_enum": [[19, 1, 1, "", "BackgroundColorEnum"]], "cpl_core.console.background_color_enum.BackgroundColorEnum": [[19, 4, 1, "", "blue"], [19, 4, 1, "", "cyan"], [19, 4, 1, "", "default"], [19, 4, 1, "", "green"], [19, 4, 1, "", "grey"], [19, 4, 1, "", "magenta"], [19, 4, 1, "", "red"], [19, 4, 1, "", "white"], [19, 4, 1, "", "yellow"]], "cpl_core.console.console": [[19, 1, 1, "", "Console"]], "cpl_core.console.console.Console": [[19, 3, 1, "", "background_color"], [19, 2, 1, "", "banner"], [19, 2, 1, "", "clear"], [19, 2, 1, "", "close"], [19, 2, 1, "", "color_reset"], [19, 2, 1, "", "disable"], [19, 2, 1, "", "enable"], [19, 2, 1, "", "error"], [19, 3, 1, "", "foreground_color"], [19, 2, 1, "", "read"], [19, 2, 1, "", "read_line"], [19, 2, 1, "", "reset_cursor_position"], [19, 2, 1, "", "select"], [19, 2, 1, "", "set_background_color"], [19, 2, 1, "", "set_cursor_position"], [19, 2, 1, "", "set_foreground_color"], [19, 2, 1, "", "set_hold_back"], [19, 2, 1, "", "spinner"], [19, 2, 1, "", "table"], [19, 2, 1, "", "write"], [19, 2, 1, "", "write_at"], [19, 2, 1, "", "write_line"], [19, 2, 1, "", "write_line_at"]], "cpl_core.console.console_call": [[19, 1, 1, "", "ConsoleCall"]], "cpl_core.console.console_call.ConsoleCall": [[19, 3, 1, "", "args"], [19, 3, 1, "", "function"]], "cpl_core.console.foreground_color_enum": [[19, 1, 1, "", "ForegroundColorEnum"]], "cpl_core.console.foreground_color_enum.ForegroundColorEnum": [[19, 4, 1, "", "blue"], [19, 4, 1, "", "cyan"], [19, 4, 1, "", "default"], [19, 4, 1, "", "green"], [19, 4, 1, "", "grey"], [19, 4, 1, "", "magenta"], [19, 4, 1, "", "red"], [19, 4, 1, "", "white"], [19, 4, 1, "", "yellow"]], "cpl_core.console.spinner_thread": [[19, 1, 1, "", "SpinnerThread"]], "cpl_core.console.spinner_thread.SpinnerThread": [[19, 2, 1, "", "exit"], [19, 2, 1, "", "run"], [19, 2, 1, "", "stop_spinning"]], "cpl_core.database.connection": [[21, 0, 0, "-", "database_connection"], [21, 0, 0, "-", "database_connection_abc"]], "cpl_core.database.connection.database_connection": [[21, 1, 1, "", "DatabaseConnection"]], "cpl_core.database.connection.database_connection.DatabaseConnection": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 3, 1, "", "server"]], "cpl_core.database.connection.database_connection_abc": [[21, 1, 1, "", "DatabaseConnectionABC"]], "cpl_core.database.connection.database_connection_abc.DatabaseConnectionABC": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 3, 1, "", "server"]], "cpl_core.database.context": [[22, 0, 0, "-", "database_context"], [22, 0, 0, "-", "database_context_abc"]], "cpl_core.database.context.database_context": [[22, 1, 1, "", "DatabaseContext"]], "cpl_core.database.context.database_context.DatabaseContext": [[22, 2, 1, "", "connect"], [22, 3, 1, "", "cursor"], [22, 2, 1, "", "save_changes"], [22, 2, 1, "", "select"]], "cpl_core.database.context.database_context_abc": [[22, 1, 1, "", "DatabaseContextABC"]], "cpl_core.database.context.database_context_abc.DatabaseContextABC": [[22, 2, 1, "", "connect"], [22, 3, 1, "", "cursor"], [22, 2, 1, "", "save_changes"], [22, 2, 1, "", "select"]], "cpl_core.database": [[20, 0, 0, "-", "database_settings"], [20, 0, 0, "-", "database_settings_name_enum"]], "cpl_core.database.database_settings": [[20, 1, 1, "", "DatabaseSettings"]], "cpl_core.database.database_settings.DatabaseSettings": [[20, 3, 1, "", "auth_plugin"], [20, 3, 1, "", "buffered"], [20, 3, 1, "", "charset"], [20, 3, 1, "", "database"], [20, 2, 1, "", "from_dict"], [20, 3, 1, "", "host"], [20, 3, 1, "", "password"], [20, 3, 1, "", "port"], [20, 3, 1, "", "use_unicode"], [20, 3, 1, "", "user"]], "cpl_core.database.database_settings_name_enum": [[20, 1, 1, "", "DatabaseSettingsNameEnum"]], "cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum": [[20, 4, 1, "", "auth_plugin"], [20, 4, 1, "", "buffered"], [20, 4, 1, "", "charset"], [20, 4, 1, "", "database"], [20, 4, 1, "", "host"], [20, 4, 1, "", "password"], [20, 4, 1, "", "port"], [20, 4, 1, "", "use_unicode"], [20, 4, 1, "", "user"]], "cpl_core.dependency_injection": [[23, 0, 0, "-", "service_collection"], [23, 0, 0, "-", "service_collection_abc"], [23, 0, 0, "-", "service_descriptor"], [23, 0, 0, "-", "service_lifetime_enum"], [23, 0, 0, "-", "service_provider"], [23, 0, 0, "-", "service_provider_abc"]], "cpl_core.dependency_injection.service_collection": [[23, 1, 1, "", "ServiceCollection"]], "cpl_core.dependency_injection.service_collection.ServiceCollection": [[23, 2, 1, "", "add_db_context"], [23, 2, 1, "", "add_logging"], [23, 2, 1, "", "add_pipes"], [23, 2, 1, "", "add_scoped"], [23, 2, 1, "", "add_singleton"], [23, 2, 1, "", "add_transient"], [23, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_collection_abc": [[23, 1, 1, "", "ServiceCollectionABC"]], "cpl_core.dependency_injection.service_collection_abc.ServiceCollectionABC": [[23, 2, 1, "", "add_db_context"], [23, 2, 1, "", "add_discord"], [23, 2, 1, "", "add_logging"], [23, 2, 1, "", "add_pipes"], [23, 2, 1, "", "add_scoped"], [23, 2, 1, "", "add_singleton"], [23, 2, 1, "", "add_transient"], [23, 2, 1, "", "add_translation"], [23, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_descriptor": [[23, 1, 1, "", "ServiceDescriptor"]], "cpl_core.dependency_injection.service_descriptor.ServiceDescriptor": [[23, 3, 1, "", "base_type"], [23, 3, 1, "", "implementation"], [23, 3, 1, "", "lifetime"], [23, 3, 1, "", "service_type"]], "cpl_core.dependency_injection.service_lifetime_enum": [[23, 1, 1, "", "ServiceLifetimeEnum"]], "cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum": [[23, 4, 1, "", "scoped"], [23, 4, 1, "", "singleton"], [23, 4, 1, "", "transient"]], "cpl_core.dependency_injection.service_provider": [[23, 1, 1, "", "ServiceProvider"]], "cpl_core.dependency_injection.service_provider.ServiceProvider": [[23, 2, 1, "", "build_service"], [23, 2, 1, "", "create_scope"], [23, 2, 1, "", "get_service"], [23, 2, 1, "", "set_scope"]], "cpl_core.dependency_injection.service_provider_abc": [[23, 1, 1, "", "ServiceProviderABC"]], "cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC": [[23, 2, 1, "", "build_service"], [23, 2, 1, "", "create_scope"], [23, 2, 1, "", "get_service"], [23, 2, 1, "", "set_scope"]], "cpl_core.environment": [[24, 0, 0, "-", "application_environment"], [24, 0, 0, "-", "application_environment_abc"], [24, 0, 0, "-", "environment_name_enum"]], "cpl_core.environment.application_environment": [[24, 1, 1, "", "ApplicationEnvironment"]], "cpl_core.environment.application_environment.ApplicationEnvironment": [[24, 3, 1, "", "application_name"], [24, 3, 1, "", "customer"], [24, 3, 1, "", "date_time_now"], [24, 3, 1, "", "end_time"], [24, 3, 1, "", "environment_name"], [24, 3, 1, "", "host_name"], [24, 3, 1, "", "runtime_directory"], [24, 2, 1, "", "set_runtime_directory"], [24, 2, 1, "", "set_working_directory"], [24, 3, 1, "", "start_time"], [24, 3, 1, "", "working_directory"]], "cpl_core.environment.application_environment_abc": [[24, 1, 1, "", "ApplicationEnvironmentABC"]], "cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC": [[24, 3, 1, "", "application_name"], [24, 3, 1, "", "customer"], [24, 3, 1, "", "date_time_now"], [24, 3, 1, "", "end_time"], [24, 3, 1, "", "environment_name"], [24, 3, 1, "", "host_name"], [24, 3, 1, "", "runtime_directory"], [24, 2, 1, "", "set_runtime_directory"], [24, 2, 1, "", "set_working_directory"], [24, 3, 1, "", "start_time"], [24, 3, 1, "", "working_directory"]], "cpl_core.environment.environment_name_enum": [[24, 1, 1, "", "EnvironmentNameEnum"]], "cpl_core.environment.environment_name_enum.EnvironmentNameEnum": [[24, 4, 1, "", "development"], [24, 4, 1, "", "production"], [24, 4, 1, "", "staging"], [24, 4, 1, "", "testing"]], "cpl_core.logging": [[25, 0, 0, "-", "logger_abc"], [25, 0, 0, "-", "logger_service"], [25, 0, 0, "-", "logging_level_enum"], [25, 0, 0, "-", "logging_settings"], [25, 0, 0, "-", "logging_settings_name_enum"]], "cpl_core.logging.logger_abc": [[25, 1, 1, "", "LoggerABC"]], "cpl_core.logging.logger_abc.LoggerABC": [[25, 2, 1, "", "debug"], [25, 2, 1, "", "error"], [25, 2, 1, "", "fatal"], [25, 2, 1, "", "header"], [25, 2, 1, "", "info"], [25, 2, 1, "", "trace"], [25, 2, 1, "", "warn"]], "cpl_core.logging.logger_service": [[25, 1, 1, "", "Logger"]], "cpl_core.logging.logger_service.Logger": [[25, 2, 1, "", "create"], [25, 2, 1, "", "debug"], [25, 2, 1, "", "error"], [25, 2, 1, "", "fatal"], [25, 2, 1, "", "header"], [25, 2, 1, "", "info"], [25, 2, 1, "", "trace"], [25, 2, 1, "", "warn"]], "cpl_core.logging.logging_level_enum": [[25, 1, 1, "", "LoggingLevelEnum"]], "cpl_core.logging.logging_level_enum.LoggingLevelEnum": [[25, 4, 1, "", "DEBUG"], [25, 4, 1, "", "ERROR"], [25, 4, 1, "", "FATAL"], [25, 4, 1, "", "INFO"], [25, 4, 1, "", "OFF"], [25, 4, 1, "", "TRACE"], [25, 4, 1, "", "WARN"]], "cpl_core.logging.logging_settings": [[25, 1, 1, "", "LoggingSettings"]], "cpl_core.logging.logging_settings.LoggingSettings": [[25, 3, 1, "", "console"], [25, 3, 1, "", "filename"], [25, 2, 1, "", "from_dict"], [25, 3, 1, "", "level"], [25, 3, 1, "", "path"]], "cpl_core.logging.logging_settings_name_enum": [[25, 1, 1, "", "LoggingSettingsNameEnum"]], "cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum": [[25, 4, 1, "", "console_level"], [25, 4, 1, "", "file_level"], [25, 4, 1, "", "filename"], [25, 4, 1, "", "path"]], "cpl_core.mailing": [[26, 0, 0, "-", "email"], [26, 0, 0, "-", "email_client_abc"], [26, 0, 0, "-", "email_client_service"], [26, 0, 0, "-", "email_client_settings"], [26, 0, 0, "-", "email_client_settings_name_enum"]], "cpl_core.mailing.email": [[26, 1, 1, "", "EMail"]], "cpl_core.mailing.email.EMail": [[26, 2, 1, "", "add_header"], [26, 2, 1, "", "add_receiver"], [26, 3, 1, "", "body"], [26, 2, 1, "", "check_mail"], [26, 2, 1, "", "get_content"], [26, 3, 1, "", "header"], [26, 3, 1, "", "header_list"], [26, 3, 1, "", "receiver"], [26, 3, 1, "", "receiver_list"], [26, 3, 1, "", "subject"], [26, 3, 1, "", "transceiver"]], "cpl_core.mailing.email_client_abc": [[26, 1, 1, "", "EMailClientABC"]], "cpl_core.mailing.email_client_abc.EMailClientABC": [[26, 2, 1, "", "connect"], [26, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_service": [[26, 1, 1, "", "EMailClient"]], "cpl_core.mailing.email_client_service.EMailClient": [[26, 2, 1, "", "connect"], [26, 2, 1, "", "create"], [26, 2, 1, "", "login"], [26, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_settings": [[26, 1, 1, "", "EMailClientSettings"]], "cpl_core.mailing.email_client_settings.EMailClientSettings": [[26, 3, 1, "", "credentials"], [26, 2, 1, "", "from_dict"], [26, 3, 1, "", "host"], [26, 3, 1, "", "port"], [26, 3, 1, "", "user_name"]], "cpl_core.mailing.email_client_settings_name_enum": [[26, 1, 1, "", "EMailClientSettingsNameEnum"]], "cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum": [[26, 4, 1, "", "credentials"], [26, 4, 1, "", "host"], [26, 4, 1, "", "port"], [26, 4, 1, "", "user_name"]], "cpl_core.pipes": [[27, 0, 0, "-", "bool_pipe"], [27, 0, 0, "-", "first_char_to_lower_pipe"], [27, 0, 0, "-", "first_to_upper_pipe"], [27, 0, 0, "-", "ip_address_pipe"], [27, 0, 0, "-", "pipe_abc"], [27, 0, 0, "-", "to_camel_case_pipe"], [27, 0, 0, "-", "to_snake_case_pipe"], [27, 0, 0, "-", "version_pipe"]], "cpl_core.pipes.bool_pipe": [[27, 1, 1, "", "BoolPipe"]], "cpl_core.pipes.bool_pipe.BoolPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.first_char_to_lower_pipe": [[27, 1, 1, "", "FirstCharToLowerPipe"]], "cpl_core.pipes.first_char_to_lower_pipe.FirstCharToLowerPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.first_to_upper_pipe": [[27, 1, 1, "", "FirstToUpperPipe"]], "cpl_core.pipes.first_to_upper_pipe.FirstToUpperPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.ip_address_pipe": [[27, 1, 1, "", "IPAddressPipe"]], "cpl_core.pipes.ip_address_pipe.IPAddressPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.pipe_abc": [[27, 1, 1, "", "PipeABC"]], "cpl_core.pipes.pipe_abc.PipeABC": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.to_camel_case_pipe": [[27, 1, 1, "", "ToCamelCasePipe"]], "cpl_core.pipes.to_camel_case_pipe.ToCamelCasePipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.to_snake_case_pipe": [[27, 1, 1, "", "ToSnakeCasePipe"]], "cpl_core.pipes.to_snake_case_pipe.ToSnakeCasePipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.version_pipe": [[27, 1, 1, "", "VersionPipe"]], "cpl_core.pipes.version_pipe.VersionPipe": [[27, 2, 1, "", "transform"]], "cpl_core.time": [[28, 0, 0, "-", "time_format_settings"], [28, 0, 0, "-", "time_format_settings_names_enum"]], "cpl_core.time.time_format_settings": [[28, 1, 1, "", "TimeFormatSettings"]], "cpl_core.time.time_format_settings.TimeFormatSettings": [[28, 3, 1, "", "date_format"], [28, 3, 1, "", "date_time_format"], [28, 3, 1, "", "date_time_log_format"], [28, 2, 1, "", "from_dict"], [28, 3, 1, "", "time_format"]], "cpl_core.time.time_format_settings_names_enum": [[28, 1, 1, "", "TimeFormatSettingsNamesEnum"]], "cpl_core.time.time_format_settings_names_enum.TimeFormatSettingsNamesEnum": [[28, 4, 1, "", "date_format"], [28, 4, 1, "", "date_time_format"], [28, 4, 1, "", "date_time_log_format"], [28, 4, 1, "", "time_format"]], "cpl_core.utils": [[29, 0, 0, "-", "credential_manager"], [29, 0, 0, "-", "pip"], [29, 0, 0, "-", "string"]], "cpl_core.utils.credential_manager": [[29, 1, 1, "", "CredentialManager"]], "cpl_core.utils.credential_manager.CredentialManager": [[29, 2, 1, "", "build_string"], [29, 2, 1, "", "decrypt"], [29, 2, 1, "", "encrypt"]], "cpl_core.utils.pip": [[29, 1, 1, "", "Pip"]], "cpl_core.utils.pip.Pip": [[29, 2, 1, "", "get_executable"], [29, 2, 1, "", "get_outdated"], [29, 2, 1, "", "get_package"], [29, 2, 1, "", "install"], [29, 2, 1, "", "reset_executable"], [29, 2, 1, "", "set_executable"], [29, 2, 1, "", "uninstall"]], "cpl_core.utils.string": [[29, 1, 1, "", "String"]], "cpl_core.utils.string.String": [[29, 2, 1, "", "convert_to_camel_case"], [29, 2, 1, "", "convert_to_snake_case"], [29, 2, 1, "", "first_to_lower"], [29, 2, 1, "", "first_to_upper"], [29, 2, 1, "", "random_string"]], "cpl_discord.application": [[31, 0, 0, "-", "discord_bot_application_abc"]], "cpl_discord.application.discord_bot_application_abc": [[31, 1, 1, "", "DiscordBotApplicationABC"]], "cpl_discord.application.discord_bot_application_abc.DiscordBotApplicationABC": [[31, 2, 1, "", "stop_async"]], "cpl_discord.command": [[32, 0, 0, "-", "discord_command_abc"], [32, 0, 0, "-", "discord_commands_meta"]], "cpl_discord.command.discord_command_abc": [[32, 1, 1, "", "DiscordCommandABC"]], "cpl_discord.command.discord_commands_meta": [[32, 1, 1, "", "DiscordCogMeta"]], "cpl_discord.configuration": [[33, 0, 0, "-", "discord_bot_settings"]], "cpl_discord.configuration.discord_bot_settings": [[33, 1, 1, "", "DiscordBotSettings"]], "cpl_discord.configuration.discord_bot_settings.DiscordBotSettings": [[33, 2, 1, "", "from_dict"], [33, 3, 1, "", "prefix"], [33, 3, 1, "", "token"]], "cpl_discord.container": [[34, 0, 0, "-", "category_channel"], [34, 0, 0, "-", "container"], [34, 0, 0, "-", "guild"], [34, 0, 0, "-", "member"], [34, 0, 0, "-", "role"], [34, 0, 0, "-", "text_channel"], [34, 0, 0, "-", "thread"], [34, 0, 0, "-", "voice_channel"]], "cpl_discord.container.category_channel": [[34, 1, 1, "", "CategoryChannel"]], "cpl_discord.container.category_channel.CategoryChannel": [[34, 4, 1, "", "category_id"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw"], [34, 4, 1, "", "position"], [34, 3, 1, "", "text_channels"], [34, 3, 1, "", "voice_channels"]], "cpl_discord.container.container": [[34, 1, 1, "", "Container"]], "cpl_discord.container.guild": [[34, 1, 1, "", "Guild"]], "cpl_discord.container.guild.Guild": [[34, 4, 1, "", "afk_channel"], [34, 4, 1, "", "afk_timeout"], [34, 4, 1, "", "approximate_member_count"], [34, 4, 1, "", "approximate_presence_count"], [34, 3, 1, "", "categories"], [34, 4, 1, "", "default_notifications"], [34, 4, 1, "", "description"], [34, 4, 1, "", "emojis"], [34, 4, 1, "", "explicit_content_filter"], [34, 4, 1, "", "features"], [34, 4, 1, "", "id"], [34, 4, 1, "", "max_members"], [34, 4, 1, "", "max_presences"], [34, 4, 1, "", "max_video_channel_users"], [34, 3, 1, "", "members"], [34, 4, 1, "", "mfa_level"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw_level"], [34, 4, 1, "", "owner_id"], [34, 4, 1, "", "preferred_locale"], [34, 4, 1, "", "premium_progress_bar_enabled"], [34, 4, 1, "", "premium_subscription_count"], [34, 4, 1, "", "premium_tier"], [34, 3, 1, "", "roles"], [34, 4, 1, "", "stickers"], [34, 3, 1, "", "text_channels"], [34, 3, 1, "", "threads"], [34, 4, 1, "", "unavailable"], [34, 4, 1, "", "vanity_url_code"], [34, 4, 1, "", "verification_level"], [34, 3, 1, "", "voice_channels"], [34, 4, 1, "", "widget_enabled"]], "cpl_discord.container.member": [[34, 1, 1, "", "Member"]], "cpl_discord.container.member.Member": [[34, 4, 1, "", "activities"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "joined_at"], [34, 4, 1, "", "nick"], [34, 4, 1, "", "pending"], [34, 4, 1, "", "premium_since"], [34, 3, 1, "", "roles"], [34, 4, 1, "", "timed_out_until"]], "cpl_discord.container.role": [[34, 1, 1, "", "Role"]], "cpl_discord.container.role.Role": [[34, 4, 1, "", "guild"], [34, 4, 1, "", "hoist"], [34, 4, 1, "", "id"], [34, 4, 1, "", "managed"], [34, 3, 1, "", "members"], [34, 4, 1, "", "mentionable"], [34, 4, 1, "", "name"], [34, 4, 1, "", "position"], [34, 4, 1, "", "tags"], [34, 4, 1, "", "unicode_emoji"]], "cpl_discord.container.text_channel": [[34, 1, 1, "", "TextChannel"]], "cpl_discord.container.text_channel.TextChannel": [[34, 4, 1, "", "category_id"], [34, 4, 1, "", "default_auto_archive_duration"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "last_message_id"], [34, 3, 1, "", "members"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw"], [34, 4, 1, "", "position"], [34, 4, 1, "", "slowmode_delay"], [34, 3, 1, "", "threads"], [34, 4, 1, "", "topic"]], "cpl_discord.container.thread": [[34, 1, 1, "", "Thread"]], "cpl_discord.container.thread.Thread": [[34, 4, 1, "", "archive_timestamp"], [34, 4, 1, "", "archived"], [34, 4, 1, "", "archiver_id"], [34, 4, 1, "", "auto_archive_duration"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "invitable"], [34, 4, 1, "", "last_message_id"], [34, 4, 1, "", "locked"], [34, 4, 1, "", "me"], [34, 4, 1, "", "member_count"], [34, 3, 1, "", "members"], [34, 4, 1, "", "message_count"], [34, 4, 1, "", "name"], [34, 4, 1, "", "owner_id"], [34, 4, 1, "", "parent_id"], [34, 4, 1, "", "slowmode_delay"]], "cpl_discord.container.voice_channel": [[34, 1, 1, "", "VoiceChannel"]], "cpl_discord.container.voice_channel.VoiceChannel": [[34, 3, 1, "", "members"]], "cpl_discord.events": [[35, 0, 0, "-", "on_bulk_message_delete_abc"], [35, 0, 0, "-", "on_command_abc"], [35, 0, 0, "-", "on_command_completion_abc"], [35, 0, 0, "-", "on_command_error_abc"], [35, 0, 0, "-", "on_connect_abc"], [35, 0, 0, "-", "on_disconnect_abc"], [35, 0, 0, "-", "on_error_abc"], [35, 0, 0, "-", "on_group_join_abc"], [35, 0, 0, "-", "on_group_remove_abc"], [35, 0, 0, "-", "on_guild_available_abc"], [35, 0, 0, "-", "on_guild_channel_create_abc"], [35, 0, 0, "-", "on_guild_channel_delete_abc"], [35, 0, 0, "-", "on_guild_channel_pins_update_abc"], [35, 0, 0, "-", "on_guild_channel_update_abc"], [35, 0, 0, "-", "on_guild_emojis_update_abc"], [35, 0, 0, "-", "on_guild_integrations_update_abc"], [35, 0, 0, "-", "on_guild_join_abc"], [35, 0, 0, "-", "on_guild_remove_abc"], [35, 0, 0, "-", "on_guild_role_create_abc"], [35, 0, 0, "-", "on_guild_role_delete_abc"], [35, 0, 0, "-", "on_guild_role_update_abc"], [35, 0, 0, "-", "on_guild_unavailable_abc"], [35, 0, 0, "-", "on_guild_update_abc"], [35, 0, 0, "-", "on_invite_create_abc"], [35, 0, 0, "-", "on_invite_delete_abc"], [35, 0, 0, "-", "on_member_ban_abc"], [35, 0, 0, "-", "on_member_join_abc"], [35, 0, 0, "-", "on_member_remove_abc"], [35, 0, 0, "-", "on_member_unban_abc"], [35, 0, 0, "-", "on_member_update_abc"], [35, 0, 0, "-", "on_message_abc"], [35, 0, 0, "-", "on_message_delete_abc"], [35, 0, 0, "-", "on_message_edit_abc"], [35, 0, 0, "-", "on_private_channel_create_abc"], [35, 0, 0, "-", "on_private_channel_delete_abc"], [35, 0, 0, "-", "on_private_channel_pins_update_abc"], [35, 0, 0, "-", "on_private_channel_update_abc"], [35, 0, 0, "-", "on_raw_reaction_add_abc"], [35, 0, 0, "-", "on_raw_reaction_clear_abc"], [35, 0, 0, "-", "on_raw_reaction_clear_emoji_abc"], [35, 0, 0, "-", "on_raw_reaction_remove_abc"], [35, 0, 0, "-", "on_reaction_add_abc"], [35, 0, 0, "-", "on_reaction_clear_abc"], [35, 0, 0, "-", "on_reaction_clear_emoji_abc"], [35, 0, 0, "-", "on_reaction_remove_abc"], [35, 0, 0, "-", "on_ready_abc"], [35, 0, 0, "-", "on_resume_abc"], [35, 0, 0, "-", "on_typing_abc"], [35, 0, 0, "-", "on_user_update_abc"], [35, 0, 0, "-", "on_voice_state_update_abc"], [35, 0, 0, "-", "on_webhooks_update_abc"]], "cpl_discord.events.on_bulk_message_delete_abc": [[35, 1, 1, "", "OnBulkMessageDeleteABC"]], "cpl_discord.events.on_bulk_message_delete_abc.OnBulkMessageDeleteABC": [[35, 2, 1, "", "on_bulk_message_delete"]], "cpl_discord.events.on_command_abc": [[35, 1, 1, "", "OnCommandABC"]], "cpl_discord.events.on_command_abc.OnCommandABC": [[35, 2, 1, "", "on_command"]], "cpl_discord.events.on_command_completion_abc": [[35, 1, 1, "", "OnCommandCompletionABC"]], "cpl_discord.events.on_command_completion_abc.OnCommandCompletionABC": [[35, 2, 1, "", "on_command_completion"]], "cpl_discord.events.on_command_error_abc": [[35, 1, 1, "", "OnCommandErrorABC"]], "cpl_discord.events.on_command_error_abc.OnCommandErrorABC": [[35, 2, 1, "", "on_command_error"]], "cpl_discord.events.on_connect_abc": [[35, 1, 1, "", "OnConnectABC"]], "cpl_discord.events.on_connect_abc.OnConnectABC": [[35, 2, 1, "", "on_connect"]], "cpl_discord.events.on_disconnect_abc": [[35, 1, 1, "", "OnDisconnectABC"]], "cpl_discord.events.on_disconnect_abc.OnDisconnectABC": [[35, 2, 1, "", "on_disconnect"]], "cpl_discord.events.on_error_abc": [[35, 1, 1, "", "OnErrorABC"]], "cpl_discord.events.on_error_abc.OnErrorABC": [[35, 2, 1, "", "on_error"]], "cpl_discord.events.on_group_join_abc": [[35, 1, 1, "", "OnGroupJoinABC"]], "cpl_discord.events.on_group_join_abc.OnGroupJoinABC": [[35, 2, 1, "", "on_group_join"]], "cpl_discord.events.on_group_remove_abc": [[35, 1, 1, "", "OnGroupRemoveABC"]], "cpl_discord.events.on_group_remove_abc.OnGroupRemoveABC": [[35, 2, 1, "", "on_group_remove"]], "cpl_discord.events.on_guild_available_abc": [[35, 1, 1, "", "OnGuildAvailableABC"]], "cpl_discord.events.on_guild_available_abc.OnGuildAvailableABC": [[35, 2, 1, "", "on_guild_available"]], "cpl_discord.events.on_guild_channel_create_abc": [[35, 1, 1, "", "OnGuildChannelCreateABC"]], "cpl_discord.events.on_guild_channel_create_abc.OnGuildChannelCreateABC": [[35, 2, 1, "", "on_guild_channel_create"]], "cpl_discord.events.on_guild_channel_delete_abc": [[35, 1, 1, "", "OnGuildChannelDeleteABC"]], "cpl_discord.events.on_guild_channel_delete_abc.OnGuildChannelDeleteABC": [[35, 2, 1, "", "on_guild_channel_delete"]], "cpl_discord.events.on_guild_channel_pins_update_abc": [[35, 1, 1, "", "OnGuildChannelPinsUpdateABC"]], "cpl_discord.events.on_guild_channel_pins_update_abc.OnGuildChannelPinsUpdateABC": [[35, 2, 1, "", "on_guild_channel_pins_update"]], "cpl_discord.events.on_guild_channel_update_abc": [[35, 1, 1, "", "OnGuildChannelUpdateABC"]], "cpl_discord.events.on_guild_channel_update_abc.OnGuildChannelUpdateABC": [[35, 2, 1, "", "on_guild_channel_update"]], "cpl_discord.events.on_guild_emojis_update_abc": [[35, 1, 1, "", "OnGuildEmojisUpdateABC"]], "cpl_discord.events.on_guild_emojis_update_abc.OnGuildEmojisUpdateABC": [[35, 2, 1, "", "on_guild_emojis_update"]], "cpl_discord.events.on_guild_integrations_update_abc": [[35, 1, 1, "", "OnGuildIntegrationsUpdateABC"]], "cpl_discord.events.on_guild_integrations_update_abc.OnGuildIntegrationsUpdateABC": [[35, 2, 1, "", "on_guild_integrations_update"]], "cpl_discord.events.on_guild_join_abc": [[35, 1, 1, "", "OnGuildJoinABC"]], "cpl_discord.events.on_guild_join_abc.OnGuildJoinABC": [[35, 2, 1, "", "on_guild_join"]], "cpl_discord.events.on_guild_remove_abc": [[35, 1, 1, "", "OnGuildRemoveABC"]], "cpl_discord.events.on_guild_remove_abc.OnGuildRemoveABC": [[35, 2, 1, "", "on_guild_remove"]], "cpl_discord.events.on_guild_role_create_abc": [[35, 1, 1, "", "OnGuildRoleCreateABC"]], "cpl_discord.events.on_guild_role_create_abc.OnGuildRoleCreateABC": [[35, 2, 1, "", "on_guild_role_create"]], "cpl_discord.events.on_guild_role_delete_abc": [[35, 1, 1, "", "OnGuildRoleDeleteABC"]], "cpl_discord.events.on_guild_role_delete_abc.OnGuildRoleDeleteABC": [[35, 2, 1, "", "on_guild_role_delete"]], "cpl_discord.events.on_guild_role_update_abc": [[35, 1, 1, "", "OnGuildRoleUpdateABC"]], "cpl_discord.events.on_guild_role_update_abc.OnGuildRoleUpdateABC": [[35, 2, 1, "", "on_guild_role_update"]], "cpl_discord.events.on_guild_unavailable_abc": [[35, 1, 1, "", "OnGuildUnavailableABC"]], "cpl_discord.events.on_guild_unavailable_abc.OnGuildUnavailableABC": [[35, 2, 1, "", "on_guild_unavailable"]], "cpl_discord.events.on_guild_update_abc": [[35, 1, 1, "", "OnGuildUpdateABC"]], "cpl_discord.events.on_guild_update_abc.OnGuildUpdateABC": [[35, 2, 1, "", "on_guild_update"]], "cpl_discord.events.on_invite_create_abc": [[35, 1, 1, "", "OnInviteCreateABC"]], "cpl_discord.events.on_invite_create_abc.OnInviteCreateABC": [[35, 2, 1, "", "on_invite_create"]], "cpl_discord.events.on_invite_delete_abc": [[35, 1, 1, "", "OnInviteDeleteABC"]], "cpl_discord.events.on_invite_delete_abc.OnInviteDeleteABC": [[35, 2, 1, "", "on_invite_delete"]], "cpl_discord.events.on_member_ban_abc": [[35, 1, 1, "", "OnMemberBanABC"]], "cpl_discord.events.on_member_ban_abc.OnMemberBanABC": [[35, 2, 1, "", "on_member_ban"]], "cpl_discord.events.on_member_join_abc": [[35, 1, 1, "", "OnMemberJoinABC"]], "cpl_discord.events.on_member_join_abc.OnMemberJoinABC": [[35, 2, 1, "", "on_member_join"]], "cpl_discord.events.on_member_remove_abc": [[35, 1, 1, "", "OnMemberRemoveABC"]], "cpl_discord.events.on_member_remove_abc.OnMemberRemoveABC": [[35, 2, 1, "", "on_member_remove"]], "cpl_discord.events.on_member_unban_abc": [[35, 1, 1, "", "OnMemberUnbanABC"]], "cpl_discord.events.on_member_unban_abc.OnMemberUnbanABC": [[35, 2, 1, "", "on_member_unban"]], "cpl_discord.events.on_member_update_abc": [[35, 1, 1, "", "OnMemberUpdateABC"]], "cpl_discord.events.on_member_update_abc.OnMemberUpdateABC": [[35, 2, 1, "", "on_member_update"]], "cpl_discord.events.on_message_abc": [[35, 1, 1, "", "OnMessageABC"]], "cpl_discord.events.on_message_abc.OnMessageABC": [[35, 2, 1, "", "on_message"]], "cpl_discord.events.on_message_delete_abc": [[35, 1, 1, "", "OnMessageDeleteABC"]], "cpl_discord.events.on_message_delete_abc.OnMessageDeleteABC": [[35, 2, 1, "", "on_message_delete"]], "cpl_discord.events.on_message_edit_abc": [[35, 1, 1, "", "OnMessageEditABC"]], "cpl_discord.events.on_message_edit_abc.OnMessageEditABC": [[35, 2, 1, "", "on_message_edit"]], "cpl_discord.events.on_private_channel_create_abc": [[35, 1, 1, "", "OnPrivateChannelCreateABC"]], "cpl_discord.events.on_private_channel_create_abc.OnPrivateChannelCreateABC": [[35, 2, 1, "", "on_private_channel_create"]], "cpl_discord.events.on_private_channel_delete_abc": [[35, 1, 1, "", "OnPrivateChannelDeleteABC"]], "cpl_discord.events.on_private_channel_delete_abc.OnPrivateChannelDeleteABC": [[35, 2, 1, "", "on_private_channel_delete"]], "cpl_discord.events.on_private_channel_pins_update_abc": [[35, 1, 1, "", "OnPrivateChannelPinsUpdateABC"]], "cpl_discord.events.on_private_channel_pins_update_abc.OnPrivateChannelPinsUpdateABC": [[35, 2, 1, "", "on_private_channel_pins_update"]], "cpl_discord.events.on_private_channel_update_abc": [[35, 1, 1, "", "OnPrivateChannelUpdateABC"]], "cpl_discord.events.on_private_channel_update_abc.OnPrivateChannelUpdateABC": [[35, 2, 1, "", "on_private_channel_update"]], "cpl_discord.events.on_raw_reaction_add_abc": [[35, 1, 1, "", "OnRawReactionAddABC"]], "cpl_discord.events.on_raw_reaction_add_abc.OnRawReactionAddABC": [[35, 2, 1, "", "on_raw_reaction_add"]], "cpl_discord.events.on_raw_reaction_clear_abc": [[35, 1, 1, "", "OnRawReactionClearABC"]], "cpl_discord.events.on_raw_reaction_clear_abc.OnRawReactionClearABC": [[35, 2, 1, "", "on_raw_reaction_clear"]], "cpl_discord.events.on_raw_reaction_clear_emoji_abc": [[35, 1, 1, "", "OnRawReactionClearEmojiABC"]], "cpl_discord.events.on_raw_reaction_clear_emoji_abc.OnRawReactionClearEmojiABC": [[35, 2, 1, "", "on_raw_reaction_clear_emoji"]], "cpl_discord.events.on_raw_reaction_remove_abc": [[35, 1, 1, "", "OnRawReactionRemoveABC"]], "cpl_discord.events.on_raw_reaction_remove_abc.OnRawReactionRemoveABC": [[35, 2, 1, "", "on_raw_reaction_remove"]], "cpl_discord.events.on_reaction_add_abc": [[35, 1, 1, "", "OnReactionAddABC"]], "cpl_discord.events.on_reaction_add_abc.OnReactionAddABC": [[35, 2, 1, "", "on_reaction_add"]], "cpl_discord.events.on_reaction_clear_abc": [[35, 1, 1, "", "OnReactionClearABC"]], "cpl_discord.events.on_reaction_clear_abc.OnReactionClearABC": [[35, 2, 1, "", "on_reaction_clear"]], "cpl_discord.events.on_reaction_clear_emoji_abc": [[35, 1, 1, "", "OnReactionClearEmojiABC"]], "cpl_discord.events.on_reaction_clear_emoji_abc.OnReactionClearEmojiABC": [[35, 2, 1, "", "on_reaction_clear_emoji"]], "cpl_discord.events.on_reaction_remove_abc": [[35, 1, 1, "", "OnReactionRemoveABC"]], "cpl_discord.events.on_reaction_remove_abc.OnReactionRemoveABC": [[35, 2, 1, "", "on_reaction_remove"]], "cpl_discord.events.on_ready_abc": [[35, 1, 1, "", "OnReadyABC"]], "cpl_discord.events.on_ready_abc.OnReadyABC": [[35, 2, 1, "", "on_ready"]], "cpl_discord.events.on_resume_abc": [[35, 1, 1, "", "OnResumeABC"]], "cpl_discord.events.on_resume_abc.OnResumeABC": [[35, 2, 1, "", "on_resume"]], "cpl_discord.events.on_typing_abc": [[35, 1, 1, "", "OnTypingABC"]], "cpl_discord.events.on_typing_abc.OnTypingABC": [[35, 2, 1, "", "on_typing"]], "cpl_discord.events.on_user_update_abc": [[35, 1, 1, "", "OnUserUpdateABC"]], "cpl_discord.events.on_user_update_abc.OnUserUpdateABC": [[35, 2, 1, "", "on_user_update"]], "cpl_discord.events.on_voice_state_update_abc": [[35, 1, 1, "", "OnVoiceStateUpdateABC"]], "cpl_discord.events.on_voice_state_update_abc.OnVoiceStateUpdateABC": [[35, 2, 1, "", "on_voice_state_update"]], "cpl_discord.events.on_webhooks_update_abc": [[35, 1, 1, "", "OnWebhooksUpdateABC"]], "cpl_discord.events.on_webhooks_update_abc.OnWebhooksUpdateABC": [[35, 2, 1, "", "on_webhooks_update"]], "cpl_discord.helper": [[36, 0, 0, "-", "to_containers_converter"]], "cpl_discord.helper.to_containers_converter": [[36, 1, 1, "", "ToContainersConverter"]], "cpl_discord.helper.to_containers_converter.ToContainersConverter": [[36, 2, 1, "", "convert"]], "cpl_discord.service": [[37, 0, 0, "-", "command_error_handler_service"], [37, 0, 0, "-", "discord_bot_service"], [37, 0, 0, "-", "discord_bot_service_abc"], [37, 0, 0, "-", "discord_collection"], [37, 0, 0, "-", "discord_collection_abc"], [37, 0, 0, "-", "discord_service"], [37, 0, 0, "-", "discord_service_abc"]], "cpl_discord.service.command_error_handler_service": [[37, 1, 1, "", "CommandErrorHandlerService"]], "cpl_discord.service.command_error_handler_service.CommandErrorHandlerService": [[37, 2, 1, "", "on_command_error"]], "cpl_discord.service.discord_bot_service": [[37, 1, 1, "", "DiscordBotService"]], "cpl_discord.service.discord_bot_service.DiscordBotService": [[37, 3, 1, "", "guilds"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "start_async"], [37, 2, 1, "", "stop_async"]], "cpl_discord.service.discord_bot_service_abc": [[37, 1, 1, "", "DiscordBotServiceABC"]], "cpl_discord.service.discord_bot_service_abc.DiscordBotServiceABC": [[37, 3, 1, "", "guilds"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "start_async"], [37, 2, 1, "", "stop_async"]], "cpl_discord.service.discord_collection": [[37, 1, 1, "", "DiscordCollection"]], "cpl_discord.service.discord_collection.DiscordCollection": [[37, 2, 1, "", "add_command"], [37, 2, 1, "", "add_event"], [37, 2, 1, "", "get_commands"], [37, 2, 1, "", "get_events_by_base"]], "cpl_discord.service.discord_collection_abc": [[37, 1, 1, "", "DiscordCollectionABC"]], "cpl_discord.service.discord_collection_abc.DiscordCollectionABC": [[37, 2, 1, "", "add_command"], [37, 2, 1, "", "add_event"], [37, 2, 1, "", "get_commands"], [37, 2, 1, "", "get_events_by_base"]], "cpl_discord.service.discord_service": [[37, 1, 1, "", "DiscordService"]], "cpl_discord.service.discord_service.DiscordService": [[37, 2, 1, "", "init"], [37, 2, 1, "", "on_bulk_message_delete"], [37, 2, 1, "", "on_command"], [37, 2, 1, "", "on_command_completion"], [37, 2, 1, "", "on_command_error"], [37, 2, 1, "", "on_connect"], [37, 2, 1, "", "on_disconnect"], [37, 2, 1, "", "on_error"], [37, 2, 1, "", "on_group_join"], [37, 2, 1, "", "on_group_remove"], [37, 2, 1, "", "on_guild_available"], [37, 2, 1, "", "on_guild_channel_create"], [37, 2, 1, "", "on_guild_channel_delete"], [37, 2, 1, "", "on_guild_channel_pins_update"], [37, 2, 1, "", "on_guild_channel_update"], [37, 2, 1, "", "on_guild_emojis_update"], [37, 2, 1, "", "on_guild_integrations_update"], [37, 2, 1, "", "on_guild_join"], [37, 2, 1, "", "on_guild_remove"], [37, 2, 1, "", "on_guild_role_create"], [37, 2, 1, "", "on_guild_role_delete"], [37, 2, 1, "", "on_guild_role_update"], [37, 2, 1, "", "on_guild_unavailable"], [37, 2, 1, "", "on_guild_update"], [37, 2, 1, "", "on_invite_create"], [37, 2, 1, "", "on_invite_delete"], [37, 2, 1, "", "on_member_ban"], [37, 2, 1, "", "on_member_join"], [37, 2, 1, "", "on_member_remove"], [37, 2, 1, "", "on_member_unban"], [37, 2, 1, "", "on_member_update"], [37, 2, 1, "", "on_message"], [37, 2, 1, "", "on_message_delete"], [37, 2, 1, "", "on_message_edit"], [37, 2, 1, "", "on_private_channel_create"], [37, 2, 1, "", "on_private_channel_delete"], [37, 2, 1, "", "on_private_channel_pins_update"], [37, 2, 1, "", "on_private_channel_update"], [37, 2, 1, "", "on_raw_reaction_add"], [37, 2, 1, "", "on_raw_reaction_clear"], [37, 2, 1, "", "on_raw_reaction_clear_emoji"], [37, 2, 1, "", "on_raw_reaction_remove"], [37, 2, 1, "", "on_reaction_add"], [37, 2, 1, "", "on_reaction_clear"], [37, 2, 1, "", "on_reaction_clear_emoji"], [37, 2, 1, "", "on_reaction_remove"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "on_resume"], [37, 2, 1, "", "on_typing"], [37, 2, 1, "", "on_user_update"], [37, 2, 1, "", "on_voice_state_update"], [37, 2, 1, "", "on_webhooks_update"]], "cpl_discord.service.discord_service_abc": [[37, 1, 1, "", "DiscordServiceABC"]], "cpl_discord.service.discord_service_abc.DiscordServiceABC": [[37, 2, 1, "", "init"], [37, 2, 1, "", "on_bulk_message_delete"], [37, 2, 1, "", "on_command"], [37, 2, 1, "", "on_command_completion"], [37, 2, 1, "", "on_command_error"], [37, 2, 1, "", "on_connect"], [37, 2, 1, "", "on_disconnect"], [37, 2, 1, "", "on_error"], [37, 2, 1, "", "on_group_join"], [37, 2, 1, "", "on_group_remove"], [37, 2, 1, "", "on_guild_available"], [37, 2, 1, "", "on_guild_channel_create"], [37, 2, 1, "", "on_guild_channel_delete"], [37, 2, 1, "", "on_guild_channel_pins_update"], [37, 2, 1, "", "on_guild_channel_update"], [37, 2, 1, "", "on_guild_emojis_update"], [37, 2, 1, "", "on_guild_integrations_update"], [37, 2, 1, "", "on_guild_join"], [37, 2, 1, "", "on_guild_remove"], [37, 2, 1, "", "on_guild_role_create"], [37, 2, 1, "", "on_guild_role_delete"], [37, 2, 1, "", "on_guild_role_update"], [37, 2, 1, "", "on_guild_unavailable"], [37, 2, 1, "", "on_guild_update"], [37, 2, 1, "", "on_invite_create"], [37, 2, 1, "", "on_invite_delete"], [37, 2, 1, "", "on_member_ban"], [37, 2, 1, "", "on_member_join"], [37, 2, 1, "", "on_member_remove"], [37, 2, 1, "", "on_member_unban"], [37, 2, 1, "", "on_member_update"], [37, 2, 1, "", "on_message"], [37, 2, 1, "", "on_message_delete"], [37, 2, 1, "", "on_message_edit"], [37, 2, 1, "", "on_private_channel_create"], [37, 2, 1, "", "on_private_channel_delete"], [37, 2, 1, "", "on_private_channel_pins_update"], [37, 2, 1, "", "on_private_channel_update"], [37, 2, 1, "", "on_reaction_add"], [37, 2, 1, "", "on_reaction_clear"], [37, 2, 1, "", "on_reaction_clear_emoji"], [37, 2, 1, "", "on_reaction_remove"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "on_resume"], [37, 2, 1, "", "on_typing"], [37, 2, 1, "", "on_user_update"], [37, 2, 1, "", "on_voice_state_update"], [37, 2, 1, "", "on_webhooks_update"]], "cpl_query.base": [[39, 0, 0, "-", "default_lambda"], [39, 0, 0, "-", "ordered_queryable"], [39, 0, 0, "-", "ordered_queryable_abc"], [39, 0, 0, "-", "queryable_abc"], [39, 0, 0, "-", "sequence_abc"], [39, 0, 0, "-", "sequence_values"]], "cpl_query.base.default_lambda": [[39, 5, 1, "", "default_lambda"]], "cpl_query.base.ordered_queryable": [[39, 1, 1, "", "OrderedQueryable"]], "cpl_query.base.ordered_queryable.OrderedQueryable": [[39, 2, 1, "", "then_by"], [39, 2, 1, "", "then_by_descending"]], "cpl_query.base.ordered_queryable_abc": [[39, 1, 1, "", "OrderedQueryableABC"]], "cpl_query.base.ordered_queryable_abc.OrderedQueryableABC": [[39, 2, 1, "", "then_by"], [39, 2, 1, "", "then_by_descending"]], "cpl_query.base.queryable_abc": [[39, 1, 1, "", "QueryableABC"]], "cpl_query.base.queryable_abc.QueryableABC": [[39, 2, 1, "", "all"], [39, 2, 1, "", "any"], [39, 2, 1, "", "average"], [39, 2, 1, "", "contains"], [39, 2, 1, "", "count"], [39, 2, 1, "", "distinct"], [39, 2, 1, "", "element_at"], [39, 2, 1, "", "element_at_or_default"], [39, 2, 1, "", "first"], [39, 2, 1, "", "first_or_default"], [39, 2, 1, "", "for_each"], [39, 2, 1, "", "group_by"], [39, 2, 1, "", "last"], [39, 2, 1, "", "last_or_default"], [39, 2, 1, "", "max"], [39, 2, 1, "", "median"], [39, 2, 1, "", "min"], [39, 2, 1, "", "order_by"], [39, 2, 1, "", "order_by_descending"], [39, 2, 1, "", "reverse"], [39, 2, 1, "", "select"], [39, 2, 1, "", "select_many"], [39, 2, 1, "", "single"], [39, 2, 1, "", "single_or_default"], [39, 2, 1, "", "skip"], [39, 2, 1, "", "skip_last"], [39, 2, 1, "", "sum"], [39, 2, 1, "", "take"], [39, 2, 1, "", "take_last"], [39, 2, 1, "", "where"]], "cpl_query.base.sequence_abc": [[39, 1, 1, "", "SequenceABC"]], "cpl_query.base.sequence_abc.SequenceABC": [[39, 2, 1, "", "copy"], [39, 2, 1, "", "empty"], [39, 2, 1, "", "index"], [39, 2, 1, "", "next"], [39, 2, 1, "", "range"], [39, 2, 1, "", "to_list"], [39, 3, 1, "", "type"]], "cpl_query.base.sequence_values": [[39, 1, 1, "", "SequenceValues"]], "cpl_query.base.sequence_values.SequenceValues": [[39, 2, 1, "", "next"], [39, 2, 1, "", "reset"]], "cpl_query.enumerable": [[40, 0, 0, "-", "enumerable"], [40, 0, 0, "-", "enumerable_abc"]], "cpl_query.enumerable.enumerable": [[40, 1, 1, "", "Enumerable"]], "cpl_query.enumerable.enumerable_abc": [[40, 1, 1, "", "EnumerableABC"]], "cpl_query.enumerable.enumerable_abc.EnumerableABC": [[40, 2, 1, "", "set_remove_error_check"], [40, 2, 1, "", "to_iterable"]], "cpl_query.extension": [[41, 0, 0, "-", "list"]], "cpl_query.extension.list": [[41, 1, 1, "", "List"]], "cpl_query.extension.list.List": [[41, 2, 1, "", "to_enumerable"], [41, 2, 1, "", "to_iterable"]], "cpl_query.iterable": [[42, 0, 0, "-", "iterable"], [42, 0, 0, "-", "iterable_abc"]], "cpl_query.iterable.iterable": [[42, 1, 1, "", "Iterable"]], "cpl_query.iterable.iterable_abc": [[42, 1, 1, "", "IterableABC"]], "cpl_query.iterable.iterable_abc.IterableABC": [[42, 2, 1, "", "add"], [42, 2, 1, "", "append"], [42, 2, 1, "", "extend"], [42, 2, 1, "", "remove"], [42, 2, 1, "", "to_enumerable"], [42, 3, 1, "", "type"]], "cpl_translation": [[43, 0, 0, "-", "translate_pipe"], [43, 0, 0, "-", "translation_service"], [43, 0, 0, "-", "translation_service_abc"], [43, 0, 0, "-", "translation_settings"]], "cpl_translation.translate_pipe": [[43, 1, 1, "", "TranslatePipe"]], "cpl_translation.translate_pipe.TranslatePipe": [[43, 2, 1, "", "transform"]], "cpl_translation.translation_service": [[43, 1, 1, "", "TranslationService"]], "cpl_translation.translation_service.TranslationService": [[43, 2, 1, "", "load"], [43, 2, 1, "", "load_by_settings"], [43, 2, 1, "", "set_default_lang"], [43, 2, 1, "", "set_lang"], [43, 2, 1, "", "translate"]], "cpl_translation.translation_service_abc": [[43, 1, 1, "", "TranslationServiceABC"]], "cpl_translation.translation_service_abc.TranslationServiceABC": [[43, 2, 1, "", "load"], [43, 2, 1, "", "load_by_settings"], [43, 2, 1, "", "set_default_lang"], [43, 2, 1, "", "set_lang"], [43, 2, 1, "", "translate"]], "cpl_translation.translation_settings": [[43, 1, 1, "", "TranslationSettings"]], "cpl_translation.translation_settings.TranslationSettings": [[43, 3, 1, "", "default_language"], [43, 2, 1, "", "from_dict"], [43, 3, 1, "", "languages"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"cpl": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 45, 46, 47, 48], "add": 0, "content": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 48, 49], "descript": [0, 1, 2, 3, 4, 5, 7, 8, 11], "argument": [0, 2, 3, 4, 8, 11, 53], "flag": [0, 4, 5, 8, 11, 12], "build": 1, "gener": 2, "schemat": [2, 6], "help": 3, "instal": [4, 49], "new": 5, "project": [5, 48], "type": 5, "cli": [6, 15, 49], "overview": [6, 46], "command": [6, 32], "refer": [6, 15, 16, 30, 38, 43], "tabl": [6, 48, 49], "basic": 6, "workflow": 6, "languag": 6, "syntax": 6, "rel": 6, "path": 6, "publish": 7, "remov": 8, "run": 9, "start": [10, 44, 48, 49], "uninstal": 11, "updat": 12, "version": 13, "contribut": 14, "found": 14, "bug": 14, "featur": [14, 45, 46], "request": 14, "submiss": 14, "guidelin": 14, "submit": 14, "an": 14, "issu": 14, "pull": 14, "review": 14, "address": 14, "feedback": 14, "code": 14, "rule": 14, "licens": 14, "api": 16, "cpl_core": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 52], "applic": [17, 31, 55], "application_abc": 17, "application_build": 17, "application_builder_abc": 17, "startup_abc": 17, "configur": [18, 33], "configuration_abc": 18, "configuration_model_abc": 18, "configuration_variable_name_enum": 18, "console_argu": 18, "consol": [19, 49, 52, 53], "background_color_enum": 19, "console_cal": 19, "foreground_color_enum": 19, "spinner_thread": 19, "databas": [20, 21, 22], "database_model": 20, "database_set": 20, "database_settings_name_enum": 20, "connect": 21, "database_connect": 21, "database_connection_abc": 21, "context": 22, "database_context": 22, "database_context_abc": 22, "dependency_inject": 23, "service_collect": 23, "service_collection_abc": 23, "service_descriptor": 23, "service_lifetime_enum": 23, "service_provid": 23, "service_provider_abc": 23, "environ": [24, 49], "application_environ": 24, "application_environment_abc": 24, "environment_name_enum": 24, "log": 25, "logger_abc": 25, "logger_servic": 25, "logging_level_enum": 25, "logging_set": 25, "logging_settings_name_enum": 25, "mail": [26, 58], "email": 26, "email_client_abc": 26, "email_client_servic": 26, "email_client_set": 26, "email_client_settings_name_enum": 26, "pipe": 27, "bool_pip": 27, "first_char_to_lower_pip": 27, "first_to_upper_pip": 27, "ip_address_pip": 27, "pipe_abc": 27, "to_camel_case_pip": 27, "to_snake_case_pip": 27, "version_pip": 27, "time": 28, "time_format_set": 28, "time_format_settings_names_enum": 28, "util": 29, "credential_manag": 29, "pip": 29, "string": 29, "discord": 30, "cpl_discord": [31, 32, 33, 34, 35, 36, 37], "discord_bot_application_abc": 31, "discord_command_abc": 32, "discord_commands_meta": 32, "discord_bot_set": 33, "contain": 34, "category_channel": 34, "guild": 34, "member": 34, "role": 34, "text_channel": 34, "thread": 34, "voice_channel": 34, "event": 35, "on_bulk_message_delete_abc": 35, "on_command_abc": 35, "on_command_completion_abc": 35, "on_command_error_abc": 35, "on_connect_abc": 35, "on_disconnect_abc": 35, "on_error_abc": 35, "on_group_join_abc": 35, "on_group_remove_abc": 35, "on_guild_available_abc": 35, "on_guild_channel_create_abc": 35, "on_guild_channel_delete_abc": 35, "on_guild_channel_pins_update_abc": 35, "on_guild_channel_update_abc": 35, "on_guild_emojis_update_abc": 35, "on_guild_integrations_update_abc": 35, "on_guild_join_abc": 35, "on_guild_remove_abc": 35, "on_guild_role_create_abc": 35, "on_guild_role_delete_abc": 35, "on_guild_role_update_abc": 35, "on_guild_unavailable_abc": 35, "on_guild_update_abc": 35, "on_invite_create_abc": 35, "on_invite_delete_abc": 35, "on_member_ban_abc": 35, "on_member_join_abc": 35, "on_member_remove_abc": 35, "on_member_unban_abc": 35, "on_member_update_abc": 35, "on_message_abc": 35, "on_message_delete_abc": 35, "on_message_edit_abc": 35, "on_private_channel_create_abc": 35, "on_private_channel_delete_abc": 35, "on_private_channel_pins_update_abc": 35, "on_private_channel_update_abc": 35, "on_raw_reaction_add_abc": 35, "on_raw_reaction_clear_abc": 35, "on_raw_reaction_clear_emoji_abc": 35, "on_raw_reaction_remove_abc": 35, "on_reaction_add_abc": 35, "on_reaction_clear_abc": 35, "on_reaction_clear_emoji_abc": 35, "on_reaction_remove_abc": 35, "on_ready_abc": 35, "on_resume_abc": 35, "on_typing_abc": 35, "on_user_update_abc": 35, "on_voice_state_update_abc": 35, "on_webhooks_update_abc": 35, "helper": 36, "to_containers_convert": 36, "servic": 37, "command_error_handler_servic": 37, "discord_bot_servic": 37, "discord_bot_service_abc": 37, "discord_collect": 37, "discord_collection_abc": 37, "discord_servic": 37, "discord_service_abc": 37, "queri": [38, 49], "cpl_queri": [39, 40, 41, 42], "base": 39, "default_lambda": 39, "ordered_query": 39, "ordered_queryable_abc": 39, "queryable_abc": 39, "sequence_abc": 39, "sequence_valu": 39, "enumer": 40, "enumerable_abc": 40, "extens": 41, "list": 41, "iter": 42, "iterable_abc": 42, "translat": 43, "cpl_translat": 43, "translate_pip": 43, "translation_servic": 43, "translation_service_abc": 43, "translation_set": 43, "get": [44, 48], "introduct": [45, 46], "doc": [45, 46], "manual": 45, "explor": 46, "prerequisit": [48, 49], "creat": [48, 49, 54], "menu": 48, "what": [48, 49], "s": [48, 49], "next": [48, 49], "set": 49, "up": 49, "local": 49, "workspac": 49, "packag": 49, "initi": 49, "app": 49, "librari": 49, "tutori": 50, "us": [51, 52, 57], "appset": 51, "json": 51, "com": [51, 52, 53, 54, 55, 56, 57, 58], "soon": [51, 52, 53, 54, 55, 56, 57, 58], "handl": 53, "startup": [54, 56], "class": 54, "extend": [55, 56], "builtin": 57, "logger": 57, "send": 58}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["cli.add", "cli.build", "cli.generate", "cli.help", "cli.install", "cli.new", "cli.overview", "cli.publish", "cli.remove", "cli.run", "cli.start", "cli.uninstall", "cli.update", "cli.version", "contributing", "cpl_cli", "cpl_core", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "cpl_discord", "cpl_discord.application", "cpl_discord.command", "cpl_discord.configuration", "cpl_discord.container", "cpl_discord.events", "cpl_discord.helper", "cpl_discord.service", "cpl_query", "cpl_query.base", "cpl_query.enumerable", "cpl_query.extension", "cpl_query.iterable", "cpl_translation", "getting_started", "index", "introduction", "modules", "quickstart", "setup", "tutorials", "tutorials.appsettings", "tutorials.console", "tutorials.console-arguments", "tutorials.create-startup", "tutorials.extend-application", "tutorials.extend-startup", "tutorials.logging", "tutorials.mail", "tutorials.templating"], "filenames": ["cli.add.md", "cli.build.md", "cli.generate.md", "cli.help.md", "cli.install.md", "cli.new.md", "cli.overview.md", "cli.publish.md", "cli.remove.md", "cli.run.md", "cli.start.md", "cli.uninstall.md", "cli.update.md", "cli.version.md", "contributing.md", "cpl_cli.rst", "cpl_core.rst", "cpl_core.application.rst", "cpl_core.configuration.rst", "cpl_core.console.rst", "cpl_core.database.rst", "cpl_core.database.connection.rst", "cpl_core.database.context.rst", "cpl_core.dependency_injection.rst", "cpl_core.environment.rst", "cpl_core.logging.rst", "cpl_core.mailing.rst", "cpl_core.pipes.rst", "cpl_core.time.rst", "cpl_core.utils.rst", "cpl_discord.rst", "cpl_discord.application.rst", "cpl_discord.command.rst", "cpl_discord.configuration.rst", "cpl_discord.container.rst", "cpl_discord.events.rst", "cpl_discord.helper.rst", "cpl_discord.service.rst", "cpl_query.rst", "cpl_query.base.rst", "cpl_query.enumerable.rst", "cpl_query.extension.rst", "cpl_query.iterable.rst", "cpl_translation.rst", "getting_started.rst", "index.rst", "introduction.md", "modules.rst", "quickstart.md", "setup.md", "tutorials.rst", "tutorials.appsettings.md", "tutorials.console.md", "tutorials.console-arguments.md", "tutorials.create-startup.md", "tutorials.extend-application.md", "tutorials.extend-startup.md", "tutorials.logging.md", "tutorials.mail.md", "tutorials.templating.md"], "titles": ["cpl add", "cpl build", "cpl generate", "cpl help", "cpl install", "cpl new", "CLI Overview and Command Reference", "cpl publish", "cpl remove", "cpl run", "cpl start", "cpl uninstall", "cpl update", "cpl version", "Contributing to CPL", "CLI reference", "API reference", "cpl_core.application", "cpl_core.configuration", "cpl_core.console", "cpl_core.database", "cpl_core.database.connection", "cpl_core.database.context", "cpl_core.dependency_injection", "cpl_core.environment", "cpl_core.logging", "cpl_core.mailing", "cpl_core.pipes", "cpl_core.time", "cpl_core.utils", "Discord reference", "cpl_discord.application", "cpl_discord.command", "cpl_discord.configuration", "cpl_discord.container", "cpl_discord.events", "cpl_discord.helper", "cpl_discord.service", "Query reference", "cpl_query.base", "cpl_query.enumerable", "cpl_query.extension", "cpl_query.iterable", "Translation reference", "Getting started", "Introduction to the CPL Docs", "Introduction to the CPL Docs", "cpl", "Getting started with CPL", "Setting up the local environment and workspace", "Tutorials", "Using appsettings.json", "Use cpl_core.console.Console", "Handle console arguments", "Create startup class", "Extend application", "Extend startup", "Use builtin logger", "Send mails", "Using cpl g & cpl n templating"], "terms": {"remov": [0, 6, 7, 15, 42, 47], "project": [0, 1, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 44, 47, 49, 50], "from": [0, 6, 7, 8, 9, 10, 11, 13, 14, 17, 18, 19, 20, 34, 39, 42, 45, 46, 48, 59], "workspac": [0, 1, 5, 6, 8, 44, 47, 59], "sourc": [0, 1, 7, 9, 10, 14, 29, 48, 49], "target": [0, 1], "A": [0, 5, 14, 34, 59], "refer": [0, 8, 45, 46, 47], "given": [0, 1, 4, 6, 7, 11, 18, 19, 20, 23, 29, 39, 42], "If": [0, 5, 8, 14, 19, 49], "you": [0, 1, 2, 5, 6, 8, 14, 34, 45, 46, 48, 49, 59], "call": [0, 8, 17, 18, 19, 34, 39, 59], "command": [0, 1, 2, 3, 4, 5, 7, 8, 11, 12, 14, 15, 29, 30, 45, 46, 47, 49], "can": [0, 1, 2, 5, 6, 7, 8, 14, 34, 45, 49, 59], "us": [0, 1, 2, 5, 6, 7, 8, 14, 17, 19, 26, 29, 44, 45, 46, 47, 48, 49, 50], "name": [0, 1, 2, 5, 6, 7, 8, 18, 24, 25, 29, 32, 34, 49, 59], "otherwis": [0, 8, 19], "path": [0, 1, 2, 5, 7, 8, 15, 18, 24, 25, 47, 49, 59], "must": [0, 1, 6, 8, 14, 19, 59], "specifi": [0, 4, 5, 6, 8, 9, 11, 12, 18, 19], "valu": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 18, 19, 20, 23, 24, 25, 26, 27, 28, 39, 40, 41, 42, 43], "type": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 15, 17, 18, 23, 34, 36, 37, 39, 40, 41, 42, 44, 47, 50], "which": [0, 6, 9, 18, 19, 29, 49, 59], "ha": [0, 19, 59], "ad": [0, 14], "str": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 33, 34, 35, 37, 43, 48, 59], "referenc": 0, "simul": [0, 4, 8, 11, 12], "whether": [0, 4, 5, 8, 11, 12, 18], "copi": 1, "an": [1, 6, 7, 17, 18, 19, 20, 23, 24, 25, 26, 28, 48, 49, 59], "python": [1, 14, 29, 45, 46, 48, 49], "app": [1, 6, 17, 44, 45, 46, 47, 48], "output": [1, 6, 7, 18, 19, 45, 46, 48, 49], "directori": [1, 6, 7, 24, 45, 46, 48], "execut": [1, 6, 7, 18, 29], "within": [1, 6, 14], "b": [1, 6, 14], "The": [1, 2, 4, 5, 6, 7, 8, 11, 14, 23, 26, 29, 34, 37, 45, 46, 48, 49, 59], "consol": [1, 3, 5, 6, 7, 16, 18, 25, 44, 45, 46, 47, 48, 50, 59], "librari": [1, 5, 6, 7, 44, 45, 46, 47], "all": [1, 7, 13, 14, 18, 34, 39, 59], "includ": [1, 14, 49], "file": [1, 2, 6, 7, 8, 10, 14, 18, 45, 49, 59], "run": [1, 5, 10, 17, 18, 19, 22, 29, 39, 45, 46, 48, 49], "directli": [1, 14], "prepar": [1, 6, 7, 14, 17, 45], "publish": [1, 6, 15, 45, 47, 49], "them": 1, "argument": [1, 5, 6, 7, 9, 10, 12, 15, 18, 19, 29, 39, 44, 45, 46, 47, 50], "base": [2, 5, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 47, 48], "g": [2, 5, 6, 44, 47, 50], "defin": [2, 5, 6, 18, 19, 40, 42, 49, 59], "custom": [2, 5, 17, 18, 24, 45, 46], "creat": [2, 5, 6, 7, 14, 17, 18, 19, 23, 25, 26, 29, 44, 45, 46, 47, 50, 59], "templat": [2, 5, 44, 47, 50], "folder": [2, 5, 48, 59], "first": [2, 5, 6, 14, 27, 29, 34, 39, 45, 46, 59], "element": [2, 5, 19, 22, 34, 39, 42], "src": [2, 5, 48], "For": [2, 5, 14, 59], "exampl": [2, 5, 59], "c": [2, 5, 45], "test": [2, 5, 14, 24, 45, 46, 48, 59], "would": [2, 5, 14], "abc": [2, 17, 18, 21, 22, 23, 24, 25, 26, 27, 32, 35, 37, 40, 42, 43, 59], "abstract": [2, 17, 18, 21, 22, 23, 24, 25, 26, 27, 31, 35, 37, 39, 43], "class": [2, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 59], "enum": [2, 18, 19, 20, 23, 24, 25, 26, 28, 59], "pipe": [2, 16, 23, 45, 46, 47], "servic": [2, 5, 17, 18, 23, 25, 26, 30, 31, 45, 46, 47, 48, 59], "set": [2, 9, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 29, 33, 43, 44, 47, 48], "configmodel": 2, "thread": [2, 19, 30, 47], "valid": [2, 26, 48], "discord": [2, 23, 35, 37, 45, 47], "bot": [2, 37], "event": [2, 30, 37, 47], "list": [3, 6, 13, 18, 19, 22, 23, 26, 27, 29, 34, 35, 36, 37, 38, 39, 40, 42, 43, 45, 47, 59], "avail": [3, 6, 14, 59], "short": [3, 6], "h": [3, 6], "show": [3, 19], "messag": [3, 19, 25, 35, 37], "thi": [3, 14, 17, 34, 45, 46, 48, 49, 59], "packag": [4, 5, 6, 11, 13, 29, 44, 45, 46, 47, 48], "via": [4, 11, 14, 45, 46], "pip": [4, 11, 13, 16, 45, 46, 47, 48, 49], "i": [4, 6, 48], "without": [4, 6, 14, 39], "deped": 4, "your": [4, 6, 9, 10, 14, 45, 46, 49, 59], "dev": [4, 9, 10, 11], "develop": [4, 6, 11, 14, 24, 45, 46, 48, 49], "mode": [4, 11], "virtual": [4, 11], "gener": [5, 6, 7, 15, 44, 45, 47, 48, 49, 50], "initi": [5, 44, 47, 59], "add": [5, 6, 14, 15, 18, 23, 26, 42, 47, 48], "n": [5, 6, 44, 47, 48, 49, 50], "see": [5, 14, 21, 34, 48, 49], "simpl": [5, 45, 46, 49], "applic": [5, 9, 10, 16, 19, 24, 25, 26, 30, 44, 45, 46, 47, 48, 49, 50, 59], "async": [5, 17, 35, 37], "startup": [5, 17, 44, 45, 46, 47, 50, 59], "provid": [5, 14, 17, 23, 34, 45, 46, 48, 49], "noth": 5, "venv": 5, "instal": [6, 13, 15, 29, 44, 47, 48], "cpl": [6, 15, 23, 44, 49, 50], "To": [6, 9, 10, 14, 48, 49], "build": [6, 7, 9, 10, 15, 17, 29, 45, 47, 48, 49], "serv": 6, "new": [6, 14, 15, 19, 34, 44, 47, 48, 49, 50], "server": [6, 21, 26, 45, 46, 49], "go": [6, 14, 45], "parent": 6, "follow": [6, 14, 48, 49], "my": [6, 14, 49], "cd": [6, 49], "start": [6, 9, 15, 45, 46, 47, 59], "In": [6, 14, 48, 59], "termin": [6, 19, 48, 49], "commandnameoralia": 6, "requiredarg": 6, "optionalsarg": 6, "most": [6, 34, 48, 49], "some": 6, "option": [6, 9, 14, 18, 19, 20, 23, 25, 26, 29, 34, 35, 37, 39, 40, 41, 42, 45, 46, 48], "have": [6, 14, 34, 48, 49], "alias": [6, 18], "ar": [6, 7, 14, 18, 34], "shown": [6, 18, 49], "statement": [6, 22], "each": [6, 18, 39], "prefix": [6, 18, 33], "absolut": 6, "current": [6, 24, 34], "work": [6, 14, 24, 45, 46], "either": 6, "root": 6, "take": [6, 18, 39], "artifact": 6, "addit": [6, 14], "ani": [6, 18, 19, 27, 32, 37, 39, 43, 59], "its": [6, 14], "own": 6, "suppli": 6, "same": [6, 59], "format": [6, 25, 28, 39], "immedi": 6, "alia": [6, 59], "descript": [6, 9, 10, 12, 15, 34, 47], "dist": [6, 7, 9, 10], "help": [6, 14, 15, 45, 46, 47, 59], "With": 6, "depend": [6, 12, 45, 46, 48], "p": [6, 7], "setup": [6, 7, 46, 49], "py": [6, 7, 29, 45, 48, 59], "r": [6, 8, 9], "s": [6, 10, 14, 34, 44, 47], "restart": [6, 10, 49], "chang": [6, 10, 14, 22, 48], "uninstal": [6, 15, 29, 47], "ui": [6, 11, 34], "updat": [6, 14, 15, 47], "u": [6, 12], "version": [6, 15, 34, 47], "v": [6, 13], "data": [7, 19, 34, 39], "cpl_core": [7, 16, 44, 47, 48, 49, 50, 59], "json": [7, 18, 44, 45, 46, 47, 48, 49, 50, 59], "delet": 8, "onc": 9, "paramet": [9, 42], "default": [9, 19, 34, 49], "after": [9, 10, 35, 37, 39], "cli": [13, 44, 45, 46, 47, 48], "we": [14, 48, 59], "love": 14, "make": [14, 49], "even": 14, "better": 14, "than": [14, 39], "todai": 14, "As": 14, "contributor": 14, "here": [14, 49, 59], "like": [14, 45, 48, 59], "issus": 14, "find": 14, "our": 14, "gitea": 14, "repositori": 14, "fix": 14, "implement": [14, 23, 39, 40, 41], "pleas": 14, "consid": 14, "size": 14, "order": [14, 34, 39], "determin": 14, "right": 14, "step": 14, "proce": 14, "major": 14, "open": [14, 48, 49], "outlin": 14, "propos": 14, "so": [14, 49], "discuss": 14, "process": 14, "allow": 14, "coordin": [14, 19], "effort": 14, "prevent": 14, "duplic": 14, "craft": 14, "successfulli": 14, "accept": 14, "note": [14, 34], "topic": [14, 34], "document": 14, "significantli": 14, "re": 14, "write": [14, 19, 25, 45, 46], "count": [14, 39], "small": 14, "befor": [14, 19, 35, 37], "search": [14, 18, 23], "tracker": 14, "mayb": 14, "problem": 14, "alreadi": [14, 48, 49], "exist": [14, 59], "might": 14, "inform": [14, 25, 49, 59], "workaround": 14, "readili": 14, "want": [14, 48], "soon": [14, 44, 47, 50], "possibl": [14, 18], "need": [14, 34, 48, 49], "reproduc": 14, "confirm": 14, "requir": [14, 34], "minim": 14, "reproduct": 14, "scenario": 14, "give": 14, "wealth": 14, "import": [14, 48, 59], "back": [14, 19], "forth": 14, "question": 14, "quickli": 14, "point": [14, 17, 19], "out": [14, 48, 49], "well": 14, "save": [14, 18, 22], "maintain": 14, "time": [14, 16, 25, 34, 47], "ultim": 14, "abl": 14, "more": [14, 39, 49, 59], "often": 14, "themselv": 14, "while": 14, "understand": [14, 45, 46, 48, 49], "sometim": 14, "hard": 14, "extract": 14, "essenti": [14, 48], "bit": 14, "larger": 14, "codebas": 14, "realli": 14, "isol": 14, "unfortun": 14, "investig": 14, "don": [14, 48], "t": [14, 18, 39, 40, 41, 42, 48], "hear": 14, "close": [14, 19], "doesn": 14, "enough": 14, "info": [14, 25, 45, 46], "pr": 14, "relat": 14, "Be": 14, "sure": 14, "describ": 14, "design": 14, "d": 14, "upfront": 14, "ensur": 14, "readi": [14, 49], "fork": 14, "sh": [14, 49], "edraft": [14, 49], "de": [14, 49], "repo": 14, "git": 14, "branch": 14, "checkout": 14, "master": 14, "patch": 14, "appropri": [14, 59], "case": [14, 27, 29, 48], "commit": 14, "line": [14, 19, 48], "automat": 14, "rm": 14, "edit": 14, "push": 14, "origin": 14, "send": [14, 26, 44, 45, 46, 47, 50], "team": 14, "reserv": 14, "commun": 14, "member": [14, 30, 35, 37, 47], "who": 14, "haven": 14, "been": 14, "good": 14, "citizen": 14, "Such": 14, "behavior": 14, "appli": 14, "outsid": 14, "manag": [14, 34, 45, 46], "channel": [14, 34, 35, 37], "ask": 14, "fixup": 14, "head": 14, "That": 14, "thank": 14, "consist": 14, "throughout": 14, "keep": 14, "mind": 14, "one": [14, 39], "unit": 14, "public": 14, "api": [14, 45, 46, 47], "method": 14, "pep": 14, "8": 14, "style": 14, "guid": 14, "By": 14, "agre": 14, "under": [14, 34], "mit": 14, "overview": [15, 47, 49], "tabl": [15, 19, 29, 44, 45, 46, 47], "content": [15, 44, 47, 50], "basic": [15, 47, 48, 49], "workflow": [15, 47], "languag": [15, 43, 47], "syntax": [15, 47], "rel": [15, 47], "schemat": [15, 44, 47, 50], "flag": [15, 47], "application_abc": [16, 47], "application_build": [16, 47], "application_builder_abc": [16, 47], "startup_abc": [16, 47], "configur": [16, 17, 23, 30, 45, 46, 47, 59], "configuration_abc": [16, 17, 23, 47], "configuration_model_abc": [16, 47], "configuration_variable_name_enum": [16, 47], "console_argu": [16, 47], "background_color_enum": [16, 47], "console_cal": [16, 47], "foreground_color_enum": [16, 47], "spinner_thread": [16, 47], "databas": [16, 23, 47], "connect": [16, 20, 22, 26, 37, 47], "database_connect": [16, 20, 47], "database_connection_abc": [16, 20, 47], "context": [16, 20, 23, 35, 37, 47, 49], "database_context": [16, 20, 47], "database_context_abc": [16, 20, 23, 47], "database_model": [16, 47], "database_set": [16, 21, 22, 47], "database_settings_name_enum": [16, 47], "dependency_inject": [16, 17, 47, 59], "service_collect": [16, 37, 47], "service_collection_abc": [16, 17, 47], "service_descriptor": [16, 47], "service_lifetime_enum": [16, 47], "service_provid": [16, 47], "service_provider_abc": [16, 17, 47], "environ": [16, 17, 18, 25, 26, 44, 45, 46, 47, 59], "application_environ": [16, 47], "application_environment_abc": [16, 17, 25, 26, 47], "environment_name_enum": [16, 47], "log": [16, 26, 45, 46, 47], "logger_abc": [16, 26, 47], "logger_servic": [16, 47], "logging_level_enum": [16, 47], "logging_set": [16, 47], "logging_settings_name_enum": [16, 47], "mail": [16, 44, 45, 46, 47, 50], "email": [16, 47], "email_client_abc": [16, 47], "email_client_servic": [16, 47], "email_client_set": [16, 47], "email_client_settings_name_enum": [16, 47], "bool_pip": [16, 47], "first_char_to_lower_pip": [16, 47], "first_to_upper_pip": [16, 47], "ip_address_pip": [16, 47], "pipe_abc": [16, 47], "to_camel_case_pip": [16, 47], "to_snake_case_pip": [16, 47], "version_pip": [16, 47], "time_format_set": [16, 25, 47], "time_format_settings_names_enum": [16, 47], "util": [16, 45, 46, 47, 59], "credential_manag": [16, 47], "string": [16, 19, 21, 25, 26, 27, 45, 46, 47, 48, 59], "applicationabc": [17, 31], "config": [17, 23, 31, 37], "configurationabc": [17, 18, 23, 31, 37, 59], "serviceproviderabc": [17, 18, 23, 31, 59], "contain": [17, 30, 36, 39, 47], "object": [17, 18, 19, 23, 26, 29, 34, 36, 39, 42, 45, 46], "load": [17, 43], "appset": [17, 44, 47, 48, 50], "instanc": [17, 23], "main": [17, 48], "entri": [17, 19], "run_async": 17, "applicationbuild": 17, "applicationbuilderabc": 17, "build_async": 17, "use_extens": 17, "extens": [17, 38, 39, 42, 45, 46, 47], "union": [17, 18, 19, 23, 35, 36, 37, 39], "applicationextensionabc": 17, "startupextensionabc": 17, "use_startup": [17, 59], "startupabc": [17, 59], "arg": [17, 18, 19, 22, 27, 29, 32, 35, 37, 43, 59], "configure_configur": [17, 59], "env": [17, 25, 37], "applicationenvironmentabc": [17, 18, 24, 25, 26, 37], "configure_servic": [17, 59], "servicecollectionabc": [17, 23, 37, 59], "add_configur": 18, "key_typ": 18, "add_console_argu": 18, "argumentabc": 18, "known": 18, "consoleargumentabc": 18, "add_environment_vari": 18, "read": [18, 19, 48], "variabl": [18, 29], "add_json_fil": 18, "bool": [18, 19, 20, 26, 27, 34, 39, 59], "none": [18, 19, 23, 25, 26, 29, 39, 40, 41, 42, 59], "true": 18, "error": [18, 19, 25, 35, 37, 45, 46], "should": [18, 48, 49, 59], "occur": 18, "wa": [18, 49], "found": [18, 39], "place": 18, "store": 18, "properti": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 33, 34, 37, 42, 43], "additional_argu": 18, "argument_error_funct": 18, "callabl": [18, 19, 23, 39], "argument_abc": 18, "create_console_argu": 18, "arg_typ": 18, "argumenttypeenum": 18, "token": [18, 33], "kwarg": [18, 19, 32, 35, 37], "begin": [18, 59], "value_token": 18, "were": 18, "is_value_token_opt": 18, "runnabl": 18, "when": [18, 19, 35, 37, 39, 59], "for_each_argu": 18, "iter": [18, 38, 39, 40, 41, 47], "through": [18, 48], "function": [18, 19, 29, 39, 40, 42, 45, 48], "get_configur": 18, "search_typ": 18, "return": [18, 19, 23, 26, 34, 39, 48, 59], "configurationmodelabc": [18, 20, 25, 26, 28, 33, 43], "parse_console_argu": 18, "invalid": 18, "from_dict": [18, 20, 25, 26, 28, 33, 43], "dict": [18, 19, 20, 25, 26, 27, 28, 33, 43, 59], "convert": [18, 25, 26, 27, 28, 29, 33, 36, 40, 41, 42, 43, 45, 46], "attribut": [18, 20, 25, 26, 28, 33, 43], "configurationvariablenameenum": 18, "enumer": [18, 19, 20, 23, 24, 25, 26, 28, 38, 41, 42, 47], "static": [18, 26, 29, 36], "to_list": 18, "backgroundcolorenum": 19, "blue": 19, "on_blu": 19, "cyan": 19, "on_cyan": 19, "on_default": 19, "green": 19, "on_green": 19, "grei": 19, "on_grei": 19, "magenta": 19, "on_magenta": 19, "red": 19, "on_r": 19, "white": 19, "on_whit": 19, "yellow": 19, "on_yellow": 19, "handl": [19, 29, 44, 45, 46, 47, 50], "input": [19, 45, 46, 48], "background_color": 19, "bytes_or_buff": 19, "encod": [19, 29], "expos": 19, "buffer": [19, 20], "decod": [19, 29], "handler": 19, "result": [19, 26, 29, 39], "__str__": 19, "repr": 19, "sy": 19, "getdefaultencod": 19, "strict": 19, "classmethod": [19, 29, 59], "banner": [19, 45, 46], "print": [19, 48], "clear": 19, "color_reset": 19, "reset": [19, 29], "color": 19, "disabl": 19, "interact": 19, "enabl": [19, 48], "tb": 19, "traceback": 19, "foreground_color": 19, "read_lin": 19, "next": [19, 44, 47], "reset_cursor_posit": 19, "cursor": [19, 21, 22], "posit": [19, 34], "select": [19, 22, 39, 48], "char": [19, 27, 29], "header_foreground_color": 19, "foregroundcolorenum": 19, "header_background_color": 19, "option_foreground_color": 19, "option_background_color": 19, "cursor_foreground_color": 19, "cursor_background_color": 19, "menu": [19, 44, 45, 46, 47], "charact": 19, "header": [19, 25, 26], "foreground": 19, "background": 19, "set_background_color": 19, "set_cursor_posit": 19, "x": [19, 39], "int": [19, 20, 26, 27, 29, 34, 39, 42, 48], "y": [19, 48], "set_foreground_color": 19, "set_hold_back": 19, "spinner": [19, 45, 46], "text_foreground_color": 19, "spinner_foreground_color": 19, "text_background_color": 19, "spinner_background_color": 19, "end": [19, 25, 42], "stop": 19, "text": [19, 34], "keyword": 19, "activ": [19, 34], "last": [19, 39], "write_at": [19, 45, 46], "write_lin": [19, 45, 46, 48], "write_line_at": [19, 45, 46], "consolecal": 19, "repres": [19, 20, 24, 26], "hold": 19, "spinnerthread": 19, "msg_len": 19, "length": [19, 29, 39, 48], "exit": [19, 48], "stop_spin": 19, "databaseset": [20, 21, 22, 23], "auth_plugin": 20, "charset": 20, "host": [20, 26], "password": [20, 48], "port": [20, 26], "use_unicod": 20, "user": [20, 35, 37, 48], "databasesettingsnameenum": 20, "authplugin": 20, "useunicod": 20, "databaseconnect": 21, "databaseconnectionabc": 21, "represent": [21, 22, 23, 25, 26, 28], "connection_str": 21, "http": [21, 49], "doc": 21, "sqlalchemi": 21, "org": 21, "en": 21, "14": 21, "core": [21, 45, 49], "engin": 21, "html": 21, "mysqlcursorbuff": [21, 22], "mysqlconnectionabstract": 21, "databasecontext": 22, "databasecontextabc": [22, 23], "save_chang": 22, "tupl": [22, 34], "sql": 22, "fetch": 22, "servicecollect": 23, "collect": 23, "add_db_context": 23, "db_context_typ": 23, "db_set": 23, "db_context": 23, "add_log": 23, "intern": [23, 59], "logger": [23, 25, 26, 37, 44, 45, 46, 47, 50], "add_pip": 23, "transient": [23, 45, 46], "add_scop": 23, "service_typ": 23, "scope": [23, 45, 46], "lifetim": [23, 45, 46], "self": [23, 59], "add_singleton": 23, "singleton": [23, 45, 46], "add_transi": 23, "build_service_provid": [23, 59], "add_discord": 23, "add_transl": 23, "translat": [23, 45, 47], "servicedescriptor": 23, "servicelifetimeenum": 23, "base_typ": 23, "descriptor": 23, "1": [23, 25, 48, 59], "0": [23, 25, 34, 48, 59], "2": [23, 25, 34, 48, 59], "serviceprovid": 23, "build_servic": 23, "instance_typ": 23, "create_scop": 23, "scopeabc": 23, "get_servic": 23, "set_scop": 23, "applicationenviron": [24, 59], "environmentnameenum": 24, "product": [24, 45, 46], "application_nam": 24, "date_time_now": 24, "datetim": [24, 34, 35, 37], "end_tim": 24, "environment_nam": 24, "host_nam": 24, "runtime_directori": 24, "set_runtime_directori": 24, "runtim": [24, 45, 46], "set_working_directori": 24, "working_directori": 24, "start_tim": 24, "stage": [24, 45, 46], "loggerabc": [25, 26, 37], "debug": [25, 45, 46], "ex": 25, "except": [25, 39], "thrown": 25, "fatal": [25, 45, 46], "program": 25, "trace": [25, 45, 46], "warn": [25, 45, 46], "loggingset": [25, 37], "time_format": [25, 28], "timeformatset": [25, 28], "tree": 25, "logfil": 25, "logginglevelenum": 25, "5": [25, 48], "4": 25, "off": 25, "6": 25, "3": 25, "filenam": 25, "level": [25, 45, 46], "loggingsettingsnameenum": 25, "console_level": 25, "consoleloglevel": 25, "file_level": 25, "fileloglevel": 25, "subject": 26, "bodi": 26, "transceiv": 26, "receiv": 26, "e": [26, 59], "add_head": 26, "add_receiv": 26, "check_mail": 26, "address": 26, "check": [26, 39, 59], "get_cont": 26, "header_list": 26, "receiver_list": 26, "emailclientabc": 26, "emailcli": 26, "send_mail": 26, "mail_set": 26, "emailclientset": 26, "login": 26, "credenti": [26, 29, 45, 46], "user_nam": 26, "emailclientsettingsnameenum": 26, "usernam": 26, "boolpip": 27, "pipeabc": [27, 43], "transform": [27, 43], "firstchartolowerpip": 27, "lower": [27, 29, 48], "firsttoupperpip": 27, "upper": [27, 29, 48], "ipaddresspip": 27, "tocamelcasepip": 27, "camel": [27, 29], "camelcas": [27, 29], "tosnakecasepip": 27, "snake": [27, 29], "snake_cas": [27, 29], "versionpip": 27, "date_format": 28, "date_time_format": 28, "date_time_log_format": 28, "timeformatsettingsnamesenum": 28, "dateformat": 28, "datetimeformat": 28, "datetimelogformat": 28, "timeformat": 28, "credentialmanag": 29, "encrypt": [29, 45, 46], "decrypt": 29, "build_str": 29, "replac": [29, 59], "base64": [29, 45, 46], "get_execut": 29, "get_outd": 29, "byte": 29, "get": [29, 45, 46, 47, 49], "outdat": 29, "get_packag": 29, "local": [29, 44, 47], "stdout": 29, "stderr": 29, "extra": [29, 49], "index": [29, 39, 42, 48, 49], "url": [29, 49], "subprocess": [29, 45, 46], "reset_execut": 29, "system": 29, "standard": [29, 45, 46], "set_execut": 29, "convert_to_camel_cas": 29, "convert_to_snake_cas": [29, 59], "first_to_low": 29, "first_to_upp": 29, "random_str": 29, "random": [29, 48], "cpl_discord": [30, 47], "discord_bot_application_abc": [30, 47], "discord_command_abc": [30, 47], "discord_commands_meta": [30, 47], "discord_bot_set": [30, 37, 47], "category_channel": [30, 47], "guild": [30, 35, 37, 47], "role": [30, 35, 37, 47], "text_channel": [30, 47], "voice_channel": [30, 47], "on_bulk_message_delete_abc": [30, 47], "on_command_abc": [30, 47], "on_command_completion_abc": [30, 47], "on_command_error_abc": [30, 47], "on_connect_abc": [30, 47], "on_disconnect_abc": [30, 47], "on_error_abc": [30, 47], "on_group_join_abc": [30, 47], "on_group_remove_abc": [30, 47], "on_guild_available_abc": [30, 47], "on_guild_channel_create_abc": [30, 47], "on_guild_channel_delete_abc": [30, 47], "on_guild_channel_pins_update_abc": [30, 47], "on_guild_channel_update_abc": [30, 47], "on_guild_emojis_update_abc": [30, 47], "on_guild_integrations_update_abc": [30, 47], "on_guild_join_abc": [30, 47], "on_guild_remove_abc": [30, 47], "on_guild_role_create_abc": [30, 47], "on_guild_role_delete_abc": [30, 47], "on_guild_role_update_abc": [30, 47], "on_guild_unavailable_abc": [30, 47], "on_guild_update_abc": [30, 47], "on_invite_create_abc": [30, 47], "on_invite_delete_abc": [30, 47], "on_member_ban_abc": [30, 47], "on_member_join_abc": [30, 47], "on_member_remove_abc": [30, 47], "on_member_unban_abc": [30, 47], "on_member_update_abc": [30, 47], "on_message_abc": [30, 47], "on_message_delete_abc": [30, 47], "on_message_edit_abc": [30, 47], "on_private_channel_create_abc": [30, 47], "on_private_channel_delete_abc": [30, 47], "on_private_channel_pins_update_abc": [30, 47], "on_private_channel_update_abc": [30, 47], "on_raw_reaction_add_abc": [30, 47], "on_raw_reaction_clear_abc": [30, 47], "on_raw_reaction_clear_emoji_abc": [30, 47], "on_raw_reaction_remove_abc": [30, 47], "on_reaction_add_abc": [30, 47], "on_reaction_clear_abc": [30, 47], "on_reaction_clear_emoji_abc": [30, 47], "on_reaction_remove_abc": [30, 47], "on_ready_abc": [30, 47], "on_resume_abc": [30, 47], "on_typing_abc": [30, 47], "on_user_update_abc": [30, 47], "on_voice_state_update_abc": [30, 47], "on_webhooks_update_abc": [30, 47], "helper": [30, 47], "to_containers_convert": [30, 47], "command_error_handler_servic": [30, 47], "discord_bot_servic": [30, 47], "discord_bot_service_abc": [30, 47], "discord_collect": [30, 47], "discord_collection_abc": [30, 47], "discord_servic": [30, 47], "discord_service_abc": [30, 47], "discordbotapplicationabc": 31, "stop_async": [31, 37], "discordcommandabc": [32, 37], "cog": [32, 37], "discordcogmeta": 32, "namespac": 32, "abcmeta": 32, "cogmeta": 32, "discordbotset": [33, 37], "categorychannel": 34, "_t": [34, 36, 37, 39], "category_id": 34, "id": [34, 48], "nsfw": 34, "textchannel": 34, "categori": 34, "voicechannel": 34, "voic": 34, "_o": 34, "afk_channel": 34, "afk_timeout": 34, "approximate_member_count": 34, "approximate_presence_count": 34, "belong": 34, "sort": [34, 39, 45], "top": 34, "bottom": 34, "default_notif": 34, "emoji": [34, 35, 37], "explicit_content_filt": 34, "featur": [34, 49], "max_memb": 34, "max_pres": 34, "max_video_channel_us": 34, "sequenc": [34, 35, 36, 37, 39], "mfa_level": 34, "nsfw_level": 34, "owner_id": 34, "preferred_local": 34, "premium_progress_bar_en": 34, "premium_subscription_count": 34, "premium_ti": 34, "hierarchi": 34, "lowest": [34, 39], "sticker": 34, "permiss": 34, "view": 34, "unavail": 34, "vanity_url_cod": 34, "verification_level": 34, "widget_en": 34, "activitytyp": 34, "joined_at": 34, "nick": 34, "pend": 34, "premium_sinc": 34, "alwai": 34, "everyon": 34, "These": [34, 45], "timed_out_until": 34, "hoist": 34, "mention": 34, "tag": 34, "unicode_emoji": 34, "default_auto_archive_dur": 34, "last_message_id": 34, "slowmode_delai": 34, "archive_timestamp": 34, "archiv": 34, "archiver_id": 34, "auto_archive_dur": 34, "invit": [34, 35, 37], "lock": 34, "me": 34, "member_count": 34, "threadmemb": 34, "intent": 34, "properli": 34, "fill": 34, "howev": 34, "gatewai": 34, "fetch_memb": 34, "message_count": 34, "parent_id": 34, "insid": 34, "onbulkmessagedeleteabc": 35, "on_bulk_message_delet": [35, 37], "oncommandabc": 35, "on_command": [35, 37], "ctx": [35, 37], "oncommandcompletionabc": 35, "on_command_complet": [35, 37], "oncommanderrorabc": [35, 37], "on_command_error": [35, 37], "commanderror": [35, 37], "onconnectabc": 35, "on_connect": [35, 37], "ondisconnectabc": 35, "on_disconnect": [35, 37], "onerrorabc": 35, "on_error": [35, 37], "ongroupjoinabc": 35, "on_group_join": [35, 37], "groupchannel": [35, 37], "ongroupremoveabc": 35, "on_group_remov": [35, 37], "chhanel": [35, 37], "onguildavailableabc": 35, "on_guild_avail": [35, 37], "onguildchannelcreateabc": 35, "on_guild_channel_cr": [35, 37], "guildchannel": [35, 37], "onguildchanneldeleteabc": 35, "on_guild_channel_delet": [35, 37], "onguildchannelpinsupdateabc": 35, "on_guild_channel_pins_upd": [35, 37], "list_pin": [35, 37], "onguildchannelupdateabc": 35, "on_guild_channel_upd": [35, 37], "onguildemojisupdateabc": 35, "on_guild_emojis_upd": [35, 37], "onguildintegrationsupdateabc": 35, "on_guild_integrations_upd": [35, 37], "onguildjoinabc": 35, "on_guild_join": [35, 37], "onguildremoveabc": 35, "on_guild_remov": [35, 37], "onguildrolecreateabc": 35, "on_guild_role_cr": [35, 37], "onguildroledeleteabc": 35, "on_guild_role_delet": [35, 37], "onguildroleupdateabc": 35, "on_guild_role_upd": [35, 37], "onguildunavailableabc": 35, "on_guild_unavail": [35, 37], "onguildupdateabc": 35, "on_guild_upd": [35, 37], "oninvitecreateabc": 35, "on_invite_cr": [35, 37], "oninvitedeleteabc": 35, "on_invite_delet": [35, 37], "onmemberbanabc": 35, "on_member_ban": [35, 37], "onmemberjoinabc": 35, "on_member_join": [35, 37], "onmemberremoveabc": 35, "on_member_remov": [35, 37], "onmemberunbanabc": 35, "on_member_unban": [35, 37], "onmemberupdateabc": 35, "on_member_upd": [35, 37], "onmessageabc": 35, "on_messag": [35, 37], "onmessagedeleteabc": 35, "on_message_delet": [35, 37], "onmessageeditabc": 35, "on_message_edit": [35, 37], "onprivatechannelcreateabc": 35, "on_private_channel_cr": [35, 37], "privatechannel": [35, 37], "onprivatechanneldeleteabc": 35, "on_private_channel_delet": [35, 37], "onprivatechannelpinsupdateabc": 35, "on_private_channel_pins_upd": [35, 37], "onprivatechannelupdateabc": 35, "on_private_channel_upd": [35, 37], "onrawreactionaddabc": 35, "on_raw_reaction_add": [35, 37], "payload": [35, 37], "rawreactionactionev": [35, 37], "onrawreactionclearabc": 35, "on_raw_reaction_clear": [35, 37], "onrawreactionclearemojiabc": 35, "on_raw_reaction_clear_emoji": [35, 37], "onrawreactionremoveabc": 35, "on_raw_reaction_remov": [35, 37], "onreactionaddabc": 35, "on_reaction_add": [35, 37], "reaction": [35, 37], "onreactionclearabc": 35, "on_reaction_clear": [35, 37], "onreactionclearemojiabc": 35, "on_reaction_clear_emoji": [35, 37], "onreactionremoveabc": 35, "on_reaction_remov": [35, 37], "onreadyabc": 35, "on_readi": [35, 37], "onresumeabc": 35, "on_resum": [35, 37], "ontypingabc": 35, "on_typ": [35, 37], "onuserupdateabc": 35, "on_user_upd": [35, 37], "onvoicestateupdateabc": 35, "on_voice_state_upd": [35, 37], "voicest": [35, 37], "onwebhooksupdateabc": 35, "on_webhooks_upd": [35, 37], "tocontainersconvert": 36, "_l": 36, "commanderrorhandlerservic": 37, "discordbotservic": 37, "logging_st": 37, "discordserviceabc": 37, "discordbotserviceabc": 37, "client": 37, "start_async": 37, "discordcollect": 37, "discordcollectionabc": 37, "add_command": 37, "add_ev": 37, "_t_event": 37, "get_command": 37, "get_events_by_bas": 37, "discordservic": 37, "init": [37, 59], "cpl_queri": [38, 47], "default_lambda": [38, 47], "ordered_query": [38, 47], "ordered_queryable_abc": [38, 47], "queryable_abc": [38, 47], "sequence_abc": [38, 47], "sequence_valu": [38, 47], "enumerable_abc": [38, 41, 42, 47], "iterable_abc": [38, 40, 41, 47], "orderedquery": 39, "_valu": 39, "_func": 39, "orderedqueryableabc": 39, "orderediterableabc": 39, "then_bi": 39, "orderedlist": 39, "ascend": 39, "func": 39, "ordered_iterable_abc": 39, "then_by_descend": 39, "descend": 39, "queryableabc": [39, 40, 42], "everi": 39, "equal": 39, "averag": 39, "float": 39, "complex": [39, 45, 46, 59], "distinct": 39, "redund": 39, "element_at": 39, "_index": [39, 42], "element_at_or_default": 39, "first_or_default": 39, "for_each": 39, "group_bi": 39, "group": 39, "last_or_default": 39, "max": 39, "highest": 39, "median": 39, "min": 39, "order_bi": 39, "order_by_descend": 39, "revers": 39, "select_mani": 39, "flatten": 39, "singl": 39, "argumentnoneexcept": 39, "single_or_default": 39, "skip": 39, "skip_last": 39, "sum": 39, "take_last": 39, "where": 39, "enumerableabc": [40, 41, 42], "to_iter": [40, 41], "iterableabc": [40, 41, 42], "to_enumer": [41, 42], "_object": 42, "append": 42, "extend": [42, 44, 47, 50], "_iterableabc__iter": 42, "__iter": 42, "remove_at": 42, "translatepip": 43, "translationserviceabc": 43, "translationservic": 43, "lang": 43, "load_by_set": 43, "translationset": 43, "set_default_lang": 43, "set_lang": 43, "kei": [43, 45, 49], "default_languag": 43, "prerequisit": [44, 47, 50], "what": [44, 47], "up": [44, 47], "queri": [44, 45, 46, 47], "tutori": [44, 47, 48, 49], "come": [44, 47, 50], "builtin": [44, 47, 50], "common": [45, 46], "platform": [45, 46], "meant": [45, 46], "effici": [45, 46], "desktop": [45, 46], "learn": [45, 46, 49], "enterpris": [45, 46], "expandl": [45, 46], "builder": [45, 46], "map": [45, 46], "inject": [45, 46, 48], "appnam": [45, 46], "hostnam": [45, 46], "wrapper": [45, 46], "differ": [45, 46], "variant": [45, 46], "to_lower_cas": [45, 46], "to_camel_cas": [45, 46], "code": [45, 48, 49, 59], "connector": 45, "between": 45, "filter": 45, "linq": 45, "xd": 45, "dot": 45, "notat": 45, "page": 45, "great": 45, "detail": 45, "about": [45, 49], "everyth": 45, "do": [45, 48, 59], "contribut": 45, "cpl_translat": 47, "translate_pip": 47, "translation_servic": 47, "translation_service_abc": 47, "translation_set": 47, "welcom": 48, "introduc": 48, "walk": 48, "also": [48, 49, 59], "sampl": 48, "ouput": 48, "look": [48, 59], "licens": 48, "done": 48, "readm": 48, "md": 48, "__init__": [48, 59], "projectmain": 48, "vs": 48, "pycharm": 48, "hello": [48, 49], "world": [48, 49], "emul": 48, "def": [48, 59], "onli": 48, "__name__": 48, "__main__": 48, "generate_password": 48, "letter": [48, 59], "join": 48, "choic": 48, "rang": 48, "ascii_lowercas": 48, "elif": 48, "ascii_uppercas": 48, "ascii_lett": 48, "len": 48, "full": 48, "section": 48, "ve": 48, "continu": 48, "explor": 48, "window": 49, "prompt": 49, "declin": 49, "enter": 49, "press": 49, "lib": 49, "live": 49, "navig": 49, "launch": 49, "watch": 49, "chnage": 49, "those": 49, "success": 49, "similar": 49, "fore": 49, "pyhton": 49, "schematic_your_schemat": 59, "detect": 59, "schematic_": 59, "endswith": 59, "your_schemat": 59, "choos": 59, "attent": 59, "It": 59, "overwrit": 59, "cpl_cli": 59, "generate_schematic_abc": 59, "generateschematicabc": 59, "get_cod": 59, "textwrap": 59, "dedent": 59, "atr": 59, "build_code_str": 59, "_class_nam": 59, "regist": 59, "cl": 59, "littl": 59, "therefor": 59, "divid": 59, "sever": 59, "veri": 59, "structur": 59, "explain": 59, "project_consol": 59, "project_file_licens": 59, "project_file_appset": 59, "project_fil": 59, "project_file_readm": 59, "project_file_code_main": 59, "project_file_code_startup": 59, "project_file_code_appl": 59, "how": 59, "illustr": 59, "project_type_abc": 59, "projecttypeabc": 59, "workspaceset": 59, "base_path": 59, "project_nam": 59, "use_application_api": 59, "use_service_provid": 59, "use_async": 59, "project_file_data": 59, "projectfil": 59, "projectfileappset": 59, "projectfileappl": 59, "projectfilemain": 59, "projectfilestartup": 59, "projectfilereadm": 59, "projectfilelicens": 59, "schematic_init": 59, "project_path": 59, "f": 59, "split": 59, "add_templ": 59, "exactli": 59, "now": 59, "normal": 59, "inherit": 59, "filetemplateabc": 59, "codefiletemplateabc": 59, "code_file_template_abc": 59, "file_template_abc": 59, "_name": 59, "_code": 59, "dump": 59, "indent": 59}, "objects": {"cpl_core.application": [[17, 0, 0, "-", "application_abc"], [17, 0, 0, "-", "application_builder"], [17, 0, 0, "-", "application_builder_abc"], [17, 0, 0, "-", "startup_abc"]], "cpl_core.application.application_abc": [[17, 1, 1, "", "ApplicationABC"]], "cpl_core.application.application_abc.ApplicationABC": [[17, 2, 1, "", "configure"], [17, 2, 1, "", "main"], [17, 2, 1, "", "run"], [17, 2, 1, "", "run_async"]], "cpl_core.application.application_builder": [[17, 1, 1, "", "ApplicationBuilder"]], "cpl_core.application.application_builder.ApplicationBuilder": [[17, 2, 1, "", "build"], [17, 2, 1, "", "build_async"], [17, 2, 1, "", "use_extension"], [17, 2, 1, "", "use_startup"]], "cpl_core.application.application_builder_abc": [[17, 1, 1, "", "ApplicationBuilderABC"]], "cpl_core.application.application_builder_abc.ApplicationBuilderABC": [[17, 2, 1, "", "build"], [17, 2, 1, "", "build_async"], [17, 2, 1, "", "use_startup"]], "cpl_core.application.startup_abc": [[17, 1, 1, "", "StartupABC"]], "cpl_core.application.startup_abc.StartupABC": [[17, 2, 1, "", "configure_configuration"], [17, 2, 1, "", "configure_services"]], "cpl_core.configuration": [[18, 0, 0, "-", "configuration"], [18, 0, 0, "-", "configuration_abc"], [18, 0, 0, "-", "configuration_model_abc"], [18, 0, 0, "-", "configuration_variable_name_enum"]], "cpl_core.configuration.configuration": [[18, 1, 1, "", "Configuration"]], "cpl_core.configuration.configuration.Configuration": [[18, 2, 1, "", "add_configuration"], [18, 2, 1, "", "add_console_argument"], [18, 2, 1, "", "add_environment_variables"], [18, 2, 1, "", "add_json_file"], [18, 3, 1, "", "additional_arguments"], [18, 3, 1, "", "argument_error_function"], [18, 3, 1, "", "arguments"], [18, 2, 1, "", "create_console_argument"], [18, 3, 1, "", "environment"], [18, 2, 1, "", "for_each_argument"], [18, 2, 1, "", "get_configuration"], [18, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_abc": [[18, 1, 1, "", "ConfigurationABC"]], "cpl_core.configuration.configuration_abc.ConfigurationABC": [[18, 2, 1, "", "add_configuration"], [18, 2, 1, "", "add_console_argument"], [18, 2, 1, "", "add_environment_variables"], [18, 2, 1, "", "add_json_file"], [18, 3, 1, "", "additional_arguments"], [18, 3, 1, "", "argument_error_function"], [18, 3, 1, "", "arguments"], [18, 2, 1, "", "create_console_argument"], [18, 3, 1, "", "environment"], [18, 2, 1, "", "for_each_argument"], [18, 2, 1, "", "get_configuration"], [18, 2, 1, "", "parse_console_arguments"]], "cpl_core.configuration.configuration_model_abc": [[18, 1, 1, "", "ConfigurationModelABC"]], "cpl_core.configuration.configuration_model_abc.ConfigurationModelABC": [[18, 2, 1, "", "from_dict"]], "cpl_core.configuration.configuration_variable_name_enum": [[18, 1, 1, "", "ConfigurationVariableNameEnum"]], "cpl_core.configuration.configuration_variable_name_enum.ConfigurationVariableNameEnum": [[18, 4, 1, "", "customer"], [18, 4, 1, "", "environment"], [18, 4, 1, "", "name"], [18, 2, 1, "", "to_list"]], "cpl_core.console": [[19, 0, 0, "-", "background_color_enum"], [19, 0, 0, "-", "console"], [19, 0, 0, "-", "console_call"], [19, 0, 0, "-", "foreground_color_enum"], [19, 0, 0, "-", "spinner_thread"]], "cpl_core.console.background_color_enum": [[19, 1, 1, "", "BackgroundColorEnum"]], "cpl_core.console.background_color_enum.BackgroundColorEnum": [[19, 4, 1, "", "blue"], [19, 4, 1, "", "cyan"], [19, 4, 1, "", "default"], [19, 4, 1, "", "green"], [19, 4, 1, "", "grey"], [19, 4, 1, "", "magenta"], [19, 4, 1, "", "red"], [19, 4, 1, "", "white"], [19, 4, 1, "", "yellow"]], "cpl_core.console.console": [[19, 1, 1, "", "Console"]], "cpl_core.console.console.Console": [[19, 3, 1, "", "background_color"], [19, 2, 1, "", "banner"], [19, 2, 1, "", "clear"], [19, 2, 1, "", "close"], [19, 2, 1, "", "color_reset"], [19, 2, 1, "", "disable"], [19, 2, 1, "", "enable"], [19, 2, 1, "", "error"], [19, 3, 1, "", "foreground_color"], [19, 2, 1, "", "read"], [19, 2, 1, "", "read_line"], [19, 2, 1, "", "reset_cursor_position"], [19, 2, 1, "", "select"], [19, 2, 1, "", "set_background_color"], [19, 2, 1, "", "set_cursor_position"], [19, 2, 1, "", "set_foreground_color"], [19, 2, 1, "", "set_hold_back"], [19, 2, 1, "", "spinner"], [19, 2, 1, "", "table"], [19, 2, 1, "", "write"], [19, 2, 1, "", "write_at"], [19, 2, 1, "", "write_line"], [19, 2, 1, "", "write_line_at"]], "cpl_core.console.console_call": [[19, 1, 1, "", "ConsoleCall"]], "cpl_core.console.console_call.ConsoleCall": [[19, 3, 1, "", "args"], [19, 3, 1, "", "function"]], "cpl_core.console.foreground_color_enum": [[19, 1, 1, "", "ForegroundColorEnum"]], "cpl_core.console.foreground_color_enum.ForegroundColorEnum": [[19, 4, 1, "", "blue"], [19, 4, 1, "", "cyan"], [19, 4, 1, "", "default"], [19, 4, 1, "", "green"], [19, 4, 1, "", "grey"], [19, 4, 1, "", "magenta"], [19, 4, 1, "", "red"], [19, 4, 1, "", "white"], [19, 4, 1, "", "yellow"]], "cpl_core.console.spinner_thread": [[19, 1, 1, "", "SpinnerThread"]], "cpl_core.console.spinner_thread.SpinnerThread": [[19, 2, 1, "", "exit"], [19, 2, 1, "", "run"], [19, 2, 1, "", "stop_spinning"]], "cpl_core.database.connection": [[21, 0, 0, "-", "database_connection"], [21, 0, 0, "-", "database_connection_abc"]], "cpl_core.database.connection.database_connection": [[21, 1, 1, "", "DatabaseConnection"]], "cpl_core.database.connection.database_connection.DatabaseConnection": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 3, 1, "", "server"]], "cpl_core.database.connection.database_connection_abc": [[21, 1, 1, "", "DatabaseConnectionABC"]], "cpl_core.database.connection.database_connection_abc.DatabaseConnectionABC": [[21, 2, 1, "", "connect"], [21, 3, 1, "", "cursor"], [21, 3, 1, "", "server"]], "cpl_core.database.context": [[22, 0, 0, "-", "database_context"], [22, 0, 0, "-", "database_context_abc"]], "cpl_core.database.context.database_context": [[22, 1, 1, "", "DatabaseContext"]], "cpl_core.database.context.database_context.DatabaseContext": [[22, 2, 1, "", "connect"], [22, 3, 1, "", "cursor"], [22, 2, 1, "", "save_changes"], [22, 2, 1, "", "select"]], "cpl_core.database.context.database_context_abc": [[22, 1, 1, "", "DatabaseContextABC"]], "cpl_core.database.context.database_context_abc.DatabaseContextABC": [[22, 2, 1, "", "connect"], [22, 3, 1, "", "cursor"], [22, 2, 1, "", "save_changes"], [22, 2, 1, "", "select"]], "cpl_core.database": [[20, 0, 0, "-", "database_settings"], [20, 0, 0, "-", "database_settings_name_enum"]], "cpl_core.database.database_settings": [[20, 1, 1, "", "DatabaseSettings"]], "cpl_core.database.database_settings.DatabaseSettings": [[20, 3, 1, "", "auth_plugin"], [20, 3, 1, "", "buffered"], [20, 3, 1, "", "charset"], [20, 3, 1, "", "database"], [20, 2, 1, "", "from_dict"], [20, 3, 1, "", "host"], [20, 3, 1, "", "password"], [20, 3, 1, "", "port"], [20, 3, 1, "", "use_unicode"], [20, 3, 1, "", "user"]], "cpl_core.database.database_settings_name_enum": [[20, 1, 1, "", "DatabaseSettingsNameEnum"]], "cpl_core.database.database_settings_name_enum.DatabaseSettingsNameEnum": [[20, 4, 1, "", "auth_plugin"], [20, 4, 1, "", "buffered"], [20, 4, 1, "", "charset"], [20, 4, 1, "", "database"], [20, 4, 1, "", "host"], [20, 4, 1, "", "password"], [20, 4, 1, "", "port"], [20, 4, 1, "", "use_unicode"], [20, 4, 1, "", "user"]], "cpl_core.dependency_injection": [[23, 0, 0, "-", "service_collection"], [23, 0, 0, "-", "service_collection_abc"], [23, 0, 0, "-", "service_descriptor"], [23, 0, 0, "-", "service_lifetime_enum"], [23, 0, 0, "-", "service_provider"], [23, 0, 0, "-", "service_provider_abc"]], "cpl_core.dependency_injection.service_collection": [[23, 1, 1, "", "ServiceCollection"]], "cpl_core.dependency_injection.service_collection.ServiceCollection": [[23, 2, 1, "", "add_db_context"], [23, 2, 1, "", "add_logging"], [23, 2, 1, "", "add_pipes"], [23, 2, 1, "", "add_scoped"], [23, 2, 1, "", "add_singleton"], [23, 2, 1, "", "add_transient"], [23, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_collection_abc": [[23, 1, 1, "", "ServiceCollectionABC"]], "cpl_core.dependency_injection.service_collection_abc.ServiceCollectionABC": [[23, 2, 1, "", "add_db_context"], [23, 2, 1, "", "add_discord"], [23, 2, 1, "", "add_logging"], [23, 2, 1, "", "add_pipes"], [23, 2, 1, "", "add_scoped"], [23, 2, 1, "", "add_singleton"], [23, 2, 1, "", "add_transient"], [23, 2, 1, "", "add_translation"], [23, 2, 1, "", "build_service_provider"]], "cpl_core.dependency_injection.service_descriptor": [[23, 1, 1, "", "ServiceDescriptor"]], "cpl_core.dependency_injection.service_descriptor.ServiceDescriptor": [[23, 3, 1, "", "base_type"], [23, 3, 1, "", "implementation"], [23, 3, 1, "", "lifetime"], [23, 3, 1, "", "service_type"]], "cpl_core.dependency_injection.service_lifetime_enum": [[23, 1, 1, "", "ServiceLifetimeEnum"]], "cpl_core.dependency_injection.service_lifetime_enum.ServiceLifetimeEnum": [[23, 4, 1, "", "scoped"], [23, 4, 1, "", "singleton"], [23, 4, 1, "", "transient"]], "cpl_core.dependency_injection.service_provider": [[23, 1, 1, "", "ServiceProvider"]], "cpl_core.dependency_injection.service_provider.ServiceProvider": [[23, 2, 1, "", "build_service"], [23, 2, 1, "", "create_scope"], [23, 2, 1, "", "get_service"], [23, 2, 1, "", "set_scope"]], "cpl_core.dependency_injection.service_provider_abc": [[23, 1, 1, "", "ServiceProviderABC"]], "cpl_core.dependency_injection.service_provider_abc.ServiceProviderABC": [[23, 2, 1, "", "build_service"], [23, 2, 1, "", "create_scope"], [23, 2, 1, "", "get_service"], [23, 2, 1, "", "set_scope"]], "cpl_core.environment": [[24, 0, 0, "-", "application_environment"], [24, 0, 0, "-", "application_environment_abc"], [24, 0, 0, "-", "environment_name_enum"]], "cpl_core.environment.application_environment": [[24, 1, 1, "", "ApplicationEnvironment"]], "cpl_core.environment.application_environment.ApplicationEnvironment": [[24, 3, 1, "", "application_name"], [24, 3, 1, "", "customer"], [24, 3, 1, "", "date_time_now"], [24, 3, 1, "", "end_time"], [24, 3, 1, "", "environment_name"], [24, 3, 1, "", "host_name"], [24, 3, 1, "", "runtime_directory"], [24, 2, 1, "", "set_runtime_directory"], [24, 2, 1, "", "set_working_directory"], [24, 3, 1, "", "start_time"], [24, 3, 1, "", "working_directory"]], "cpl_core.environment.application_environment_abc": [[24, 1, 1, "", "ApplicationEnvironmentABC"]], "cpl_core.environment.application_environment_abc.ApplicationEnvironmentABC": [[24, 3, 1, "", "application_name"], [24, 3, 1, "", "customer"], [24, 3, 1, "", "date_time_now"], [24, 3, 1, "", "end_time"], [24, 3, 1, "", "environment_name"], [24, 3, 1, "", "host_name"], [24, 3, 1, "", "runtime_directory"], [24, 2, 1, "", "set_runtime_directory"], [24, 2, 1, "", "set_working_directory"], [24, 3, 1, "", "start_time"], [24, 3, 1, "", "working_directory"]], "cpl_core.environment.environment_name_enum": [[24, 1, 1, "", "EnvironmentNameEnum"]], "cpl_core.environment.environment_name_enum.EnvironmentNameEnum": [[24, 4, 1, "", "development"], [24, 4, 1, "", "production"], [24, 4, 1, "", "staging"], [24, 4, 1, "", "testing"]], "cpl_core.logging": [[25, 0, 0, "-", "logger_abc"], [25, 0, 0, "-", "logger_service"], [25, 0, 0, "-", "logging_level_enum"], [25, 0, 0, "-", "logging_settings"], [25, 0, 0, "-", "logging_settings_name_enum"]], "cpl_core.logging.logger_abc": [[25, 1, 1, "", "LoggerABC"]], "cpl_core.logging.logger_abc.LoggerABC": [[25, 2, 1, "", "debug"], [25, 2, 1, "", "error"], [25, 2, 1, "", "fatal"], [25, 2, 1, "", "header"], [25, 2, 1, "", "info"], [25, 2, 1, "", "trace"], [25, 2, 1, "", "warn"]], "cpl_core.logging.logger_service": [[25, 1, 1, "", "Logger"]], "cpl_core.logging.logger_service.Logger": [[25, 2, 1, "", "create"], [25, 2, 1, "", "debug"], [25, 2, 1, "", "error"], [25, 2, 1, "", "fatal"], [25, 2, 1, "", "header"], [25, 2, 1, "", "info"], [25, 2, 1, "", "trace"], [25, 2, 1, "", "warn"]], "cpl_core.logging.logging_level_enum": [[25, 1, 1, "", "LoggingLevelEnum"]], "cpl_core.logging.logging_level_enum.LoggingLevelEnum": [[25, 4, 1, "", "DEBUG"], [25, 4, 1, "", "ERROR"], [25, 4, 1, "", "FATAL"], [25, 4, 1, "", "INFO"], [25, 4, 1, "", "OFF"], [25, 4, 1, "", "TRACE"], [25, 4, 1, "", "WARN"]], "cpl_core.logging.logging_settings": [[25, 1, 1, "", "LoggingSettings"]], "cpl_core.logging.logging_settings.LoggingSettings": [[25, 3, 1, "", "console"], [25, 3, 1, "", "filename"], [25, 2, 1, "", "from_dict"], [25, 3, 1, "", "level"], [25, 3, 1, "", "path"]], "cpl_core.logging.logging_settings_name_enum": [[25, 1, 1, "", "LoggingSettingsNameEnum"]], "cpl_core.logging.logging_settings_name_enum.LoggingSettingsNameEnum": [[25, 4, 1, "", "console_level"], [25, 4, 1, "", "file_level"], [25, 4, 1, "", "filename"], [25, 4, 1, "", "path"]], "cpl_core.mailing": [[26, 0, 0, "-", "email"], [26, 0, 0, "-", "email_client_abc"], [26, 0, 0, "-", "email_client_service"], [26, 0, 0, "-", "email_client_settings"], [26, 0, 0, "-", "email_client_settings_name_enum"]], "cpl_core.mailing.email": [[26, 1, 1, "", "EMail"]], "cpl_core.mailing.email.EMail": [[26, 2, 1, "", "add_header"], [26, 2, 1, "", "add_receiver"], [26, 3, 1, "", "body"], [26, 2, 1, "", "check_mail"], [26, 2, 1, "", "get_content"], [26, 3, 1, "", "header"], [26, 3, 1, "", "header_list"], [26, 3, 1, "", "receiver"], [26, 3, 1, "", "receiver_list"], [26, 3, 1, "", "subject"], [26, 3, 1, "", "transceiver"]], "cpl_core.mailing.email_client_abc": [[26, 1, 1, "", "EMailClientABC"]], "cpl_core.mailing.email_client_abc.EMailClientABC": [[26, 2, 1, "", "connect"], [26, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_service": [[26, 1, 1, "", "EMailClient"]], "cpl_core.mailing.email_client_service.EMailClient": [[26, 2, 1, "", "connect"], [26, 2, 1, "", "create"], [26, 2, 1, "", "login"], [26, 2, 1, "", "send_mail"]], "cpl_core.mailing.email_client_settings": [[26, 1, 1, "", "EMailClientSettings"]], "cpl_core.mailing.email_client_settings.EMailClientSettings": [[26, 3, 1, "", "credentials"], [26, 2, 1, "", "from_dict"], [26, 3, 1, "", "host"], [26, 3, 1, "", "port"], [26, 3, 1, "", "user_name"]], "cpl_core.mailing.email_client_settings_name_enum": [[26, 1, 1, "", "EMailClientSettingsNameEnum"]], "cpl_core.mailing.email_client_settings_name_enum.EMailClientSettingsNameEnum": [[26, 4, 1, "", "credentials"], [26, 4, 1, "", "host"], [26, 4, 1, "", "port"], [26, 4, 1, "", "user_name"]], "cpl_core.pipes": [[27, 0, 0, "-", "bool_pipe"], [27, 0, 0, "-", "first_char_to_lower_pipe"], [27, 0, 0, "-", "first_to_upper_pipe"], [27, 0, 0, "-", "ip_address_pipe"], [27, 0, 0, "-", "pipe_abc"], [27, 0, 0, "-", "to_camel_case_pipe"], [27, 0, 0, "-", "to_snake_case_pipe"], [27, 0, 0, "-", "version_pipe"]], "cpl_core.pipes.bool_pipe": [[27, 1, 1, "", "BoolPipe"]], "cpl_core.pipes.bool_pipe.BoolPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.first_char_to_lower_pipe": [[27, 1, 1, "", "FirstCharToLowerPipe"]], "cpl_core.pipes.first_char_to_lower_pipe.FirstCharToLowerPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.first_to_upper_pipe": [[27, 1, 1, "", "FirstToUpperPipe"]], "cpl_core.pipes.first_to_upper_pipe.FirstToUpperPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.ip_address_pipe": [[27, 1, 1, "", "IPAddressPipe"]], "cpl_core.pipes.ip_address_pipe.IPAddressPipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.pipe_abc": [[27, 1, 1, "", "PipeABC"]], "cpl_core.pipes.pipe_abc.PipeABC": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.to_camel_case_pipe": [[27, 1, 1, "", "ToCamelCasePipe"]], "cpl_core.pipes.to_camel_case_pipe.ToCamelCasePipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.to_snake_case_pipe": [[27, 1, 1, "", "ToSnakeCasePipe"]], "cpl_core.pipes.to_snake_case_pipe.ToSnakeCasePipe": [[27, 2, 1, "", "transform"]], "cpl_core.pipes.version_pipe": [[27, 1, 1, "", "VersionPipe"]], "cpl_core.pipes.version_pipe.VersionPipe": [[27, 2, 1, "", "transform"]], "cpl_core.time": [[28, 0, 0, "-", "time_format_settings"], [28, 0, 0, "-", "time_format_settings_names_enum"]], "cpl_core.time.time_format_settings": [[28, 1, 1, "", "TimeFormatSettings"]], "cpl_core.time.time_format_settings.TimeFormatSettings": [[28, 3, 1, "", "date_format"], [28, 3, 1, "", "date_time_format"], [28, 3, 1, "", "date_time_log_format"], [28, 2, 1, "", "from_dict"], [28, 3, 1, "", "time_format"]], "cpl_core.time.time_format_settings_names_enum": [[28, 1, 1, "", "TimeFormatSettingsNamesEnum"]], "cpl_core.time.time_format_settings_names_enum.TimeFormatSettingsNamesEnum": [[28, 4, 1, "", "date_format"], [28, 4, 1, "", "date_time_format"], [28, 4, 1, "", "date_time_log_format"], [28, 4, 1, "", "time_format"]], "cpl_core.utils": [[29, 0, 0, "-", "credential_manager"], [29, 0, 0, "-", "pip"], [29, 0, 0, "-", "string"]], "cpl_core.utils.credential_manager": [[29, 1, 1, "", "CredentialManager"]], "cpl_core.utils.credential_manager.CredentialManager": [[29, 2, 1, "", "build_string"], [29, 2, 1, "", "decrypt"], [29, 2, 1, "", "encrypt"]], "cpl_core.utils.pip": [[29, 1, 1, "", "Pip"]], "cpl_core.utils.pip.Pip": [[29, 2, 1, "", "get_executable"], [29, 2, 1, "", "get_outdated"], [29, 2, 1, "", "get_package"], [29, 2, 1, "", "install"], [29, 2, 1, "", "reset_executable"], [29, 2, 1, "", "set_executable"], [29, 2, 1, "", "uninstall"]], "cpl_core.utils.string": [[29, 1, 1, "", "String"]], "cpl_core.utils.string.String": [[29, 2, 1, "", "convert_to_camel_case"], [29, 2, 1, "", "convert_to_snake_case"], [29, 2, 1, "", "first_to_lower"], [29, 2, 1, "", "first_to_upper"], [29, 2, 1, "", "random_string"]], "cpl_discord.application": [[31, 0, 0, "-", "discord_bot_application_abc"]], "cpl_discord.application.discord_bot_application_abc": [[31, 1, 1, "", "DiscordBotApplicationABC"]], "cpl_discord.application.discord_bot_application_abc.DiscordBotApplicationABC": [[31, 2, 1, "", "stop_async"]], "cpl_discord.command": [[32, 0, 0, "-", "discord_command_abc"], [32, 0, 0, "-", "discord_commands_meta"]], "cpl_discord.command.discord_command_abc": [[32, 1, 1, "", "DiscordCommandABC"]], "cpl_discord.command.discord_commands_meta": [[32, 1, 1, "", "DiscordCogMeta"]], "cpl_discord.configuration": [[33, 0, 0, "-", "discord_bot_settings"]], "cpl_discord.configuration.discord_bot_settings": [[33, 1, 1, "", "DiscordBotSettings"]], "cpl_discord.configuration.discord_bot_settings.DiscordBotSettings": [[33, 2, 1, "", "from_dict"], [33, 3, 1, "", "prefix"], [33, 3, 1, "", "token"]], "cpl_discord.container": [[34, 0, 0, "-", "category_channel"], [34, 0, 0, "-", "container"], [34, 0, 0, "-", "guild"], [34, 0, 0, "-", "member"], [34, 0, 0, "-", "role"], [34, 0, 0, "-", "text_channel"], [34, 0, 0, "-", "thread"], [34, 0, 0, "-", "voice_channel"]], "cpl_discord.container.category_channel": [[34, 1, 1, "", "CategoryChannel"]], "cpl_discord.container.category_channel.CategoryChannel": [[34, 4, 1, "", "category_id"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw"], [34, 4, 1, "", "position"], [34, 3, 1, "", "text_channels"], [34, 3, 1, "", "voice_channels"]], "cpl_discord.container.container": [[34, 1, 1, "", "Container"]], "cpl_discord.container.guild": [[34, 1, 1, "", "Guild"]], "cpl_discord.container.guild.Guild": [[34, 4, 1, "", "afk_channel"], [34, 4, 1, "", "afk_timeout"], [34, 4, 1, "", "approximate_member_count"], [34, 4, 1, "", "approximate_presence_count"], [34, 3, 1, "", "categories"], [34, 4, 1, "", "default_notifications"], [34, 4, 1, "", "description"], [34, 4, 1, "", "emojis"], [34, 4, 1, "", "explicit_content_filter"], [34, 4, 1, "", "features"], [34, 4, 1, "", "id"], [34, 4, 1, "", "max_members"], [34, 4, 1, "", "max_presences"], [34, 4, 1, "", "max_video_channel_users"], [34, 3, 1, "", "members"], [34, 4, 1, "", "mfa_level"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw_level"], [34, 4, 1, "", "owner_id"], [34, 4, 1, "", "preferred_locale"], [34, 4, 1, "", "premium_progress_bar_enabled"], [34, 4, 1, "", "premium_subscription_count"], [34, 4, 1, "", "premium_tier"], [34, 3, 1, "", "roles"], [34, 4, 1, "", "stickers"], [34, 3, 1, "", "text_channels"], [34, 3, 1, "", "threads"], [34, 4, 1, "", "unavailable"], [34, 4, 1, "", "vanity_url_code"], [34, 4, 1, "", "verification_level"], [34, 3, 1, "", "voice_channels"], [34, 4, 1, "", "widget_enabled"]], "cpl_discord.container.member": [[34, 1, 1, "", "Member"]], "cpl_discord.container.member.Member": [[34, 4, 1, "", "activities"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "joined_at"], [34, 4, 1, "", "nick"], [34, 4, 1, "", "pending"], [34, 4, 1, "", "premium_since"], [34, 3, 1, "", "roles"], [34, 4, 1, "", "timed_out_until"]], "cpl_discord.container.role": [[34, 1, 1, "", "Role"]], "cpl_discord.container.role.Role": [[34, 4, 1, "", "guild"], [34, 4, 1, "", "hoist"], [34, 4, 1, "", "id"], [34, 4, 1, "", "managed"], [34, 3, 1, "", "members"], [34, 4, 1, "", "mentionable"], [34, 4, 1, "", "name"], [34, 4, 1, "", "position"], [34, 4, 1, "", "tags"], [34, 4, 1, "", "unicode_emoji"]], "cpl_discord.container.text_channel": [[34, 1, 1, "", "TextChannel"]], "cpl_discord.container.text_channel.TextChannel": [[34, 4, 1, "", "category_id"], [34, 4, 1, "", "default_auto_archive_duration"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "last_message_id"], [34, 3, 1, "", "members"], [34, 4, 1, "", "name"], [34, 4, 1, "", "nsfw"], [34, 4, 1, "", "position"], [34, 4, 1, "", "slowmode_delay"], [34, 3, 1, "", "threads"], [34, 4, 1, "", "topic"]], "cpl_discord.container.thread": [[34, 1, 1, "", "Thread"]], "cpl_discord.container.thread.Thread": [[34, 4, 1, "", "archive_timestamp"], [34, 4, 1, "", "archived"], [34, 4, 1, "", "archiver_id"], [34, 4, 1, "", "auto_archive_duration"], [34, 4, 1, "", "guild"], [34, 4, 1, "", "id"], [34, 4, 1, "", "invitable"], [34, 4, 1, "", "last_message_id"], [34, 4, 1, "", "locked"], [34, 4, 1, "", "me"], [34, 4, 1, "", "member_count"], [34, 3, 1, "", "members"], [34, 4, 1, "", "message_count"], [34, 4, 1, "", "name"], [34, 4, 1, "", "owner_id"], [34, 4, 1, "", "parent_id"], [34, 4, 1, "", "slowmode_delay"]], "cpl_discord.container.voice_channel": [[34, 1, 1, "", "VoiceChannel"]], "cpl_discord.container.voice_channel.VoiceChannel": [[34, 3, 1, "", "members"]], "cpl_discord.events": [[35, 0, 0, "-", "on_bulk_message_delete_abc"], [35, 0, 0, "-", "on_command_abc"], [35, 0, 0, "-", "on_command_completion_abc"], [35, 0, 0, "-", "on_command_error_abc"], [35, 0, 0, "-", "on_connect_abc"], [35, 0, 0, "-", "on_disconnect_abc"], [35, 0, 0, "-", "on_error_abc"], [35, 0, 0, "-", "on_group_join_abc"], [35, 0, 0, "-", "on_group_remove_abc"], [35, 0, 0, "-", "on_guild_available_abc"], [35, 0, 0, "-", "on_guild_channel_create_abc"], [35, 0, 0, "-", "on_guild_channel_delete_abc"], [35, 0, 0, "-", "on_guild_channel_pins_update_abc"], [35, 0, 0, "-", "on_guild_channel_update_abc"], [35, 0, 0, "-", "on_guild_emojis_update_abc"], [35, 0, 0, "-", "on_guild_integrations_update_abc"], [35, 0, 0, "-", "on_guild_join_abc"], [35, 0, 0, "-", "on_guild_remove_abc"], [35, 0, 0, "-", "on_guild_role_create_abc"], [35, 0, 0, "-", "on_guild_role_delete_abc"], [35, 0, 0, "-", "on_guild_role_update_abc"], [35, 0, 0, "-", "on_guild_unavailable_abc"], [35, 0, 0, "-", "on_guild_update_abc"], [35, 0, 0, "-", "on_invite_create_abc"], [35, 0, 0, "-", "on_invite_delete_abc"], [35, 0, 0, "-", "on_member_ban_abc"], [35, 0, 0, "-", "on_member_join_abc"], [35, 0, 0, "-", "on_member_remove_abc"], [35, 0, 0, "-", "on_member_unban_abc"], [35, 0, 0, "-", "on_member_update_abc"], [35, 0, 0, "-", "on_message_abc"], [35, 0, 0, "-", "on_message_delete_abc"], [35, 0, 0, "-", "on_message_edit_abc"], [35, 0, 0, "-", "on_private_channel_create_abc"], [35, 0, 0, "-", "on_private_channel_delete_abc"], [35, 0, 0, "-", "on_private_channel_pins_update_abc"], [35, 0, 0, "-", "on_private_channel_update_abc"], [35, 0, 0, "-", "on_raw_reaction_add_abc"], [35, 0, 0, "-", "on_raw_reaction_clear_abc"], [35, 0, 0, "-", "on_raw_reaction_clear_emoji_abc"], [35, 0, 0, "-", "on_raw_reaction_remove_abc"], [35, 0, 0, "-", "on_reaction_add_abc"], [35, 0, 0, "-", "on_reaction_clear_abc"], [35, 0, 0, "-", "on_reaction_clear_emoji_abc"], [35, 0, 0, "-", "on_reaction_remove_abc"], [35, 0, 0, "-", "on_ready_abc"], [35, 0, 0, "-", "on_resume_abc"], [35, 0, 0, "-", "on_typing_abc"], [35, 0, 0, "-", "on_user_update_abc"], [35, 0, 0, "-", "on_voice_state_update_abc"], [35, 0, 0, "-", "on_webhooks_update_abc"]], "cpl_discord.events.on_bulk_message_delete_abc": [[35, 1, 1, "", "OnBulkMessageDeleteABC"]], "cpl_discord.events.on_bulk_message_delete_abc.OnBulkMessageDeleteABC": [[35, 2, 1, "", "on_bulk_message_delete"]], "cpl_discord.events.on_command_abc": [[35, 1, 1, "", "OnCommandABC"]], "cpl_discord.events.on_command_abc.OnCommandABC": [[35, 2, 1, "", "on_command"]], "cpl_discord.events.on_command_completion_abc": [[35, 1, 1, "", "OnCommandCompletionABC"]], "cpl_discord.events.on_command_completion_abc.OnCommandCompletionABC": [[35, 2, 1, "", "on_command_completion"]], "cpl_discord.events.on_command_error_abc": [[35, 1, 1, "", "OnCommandErrorABC"]], "cpl_discord.events.on_command_error_abc.OnCommandErrorABC": [[35, 2, 1, "", "on_command_error"]], "cpl_discord.events.on_connect_abc": [[35, 1, 1, "", "OnConnectABC"]], "cpl_discord.events.on_connect_abc.OnConnectABC": [[35, 2, 1, "", "on_connect"]], "cpl_discord.events.on_disconnect_abc": [[35, 1, 1, "", "OnDisconnectABC"]], "cpl_discord.events.on_disconnect_abc.OnDisconnectABC": [[35, 2, 1, "", "on_disconnect"]], "cpl_discord.events.on_error_abc": [[35, 1, 1, "", "OnErrorABC"]], "cpl_discord.events.on_error_abc.OnErrorABC": [[35, 2, 1, "", "on_error"]], "cpl_discord.events.on_group_join_abc": [[35, 1, 1, "", "OnGroupJoinABC"]], "cpl_discord.events.on_group_join_abc.OnGroupJoinABC": [[35, 2, 1, "", "on_group_join"]], "cpl_discord.events.on_group_remove_abc": [[35, 1, 1, "", "OnGroupRemoveABC"]], "cpl_discord.events.on_group_remove_abc.OnGroupRemoveABC": [[35, 2, 1, "", "on_group_remove"]], "cpl_discord.events.on_guild_available_abc": [[35, 1, 1, "", "OnGuildAvailableABC"]], "cpl_discord.events.on_guild_available_abc.OnGuildAvailableABC": [[35, 2, 1, "", "on_guild_available"]], "cpl_discord.events.on_guild_channel_create_abc": [[35, 1, 1, "", "OnGuildChannelCreateABC"]], "cpl_discord.events.on_guild_channel_create_abc.OnGuildChannelCreateABC": [[35, 2, 1, "", "on_guild_channel_create"]], "cpl_discord.events.on_guild_channel_delete_abc": [[35, 1, 1, "", "OnGuildChannelDeleteABC"]], "cpl_discord.events.on_guild_channel_delete_abc.OnGuildChannelDeleteABC": [[35, 2, 1, "", "on_guild_channel_delete"]], "cpl_discord.events.on_guild_channel_pins_update_abc": [[35, 1, 1, "", "OnGuildChannelPinsUpdateABC"]], "cpl_discord.events.on_guild_channel_pins_update_abc.OnGuildChannelPinsUpdateABC": [[35, 2, 1, "", "on_guild_channel_pins_update"]], "cpl_discord.events.on_guild_channel_update_abc": [[35, 1, 1, "", "OnGuildChannelUpdateABC"]], "cpl_discord.events.on_guild_channel_update_abc.OnGuildChannelUpdateABC": [[35, 2, 1, "", "on_guild_channel_update"]], "cpl_discord.events.on_guild_emojis_update_abc": [[35, 1, 1, "", "OnGuildEmojisUpdateABC"]], "cpl_discord.events.on_guild_emojis_update_abc.OnGuildEmojisUpdateABC": [[35, 2, 1, "", "on_guild_emojis_update"]], "cpl_discord.events.on_guild_integrations_update_abc": [[35, 1, 1, "", "OnGuildIntegrationsUpdateABC"]], "cpl_discord.events.on_guild_integrations_update_abc.OnGuildIntegrationsUpdateABC": [[35, 2, 1, "", "on_guild_integrations_update"]], "cpl_discord.events.on_guild_join_abc": [[35, 1, 1, "", "OnGuildJoinABC"]], "cpl_discord.events.on_guild_join_abc.OnGuildJoinABC": [[35, 2, 1, "", "on_guild_join"]], "cpl_discord.events.on_guild_remove_abc": [[35, 1, 1, "", "OnGuildRemoveABC"]], "cpl_discord.events.on_guild_remove_abc.OnGuildRemoveABC": [[35, 2, 1, "", "on_guild_remove"]], "cpl_discord.events.on_guild_role_create_abc": [[35, 1, 1, "", "OnGuildRoleCreateABC"]], "cpl_discord.events.on_guild_role_create_abc.OnGuildRoleCreateABC": [[35, 2, 1, "", "on_guild_role_create"]], "cpl_discord.events.on_guild_role_delete_abc": [[35, 1, 1, "", "OnGuildRoleDeleteABC"]], "cpl_discord.events.on_guild_role_delete_abc.OnGuildRoleDeleteABC": [[35, 2, 1, "", "on_guild_role_delete"]], "cpl_discord.events.on_guild_role_update_abc": [[35, 1, 1, "", "OnGuildRoleUpdateABC"]], "cpl_discord.events.on_guild_role_update_abc.OnGuildRoleUpdateABC": [[35, 2, 1, "", "on_guild_role_update"]], "cpl_discord.events.on_guild_unavailable_abc": [[35, 1, 1, "", "OnGuildUnavailableABC"]], "cpl_discord.events.on_guild_unavailable_abc.OnGuildUnavailableABC": [[35, 2, 1, "", "on_guild_unavailable"]], "cpl_discord.events.on_guild_update_abc": [[35, 1, 1, "", "OnGuildUpdateABC"]], "cpl_discord.events.on_guild_update_abc.OnGuildUpdateABC": [[35, 2, 1, "", "on_guild_update"]], "cpl_discord.events.on_invite_create_abc": [[35, 1, 1, "", "OnInviteCreateABC"]], "cpl_discord.events.on_invite_create_abc.OnInviteCreateABC": [[35, 2, 1, "", "on_invite_create"]], "cpl_discord.events.on_invite_delete_abc": [[35, 1, 1, "", "OnInviteDeleteABC"]], "cpl_discord.events.on_invite_delete_abc.OnInviteDeleteABC": [[35, 2, 1, "", "on_invite_delete"]], "cpl_discord.events.on_member_ban_abc": [[35, 1, 1, "", "OnMemberBanABC"]], "cpl_discord.events.on_member_ban_abc.OnMemberBanABC": [[35, 2, 1, "", "on_member_ban"]], "cpl_discord.events.on_member_join_abc": [[35, 1, 1, "", "OnMemberJoinABC"]], "cpl_discord.events.on_member_join_abc.OnMemberJoinABC": [[35, 2, 1, "", "on_member_join"]], "cpl_discord.events.on_member_remove_abc": [[35, 1, 1, "", "OnMemberRemoveABC"]], "cpl_discord.events.on_member_remove_abc.OnMemberRemoveABC": [[35, 2, 1, "", "on_member_remove"]], "cpl_discord.events.on_member_unban_abc": [[35, 1, 1, "", "OnMemberUnbanABC"]], "cpl_discord.events.on_member_unban_abc.OnMemberUnbanABC": [[35, 2, 1, "", "on_member_unban"]], "cpl_discord.events.on_member_update_abc": [[35, 1, 1, "", "OnMemberUpdateABC"]], "cpl_discord.events.on_member_update_abc.OnMemberUpdateABC": [[35, 2, 1, "", "on_member_update"]], "cpl_discord.events.on_message_abc": [[35, 1, 1, "", "OnMessageABC"]], "cpl_discord.events.on_message_abc.OnMessageABC": [[35, 2, 1, "", "on_message"]], "cpl_discord.events.on_message_delete_abc": [[35, 1, 1, "", "OnMessageDeleteABC"]], "cpl_discord.events.on_message_delete_abc.OnMessageDeleteABC": [[35, 2, 1, "", "on_message_delete"]], "cpl_discord.events.on_message_edit_abc": [[35, 1, 1, "", "OnMessageEditABC"]], "cpl_discord.events.on_message_edit_abc.OnMessageEditABC": [[35, 2, 1, "", "on_message_edit"]], "cpl_discord.events.on_private_channel_create_abc": [[35, 1, 1, "", "OnPrivateChannelCreateABC"]], "cpl_discord.events.on_private_channel_create_abc.OnPrivateChannelCreateABC": [[35, 2, 1, "", "on_private_channel_create"]], "cpl_discord.events.on_private_channel_delete_abc": [[35, 1, 1, "", "OnPrivateChannelDeleteABC"]], "cpl_discord.events.on_private_channel_delete_abc.OnPrivateChannelDeleteABC": [[35, 2, 1, "", "on_private_channel_delete"]], "cpl_discord.events.on_private_channel_pins_update_abc": [[35, 1, 1, "", "OnPrivateChannelPinsUpdateABC"]], "cpl_discord.events.on_private_channel_pins_update_abc.OnPrivateChannelPinsUpdateABC": [[35, 2, 1, "", "on_private_channel_pins_update"]], "cpl_discord.events.on_private_channel_update_abc": [[35, 1, 1, "", "OnPrivateChannelUpdateABC"]], "cpl_discord.events.on_private_channel_update_abc.OnPrivateChannelUpdateABC": [[35, 2, 1, "", "on_private_channel_update"]], "cpl_discord.events.on_raw_reaction_add_abc": [[35, 1, 1, "", "OnRawReactionAddABC"]], "cpl_discord.events.on_raw_reaction_add_abc.OnRawReactionAddABC": [[35, 2, 1, "", "on_raw_reaction_add"]], "cpl_discord.events.on_raw_reaction_clear_abc": [[35, 1, 1, "", "OnRawReactionClearABC"]], "cpl_discord.events.on_raw_reaction_clear_abc.OnRawReactionClearABC": [[35, 2, 1, "", "on_raw_reaction_clear"]], "cpl_discord.events.on_raw_reaction_clear_emoji_abc": [[35, 1, 1, "", "OnRawReactionClearEmojiABC"]], "cpl_discord.events.on_raw_reaction_clear_emoji_abc.OnRawReactionClearEmojiABC": [[35, 2, 1, "", "on_raw_reaction_clear_emoji"]], "cpl_discord.events.on_raw_reaction_remove_abc": [[35, 1, 1, "", "OnRawReactionRemoveABC"]], "cpl_discord.events.on_raw_reaction_remove_abc.OnRawReactionRemoveABC": [[35, 2, 1, "", "on_raw_reaction_remove"]], "cpl_discord.events.on_reaction_add_abc": [[35, 1, 1, "", "OnReactionAddABC"]], "cpl_discord.events.on_reaction_add_abc.OnReactionAddABC": [[35, 2, 1, "", "on_reaction_add"]], "cpl_discord.events.on_reaction_clear_abc": [[35, 1, 1, "", "OnReactionClearABC"]], "cpl_discord.events.on_reaction_clear_abc.OnReactionClearABC": [[35, 2, 1, "", "on_reaction_clear"]], "cpl_discord.events.on_reaction_clear_emoji_abc": [[35, 1, 1, "", "OnReactionClearEmojiABC"]], "cpl_discord.events.on_reaction_clear_emoji_abc.OnReactionClearEmojiABC": [[35, 2, 1, "", "on_reaction_clear_emoji"]], "cpl_discord.events.on_reaction_remove_abc": [[35, 1, 1, "", "OnReactionRemoveABC"]], "cpl_discord.events.on_reaction_remove_abc.OnReactionRemoveABC": [[35, 2, 1, "", "on_reaction_remove"]], "cpl_discord.events.on_ready_abc": [[35, 1, 1, "", "OnReadyABC"]], "cpl_discord.events.on_ready_abc.OnReadyABC": [[35, 2, 1, "", "on_ready"]], "cpl_discord.events.on_resume_abc": [[35, 1, 1, "", "OnResumeABC"]], "cpl_discord.events.on_resume_abc.OnResumeABC": [[35, 2, 1, "", "on_resume"]], "cpl_discord.events.on_typing_abc": [[35, 1, 1, "", "OnTypingABC"]], "cpl_discord.events.on_typing_abc.OnTypingABC": [[35, 2, 1, "", "on_typing"]], "cpl_discord.events.on_user_update_abc": [[35, 1, 1, "", "OnUserUpdateABC"]], "cpl_discord.events.on_user_update_abc.OnUserUpdateABC": [[35, 2, 1, "", "on_user_update"]], "cpl_discord.events.on_voice_state_update_abc": [[35, 1, 1, "", "OnVoiceStateUpdateABC"]], "cpl_discord.events.on_voice_state_update_abc.OnVoiceStateUpdateABC": [[35, 2, 1, "", "on_voice_state_update"]], "cpl_discord.events.on_webhooks_update_abc": [[35, 1, 1, "", "OnWebhooksUpdateABC"]], "cpl_discord.events.on_webhooks_update_abc.OnWebhooksUpdateABC": [[35, 2, 1, "", "on_webhooks_update"]], "cpl_discord.helper": [[36, 0, 0, "-", "to_containers_converter"]], "cpl_discord.helper.to_containers_converter": [[36, 1, 1, "", "ToContainersConverter"]], "cpl_discord.helper.to_containers_converter.ToContainersConverter": [[36, 2, 1, "", "convert"]], "cpl_discord.service": [[37, 0, 0, "-", "command_error_handler_service"], [37, 0, 0, "-", "discord_bot_service"], [37, 0, 0, "-", "discord_bot_service_abc"], [37, 0, 0, "-", "discord_collection"], [37, 0, 0, "-", "discord_collection_abc"], [37, 0, 0, "-", "discord_service"], [37, 0, 0, "-", "discord_service_abc"]], "cpl_discord.service.command_error_handler_service": [[37, 1, 1, "", "CommandErrorHandlerService"]], "cpl_discord.service.command_error_handler_service.CommandErrorHandlerService": [[37, 2, 1, "", "on_command_error"]], "cpl_discord.service.discord_bot_service": [[37, 1, 1, "", "DiscordBotService"]], "cpl_discord.service.discord_bot_service.DiscordBotService": [[37, 3, 1, "", "guilds"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "start_async"], [37, 2, 1, "", "stop_async"]], "cpl_discord.service.discord_bot_service_abc": [[37, 1, 1, "", "DiscordBotServiceABC"]], "cpl_discord.service.discord_bot_service_abc.DiscordBotServiceABC": [[37, 3, 1, "", "guilds"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "start_async"], [37, 2, 1, "", "stop_async"]], "cpl_discord.service.discord_collection": [[37, 1, 1, "", "DiscordCollection"]], "cpl_discord.service.discord_collection.DiscordCollection": [[37, 2, 1, "", "add_command"], [37, 2, 1, "", "add_event"], [37, 2, 1, "", "get_commands"], [37, 2, 1, "", "get_events_by_base"]], "cpl_discord.service.discord_collection_abc": [[37, 1, 1, "", "DiscordCollectionABC"]], "cpl_discord.service.discord_collection_abc.DiscordCollectionABC": [[37, 2, 1, "", "add_command"], [37, 2, 1, "", "add_event"], [37, 2, 1, "", "get_commands"], [37, 2, 1, "", "get_events_by_base"]], "cpl_discord.service.discord_service": [[37, 1, 1, "", "DiscordService"]], "cpl_discord.service.discord_service.DiscordService": [[37, 2, 1, "", "init"], [37, 2, 1, "", "on_bulk_message_delete"], [37, 2, 1, "", "on_command"], [37, 2, 1, "", "on_command_completion"], [37, 2, 1, "", "on_command_error"], [37, 2, 1, "", "on_connect"], [37, 2, 1, "", "on_disconnect"], [37, 2, 1, "", "on_error"], [37, 2, 1, "", "on_group_join"], [37, 2, 1, "", "on_group_remove"], [37, 2, 1, "", "on_guild_available"], [37, 2, 1, "", "on_guild_channel_create"], [37, 2, 1, "", "on_guild_channel_delete"], [37, 2, 1, "", "on_guild_channel_pins_update"], [37, 2, 1, "", "on_guild_channel_update"], [37, 2, 1, "", "on_guild_emojis_update"], [37, 2, 1, "", "on_guild_integrations_update"], [37, 2, 1, "", "on_guild_join"], [37, 2, 1, "", "on_guild_remove"], [37, 2, 1, "", "on_guild_role_create"], [37, 2, 1, "", "on_guild_role_delete"], [37, 2, 1, "", "on_guild_role_update"], [37, 2, 1, "", "on_guild_unavailable"], [37, 2, 1, "", "on_guild_update"], [37, 2, 1, "", "on_invite_create"], [37, 2, 1, "", "on_invite_delete"], [37, 2, 1, "", "on_member_ban"], [37, 2, 1, "", "on_member_join"], [37, 2, 1, "", "on_member_remove"], [37, 2, 1, "", "on_member_unban"], [37, 2, 1, "", "on_member_update"], [37, 2, 1, "", "on_message"], [37, 2, 1, "", "on_message_delete"], [37, 2, 1, "", "on_message_edit"], [37, 2, 1, "", "on_private_channel_create"], [37, 2, 1, "", "on_private_channel_delete"], [37, 2, 1, "", "on_private_channel_pins_update"], [37, 2, 1, "", "on_private_channel_update"], [37, 2, 1, "", "on_raw_reaction_add"], [37, 2, 1, "", "on_raw_reaction_clear"], [37, 2, 1, "", "on_raw_reaction_clear_emoji"], [37, 2, 1, "", "on_raw_reaction_remove"], [37, 2, 1, "", "on_reaction_add"], [37, 2, 1, "", "on_reaction_clear"], [37, 2, 1, "", "on_reaction_clear_emoji"], [37, 2, 1, "", "on_reaction_remove"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "on_resume"], [37, 2, 1, "", "on_typing"], [37, 2, 1, "", "on_user_update"], [37, 2, 1, "", "on_voice_state_update"], [37, 2, 1, "", "on_webhooks_update"]], "cpl_discord.service.discord_service_abc": [[37, 1, 1, "", "DiscordServiceABC"]], "cpl_discord.service.discord_service_abc.DiscordServiceABC": [[37, 2, 1, "", "init"], [37, 2, 1, "", "on_bulk_message_delete"], [37, 2, 1, "", "on_command"], [37, 2, 1, "", "on_command_completion"], [37, 2, 1, "", "on_command_error"], [37, 2, 1, "", "on_connect"], [37, 2, 1, "", "on_disconnect"], [37, 2, 1, "", "on_error"], [37, 2, 1, "", "on_group_join"], [37, 2, 1, "", "on_group_remove"], [37, 2, 1, "", "on_guild_available"], [37, 2, 1, "", "on_guild_channel_create"], [37, 2, 1, "", "on_guild_channel_delete"], [37, 2, 1, "", "on_guild_channel_pins_update"], [37, 2, 1, "", "on_guild_channel_update"], [37, 2, 1, "", "on_guild_emojis_update"], [37, 2, 1, "", "on_guild_integrations_update"], [37, 2, 1, "", "on_guild_join"], [37, 2, 1, "", "on_guild_remove"], [37, 2, 1, "", "on_guild_role_create"], [37, 2, 1, "", "on_guild_role_delete"], [37, 2, 1, "", "on_guild_role_update"], [37, 2, 1, "", "on_guild_unavailable"], [37, 2, 1, "", "on_guild_update"], [37, 2, 1, "", "on_invite_create"], [37, 2, 1, "", "on_invite_delete"], [37, 2, 1, "", "on_member_ban"], [37, 2, 1, "", "on_member_join"], [37, 2, 1, "", "on_member_remove"], [37, 2, 1, "", "on_member_unban"], [37, 2, 1, "", "on_member_update"], [37, 2, 1, "", "on_message"], [37, 2, 1, "", "on_message_delete"], [37, 2, 1, "", "on_message_edit"], [37, 2, 1, "", "on_private_channel_create"], [37, 2, 1, "", "on_private_channel_delete"], [37, 2, 1, "", "on_private_channel_pins_update"], [37, 2, 1, "", "on_private_channel_update"], [37, 2, 1, "", "on_reaction_add"], [37, 2, 1, "", "on_reaction_clear"], [37, 2, 1, "", "on_reaction_clear_emoji"], [37, 2, 1, "", "on_reaction_remove"], [37, 2, 1, "", "on_ready"], [37, 2, 1, "", "on_resume"], [37, 2, 1, "", "on_typing"], [37, 2, 1, "", "on_user_update"], [37, 2, 1, "", "on_voice_state_update"], [37, 2, 1, "", "on_webhooks_update"]], "cpl_query.base": [[39, 0, 0, "-", "default_lambda"], [39, 0, 0, "-", "ordered_queryable"], [39, 0, 0, "-", "ordered_queryable_abc"], [39, 0, 0, "-", "queryable_abc"]], "cpl_query.base.default_lambda": [[39, 5, 1, "", "default_lambda"]], "cpl_query.base.ordered_queryable": [[39, 1, 1, "", "OrderedQueryable"]], "cpl_query.base.ordered_queryable.OrderedQueryable": [[39, 2, 1, "", "then_by"], [39, 2, 1, "", "then_by_descending"]], "cpl_query.base.ordered_queryable_abc": [[39, 1, 1, "", "OrderedQueryableABC"]], "cpl_query.base.ordered_queryable_abc.OrderedQueryableABC": [[39, 2, 1, "", "then_by"], [39, 2, 1, "", "then_by_descending"]], "cpl_query.base.queryable_abc": [[39, 1, 1, "", "QueryableABC"]], "cpl_query.base.queryable_abc.QueryableABC": [[39, 2, 1, "", "all"], [39, 2, 1, "", "any"], [39, 2, 1, "", "average"], [39, 2, 1, "", "contains"], [39, 2, 1, "", "count"], [39, 2, 1, "", "distinct"], [39, 2, 1, "", "element_at"], [39, 2, 1, "", "element_at_or_default"], [39, 2, 1, "", "first"], [39, 2, 1, "", "first_or_default"], [39, 2, 1, "", "for_each"], [39, 2, 1, "", "group_by"], [39, 2, 1, "", "last"], [39, 2, 1, "", "last_or_default"], [39, 2, 1, "", "max"], [39, 2, 1, "", "median"], [39, 2, 1, "", "min"], [39, 2, 1, "", "order_by"], [39, 2, 1, "", "order_by_descending"], [39, 2, 1, "", "reverse"], [39, 2, 1, "", "select"], [39, 2, 1, "", "select_many"], [39, 2, 1, "", "single"], [39, 2, 1, "", "single_or_default"], [39, 2, 1, "", "skip"], [39, 2, 1, "", "skip_last"], [39, 2, 1, "", "sum"], [39, 2, 1, "", "take"], [39, 2, 1, "", "take_last"], [39, 2, 1, "", "where"]], "cpl_query.enumerable": [[40, 0, 0, "-", "enumerable"], [40, 0, 0, "-", "enumerable_abc"]], "cpl_query.enumerable.enumerable": [[40, 1, 1, "", "Enumerable"]], "cpl_query.enumerable.enumerable_abc": [[40, 1, 1, "", "EnumerableABC"]], "cpl_query.enumerable.enumerable_abc.EnumerableABC": [[40, 2, 1, "", "to_iterable"]], "cpl_query.extension": [[41, 0, 0, "-", "list"]], "cpl_query.extension.list": [[41, 1, 1, "", "List"]], "cpl_query.extension.list.List": [[41, 2, 1, "", "to_enumerable"], [41, 2, 1, "", "to_iterable"]], "cpl_query.iterable": [[42, 0, 0, "-", "iterable"], [42, 0, 0, "-", "iterable_abc"]], "cpl_query.iterable.iterable": [[42, 1, 1, "", "Iterable"]], "cpl_query.iterable.iterable_abc": [[42, 1, 1, "", "IterableABC"]], "cpl_query.iterable.iterable_abc.IterableABC": [[42, 2, 1, "", "add"], [42, 2, 1, "", "append"], [42, 2, 1, "", "extend"], [42, 2, 1, "", "remove"], [42, 2, 1, "", "remove_at"], [42, 2, 1, "", "to_enumerable"], [42, 3, 1, "", "type"]], "cpl_translation": [[43, 0, 0, "-", "translate_pipe"], [43, 0, 0, "-", "translation_service"], [43, 0, 0, "-", "translation_service_abc"], [43, 0, 0, "-", "translation_settings"]], "cpl_translation.translate_pipe": [[43, 1, 1, "", "TranslatePipe"]], "cpl_translation.translate_pipe.TranslatePipe": [[43, 2, 1, "", "transform"]], "cpl_translation.translation_service": [[43, 1, 1, "", "TranslationService"]], "cpl_translation.translation_service.TranslationService": [[43, 2, 1, "", "load"], [43, 2, 1, "", "load_by_settings"], [43, 2, 1, "", "set_default_lang"], [43, 2, 1, "", "set_lang"], [43, 2, 1, "", "translate"]], "cpl_translation.translation_service_abc": [[43, 1, 1, "", "TranslationServiceABC"]], "cpl_translation.translation_service_abc.TranslationServiceABC": [[43, 2, 1, "", "load"], [43, 2, 1, "", "load_by_settings"], [43, 2, 1, "", "set_default_lang"], [43, 2, 1, "", "set_lang"], [43, 2, 1, "", "translate"]], "cpl_translation.translation_settings": [[43, 1, 1, "", "TranslationSettings"]], "cpl_translation.translation_settings.TranslationSettings": [[43, 3, 1, "", "default_language"], [43, 2, 1, "", "from_dict"], [43, 3, 1, "", "languages"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"cpl": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 45, 46, 47, 48, 59], "add": 0, "content": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 48, 49, 59], "descript": [0, 1, 2, 3, 4, 5, 7, 8, 11], "argument": [0, 2, 3, 4, 8, 11, 53], "flag": [0, 4, 5, 8, 11, 12], "build": 1, "gener": [2, 59], "schemat": [2, 6, 59], "help": 3, "instal": [4, 49], "new": [5, 59], "project": [5, 48, 59], "type": [5, 59], "cli": [6, 15, 49], "overview": [6, 46], "command": [6, 32], "refer": [6, 15, 16, 30, 38, 43], "tabl": [6, 48, 49], "basic": 6, "workflow": 6, "languag": 6, "syntax": 6, "rel": 6, "path": 6, "publish": 7, "remov": 8, "run": 9, "start": [10, 44, 48, 49], "uninstal": 11, "updat": 12, "version": 13, "contribut": 14, "found": 14, "bug": 14, "featur": [14, 45, 46], "request": 14, "submiss": 14, "guidelin": 14, "submit": 14, "an": 14, "issu": 14, "pull": 14, "review": 14, "address": 14, "feedback": 14, "code": 14, "rule": 14, "licens": 14, "api": 16, "cpl_core": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 52], "applic": [17, 31, 55], "application_abc": 17, "application_build": 17, "application_builder_abc": 17, "startup_abc": 17, "configur": [18, 33], "configuration_abc": 18, "configuration_model_abc": 18, "configuration_variable_name_enum": 18, "console_argu": 18, "consol": [19, 49, 52, 53], "background_color_enum": 19, "console_cal": 19, "foreground_color_enum": 19, "spinner_thread": 19, "databas": [20, 21, 22], "database_model": 20, "database_set": 20, "database_settings_name_enum": 20, "connect": 21, "database_connect": 21, "database_connection_abc": 21, "context": 22, "database_context": 22, "database_context_abc": 22, "dependency_inject": 23, "service_collect": 23, "service_collection_abc": 23, "service_descriptor": 23, "service_lifetime_enum": 23, "service_provid": 23, "service_provider_abc": 23, "environ": [24, 49], "application_environ": 24, "application_environment_abc": 24, "environment_name_enum": 24, "log": 25, "logger_abc": 25, "logger_servic": 25, "logging_level_enum": 25, "logging_set": 25, "logging_settings_name_enum": 25, "mail": [26, 58], "email": 26, "email_client_abc": 26, "email_client_servic": 26, "email_client_set": 26, "email_client_settings_name_enum": 26, "pipe": 27, "bool_pip": 27, "first_char_to_lower_pip": 27, "first_to_upper_pip": 27, "ip_address_pip": 27, "pipe_abc": 27, "to_camel_case_pip": 27, "to_snake_case_pip": 27, "version_pip": 27, "time": 28, "time_format_set": 28, "time_format_settings_names_enum": 28, "util": 29, "credential_manag": 29, "pip": 29, "string": 29, "discord": 30, "cpl_discord": [31, 32, 33, 34, 35, 36, 37], "discord_bot_application_abc": 31, "discord_command_abc": 32, "discord_commands_meta": 32, "discord_bot_set": 33, "contain": 34, "category_channel": 34, "guild": 34, "member": 34, "role": 34, "text_channel": 34, "thread": 34, "voice_channel": 34, "event": 35, "on_bulk_message_delete_abc": 35, "on_command_abc": 35, "on_command_completion_abc": 35, "on_command_error_abc": 35, "on_connect_abc": 35, "on_disconnect_abc": 35, "on_error_abc": 35, "on_group_join_abc": 35, "on_group_remove_abc": 35, "on_guild_available_abc": 35, "on_guild_channel_create_abc": 35, "on_guild_channel_delete_abc": 35, "on_guild_channel_pins_update_abc": 35, "on_guild_channel_update_abc": 35, "on_guild_emojis_update_abc": 35, "on_guild_integrations_update_abc": 35, "on_guild_join_abc": 35, "on_guild_remove_abc": 35, "on_guild_role_create_abc": 35, "on_guild_role_delete_abc": 35, "on_guild_role_update_abc": 35, "on_guild_unavailable_abc": 35, "on_guild_update_abc": 35, "on_invite_create_abc": 35, "on_invite_delete_abc": 35, "on_member_ban_abc": 35, "on_member_join_abc": 35, "on_member_remove_abc": 35, "on_member_unban_abc": 35, "on_member_update_abc": 35, "on_message_abc": 35, "on_message_delete_abc": 35, "on_message_edit_abc": 35, "on_private_channel_create_abc": 35, "on_private_channel_delete_abc": 35, "on_private_channel_pins_update_abc": 35, "on_private_channel_update_abc": 35, "on_raw_reaction_add_abc": 35, "on_raw_reaction_clear_abc": 35, "on_raw_reaction_clear_emoji_abc": 35, "on_raw_reaction_remove_abc": 35, "on_reaction_add_abc": 35, "on_reaction_clear_abc": 35, "on_reaction_clear_emoji_abc": 35, "on_reaction_remove_abc": 35, "on_ready_abc": 35, "on_resume_abc": 35, "on_typing_abc": 35, "on_user_update_abc": 35, "on_voice_state_update_abc": 35, "on_webhooks_update_abc": 35, "helper": 36, "to_containers_convert": 36, "servic": 37, "command_error_handler_servic": 37, "discord_bot_servic": 37, "discord_bot_service_abc": 37, "discord_collect": 37, "discord_collection_abc": 37, "discord_servic": 37, "discord_service_abc": 37, "queri": [38, 49], "cpl_queri": [39, 40, 41, 42], "base": 39, "default_lambda": 39, "ordered_query": 39, "ordered_queryable_abc": 39, "queryable_abc": 39, "sequence_abc": 39, "sequence_valu": 39, "enumer": 40, "enumerable_abc": 40, "extens": 41, "list": 41, "iter": 42, "iterable_abc": 42, "translat": 43, "cpl_translat": 43, "translate_pip": 43, "translation_servic": 43, "translation_service_abc": 43, "translation_set": 43, "get": [44, 48], "introduct": [45, 46], "doc": [45, 46], "manual": 45, "explor": 46, "prerequisit": [48, 49, 59], "creat": [48, 49, 54], "menu": 48, "what": [48, 49], "s": [48, 49], "next": [48, 49], "set": 49, "up": 49, "local": 49, "workspac": 49, "packag": 49, "initi": 49, "app": 49, "librari": 49, "tutori": 50, "us": [51, 52, 57, 59], "appset": 51, "json": 51, "come": [51, 52, 53, 54, 55, 56, 57, 58], "soon": [51, 52, 53, 54, 55, 56, 57, 58], "handl": 53, "startup": [54, 56], "class": 54, "extend": [55, 56], "builtin": 57, "logger": 57, "send": 58, "g": 59, "n": 59, "templat": 59}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/build/html/tutorials.appsettings.html b/docs/build/html/tutorials.appsettings.html index 0b42a876..b3743d8d 100644 --- a/docs/build/html/tutorials.appsettings.html +++ b/docs/build/html/tutorials.appsettings.html @@ -48,13 +48,14 @@
  • Create startup class
  • Extend startup
  • Using appsettings.json
  • Handle console arguments
  • Use cpl_core.console.Console
  • Use builtin logger
  • Send mails
  • +
  • Using cpl g & cpl n templating
  • @@ -95,8 +96,8 @@

    Using appsettings.json

    -
    -

    Comming soon

    +
    +

    Coming soon

    diff --git a/docs/build/html/tutorials.console-arguments.html b/docs/build/html/tutorials.console-arguments.html index 01cb18f3..515c1c3a 100644 --- a/docs/build/html/tutorials.console-arguments.html +++ b/docs/build/html/tutorials.console-arguments.html @@ -49,12 +49,13 @@
  • Extend startup
  • Using appsettings.json
  • Handle console arguments
  • Use cpl_core.console.Console
  • Use builtin logger
  • Send mails
  • +
  • Using cpl g & cpl n templating
  • @@ -95,8 +96,8 @@

    Handle console arguments

    -
    -

    Comming soon

    +
    +

    Coming soon

    diff --git a/docs/build/html/tutorials.console.html b/docs/build/html/tutorials.console.html index 7b9ef50b..d72ba844 100644 --- a/docs/build/html/tutorials.console.html +++ b/docs/build/html/tutorials.console.html @@ -50,11 +50,12 @@
  • Using appsettings.json
  • Handle console arguments
  • Use cpl_core.console.Console
  • Use builtin logger
  • Send mails
  • +
  • Using cpl g & cpl n templating
  • @@ -95,8 +96,8 @@

    Use cpl_core.console.Console

    -
    -

    Comming soon

    +
    +

    Coming soon

    diff --git a/docs/build/html/tutorials.create-startup.html b/docs/build/html/tutorials.create-startup.html index 98beb078..e5ccb0af 100644 --- a/docs/build/html/tutorials.create-startup.html +++ b/docs/build/html/tutorials.create-startup.html @@ -46,7 +46,7 @@
  • Tutorials
  • @@ -95,8 +96,8 @@

    Create startup class

    -
    -

    Comming soon

    +
    +

    Coming soon

    diff --git a/docs/build/html/tutorials.extend-application.html b/docs/build/html/tutorials.extend-application.html index 40d36232..6c905a44 100644 --- a/docs/build/html/tutorials.extend-application.html +++ b/docs/build/html/tutorials.extend-application.html @@ -45,7 +45,7 @@
  • Setting up the local environment and workspace
  • Tutorials
  • @@ -95,8 +96,8 @@

    Extend application

    -
    -

    Comming soon

    +
    +

    Coming soon

    diff --git a/docs/build/html/tutorials.extend-startup.html b/docs/build/html/tutorials.extend-startup.html index 660a1afb..4fe21474 100644 --- a/docs/build/html/tutorials.extend-startup.html +++ b/docs/build/html/tutorials.extend-startup.html @@ -47,7 +47,7 @@
  • Extend application
  • Create startup class
  • Extend startup
  • Using appsettings.json
  • @@ -55,6 +55,7 @@
  • Use cpl_core.console.Console
  • Use builtin logger
  • Send mails
  • +
  • Using cpl g & cpl n templating
  • @@ -95,8 +96,8 @@

    Extend startup

    -
    -

    Comming soon

    +
    +

    Coming soon

    diff --git a/docs/build/html/tutorials.html b/docs/build/html/tutorials.html index 141e20c5..0f8ed43f 100644 --- a/docs/build/html/tutorials.html +++ b/docs/build/html/tutorials.html @@ -52,6 +52,7 @@
  • Use cpl_core.console.Console
  • Use builtin logger
  • Send mails
  • +
  • Using cpl g & cpl n templating
  • @@ -94,35 +95,42 @@
    diff --git a/docs/build/html/tutorials.logging.html b/docs/build/html/tutorials.logging.html index d88b255f..1a61b350 100644 --- a/docs/build/html/tutorials.logging.html +++ b/docs/build/html/tutorials.logging.html @@ -51,10 +51,11 @@
  • Handle console arguments
  • Use cpl_core.console.Console
  • Use builtin logger
  • Send mails
  • +
  • Using cpl g & cpl n templating
  • @@ -95,8 +96,8 @@

    Use builtin logger

    -
    -

    Comming soon

    +
    +

    Coming soon

    diff --git a/docs/build/html/tutorials.mail.html b/docs/build/html/tutorials.mail.html index c1c39f37..d61de75d 100644 --- a/docs/build/html/tutorials.mail.html +++ b/docs/build/html/tutorials.mail.html @@ -19,7 +19,7 @@ - + @@ -52,9 +52,10 @@
  • Use cpl_core.console.Console
  • Use builtin logger
  • Send mails
  • +
  • Using cpl g & cpl n templating
  • @@ -95,8 +96,8 @@

    Send mails

    -
    -

    Comming soon

    +
    +

    Coming soon

    @@ -105,7 +106,7 @@

    diff --git a/docs/build/html/tutorials.templating.html b/docs/build/html/tutorials.templating.html new file mode 100644 index 00000000..0efc7173 --- /dev/null +++ b/docs/build/html/tutorials.templating.html @@ -0,0 +1,304 @@ + + + + + + + Using cpl g & cpl n templating — Common Python Library documentation + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    Using cpl g & cpl n templating

    +
    +

    Contents

    +
      +
    • Prerequisites

    • +
    • Generate schematics

    • +
    • Project types

    • +
    +
    +
    +

    Prerequisites

    +

    Create a folder called .cpl

    +
    +
    +

    cpl generate schematics

    +

    Create a file which begins with schematic_your_schematic.py. +A schematic template is detected by starting with schematic_ and endswith .py.

    +

    You should replace your_schematic with an appropriate name of your schematic. For example, we will choose Enum. +Attention: It is important that you do not overwrite templates by creating a file or class with the same name.

    +

    In the template create a class with the name of your schematic. For example:

    +
    from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC
    +
    +
    +class Enum(GenerateSchematicABC):
    +
    +    def __init__(self, *args: str):
    +        GenerateSchematicABC.__init__(self, *args)
    +
    +    def get_code(self) -> str:
    +        import textwrap
    +        code = textwrap.dedent("""\
    +        from enum import Enum
    +        
    +        
    +        class $Name(Enum):
    +        
    +            atr = 0
    +        """)
    +        return self.build_code_str(code, Name=self._class_name)
    +
    +    @classmethod
    +    def register(cls):
    +        GenerateSchematicABC.register(
    +            cls,
    +            'enum',
    +            ['e', 'E']
    +        )
    +
    +
    +
    +

    You can test it by calling cpl g --help your schematic should be listed as available.

    +
    +
    +

    cpl new project types

    +

    The project templating is a little more complex and is therefore divided into several files. +First of all, for information, it is very important not to overwrite any existing files or classes!

    +

    Template structure explained by the example of the internal type console:

    +
    - project_console.py
    +- project_file_license.py
    +- project_file_appsettings.py
    +- project_file.py
    +- project_file_readme.py
    +- project_file_code_main.py
    +- project_file_code_startup.py
    +- project_file_code_application.py
    +
    +
    +

    Here the template project_console.py defines how a console project has to look like when it is generated. Here is the code to illustrate this:

    +
    from cpl_cli.abc.project_type_abc import ProjectTypeABC
    +from cpl_cli.configuration import WorkspaceSettings
    +from cpl_core.utils import String
    +
    +
    +class Console(ProjectTypeABC):
    +
    +    def __init__(
    +            self,
    +            base_path: str,
    +            project_name: str,
    +            workspace: WorkspaceSettings,
    +            use_application_api: bool,
    +            use_startup: bool,
    +            use_service_providing: bool,
    +            use_async: bool,
    +            project_file_data: dict,
    +    ):
    +        from project_file import ProjectFile
    +        from project_file_appsettings import ProjectFileAppsettings
    +        from project_file_code_application import ProjectFileApplication
    +        from project_file_code_main import ProjectFileMain
    +        from project_file_code_startup import ProjectFileStartup
    +        from project_file_readme import ProjectFileReadme
    +        from project_file_license import ProjectFileLicense
    +        from schematic_init import Init
    +
    +        ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data)
    +
    +        project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/'
    +
    +        self.add_template(ProjectFile(project_name.split('/')[-1], project_path, project_file_data))
    +        if workspace is None:
    +            self.add_template(ProjectFileLicense(''))
    +            self.add_template(ProjectFileReadme(''))
    +            self.add_template(Init('', 'init', f'{base_path}tests/'))
    +
    +        self.add_template(Init('', 'init', project_path))
    +        self.add_template(ProjectFileAppsettings(project_path))
    +
    +        if use_application_api:
    +            self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async))
    +
    +        if use_startup:
    +            self.add_template(ProjectFileStartup(project_path, use_application_api, use_startup, use_service_providing, use_async))
    +
    +        self.add_template(ProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async))
    +
    +
    +

    The class must be named exactly as the project type should be named. It is also checked on the initial letter of the class as alias. +Now create a class for normal files which inherits from FileTemplateABC and a class for code files which inherits from CodeFileTemplateABC.

    +

    For example:

    +

    project_file_code_startup.py:

    +
    from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC
    +
    +
    +class ProjectFileStartup(CodeFileTemplateABC):
    +
    +    def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool):
    +        CodeFileTemplateABC.__init__(self, 'startup', path, '', use_application_api, use_startup, use_service_providing, use_async)
    +
    +    def get_code(self) -> str:
    +        import textwrap
    +
    +        return textwrap.dedent("""\
    +        from cpl_core.application import StartupABC
    +        from cpl_core.configuration import ConfigurationABC
    +        from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC
    +        from cpl_core.environment import ApplicationEnvironment
    +        
    +        
    +        class Startup(StartupABC):
    +        
    +            def __init__(self):
    +                StartupABC.__init__(self)
    +        
    +            def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC:
    +                return configuration
    +        
    +            def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC:
    +                return services.build_service_provider()
    +        """)
    +
    +
    +

    project_file.py:

    +
    import json
    +
    +from cpl_cli.abc.file_template_abc import FileTemplateABC
    +
    +
    +class ProjectFile(FileTemplateABC):
    +
    +    def __init__(self, name: str, path: str, code: dict):
    +        FileTemplateABC.__init__(self, '', path, '{}')
    +        self._name = f'{name}.json'
    +        self._code = code
    +
    +    def get_code(self) -> str:
    +        return json.dumps(self._code, indent=2)
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/source/cli.generate.md b/docs/source/cli.generate.md index 95a1cb51..6dc285a0 100644 --- a/docs/source/cli.generate.md +++ b/docs/source/cli.generate.md @@ -16,6 +16,8 @@ cpl **G** *<schematic>* *<name>* Generates files based on a schematic. +You can define custom schematics by creating templates in a ```.cpl``` folder. + ## Arguments | Argument | Description | Value type | @@ -26,14 +28,16 @@ Generates files based on a schematic. ## Schematics -| Schematic | Description | Arguments | -|-----------------|:-------------------------------------:|:------------:| -| ```abc``` | Abstract base class | `````` | -| ```class``` | Class | `````` | -| ```enum``` | Enum class | `````` | -| ```pipe``` | Pipe class | `````` | -| ```service``` | Service class | `````` | -| ```settings``` | [Configmodel](cpl_core.configuration) | `````` | -| ```test``` | Test class | `````` | -| ```thread``` | Thread class | `````` | -| ```validator``` | Validator class | `````` | +| Schematic | Description | Arguments | +|-----------------|:--------------------------------------:|:------------:| +| ```abc``` | Abstract base class | `````` | +| ```class``` | Class | `````` | +| ```enum``` | Enum class | `````` | +| ```pipe``` | Pipe class | `````` | +| ```service``` | Service class | `````` | +| ```settings``` | [Configmodel](cpl_core.configuration) | `````` | +| ```test``` | Test class | `````` | +| ```thread``` | Thread class | `````` | +| ```validator``` | Validator class | `````` | +| ```command``` | Discord bot command class | `````` | +| ```event``` | Discord bot event class | `````` | diff --git a/docs/source/cli.new.md b/docs/source/cli.new.md index f000dcd6..1301c1ad 100644 --- a/docs/source/cli.new.md +++ b/docs/source/cli.new.md @@ -16,6 +16,8 @@ cpl **N** *<type>* *<name>* Generates a workspace and initial project or add a project to workspace. +You can define custom project types by creating templates in a ```.cpl``` folder. + If the command is running in a CPL workspace, it will add the new project to the workspace. | Argument | Description | Value type | diff --git a/docs/source/tutorials.appsettings.md b/docs/source/tutorials.appsettings.md index ffe26cba..4eabffa2 100644 --- a/docs/source/tutorials.appsettings.md +++ b/docs/source/tutorials.appsettings.md @@ -1,3 +1,3 @@ # Using appsettings.json -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.console-arguments.md b/docs/source/tutorials.console-arguments.md index a0be2c0f..0a3b5a42 100644 --- a/docs/source/tutorials.console-arguments.md +++ b/docs/source/tutorials.console-arguments.md @@ -1,3 +1,3 @@ # Handle console arguments -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.console.md b/docs/source/tutorials.console.md index c7d22b99..fcbaaba1 100644 --- a/docs/source/tutorials.console.md +++ b/docs/source/tutorials.console.md @@ -1,3 +1,3 @@ # Use cpl_core.console.Console -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.create-startup.md b/docs/source/tutorials.create-startup.md index ee443126..028d072c 100644 --- a/docs/source/tutorials.create-startup.md +++ b/docs/source/tutorials.create-startup.md @@ -1,3 +1,3 @@ # Create startup class -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.extend-application.md b/docs/source/tutorials.extend-application.md index 3697cbc9..1eec6e9e 100644 --- a/docs/source/tutorials.extend-application.md +++ b/docs/source/tutorials.extend-application.md @@ -1,3 +1,3 @@ # Extend application -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.extend-startup.md b/docs/source/tutorials.extend-startup.md index 66e3e54f..98b90da4 100644 --- a/docs/source/tutorials.extend-startup.md +++ b/docs/source/tutorials.extend-startup.md @@ -1,3 +1,3 @@ # Extend startup -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.logging.md b/docs/source/tutorials.logging.md index c98020c5..660fbfe1 100644 --- a/docs/source/tutorials.logging.md +++ b/docs/source/tutorials.logging.md @@ -1,3 +1,3 @@ # Use builtin logger -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.mail.md b/docs/source/tutorials.mail.md index e7a2b778..7b6c9150 100644 --- a/docs/source/tutorials.mail.md +++ b/docs/source/tutorials.mail.md @@ -1,3 +1,3 @@ # Send mails -## Comming soon \ No newline at end of file +## Coming soon \ No newline at end of file diff --git a/docs/source/tutorials.rst b/docs/source/tutorials.rst index f85e9b8c..b8fd6668 100644 --- a/docs/source/tutorials.rst +++ b/docs/source/tutorials.rst @@ -11,4 +11,5 @@ Tutorials tutorials.console-arguments tutorials.console tutorials.logging - tutorials.mail \ No newline at end of file + tutorials.mail + tutorials.templating \ No newline at end of file diff --git a/docs/source/tutorials.templating.md b/docs/source/tutorials.templating.md new file mode 100644 index 00000000..4530b17c --- /dev/null +++ b/docs/source/tutorials.templating.md @@ -0,0 +1,181 @@ +# Using cpl g & cpl n templating + +## Contents + +- [Prerequisites](#prerequisites) +- [Generate schematics](#cpl-generate-scmatics) +- [Project types](#cpl-new-project-types) + +## Prerequisites + +Create a folder called ```.cpl``` + +## cpl generate schematics + +Create a file which begins with ```schematic_your_schematic.py```. +A schematic template is detected by starting with ```schematic_``` and endswith ```.py```. + +You should replace ```your_schematic``` with an appropriate name of your schematic. For example, we will choose ```Enum```. +Attention: It is important that you do not overwrite templates by creating a file or class with the same name. + +In the template create a class with the name of your schematic. For example: + +```python +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class Enum(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + import textwrap + code = textwrap.dedent("""\ + from enum import Enum + + + class $Name(Enum): + + atr = 0 + """) + return self.build_code_str(code, Name=self._class_name) + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'enum', + ['e', 'E'] + ) + +``` + +You can test it by calling ```cpl g --help``` your schematic should be listed as available. + +## cpl new project types + +The project templating is a little more complex and is therefore divided into several files. +First of all, for information, it is very important not to overwrite any existing files or classes! + +Template structure explained by the example of the internal type ```console```: + +``` +- project_console.py +- project_file_license.py +- project_file_appsettings.py +- project_file.py +- project_file_readme.py +- project_file_code_main.py +- project_file_code_startup.py +- project_file_code_application.py +``` + +Here the template ```project_console.py``` defines how a console project has to look like when it is generated. Here is the code to illustrate this: + +```python +from cpl_cli.abc.project_type_abc import ProjectTypeABC +from cpl_cli.configuration import WorkspaceSettings +from cpl_core.utils import String + + +class Console(ProjectTypeABC): + + def __init__( + self, + base_path: str, + project_name: str, + workspace: WorkspaceSettings, + use_application_api: bool, + use_startup: bool, + use_service_providing: bool, + use_async: bool, + project_file_data: dict, + ): + from project_file import ProjectFile + from project_file_appsettings import ProjectFileAppsettings + from project_file_code_application import ProjectFileApplication + from project_file_code_main import ProjectFileMain + from project_file_code_startup import ProjectFileStartup + from project_file_readme import ProjectFileReadme + from project_file_license import ProjectFileLicense + from schematic_init import Init + + ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data) + + project_path = f'{base_path}{String.convert_to_snake_case(project_name.split("/")[-1])}/' + + self.add_template(ProjectFile(project_name.split('/')[-1], project_path, project_file_data)) + if workspace is None: + self.add_template(ProjectFileLicense('')) + self.add_template(ProjectFileReadme('')) + self.add_template(Init('', 'init', f'{base_path}tests/')) + + self.add_template(Init('', 'init', project_path)) + self.add_template(ProjectFileAppsettings(project_path)) + + if use_application_api: + self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + if use_startup: + self.add_template(ProjectFileStartup(project_path, use_application_api, use_startup, use_service_providing, use_async)) + + self.add_template(ProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) +``` + +The class must be named exactly as the project type should be named. It is also checked on the initial letter of the class as alias. +Now create a class for normal files which inherits from ```FileTemplateABC``` and a class for code files which inherits from ```CodeFileTemplateABC```. + +For example: + +project_file_code_startup.py: +```python +from cpl_cli.abc.code_file_template_abc import CodeFileTemplateABC + + +class ProjectFileStartup(CodeFileTemplateABC): + + def __init__(self, path: str, use_application_api: bool, use_startup: bool, use_service_providing: bool, use_async: bool): + CodeFileTemplateABC.__init__(self, 'startup', path, '', use_application_api, use_startup, use_service_providing, use_async) + + def get_code(self) -> str: + import textwrap + + return textwrap.dedent("""\ + from cpl_core.application import StartupABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC + from cpl_core.environment import ApplicationEnvironment + + + class Startup(StartupABC): + + def __init__(self): + StartupABC.__init__(self) + + def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: + return configuration + + def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: + return services.build_service_provider() + """) +``` + +project_file.py: + +```python +import json + +from cpl_cli.abc.file_template_abc import FileTemplateABC + + +class ProjectFile(FileTemplateABC): + + def __init__(self, name: str, path: str, code: dict): + FileTemplateABC.__init__(self, '', path, '{}') + self._name = f'{name}.json' + self._code = code + + def get_code(self) -> str: + return json.dumps(self._code, indent=2) +``` diff --git a/src/cpl_cli/.cpl/project_console.py b/src/cpl_cli/.cpl/project_console.py index cdf2ec62..46179e8b 100644 --- a/src/cpl_cli/.cpl/project_console.py +++ b/src/cpl_cli/.cpl/project_console.py @@ -1,5 +1,3 @@ -import os - from cpl_cli.abc.project_type_abc import ProjectTypeABC from cpl_cli.configuration import WorkspaceSettings from cpl_core.utils import String diff --git a/src/cpl_cli/.cpl/schematic_enum.py b/src/cpl_cli/.cpl/schematic_enum.py index bd838159..93361f65 100644 --- a/src/cpl_cli/.cpl/schematic_enum.py +++ b/src/cpl_cli/.cpl/schematic_enum.py @@ -1,5 +1,3 @@ -import textwrap - from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC @@ -9,16 +7,16 @@ class Enum(GenerateSchematicABC): GenerateSchematicABC.__init__(self, *args) def get_code(self) -> str: - code = """\ + import textwrap + code = textwrap.dedent("""\ from enum import Enum class $Name(Enum): atr = 0 - """ - x = self.build_code_str(code, Name=self._class_name) - return x + """) + return self.build_code_str(code, Name=self._class_name) @classmethod def register(cls): diff --git a/src/cpl_core/configuration/configuration.py b/src/cpl_core/configuration/configuration.py index 7eea05ea..11ddbd32 100644 --- a/src/cpl_core/configuration/configuration.py +++ b/src/cpl_core/configuration/configuration.py @@ -22,7 +22,7 @@ from cpl_core.dependency_injection.service_provider_abc import ServiceProviderAB from cpl_core.environment.application_environment import ApplicationEnvironment from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC from cpl_core.environment.environment_name_enum import EnvironmentNameEnum -from cpl_core.typing import T +from cpl_core.type import T class Configuration(ConfigurationABC): diff --git a/src/cpl_core/configuration/configuration_abc.py b/src/cpl_core/configuration/configuration_abc.py index 4007a1ad..5b748ff1 100644 --- a/src/cpl_core/configuration/configuration_abc.py +++ b/src/cpl_core/configuration/configuration_abc.py @@ -6,7 +6,7 @@ from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC from cpl_core.configuration.argument_abc import ArgumentABC from cpl_core.configuration.argument_type_enum import ArgumentTypeEnum from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC -from cpl_core.typing import T +from cpl_core.type import T class ConfigurationABC(ABC): diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index c4a70de3..b2260ba4 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -16,22 +16,23 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "art==5.7", - "colorama==0.4.5", + "art==5.8", + "colorama==0.4.6", "mysql-connector==2.2.9", - "psutil==5.9.2", - "packaging==21.3", + "psutil==5.9.4", + "packaging==22.0", "pynput==1.7.6", - "setuptools==65.3.0", - "tabulate==0.8.10", - "termcolor==1.1.0", - "watchdog==2.1.9", - "wheel==0.37.1" + "setuptools==65.6.3", + "tabulate==0.9.0", + "termcolor==2.1.1", + "watchdog==2.2.0", + "wheel==0.38.4" ], "DevDependencies": [ - "sphinx==5.0.2", - "sphinx_rtd_theme==1.0.0", - "myst_parser==0.18.0" + "Sphinx==5.0.2", + "sphinx-rtd-theme==1.0.0", + "myst-parser==0.18.0", + "twine==4.0.2" ], "PythonVersion": ">=3.10", "PythonPath": {}, diff --git a/src/cpl_core/typing.py b/src/cpl_core/type.py similarity index 100% rename from src/cpl_core/typing.py rename to src/cpl_core/type.py diff --git a/src/cpl_core/utils/pip.py b/src/cpl_core/utils/pip.py index f98a5884..ebf887a1 100644 --- a/src/cpl_core/utils/pip.py +++ b/src/cpl_core/utils/pip.py @@ -65,7 +65,7 @@ class Pip: """ result = None with suppress(Exception): - args = [cls._executable, "-m", "pip", "freeze"] + args = [cls._executable, "-m", "pip", "freeze", "--all"] result = subprocess.check_output( args, diff --git a/tools/set_pip_urls/set-pip-urls.json b/tools/set_pip_urls/set-pip-urls.json index aed7da44..098e63ad 100644 --- a/tools/set_pip_urls/set-pip-urls.json +++ b/tools/set_pip_urls/set-pip-urls.json @@ -16,7 +16,7 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.0" + "cpl-core==2022.12.0" ], "PythonVersion": ">=3.10.4", "PythonPath": {}, diff --git a/tools/set_version/set-version.json b/tools/set_version/set-version.json index 60132668..22f7d8fb 100644 --- a/tools/set_version/set-version.json +++ b/tools/set_version/set-version.json @@ -16,13 +16,13 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.0", - "gitpython==3.1.27" + "cpl-core==2022.12.0", + "GitPython==3.1.29" ], + "DevDependencies": [], "PythonVersion": ">=3.10.4", "PythonPath": {}, - "Classifiers": [], - "DevDependencies": [] + "Classifiers": [] }, "BuildSettings": { "ProjectType": "console", -- 2.49.1 From 120c9e68008911fd33bb19f721b4a3467b5e9944 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 8 Dec 2022 16:08:48 +0100 Subject: [PATCH 013/124] Fixed tests #143 --- src/cpl_cli/.cpl/project_file_appsettings.py | 1 - .../unittests_cli/abc/command_test_case.py | 1 - unittests/unittests_cli/generate_test_case.py | 2 -- unittests/unittests_cli/publish_test_case.py | 33 +++---------------- 4 files changed, 4 insertions(+), 33 deletions(-) diff --git a/src/cpl_cli/.cpl/project_file_appsettings.py b/src/cpl_cli/.cpl/project_file_appsettings.py index dabf4a29..c1601d8a 100644 --- a/src/cpl_cli/.cpl/project_file_appsettings.py +++ b/src/cpl_cli/.cpl/project_file_appsettings.py @@ -18,7 +18,6 @@ class ProjectFileAppsettings(FileTemplateABC): "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" }, - "LoggingSettings": { "Path": "logs/", "Filename": "log_$start_time.log", diff --git a/unittests/unittests_cli/abc/command_test_case.py b/unittests/unittests_cli/abc/command_test_case.py index 6f216e00..100b4c89 100644 --- a/unittests/unittests_cli/abc/command_test_case.py +++ b/unittests/unittests_cli/abc/command_test_case.py @@ -14,7 +14,6 @@ class CommandTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - try: if os.path.exists(PLAYGROUND_PATH): shutil.rmtree(os.path.abspath(os.path.join(PLAYGROUND_PATH))) diff --git a/unittests/unittests_cli/generate_test_case.py b/unittests/unittests_cli/generate_test_case.py index 64fa4302..a87f1c7c 100644 --- a/unittests/unittests_cli/generate_test_case.py +++ b/unittests/unittests_cli/generate_test_case.py @@ -9,7 +9,6 @@ from unittests_shared.cli_commands import CLICommands class GenerateTestCase(CommandTestCase): _project = 'test-console' _t_path = 'test' - _skip_tear_down = True @classmethod def setUpClass(cls): @@ -45,7 +44,6 @@ class GenerateTestCase(CommandTestCase): CLICommands.generate(schematic, file) file_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, excepted_path)) - print(file_path) self.assertTrue(os.path.exists(file_path)) def test_abc(self): diff --git a/unittests/unittests_cli/publish_test_case.py b/unittests/unittests_cli/publish_test_case.py index 5d6a8f75..a167fa19 100644 --- a/unittests/unittests_cli/publish_test_case.py +++ b/unittests/unittests_cli/publish_test_case.py @@ -2,43 +2,21 @@ import filecmp import json import os import shutil -import unittest from cpl_core.utils import String from unittests_cli.abc.command_test_case import CommandTestCase - from unittests_cli.constants import PLAYGROUND_PATH from unittests_shared.cli_commands import CLICommands class PublishTestCase(CommandTestCase): + _skip_tear_down = True def __init__(self, method_name: str): CommandTestCase.__init__(self, method_name) self._source = 'publish-test-source' self._project_file = f'src/{String.convert_to_snake_case(self._source)}/{self._source}.json' - def _get_project_settings(self): - with open(os.path.join(os.getcwd(), self._project_file), 'r', encoding='utf-8') as cfg: - # load json - project_json = json.load(cfg) - cfg.close() - - return project_json - - def _get_appsettings(self): - with open(os.path.join(os.getcwd(), os.path.dirname(self._project_file), 'appsettings.json'), 'r', encoding='utf-8') as cfg: - # load json - project_json = json.load(cfg) - cfg.close() - - return project_json - - def _save_project_settings(self, settings: dict): - with open(os.path.join(os.getcwd(), self._project_file), 'w', encoding='utf-8') as project_file: - project_file.write(json.dumps(settings, indent=2)) - project_file.close() - def setUp(self): if not os.path.exists(PLAYGROUND_PATH): os.makedirs(PLAYGROUND_PATH) @@ -91,11 +69,8 @@ class PublishTestCase(CommandTestCase): self.assertTrue(os.path.exists(os.path.join(setup_path, f'{String.convert_to_snake_case(self._source)}-0.0.0-py3-none-any.whl'))) self.assertTrue(os.path.exists(full_dist_path)) self.assertFalse(self._are_dir_trees_equal(f'./src/{String.convert_to_snake_case(self._source)}', full_dist_path)) - with open(f'{full_dist_path}/{self._source}.json', 'w') as file: - file.write(json.dumps(self._get_project_settings(), indent=2)) - file.close() - with open(f'{full_dist_path}/appsettings.json', 'w') as file: - file.write(json.dumps(self._get_appsettings(), indent=2)) - file.close() + shutil.copyfile(os.path.join(os.getcwd(), self._project_file), f'{full_dist_path}/{self._source}.json') + shutil.copyfile(os.path.join(os.getcwd(), os.path.dirname(self._project_file), 'appsettings.json'), f'{full_dist_path}/appsettings.json') + self.assertTrue(self._are_dir_trees_equal(f'./src/{String.convert_to_snake_case(self._source)}', full_dist_path)) -- 2.49.1 From ac1cd9bddea3833996f8ea35fd59b536ffd37a0d Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sat, 10 Dec 2022 21:43:46 +0100 Subject: [PATCH 014/124] Added new schematics & fixed run command #145 --- src/cpl_cli/.cpl/__init__.py | 26 ++++++++++ src/cpl_cli/.cpl/schematic_application.py | 39 ++++++++++++++ .../.cpl/schematic_application_extension.py | 35 +++++++++++++ src/cpl_cli/.cpl/schematic_schematic.py | 51 +++++++++++++++++++ src/cpl_cli/.cpl/schematic_startup.py | 39 ++++++++++++++ .../.cpl/schematic_startup_extension.py | 39 ++++++++++++++ src/cpl_cli/abc/__init__.py | 25 +++++++++ src/cpl_cli/command/generate_service.py | 7 ++- src/cpl_cli/command/run_service.py | 13 ++--- src/cpl_cli/configuration/project_settings.py | 2 +- src/cpl_cli/helper/__init__.py | 26 ++++++++++ .../live_server/live_server_service.py | 3 +- src/cpl_cli/live_server/start_executable.py | 8 +-- 13 files changed, 299 insertions(+), 14 deletions(-) create mode 100644 src/cpl_cli/.cpl/schematic_application.py create mode 100644 src/cpl_cli/.cpl/schematic_application_extension.py create mode 100644 src/cpl_cli/.cpl/schematic_schematic.py create mode 100644 src/cpl_cli/.cpl/schematic_startup.py create mode 100644 src/cpl_cli/.cpl/schematic_startup_extension.py diff --git a/src/cpl_cli/.cpl/__init__.py b/src/cpl_cli/.cpl/__init__.py index e69de29b..f96d10fb 100644 --- a/src/cpl_cli/.cpl/__init__.py +++ b/src/cpl_cli/.cpl/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +cpl-cli sh-edraft Common Python library CLI +~~~~~~~~~~~~~~~~~~~ + +sh-edraft Common Python library Command Line Interface + +:copyright: (c) 2020 - 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'cpl_cli' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__version__ = '2022.12.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/.cpl/schematic_application.py b/src/cpl_cli/.cpl/schematic_application.py new file mode 100644 index 00000000..60761fe6 --- /dev/null +++ b/src/cpl_cli/.cpl/schematic_application.py @@ -0,0 +1,39 @@ +import textwrap + +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class Application(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + code = """\ + from cpl_core.application import ApplicationABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.console import Console + from cpl_core.dependency_injection import ServiceProviderABC + + + class $Name(ApplicationABC): + + def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): + ApplicationABC.__init__(self, config, services) + + def configure(self): + pass + + def main(self): + Console.write_line('Hello World') + """ + x = self.build_code_str(code, Name=self._class_name) + return x + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'application', + ['app', 'APP'] + ) diff --git a/src/cpl_cli/.cpl/schematic_application_extension.py b/src/cpl_cli/.cpl/schematic_application_extension.py new file mode 100644 index 00000000..82672aee --- /dev/null +++ b/src/cpl_cli/.cpl/schematic_application_extension.py @@ -0,0 +1,35 @@ +import textwrap + +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class ApplicationExtension(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + code = """\ + from cpl_core.application import ApplicationExtensionABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC + + + class $Name(ApplicationExtensionABC): + + def __init__(self): + ApplicationExtensionABC.__init__(self) + + def run(self, config: ConfigurationABC, services: ServiceProviderABC): + pass + """ + x = self.build_code_str(code, Name=self._class_name) + return x + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'application-extension', + ['appex', 'APPEX'] + ) diff --git a/src/cpl_cli/.cpl/schematic_schematic.py b/src/cpl_cli/.cpl/schematic_schematic.py new file mode 100644 index 00000000..b62d2277 --- /dev/null +++ b/src/cpl_cli/.cpl/schematic_schematic.py @@ -0,0 +1,51 @@ +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC +from cpl_core.utils import String + + +class Schematic(GenerateSchematicABC): + + def __init__(self, name: str, path: str, schematic: str): + GenerateSchematicABC.__init__(self, name, path, schematic) + self._name = f'schematic_{String.convert_to_snake_case(name)}.py' + self._path = '.cpl/' + self._class_name = String.convert_to_camel_case(name) + + def get_code(self) -> str: + code = """\ + from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + + class $Name(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + import textwrap + code = textwrap.dedent(\"\"\"\\ + from enum import Enum + + + class $Name(Enum): + + atr = 0 + \"\"\") + return self.build_code_str(code, Name=self._class_name) + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + '$NameLower', + [] + ) + """ + return self.build_code_str(code, Name=self._class_name) + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'schematic', + ['scheme', 'SCHEME'] + ) diff --git a/src/cpl_cli/.cpl/schematic_startup.py b/src/cpl_cli/.cpl/schematic_startup.py new file mode 100644 index 00000000..4be1b678 --- /dev/null +++ b/src/cpl_cli/.cpl/schematic_startup.py @@ -0,0 +1,39 @@ +import textwrap + +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class Startup(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + code = """\ + from cpl_core.application import StartupABC + from cpl_core.configuration import ConfigurationABC + from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC + from cpl_core.environment import ApplicationEnvironment + + + class $Name(StartupABC): + + def __init__(self): + StartupABC.__init__(self) + + def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: + return configuration + + def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: + return services.build_service_provider() + """ + x = self.build_code_str(code, Name=self._class_name) + return x + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'startup', + ['stup', 'STUP'] + ) diff --git a/src/cpl_cli/.cpl/schematic_startup_extension.py b/src/cpl_cli/.cpl/schematic_startup_extension.py new file mode 100644 index 00000000..60debcf8 --- /dev/null +++ b/src/cpl_cli/.cpl/schematic_startup_extension.py @@ -0,0 +1,39 @@ +import textwrap + +from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC + + +class StartupExtension(GenerateSchematicABC): + + def __init__(self, *args: str): + GenerateSchematicABC.__init__(self, *args) + + def get_code(self) -> str: + code = """\ + from cpl_core.application.startup_extension_abc import StartupExtensionABC + from cpl_core.configuration.configuration_abc import ConfigurationABC + from cpl_core.dependency_injection.service_collection_abc import ServiceCollectionABC + from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC + + + class $Name(StartupExtensionABC): + + def __init__(self): + pass + + def configure_configuration(self, config: ConfigurationABC, env: ApplicationEnvironmentABC): + pass + + def configure_services(self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC): + pass + """ + x = self.build_code_str(code, Name=self._class_name) + return x + + @classmethod + def register(cls): + GenerateSchematicABC.register( + cls, + 'startup-extension', + ['stupex', 'STUPEX'] + ) diff --git a/src/cpl_cli/abc/__init__.py b/src/cpl_cli/abc/__init__.py index 425ab6c1..aa793603 100644 --- a/src/cpl_cli/abc/__init__.py +++ b/src/cpl_cli/abc/__init__.py @@ -1 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +cpl-cli sh-edraft Common Python library CLI +~~~~~~~~~~~~~~~~~~~ + +sh-edraft Common Python library Command Line Interface + +:copyright: (c) 2020 - 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'cpl_cli.abc' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__version__ = '2022.12.0' + +from collections import namedtuple + + # imports + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/command/generate_service.py b/src/cpl_cli/command/generate_service.py index fa511a58..1b686102 100644 --- a/src/cpl_cli/command/generate_service.py +++ b/src/cpl_cli/command/generate_service.py @@ -35,11 +35,14 @@ class GenerateService(CommandABC): self._env = self._config.environment self._schematics = {} - for package_name in Dependencies.get_cpl_packages(): - package = importlib.import_module(String.convert_to_snake_case(package_name[0])) + for package_name, version in Dependencies.get_cpl_packages(): + if package_name == 'cpl-cli': + continue + package = importlib.import_module(String.convert_to_snake_case(package_name)) self._read_custom_schematics_from_path(os.path.dirname(package.__file__)) self._read_custom_schematics_from_path(self._env.working_directory) + self._read_custom_schematics_from_path(self._env.runtime_directory) if len(GenerateSchematicABC.__subclasses__()) == 0: Console.error(f'No schematics found in template directory: .cpl') diff --git a/src/cpl_cli/command/run_service.py b/src/cpl_cli/command/run_service.py index e3740e00..8e2fe2b8 100644 --- a/src/cpl_cli/command/run_service.py +++ b/src/cpl_cli/command/run_service.py @@ -2,18 +2,18 @@ import os import sys import textwrap -from cpl_cli import Error +from cpl_cli.error import Error from cpl_cli.command_abc import CommandABC -from cpl_cli.configuration import WorkspaceSettings +from cpl_cli.configuration.workspace_settings import WorkspaceSettings from cpl_cli.configuration.build_settings import BuildSettings from cpl_cli.configuration.project_settings import ProjectSettings from cpl_cli.live_server.start_executable import StartExecutable -from cpl_cli.publish import PublisherService -from cpl_core.configuration import ConfigurationABC +from cpl_cli.publish.publisher_service import PublisherService +from cpl_core.configuration.configuration_abc import ConfigurationABC from cpl_core.console.console import Console -from cpl_core.dependency_injection import ServiceProviderABC +from cpl_core.dependency_injection.service_provider_abc import ServiceProviderABC from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC -from cpl_core.utils import String +from cpl_core.utils.string import String class RunService(CommandABC): @@ -91,6 +91,7 @@ class RunService(CommandABC): self._env.set_working_directory(self._src_dir) self._publisher.build() + self._env.set_working_directory(self._src_dir) self._src_dir = os.path.abspath(os.path.join( self._src_dir, self._build_settings.output_path, diff --git a/src/cpl_cli/configuration/project_settings.py b/src/cpl_cli/configuration/project_settings.py index 8c359cd4..5b90399d 100644 --- a/src/cpl_cli/configuration/project_settings.py +++ b/src/cpl_cli/configuration/project_settings.py @@ -123,7 +123,7 @@ class ProjectSettings(ConfigurationModelABC): self._python_path = settings[ProjectSettingsNameEnum.python_path.value] if ProjectSettingsNameEnum.python_path.value in settings and sys.platform in settings[ProjectSettingsNameEnum.python_path.value]: - path = settings[ProjectSettingsNameEnum.python_path.value][sys.platform] + path = f'{settings[ProjectSettingsNameEnum.python_path.value][sys.platform]}/bin/python' if path == '' or path is None: Error.warn(f'{ProjectSettingsNameEnum.python_path.value} not set') path = sys.executable diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py index e69de29b..9bc349e4 100644 --- a/src/cpl_cli/helper/__init__.py +++ b/src/cpl_cli/helper/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +cpl-cli sh-edraft Common Python library CLI +~~~~~~~~~~~~~~~~~~~ + +sh-edraft Common Python library Command Line Interface + +:copyright: (c) 2020 - 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'cpl_cli.helper' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__version__ = '2022.12.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_cli/live_server/live_server_service.py b/src/cpl_cli/live_server/live_server_service.py index 7eadc8cc..a9f6ffd3 100644 --- a/src/cpl_cli/live_server/live_server_service.py +++ b/src/cpl_cli/live_server/live_server_service.py @@ -103,9 +103,8 @@ class LiveServerService(FileSystemEventHandler): return self._env.set_working_directory(self._src_dir) - Console.disable() self._publisher.build() - Console.enable() + self._env.set_working_directory(self._src_dir) self._wd = os.path.abspath(os.path.join( self._src_dir, self._build_settings.output_path, diff --git a/src/cpl_cli/live_server/start_executable.py b/src/cpl_cli/live_server/start_executable.py index 426f03e7..a72dc402 100644 --- a/src/cpl_cli/live_server/start_executable.py +++ b/src/cpl_cli/live_server/start_executable.py @@ -1,13 +1,12 @@ import os import subprocess import sys -import threading from datetime import datetime from cpl_core.console.console import Console from cpl_core.console.foreground_color_enum import ForegroundColorEnum from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC -from cpl_cli.configuration import BuildSettings +from cpl_cli.configuration.build_settings import BuildSettings class StartExecutable: @@ -43,7 +42,10 @@ class StartExecutable: self._env_vars['VIRTUAL_ENV'] = path def run(self, args: list[str], executable: str, path: str, output=True): - self._executable = os.path.abspath(executable) + self._executable = os.path.abspath(os.path.join(self._env.working_directory, executable)) + if not os.path.exists(self._executable): + Console.error(f'Executable not found') + return main = self._build_settings.main if '.' in self._build_settings.main: -- 2.49.1 From 85f75b4677606c2989acc1e0ba1d35372127ecb9 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 11 Dec 2022 08:58:55 +0100 Subject: [PATCH 015/124] Fixed group by --- src/cpl_query/base/queryable_abc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpl_query/base/queryable_abc.py b/src/cpl_query/base/queryable_abc.py index b14f63b2..be201073 100644 --- a/src/cpl_query/base/queryable_abc.py +++ b/src/cpl_query/base/queryable_abc.py @@ -221,7 +221,7 @@ class QueryableABC(Sequence): for v in self: value = _func(v) - if v not in groups: + if value not in groups: groups[value] = [] groups[value].append(v) -- 2.49.1 From 002ba6b4e057e525b1a4fae181d1ae80b5d030f9 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 11 Dec 2022 09:16:38 +0100 Subject: [PATCH 016/124] Added split function --- cpl-workspace.json | 4 ++-- src/cpl_discord/.cpl/__init__.py | 26 ++++++++++++++++++++++ src/cpl_query/__init__.py | 4 ++-- src/cpl_query/base/__init__.py | 4 ++-- src/cpl_query/base/queryable_abc.py | 33 ++++++++++++++++++++++++++++ src/cpl_query/cpl-query.json | 2 +- src/cpl_query/enumerable/__init__.py | 4 ++-- src/cpl_query/extension/__init__.py | 4 ++-- src/cpl_query/iterable/__init__.py | 4 ++-- 9 files changed, 72 insertions(+), 13 deletions(-) diff --git a/cpl-workspace.json b/cpl-workspace.json index 6d34e2bd..0110e201 100644 --- a/cpl-workspace.json +++ b/cpl-workspace.json @@ -20,10 +20,10 @@ "hello-world": "echo 'Hello World'", "sv": "cpl set-version", - "set-version": "cpl run set-version $ARGS; echo '';", + "set-version": "cpl run set-version --dev $ARGS; echo '';", "spu": "cpl set-pip-urls", - "set-pip-urls": "cpl run set-pip-urls $ARGS; echo '';", + "set-pip-urls": "cpl run set-pip-urls --dev $ARGS; echo '';", "docs-build": "echo 'Build Documentation'; cpl db-core; cpl db-discord; cpl db-query; cpl db-translation; cd docs/; make clean; make html; # rm source/cpl_query.tests.rst;", "db-core": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_core; cd ../", diff --git a/src/cpl_discord/.cpl/__init__.py b/src/cpl_discord/.cpl/__init__.py index e69de29b..a25e9f71 100644 --- a/src/cpl_discord/.cpl/__init__.py +++ b/src/cpl_discord/.cpl/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +cpl-discord sh-edraft Common Python library Discord +~~~~~~~~~~~~~~~~~~~ + +sh-edraft Common Python library link between discord.py and CPL + +:copyright: (c) 2021 - 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'cpl_discord' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__version__ = '2022.12.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='2022', minor='12', micro='0') diff --git a/src/cpl_query/__init__.py b/src/cpl_query/__init__.py index 90568d75..91a385f1 100644 --- a/src/cpl_query/__init__.py +++ b/src/cpl_query/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_query/base/__init__.py b/src/cpl_query/base/__init__.py index 6c298ed1..1491112d 100644 --- a/src/cpl_query/base/__init__.py +++ b/src/cpl_query/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_query/base/queryable_abc.py b/src/cpl_query/base/queryable_abc.py index be201073..c5c8f040 100644 --- a/src/cpl_query/base/queryable_abc.py +++ b/src/cpl_query/base/queryable_abc.py @@ -475,6 +475,39 @@ class QueryableABC(Sequence): return result + def split(self, _func: Callable) -> 'QueryableABC': + r"""Splits the list by given function + + + Parameter + --------- + func: :class:`Callable` + seperator + + Returns + ------- + :class: `cpl_query.base.queryable_abc.QueryableABC` + """ + groups = [] + group = [] + for x in self: + v = _func(x) + if x == v: + groups.append(group) + group = [] + + group.append(x) + + groups.append(group) + + query_groups = [] + for g in groups: + if len(g) == 0: + continue + query_groups.append(type(self)(self._type, g)) + + return type(self)(self._type, query_groups) + def take(self, _index: int) -> 'QueryableABC': r"""Takes all elements from index diff --git a/src/cpl_query/cpl-query.json b/src/cpl_query/cpl-query.json index 198b1699..b06705f3 100644 --- a/src/cpl_query/cpl-query.json +++ b/src/cpl_query/cpl-query.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post1" + "Micro": "0" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_query/enumerable/__init__.py b/src/cpl_query/enumerable/__init__.py index 13ad7c57..7ea6dfcf 100644 --- a/src/cpl_query/enumerable/__init__.py +++ b/src/cpl_query/enumerable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.enumerable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -25,4 +25,4 @@ from .enumerable import Enumerable from .enumerable_abc import EnumerableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_query/extension/__init__.py b/src/cpl_query/extension/__init__.py index 9851b59c..f0ad933a 100644 --- a/src/cpl_query/extension/__init__.py +++ b/src/cpl_query/extension/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.extension' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .list import List VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_query/iterable/__init__.py b/src/cpl_query/iterable/__init__.py index 3855dde6..abba389e 100644 --- a/src/cpl_query/iterable/__init__.py +++ b/src/cpl_query/iterable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.iterable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -25,4 +25,4 @@ from .iterable_abc import IterableABC from .iterable import Iterable VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') -- 2.49.1 From cbae40ef4d240da0a07b42885f8dfbb10f8c478c Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 11 Dec 2022 10:44:23 +0100 Subject: [PATCH 017/124] Fixed skip function --- src/cpl_query/__init__.py | 4 ++-- src/cpl_query/base/__init__.py | 4 ++-- src/cpl_query/base/queryable_abc.py | 2 +- src/cpl_query/cpl-query.json | 2 +- src/cpl_query/enumerable/__init__.py | 4 ++-- src/cpl_query/extension/__init__.py | 4 ++-- src/cpl_query/iterable/__init__.py | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/cpl_query/__init__.py b/src/cpl_query/__init__.py index 91a385f1..5d622bbe 100644 --- a/src/cpl_query/__init__.py +++ b/src/cpl_query/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_query/base/__init__.py b/src/cpl_query/base/__init__.py index 1491112d..6931da1c 100644 --- a/src/cpl_query/base/__init__.py +++ b/src/cpl_query/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_query/base/queryable_abc.py b/src/cpl_query/base/queryable_abc.py index c5c8f040..2a058959 100644 --- a/src/cpl_query/base/queryable_abc.py +++ b/src/cpl_query/base/queryable_abc.py @@ -431,7 +431,7 @@ class QueryableABC(Sequence): if _index is None: raise ArgumentNoneException(ExceptionArgument.index) - return type(self)(self.type, values=self[_index:]) + return type(self)(self.type, self[_index:]) def skip_last(self, _index: int) -> 'QueryableABC': r"""Skips all elements after index diff --git a/src/cpl_query/cpl-query.json b/src/cpl_query/cpl-query.json index b06705f3..04d3236a 100644 --- a/src/cpl_query/cpl-query.json +++ b/src/cpl_query/cpl-query.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "0" + "Micro": "1.post3" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_query/enumerable/__init__.py b/src/cpl_query/enumerable/__init__.py index 7ea6dfcf..1202a451 100644 --- a/src/cpl_query/enumerable/__init__.py +++ b/src/cpl_query/enumerable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.enumerable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -25,4 +25,4 @@ from .enumerable import Enumerable from .enumerable_abc import EnumerableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_query/extension/__init__.py b/src/cpl_query/extension/__init__.py index f0ad933a..4295e847 100644 --- a/src/cpl_query/extension/__init__.py +++ b/src/cpl_query/extension/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.extension' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .list import List VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_query/iterable/__init__.py b/src/cpl_query/iterable/__init__.py index abba389e..8be6be19 100644 --- a/src/cpl_query/iterable/__init__.py +++ b/src/cpl_query/iterable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.iterable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -25,4 +25,4 @@ from .iterable_abc import IterableABC from .iterable import Iterable VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') -- 2.49.1 From 05c33990bb8c39db576631dfeb97de9ebff738bc Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 12 Dec 2022 20:59:04 +0100 Subject: [PATCH 018/124] Performance improvements --- src/cpl_query/base/queryable_abc.py | 79 +++++++++---------- src/cpl_query/base/sequence.py | 35 ++++---- src/cpl_query/cpl-query.json | 2 +- src/cpl_query/extension/list.py | 13 ++- src/cpl_query/iterable/iterable.py | 4 +- src/cpl_query/iterable/iterable_abc.py | 10 +-- .../enumerable_query_test_case.py | 6 +- .../iterable_query_test_case.py | 2 +- 8 files changed, 79 insertions(+), 72 deletions(-) diff --git a/src/cpl_query/base/queryable_abc.py b/src/cpl_query/base/queryable_abc.py index 2a058959..e7d8f5ec 100644 --- a/src/cpl_query/base/queryable_abc.py +++ b/src/cpl_query/base/queryable_abc.py @@ -1,17 +1,17 @@ -from typing import Optional, Callable, Union +from typing import Optional, Callable, Union, Iterable from cpl_query._helper import is_number from cpl_query.base.sequence import Sequence from cpl_query.exceptions import InvalidTypeException, ArgumentNoneException, ExceptionArgument, IndexOutOfRangeException -def _default_lambda(x: object): +def _default_lambda(x: object) -> object: return x class QueryableABC(Sequence): - def __init__(self, t: type = None, values: list = None): + def __init__(self, t: type, values: Iterable = None): Sequence.__init__(self, t, values) def all(self, _func: Callable = None) -> bool: @@ -97,7 +97,7 @@ class QueryableABC(Sequence): if _func is None: return self.__len__() - return self.where(_func).__len__() + return self.where(_func).count() def distinct(self, _func: Callable = None) -> 'QueryableABC': r"""Returns list without redundancies @@ -144,7 +144,7 @@ class QueryableABC(Sequence): if _index < 0 or _index >= self.count(): raise IndexOutOfRangeException - result = self[_index] + result = self._values[_index] if result is None: raise IndexOutOfRangeException @@ -166,7 +166,7 @@ class QueryableABC(Sequence): raise ArgumentNoneException(ExceptionArgument.index) try: - return self[_index] + return self._values[_index] except IndexError: return None @@ -177,10 +177,10 @@ class QueryableABC(Sequence): ------- First element of list: any """ - if len(self) == 0: + if self.count() == 0: raise IndexOutOfRangeException() - return self[0] + return self._values[0] def first_or_default(self) -> any: r"""Returns first element or None @@ -189,10 +189,10 @@ class QueryableABC(Sequence): ------- First element of list: Optional[any] """ - if len(self) == 0: + if self.count() == 0: return None - return self[0] + return self._values[0] def for_each(self, _func: Callable = None): r"""Runs given function for each element of list @@ -221,14 +221,14 @@ class QueryableABC(Sequence): for v in self: value = _func(v) - if value not in groups: + if v not in groups: groups[value] = [] groups[value].append(v) v = [] for g in groups.values(): - v.append(type(self)(None, g)) + v.append(type(self)(object, g)) x = type(self)(type(self), v) return x @@ -239,10 +239,10 @@ class QueryableABC(Sequence): ------- Last element of list: any """ - if len(self) == 0: + if self.count() == 0: raise IndexOutOfRangeException() - return self[len(self) - 1] + return self._values[self.count() - 1] def last_or_default(self) -> any: r"""Returns last element or None @@ -251,12 +251,12 @@ class QueryableABC(Sequence): ------- Last element of list: Optional[any] """ - if len(self) == 0: + if self.count() == 0: return None - return self[len(self) - 1] + return self._values[self.count() - 1] - def max(self, _func: Callable = None) -> Union[int, float, complex]: + def max(self, _func: Callable = None) -> object: r"""Returns the highest value Parameter @@ -266,7 +266,7 @@ class QueryableABC(Sequence): Returns ------- - Union[int, float, complex] + object """ if _func is None and not is_number(self.type): raise InvalidTypeException() @@ -295,7 +295,7 @@ class QueryableABC(Sequence): else (float(result[i - 1]) + float(result[i])) / float(2) ) - def min(self, _func: Callable = None) -> Union[int, float, complex]: + def min(self, _func: Callable = None) -> object: r"""Returns the lowest value Parameter @@ -305,7 +305,7 @@ class QueryableABC(Sequence): Returns ------- - Union[int, float, complex] + object """ if _func is None and not is_number(self.type): raise InvalidTypeException() @@ -358,7 +358,7 @@ class QueryableABC(Sequence): ------- :class: `cpl_query.base.queryable_abc.QueryableABC` """ - return type(self)(self._type, list(reversed(self))) + return type(self)(self._type, reversed(self._values)) def select(self, _func: Callable) -> 'QueryableABC': r"""Formats each element of list to a given format @@ -370,7 +370,7 @@ class QueryableABC(Sequence): if _func is None: _func = _default_lambda - return type(self)(any, [_func(_o) for _o in self]) + return type(self)(object, [_func(_o) for _o in self]) def select_many(self, _func: Callable) -> 'QueryableABC': r"""Flattens resulting lists to one @@ -381,7 +381,7 @@ class QueryableABC(Sequence): """ # The line below is pain. I don't understand anything of it... # written on 09.11.2022 by Sven Heidemann - return type(self)(any, [_a for _o in self for _a in _func(_o)]) + return type(self)(object, [_a for _o in self for _a in _func(_o)]) def single(self) -> any: r"""Returns one single element of list @@ -395,12 +395,12 @@ class QueryableABC(Sequence): ArgumentNoneException: when argument is None Exception: when argument is None or found more than one element """ - if len(self) > 1: + if self.count() > 1: raise Exception('Found more than one element') - elif len(self) == 0: + elif self.count() == 0: raise Exception('Found no element') - return self[0] + return self._values[0] def single_or_default(self) -> Optional[any]: r"""Returns one single element of list @@ -409,12 +409,12 @@ class QueryableABC(Sequence): ------- Found value: Optional[any] """ - if len(self) > 1: + if self.count() > 1: raise Exception('Index out of range') - elif len(self) == 0: + elif self.count() == 0: return None - return self[0] + return self._values[0] def skip(self, _index: int) -> 'QueryableABC': r"""Skips all elements from index @@ -431,7 +431,7 @@ class QueryableABC(Sequence): if _index is None: raise ArgumentNoneException(ExceptionArgument.index) - return type(self)(self.type, self[_index:]) + return type(self)(self.type, self._values[_index:]) def skip_last(self, _index: int) -> 'QueryableABC': r"""Skips all elements after index @@ -448,8 +448,8 @@ class QueryableABC(Sequence): if _index is None: raise ArgumentNoneException(ExceptionArgument.index) - index = len(self) - _index - return type(self)(self._type, self[:index]) + index = self.count() - _index + return type(self)(self._type, self._values[:index]) def sum(self, _func: Callable = None) -> Union[int, float, complex]: r"""Sum of all values @@ -523,7 +523,7 @@ class QueryableABC(Sequence): if _index is None: raise ArgumentNoneException(ExceptionArgument.index) - return type(self)(self._type, self[:_index]) + return type(self)(self._type, self._values[:_index]) def take_last(self, _index: int) -> 'QueryableABC': r"""Takes all elements after index @@ -537,12 +537,12 @@ class QueryableABC(Sequence): ------- :class: `cpl_query.base.queryable_abc.QueryableABC` """ - index = len(self) - _index + index = self.count() - _index - if index >= len(self) or index < 0: + if index >= self.count() or index < 0: raise IndexOutOfRangeException() - return type(self)(self._type, self[index:]) + return type(self)(self._type, self._values[index:]) def where(self, _func: Callable = None) -> 'QueryableABC': r"""Select element by function @@ -562,9 +562,4 @@ class QueryableABC(Sequence): if _func is None: _func = _default_lambda - result = [] - for element in self: - if _func(element): - result.append(element) - - return type(self)(self.type, result) + return type(self)(self.type, filter(_func, self)) diff --git a/src/cpl_query/base/sequence.py b/src/cpl_query/base/sequence.py index 15f7fc4a..cb97b1b3 100644 --- a/src/cpl_query/base/sequence.py +++ b/src/cpl_query/base/sequence.py @@ -1,29 +1,36 @@ -from abc import ABC, abstractmethod +from abc import abstractmethod, ABC +from typing import Iterable -class Sequence(list): +class Sequence(ABC): @abstractmethod - def __init__(self, t: type = None, values: list = None): - list.__init__(self) - ABC.__init__(self) - values = [] if values is None else values - list.__init__(self, values) + def __init__(self, t: type, values: Iterable = None): + if values is None: + values = [] - if t is None and len(values) > 0: - t = type(values[0]) + self._values = list(values) if t is None: - t = any + t = object self._type = t + def __iter__(self): + return iter(self._values) + + def __next__(self): + return next(iter(self._values)) + + def __len__(self): + return self.to_list().__len__() + @classmethod def __class_getitem__(cls, _t: type): return _t def __repr__(self): - return f'<{type(self).__name__} {list(self).__repr__()}>' + return f'<{type(self).__name__} {self.to_list().__repr__()}>' @property def type(self) -> type: @@ -43,7 +50,7 @@ class Sequence(list): ------- :class: `list` """ - return [x for x in self] + return [x for x in self._values] def copy(self) -> 'Sequence': r"""Creates a copy of sequence @@ -62,7 +69,7 @@ class Sequence(list): ------- Sequence object that contains no elements """ - return cls() + return cls(object, []) def index_of(self, _object: object) -> int: r"""Returns the index of given element @@ -83,4 +90,4 @@ class Sequence(list): @classmethod def range(cls, start: int, length: int) -> 'Sequence': - return cls(int, list(range(start, length))) + return cls(int, range(start, length)) diff --git a/src/cpl_query/cpl-query.json b/src/cpl_query/cpl-query.json index 04d3236a..48aede0d 100644 --- a/src/cpl_query/cpl-query.json +++ b/src/cpl_query/cpl-query.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post3" + "Micro": "2" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_query/extension/list.py b/src/cpl_query/extension/list.py index 62e0d5b4..30722127 100644 --- a/src/cpl_query/extension/list.py +++ b/src/cpl_query/extension/list.py @@ -1,4 +1,4 @@ -from typing import Iterable as IterableType +from typing import Iterator from cpl_query.iterable.iterable import Iterable @@ -7,9 +7,18 @@ class List(Iterable): r"""Implementation of :class: `cpl_query.extension.iterable.Iterable` """ - def __init__(self, t: type = None, values: IterableType = None): + def __init__(self, t: type = None, values: Iterator = None): Iterable.__init__(self, t, values) + def __getitem__(self, *args): + return self._values.__getitem__(*args) + + def __setitem__(self, *args): + self._values.__setitem__(*args) + + def __delitem__(self, *args): + self._values.__delitem__(*args) + def to_enumerable(self) -> 'EnumerableABC': r"""Converts :class: `cpl_query.iterable.iterable_abc.IterableABC` to :class: `cpl_query.enumerable.enumerable_abc.EnumerableABC` diff --git a/src/cpl_query/iterable/iterable.py b/src/cpl_query/iterable/iterable.py index 38367269..07ec5b8d 100644 --- a/src/cpl_query/iterable/iterable.py +++ b/src/cpl_query/iterable/iterable.py @@ -1,4 +1,4 @@ -from typing import Iterable as IterableType +from typing import Iterable as TIterable from cpl_query.iterable.iterable_abc import IterableABC @@ -9,5 +9,5 @@ def _default_lambda(x: object): class Iterable(IterableABC): - def __init__(self, t: type = None, values: IterableType = None): + def __init__(self, t: type = None, values: TIterable = None): IterableABC.__init__(self, t, values) diff --git a/src/cpl_query/iterable/iterable_abc.py b/src/cpl_query/iterable/iterable_abc.py index 571a61e1..5640230b 100644 --- a/src/cpl_query/iterable/iterable_abc.py +++ b/src/cpl_query/iterable/iterable_abc.py @@ -12,10 +12,6 @@ class IterableABC(QueryableABC): def __init__(self, t: type = None, values: Iterable = None): QueryableABC.__init__(self, t, values) - @property - def type(self) -> type: - return self._type - def __str__(self): return str(self.to_list()) @@ -30,7 +26,7 @@ class IterableABC(QueryableABC): value """ self._check_type(_object) - super().append(_object) + self._values.append(_object) def extend(self, __iterable: Iterable) -> 'IterableABC': r"""Adds elements of given list to list @@ -54,7 +50,7 @@ class IterableABC(QueryableABC): if _object not in self: raise ValueError - super().remove(_object) + self._values.remove(_object) def remove_at(self, _index: int): r"""Removes element from list @@ -63,7 +59,7 @@ class IterableABC(QueryableABC): _object: :class:`object` value """ - self.pop(_index) + self._values.pop(_index) def to_enumerable(self) -> 'EnumerableABC': r"""Converts :class: `cpl_query.iterable.iterable_abc.IterableABC` to :class: `cpl_query.enumerable.enumerable_abc.EnumerableABC` diff --git a/unittests/unittests_query/enumerable_query_test_case.py b/unittests/unittests_query/enumerable_query_test_case.py index ffe71576..89db64d1 100644 --- a/unittests/unittests_query/enumerable_query_test_case.py +++ b/unittests/unittests_query/enumerable_query_test_case.py @@ -183,7 +183,7 @@ class EnumerableQueryTestCase(unittest.TestCase): res = self._tests.max(lambda u: u.address.nr) self.assertEqual(res, self._t_user.address.nr) - tests = Enumerable(values=list(range(0, 100))) + tests = Enumerable(int, list(range(0, 100))) self.assertEqual(99, tests.max()) def invalid(): @@ -196,7 +196,7 @@ class EnumerableQueryTestCase(unittest.TestCase): res = self._tests.min(lambda u: u.address.nr) self.assertEqual(1, res) - tests = Enumerable(values=list(range(0, 100))) + tests = Enumerable(int, list(range(0, 100))) self.assertEqual(0, tests.min()) def invalid(): @@ -319,7 +319,7 @@ class EnumerableQueryTestCase(unittest.TestCase): self.assertEqual(s_res, res) - tests = Enumerable(values=list(range(0, 100))) + tests = Enumerable(int, list(range(0, 100))) self.assertEqual(0, tests.min()) def invalid(): diff --git a/unittests/unittests_query/iterable_query_test_case.py b/unittests/unittests_query/iterable_query_test_case.py index 6dfa36f0..0e64ecbb 100644 --- a/unittests/unittests_query/iterable_query_test_case.py +++ b/unittests/unittests_query/iterable_query_test_case.py @@ -351,7 +351,7 @@ class IterableQueryTestCase(unittest.TestCase): self.assertEqual(s_res, res) - tests = List(values=list(range(0, 100))) + tests = List(int, list(range(0, 100))) self.assertEqual(0, tests.min()) def invalid(): -- 2.49.1 From 086fc75fecd7164e46a4b964cb2fb096de7bb673 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 12 Dec 2022 20:59:43 +0100 Subject: [PATCH 019/124] Build cpl query --- src/cpl_query/__init__.py | 4 ++-- src/cpl_query/base/__init__.py | 4 ++-- src/cpl_query/enumerable/__init__.py | 4 ++-- src/cpl_query/extension/__init__.py | 4 ++-- src/cpl_query/iterable/__init__.py | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/cpl_query/__init__.py b/src/cpl_query/__init__.py index 5d622bbe..1924e2c8 100644 --- a/src/cpl_query/__init__.py +++ b/src/cpl_query/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post3' +__version__ = '2022.12.2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post3') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_query/base/__init__.py b/src/cpl_query/base/__init__.py index 6931da1c..3b768bbd 100644 --- a/src/cpl_query/base/__init__.py +++ b/src/cpl_query/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post3' +__version__ = '2022.12.2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post3') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_query/enumerable/__init__.py b/src/cpl_query/enumerable/__init__.py index 1202a451..5009e045 100644 --- a/src/cpl_query/enumerable/__init__.py +++ b/src/cpl_query/enumerable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.enumerable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post3' +__version__ = '2022.12.2' from collections import namedtuple @@ -25,4 +25,4 @@ from .enumerable import Enumerable from .enumerable_abc import EnumerableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post3') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_query/extension/__init__.py b/src/cpl_query/extension/__init__.py index 4295e847..48dbc44c 100644 --- a/src/cpl_query/extension/__init__.py +++ b/src/cpl_query/extension/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.extension' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post3' +__version__ = '2022.12.2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .list import List VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post3') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_query/iterable/__init__.py b/src/cpl_query/iterable/__init__.py index 8be6be19..77d1c07f 100644 --- a/src/cpl_query/iterable/__init__.py +++ b/src/cpl_query/iterable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.iterable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.1.post3' +__version__ = '2022.12.2' from collections import namedtuple @@ -25,4 +25,4 @@ from .iterable_abc import IterableABC from .iterable import Iterable VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post3') +version_info = VersionInfo(major='2022', minor='12', micro='2') -- 2.49.1 From d5e89d6e2a200037f4de18eb403135db72f3c619 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 18 Dec 2022 12:03:41 +0100 Subject: [PATCH 020/124] Fixed cpl cli build #144 --- src/cpl_cli/.cpl/__init__.py | 4 ++-- src/cpl_cli/__init__.py | 4 ++-- src/cpl_cli/_templates/__init__.py | 4 ++-- src/cpl_cli/_templates/build/__init__.py | 4 ++-- src/cpl_cli/_templates/publish/__init__.py | 4 ++-- src/cpl_cli/abc/__init__.py | 4 ++-- src/cpl_cli/appsettings.json | 2 +- src/cpl_cli/command/__init__.py | 4 ++-- src/cpl_cli/command/generate_service.py | 5 ++--- src/cpl_cli/configuration/__init__.py | 4 ++-- src/cpl_cli/cpl-cli.json | 7 ++++--- src/cpl_cli/helper/__init__.py | 4 ++-- src/cpl_cli/live_server/__init__.py | 4 ++-- src/cpl_cli/main.py | 2 ++ src/cpl_cli/migrations/__init__.py | 4 ++-- src/cpl_cli/migrations/base/__init__.py | 4 ++-- src/cpl_cli/migrations/service/__init__.py | 4 ++-- src/cpl_cli/publish/__init__.py | 4 ++-- src/cpl_cli/source_creator/__init__.py | 4 ++-- src/cpl_cli/validators/__init__.py | 4 ++-- tools/set_version/application.py | 11 ++++++++--- 21 files changed, 49 insertions(+), 42 deletions(-) diff --git a/src/cpl_cli/.cpl/__init__.py b/src/cpl_cli/.cpl/__init__.py index f96d10fb..384e3fa0 100644 --- a/src/cpl_cli/.cpl/__init__.py +++ b/src/cpl_cli/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/__init__.py b/src/cpl_cli/__init__.py index a2165c57..d5c71351 100644 --- a/src/cpl_cli/__init__.py +++ b/src/cpl_cli/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -28,4 +28,4 @@ from .main import main from .startup import Startup VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/_templates/__init__.py b/src/cpl_cli/_templates/__init__.py index 46d358eb..506557ff 100644 --- a/src/cpl_cli/_templates/__init__.py +++ b/src/cpl_cli/_templates/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/_templates/build/__init__.py b/src/cpl_cli/_templates/build/__init__.py index 9bc534ca..e006bf80 100644 --- a/src/cpl_cli/_templates/build/__init__.py +++ b/src/cpl_cli/_templates/build/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.build' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/_templates/publish/__init__.py b/src/cpl_cli/_templates/publish/__init__.py index 1778daf8..46a92128 100644 --- a/src/cpl_cli/_templates/publish/__init__.py +++ b/src/cpl_cli/_templates/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/abc/__init__.py b/src/cpl_cli/abc/__init__.py index aa793603..609ba749 100644 --- a/src/cpl_cli/abc/__init__.py +++ b/src/cpl_cli/abc/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.abc' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/appsettings.json b/src/cpl_cli/appsettings.json index f4dbfbf1..eb80fe1d 100644 --- a/src/cpl_cli/appsettings.json +++ b/src/cpl_cli/appsettings.json @@ -1,5 +1,5 @@ { "CLI": { - "PipPath": "https://pip.sh-edraft.de" + "PipPath": "https://pip-dev.sh-edraft.de" } } \ No newline at end of file diff --git a/src/cpl_cli/command/__init__.py b/src/cpl_cli/command/__init__.py index 49b2f0c6..3cb16ed4 100644 --- a/src/cpl_cli/command/__init__.py +++ b/src/cpl_cli/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -29,4 +29,4 @@ from .publish_service import PublishService from .version_service import VersionService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/command/generate_service.py b/src/cpl_cli/command/generate_service.py index 1b686102..eb42bd04 100644 --- a/src/cpl_cli/command/generate_service.py +++ b/src/cpl_cli/command/generate_service.py @@ -195,9 +195,8 @@ class GenerateService(CommandABC): schematic = s break - schematic_by_alias = self._get_schematic_by_alias(args[0]) - if schematic is None and len(args) >= 1 and (args[0] in self._schematics or schematic_by_alias != args[0]): - schematic = schematic_by_alias + if schematic is None and len(args) >= 1 and (args[0] in self._schematics or self._get_schematic_by_alias(args[0]) != args[0]): + schematic = self._get_schematic_by_alias(args[0]) self._config.add_configuration(schematic, args[1]) value = args[1] diff --git a/src/cpl_cli/configuration/__init__.py b/src/cpl_cli/configuration/__init__.py index 7b7a2e32..cd0a9ef5 100644 --- a/src/cpl_cli/configuration/__init__.py +++ b/src/cpl_cli/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -31,4 +31,4 @@ from .workspace_settings import WorkspaceSettings from .workspace_settings_name_enum import WorkspaceSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/cpl-cli.json b/src/cpl_cli/cpl-cli.json index 3c57ece9..04b7fd6b 100644 --- a/src/cpl_cli/cpl-cli.json +++ b/src/cpl_cli/cpl-cli.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "0" + "Micro": "dev144" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", @@ -16,7 +16,7 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.0" + "cpl-core>=2022.12.dev144" ], "DevDependencies": [], "PythonVersion": ">=3.10", @@ -42,7 +42,8 @@ ], "PackageData": { "cpl_cli": [ - "*.json" + "*.json", + ".cpl/*.py" ] }, "ProjectReferences": [] diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py index 9bc349e4..0db1862a 100644 --- a/src/cpl_cli/helper/__init__.py +++ b/src/cpl_cli/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/live_server/__init__.py b/src/cpl_cli/live_server/__init__.py index de32b9f4..4b74e088 100644 --- a/src/cpl_cli/live_server/__init__.py +++ b/src/cpl_cli/live_server/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.live_server' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/main.py b/src/cpl_cli/main.py index df1c6a9a..4bf4d83d 100644 --- a/src/cpl_cli/main.py +++ b/src/cpl_cli/main.py @@ -9,6 +9,7 @@ from cpl_cli.startup_migration_extension import StartupMigrationExtension from cpl_cli.startup_workspace_extension import StartupWorkspaceExtension from cpl_core.application.application_builder import ApplicationBuilder from cpl_core.application.startup_extension_abc import StartupExtensionABC +from cpl_core.console import Console def get_startup_extensions() -> list[Type[StartupExtensionABC]]: @@ -40,6 +41,7 @@ def main(): app_builder.use_extension(extension) app_builder.build().run() + Console.write_line() if __name__ == '__main__': diff --git a/src/cpl_cli/migrations/__init__.py b/src/cpl_cli/migrations/__init__.py index 83b95050..fca9b7d7 100644 --- a/src/cpl_cli/migrations/__init__.py +++ b/src/cpl_cli/migrations/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/migrations/base/__init__.py b/src/cpl_cli/migrations/base/__init__.py index db9830c8..2872e0a6 100644 --- a/src/cpl_cli/migrations/base/__init__.py +++ b/src/cpl_cli/migrations/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/migrations/service/__init__.py b/src/cpl_cli/migrations/service/__init__.py index ad460fb4..6a9679f5 100644 --- a/src/cpl_cli/migrations/service/__init__.py +++ b/src/cpl_cli/migrations/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/publish/__init__.py b/src/cpl_cli/publish/__init__.py index 4ddae317..51b16998 100644 --- a/src/cpl_cli/publish/__init__.py +++ b/src/cpl_cli/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -25,4 +25,4 @@ from .publisher_abc import PublisherABC from .publisher_service import PublisherService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/source_creator/__init__.py b/src/cpl_cli/source_creator/__init__.py index c15325b7..102b512c 100644 --- a/src/cpl_cli/source_creator/__init__.py +++ b/src/cpl_cli/source_creator/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.source_creator' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/src/cpl_cli/validators/__init__.py b/src/cpl_cli/validators/__init__.py index cf262422..f782995b 100644 --- a/src/cpl_cli/validators/__init__.py +++ b/src/cpl_cli/validators/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.validators' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.dev144' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='dev144') diff --git a/tools/set_version/application.py b/tools/set_version/application.py index 6b61c7f1..c4cc9763 100644 --- a/tools/set_version/application.py +++ b/tools/set_version/application.py @@ -56,7 +56,14 @@ class Application(ApplicationABC): return try: - if branch.startswith('#'): + if suffix != '': + self._configuration.add_json_file(self._workspace.projects[self._workspace.default_project], optional=False, output=False) + ps: ProjectSettings = self._configuration.get_configuration(ProjectSettings) + + version[VersionSettingsNameEnum.major.value] = ps.version.major + version[VersionSettingsNameEnum.minor.value] = ps.version.minor + version[VersionSettingsNameEnum.micro.value] = suffix + elif branch.startswith('#'): self._configuration.add_json_file(self._workspace.projects[self._workspace.default_project], optional=False, output=False) ps: ProjectSettings = self._configuration.get_configuration(ProjectSettings) @@ -71,8 +78,6 @@ class Application(ApplicationABC): suffix = '0' version[VersionSettingsNameEnum.micro.value] = f'{suffix}' else: - if not suffix.startswith('.') and suffix != '': - suffix = f'.{suffix}' version[VersionSettingsNameEnum.micro.value] = f'{branch.split(".")[2]}{suffix}' except Exception as e: Console.error(f'Branch {branch} does not contain valid version') -- 2.49.1 From 46fa49a1023b8e2f1aa6adc6600dca9a42ba393c Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 18 Dec 2022 14:27:41 +0100 Subject: [PATCH 021/124] Updated project type library logic & fixed tests #144 --- src/cpl_cli/.cpl/project_library.py | 16 +---- src/cpl_cli/.cpl/schematic_class.py | 4 +- src/cpl_cli/command/generate_service.py | 43 ++++++------ src/cpl_cli/command/new_service.py | 30 ++++---- src/cpl_cli/configuration/project_settings.py | 8 ++- .../configuration/venv_helper_service.py | 4 +- src/cpl_cli/startup_migration_extension.py | 7 -- src/cpl_cli/test_enum.py | 1 - src/cpl_cli/test_init.py | 1 - src/cpl_core/cpl-core.json | 6 +- src/cpl_core/utils/pip.py | 3 +- src/cpl_discord/cpl-discord.json | 6 +- src/cpl_query/cpl-query.json | 5 +- src/cpl_translation/cpl-translation.json | 5 +- unittests/unittests_cli/install_test_case.py | 66 ++++++++++-------- unittests/unittests_cli/new_test_case.py | 69 +++++++++++-------- unittests/unittests_cli/publish_test_case.py | 1 - unittests/unittests_cli/version_test_case.py | 18 +++-- 18 files changed, 161 insertions(+), 132 deletions(-) delete mode 100644 src/cpl_cli/test_enum.py delete mode 100644 src/cpl_cli/test_init.py diff --git a/src/cpl_cli/.cpl/project_library.py b/src/cpl_cli/.cpl/project_library.py index 91579b10..7ade19b6 100644 --- a/src/cpl_cli/.cpl/project_library.py +++ b/src/cpl_cli/.cpl/project_library.py @@ -19,13 +19,10 @@ class Library(ProjectTypeABC): project_file_data: dict, ): from project_file import ProjectFile - from project_file_appsettings import ProjectFileAppsettings - from project_file_code_application import ProjectFileApplication - from project_file_code_main import ProjectFileMain - from project_file_code_startup import ProjectFileStartup from project_file_readme import ProjectFileReadme from project_file_license import ProjectFileLicense from schematic_init import Init + from schematic_class import Class ProjectTypeABC.__init__(self, base_path, project_name, workspace, use_application_api, use_startup, use_service_providing, use_async, project_file_data) @@ -35,15 +32,6 @@ class Library(ProjectTypeABC): if workspace is None: self.add_template(ProjectFileLicense('')) self.add_template(ProjectFileReadme('')) - self.add_template(Init('', 'init', f'{base_path}tests/')) self.add_template(Init('', 'init', project_path)) - self.add_template(ProjectFileAppsettings(project_path)) - - if use_application_api: - self.add_template(ProjectFileApplication(project_path, use_application_api, use_startup, use_service_providing, use_async)) - - if use_startup: - self.add_template(ProjectFileStartup(project_path, use_application_api, use_startup, use_service_providing, use_async)) - - self.add_template(ProjectFileMain(project_name.split('/')[-1], project_path, use_application_api, use_startup, use_service_providing, use_async)) + self.add_template(Class('Class1', 'class', project_path)) diff --git a/src/cpl_cli/.cpl/schematic_class.py b/src/cpl_cli/.cpl/schematic_class.py index f5cdb462..617634de 100644 --- a/src/cpl_cli/.cpl/schematic_class.py +++ b/src/cpl_cli/.cpl/schematic_class.py @@ -4,8 +4,8 @@ from cpl_core.utils import String class Class(GenerateSchematicABC): - def __init__(self, name: str, path: str, schematic: str): - GenerateSchematicABC.__init__(self, name, path, schematic) + def __init__(self, name: str, schematic: str, path: str): + GenerateSchematicABC.__init__(self, name, schematic, path) self._name = f'{String.convert_to_snake_case(name)}.py' self._class_name = f'{String.first_to_upper(name)}' diff --git a/src/cpl_cli/command/generate_service.py b/src/cpl_cli/command/generate_service.py index eb42bd04..37946bcb 100644 --- a/src/cpl_cli/command/generate_service.py +++ b/src/cpl_cli/command/generate_service.py @@ -34,6 +34,7 @@ class GenerateService(CommandABC): self._config = configuration self._env = self._config.environment self._schematics = {} + self._schematic_classes = set() for package_name, version in Dependencies.get_cpl_packages(): if package_name == 'cpl-cli': @@ -44,16 +45,12 @@ class GenerateService(CommandABC): self._read_custom_schematics_from_path(self._env.working_directory) self._read_custom_schematics_from_path(self._env.runtime_directory) - if len(GenerateSchematicABC.__subclasses__()) == 0: + if len(self._schematic_classes) == 0: Console.error(f'No schematics found in template directory: .cpl') sys.exit() known_schematics = [] - for schematic in GenerateSchematicABC.__subclasses__(): - if schematic.__name__ in known_schematics: - Console.error(f'Duplicate of schematic {schematic.__name__} found!') - sys.exit() - + for schematic in self._schematic_classes: known_schematics.append(schematic.__name__) schematic.register() @@ -83,6 +80,23 @@ class GenerateService(CommandABC): help_msg += f'\n {schematic}' return help_msg + def _read_custom_schematics_from_path(self, path: str): + if not os.path.exists(os.path.join(path, '.cpl')): + return + + sys.path.insert(0, os.path.join(path, '.cpl')) + for r, d, f in os.walk(os.path.join(path, '.cpl')): + for file in f: + if not file.startswith('schematic_') or not file.endswith('.py'): + continue + + try: + exec(open(os.path.join(r, file), 'r').read()) + self._schematic_classes.update(GenerateSchematicABC.__subclasses__()) + except Exception as e: + Console.error(str(e), traceback.format_exc()) + sys.exit(-1) + @staticmethod def _create_file(file_path: str, value: str): """ @@ -157,23 +171,6 @@ class GenerateService(CommandABC): spinner_foreground_color=ForegroundColorEnum.cyan ) - @staticmethod - def _read_custom_schematics_from_path(path: str): - if not os.path.exists(os.path.join(path, '.cpl')): - return - - sys.path.insert(0, os.path.join(path, '.cpl')) - for r, d, f in os.walk(os.path.join(path, '.cpl')): - for file in f: - if not file.startswith('schematic_') or not file.endswith('.py'): - continue - - try: - exec(open(os.path.join(r, file), 'r').read()) - except Exception as e: - Console.error(str(e), traceback.format_exc()) - sys.exit(-1) - def _get_schematic_by_alias(self, schematic: str) -> str: for key in self._schematics: if schematic in self._schematics[key]['Aliases']: diff --git a/src/cpl_cli/command/new_service.py b/src/cpl_cli/command/new_service.py index eef6e8d4..3c7ada15 100644 --- a/src/cpl_cli/command/new_service.py +++ b/src/cpl_cli/command/new_service.py @@ -45,6 +45,8 @@ class NewService(CommandABC): self._build: BuildSettings = BuildSettings() self._build_dict = {} + self._project_type_classes = set() + self._name: str = '' self._rel_path: str = '' self._project_type: ProjectTypeEnum = ProjectTypeEnum.console @@ -98,7 +100,7 @@ class NewService(CommandABC): ], ProjectSettingsNameEnum.python_version.value: f'>={sys.version.split(" ")[0]}', ProjectSettingsNameEnum.python_path.value: { - sys.platform: '../../venv/bin/python' if self._use_venv else '' + sys.platform: '../../venv/' if self._use_venv else '' }, ProjectSettingsNameEnum.classifiers.value: [] } @@ -152,17 +154,22 @@ class NewService(CommandABC): return project_path - def _get_project_information(self, is_unittest=False): + def _get_project_information(self, project_type: str): """ Gets project information's from user :return: """ + is_unittest = project_type == 'unittest' + is_library = project_type == 'library' + if is_library: + return + if self._use_application_api or self._use_startup or self._use_service_providing or self._use_async or self._use_nothing: Console.set_foreground_color(ForegroundColorEnum.default) Console.write_line('Skipping question due to given flags') return - if not is_unittest: + if not is_unittest and not is_library: self._use_application_api = Console.read('Do you want to use application base? (y/n) ').lower() == 'y' if not is_unittest and self._use_application_api: @@ -194,8 +201,7 @@ class NewService(CommandABC): explicit_path=os.path.join(self._env.working_directory, project, self._project.python_executable.replace('../', '')) ) - @staticmethod - def _read_custom_project_types_from_path(path: str): + def _read_custom_project_types_from_path(self, path: str): if not os.path.exists(os.path.join(path, '.cpl')): return @@ -207,28 +213,28 @@ class NewService(CommandABC): try: exec(open(os.path.join(r, file), 'r').read()) + self._project_type_classes.update(ProjectTypeABC.__subclasses__()) except Exception as e: Console.error(str(e), traceback.format_exc()) sys.exit(-1) def _create_project(self, project_type: str): for package_name in Dependencies.get_cpl_packages(): + if package_name == 'cpl-cli': + continue package = importlib.import_module(String.convert_to_snake_case(package_name[0])) self._read_custom_project_types_from_path(os.path.dirname(package.__file__)) self._read_custom_project_types_from_path(self._env.working_directory) + self._read_custom_project_types_from_path(self._env.runtime_directory) - if len(ProjectTypeABC.__subclasses__()) == 0: + if len(self._project_type_classes) == 0: Console.error(f'No project types found in template directory: .cpl') sys.exit() project_class = None known_project_types = [] - for p in ProjectTypeABC.__subclasses__(): - if p.__name__ in known_project_types: - Console.error(f'Duplicate of project type {p.__name__} found!') - sys.exit() - + for p in self._project_type_classes: known_project_types.append(p.__name__) if p.__name__.lower() != project_type and p.__name__.lower()[0] != project_type[0]: continue @@ -247,7 +253,7 @@ class NewService(CommandABC): if path is None: return - self._get_project_information() + self._get_project_information(project_type) project_name = self._project.name if self._rel_path != '': project_name = f'{self._rel_path}/{project_name}' diff --git a/src/cpl_cli/configuration/project_settings.py b/src/cpl_cli/configuration/project_settings.py index 5b90399d..acdc9963 100644 --- a/src/cpl_cli/configuration/project_settings.py +++ b/src/cpl_cli/configuration/project_settings.py @@ -123,10 +123,16 @@ class ProjectSettings(ConfigurationModelABC): self._python_path = settings[ProjectSettingsNameEnum.python_path.value] if ProjectSettingsNameEnum.python_path.value in settings and sys.platform in settings[ProjectSettingsNameEnum.python_path.value]: - path = f'{settings[ProjectSettingsNameEnum.python_path.value][sys.platform]}/bin/python' + path = f'{settings[ProjectSettingsNameEnum.python_path.value][sys.platform]}' + if path == '' or path is None: Error.warn(f'{ProjectSettingsNameEnum.python_path.value} not set') path = sys.executable + else: + if not path.endswith('bin/python'): + if not path.endswith('/') and len(path) > 0: + path += '/' + path += 'bin/python' else: path = sys.executable diff --git a/src/cpl_cli/configuration/venv_helper_service.py b/src/cpl_cli/configuration/venv_helper_service.py index 28a59171..9cd1d861 100644 --- a/src/cpl_cli/configuration/venv_helper_service.py +++ b/src/cpl_cli/configuration/venv_helper_service.py @@ -17,7 +17,7 @@ class VenvHelper: if is_virtual: return - venv_path = os.path.abspath(os.path.join(env.working_directory, project_settings.python_executable)) + venv_path = os.path.abspath(os.path.join(env.working_directory, project_settings.python_executable, '../../')) if explicit_path is not None: venv_path = os.path.abspath(explicit_path) @@ -31,7 +31,7 @@ class VenvHelper: spinner_foreground_color=ForegroundColorEnum.cyan ) - Pip.set_executable(venv_path) + Pip.set_executable(project_settings.python_executable) @staticmethod def create_venv(path): diff --git a/src/cpl_cli/startup_migration_extension.py b/src/cpl_cli/startup_migration_extension.py index a7a6f5d1..e8d8d4d6 100644 --- a/src/cpl_cli/startup_migration_extension.py +++ b/src/cpl_cli/startup_migration_extension.py @@ -1,18 +1,11 @@ -import os -from typing import Optional - -from cpl_cli.command.custom_script_service import CustomScriptService -from cpl_cli.configuration.workspace_settings import WorkspaceSettings from cpl_cli.migrations.base.migration_abc import MigrationABC from cpl_cli.migrations.base.migration_service_abc import MigrationServiceABC from cpl_cli.migrations.migration_2022_10 import Migration202210 from cpl_cli.migrations.service.migration_service import MigrationService from cpl_core.application.startup_extension_abc import StartupExtensionABC -from cpl_core.configuration.argument_type_enum import ArgumentTypeEnum from cpl_core.configuration.configuration_abc import ConfigurationABC from cpl_core.dependency_injection.service_collection_abc import ServiceCollectionABC from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC -from cpl_core.utils.string import String class StartupMigrationExtension(StartupExtensionABC): diff --git a/src/cpl_cli/test_enum.py b/src/cpl_cli/test_enum.py deleted file mode 100644 index 425ab6c1..00000000 --- a/src/cpl_cli/test_enum.py +++ /dev/null @@ -1 +0,0 @@ -# imports diff --git a/src/cpl_cli/test_init.py b/src/cpl_cli/test_init.py deleted file mode 100644 index 425ab6c1..00000000 --- a/src/cpl_cli/test_init.py +++ /dev/null @@ -1 +0,0 @@ -# imports diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index b2260ba4..931f24d1 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -53,7 +53,11 @@ "*/logs", "*/tests" ], - "PackageData": {}, + "PackageData": { + "cpl_core": [ + ".cpl/*.py" + ] + }, "ProjectReferences": [] } } \ No newline at end of file diff --git a/src/cpl_core/utils/pip.py b/src/cpl_core/utils/pip.py index ebf887a1..a75d69a4 100644 --- a/src/cpl_core/utils/pip.py +++ b/src/cpl_core/utils/pip.py @@ -33,7 +33,7 @@ class Pip: return cls._executable = executable - if not os.path.islink(cls._executable): + if not os.path.islink(cls._executable) or not os.path.isfile(executable): return path = os.path.dirname(os.path.dirname(cls._executable)) @@ -119,6 +119,7 @@ class Pip: if source is not None: pip_args.append(f'--extra-index-url') pip_args.append(source) + subprocess.run(pip_args, stdout=stdout, stderr=stderr, env=cls._env) @classmethod diff --git a/src/cpl_discord/cpl-discord.json b/src/cpl_discord/cpl-discord.json index a515bca1..89e2d110 100644 --- a/src/cpl_discord/cpl-discord.json +++ b/src/cpl_discord/cpl-discord.json @@ -40,7 +40,11 @@ "*/logs", "*/tests" ], - "PackageData": {}, + "PackageData": { + "cpl_discord": [ + ".cpl/*.py" + ] + }, "ProjectReferences": [] } } \ No newline at end of file diff --git a/src/cpl_query/cpl-query.json b/src/cpl_query/cpl-query.json index 48aede0d..96e6c188 100644 --- a/src/cpl_query/cpl-query.json +++ b/src/cpl_query/cpl-query.json @@ -34,7 +34,10 @@ "*/logs", "*/tests" ], - "PackageData": {}, + "PackageData": { + "cpl_query": [ + ".cpl/*.py" + ]}, "ProjectReferences": [] } } \ No newline at end of file diff --git a/src/cpl_translation/cpl-translation.json b/src/cpl_translation/cpl-translation.json index 182fa5ed..f3a36a79 100644 --- a/src/cpl_translation/cpl-translation.json +++ b/src/cpl_translation/cpl-translation.json @@ -40,7 +40,10 @@ "*/logs", "*/tests" ], - "PackageData": {}, + "PackageData": { + "cpl_translation": [ + ".cpl/*.py" + ]}, "ProjectReferences": [] } } \ No newline at end of file diff --git a/unittests/unittests_cli/install_test_case.py b/unittests/unittests_cli/install_test_case.py index eaa2a367..6f773886 100644 --- a/unittests/unittests_cli/install_test_case.py +++ b/unittests/unittests_cli/install_test_case.py @@ -34,14 +34,14 @@ class InstallTestCase(CommandTestCase): def setUp(self): if not os.path.exists(PLAYGROUND_PATH): os.makedirs(PLAYGROUND_PATH) - + os.chdir(PLAYGROUND_PATH) # create projects - CLICommands.new('console', self._source, '--ab', '--s') + CLICommands.new('console', self._source, '--ab', '--s', '--venv') os.chdir(os.path.join(os.getcwd(), self._source)) def _get_installed_packages(self) -> dict: - reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze']) + reqs = subprocess.check_output([os.path.join(os.getcwd(), 'venv/bin/python'), '-m', 'pip', 'freeze']) return dict([tuple(r.decode().split('==')) for r in reqs.split()]) def test_install_package(self): @@ -50,16 +50,20 @@ class InstallTestCase(CommandTestCase): package = f'{package_name}=={version}' CLICommands.install(package) settings = self._get_project_settings() - self.assertNotEqual(settings, {}) - self.assertIn('ProjectSettings', settings) - self.assertIn('Dependencies', settings['ProjectSettings']) - self.assertIn( - package, - settings['ProjectSettings']['Dependencies'] - ) - packages = self._get_installed_packages() - self.assertIn(package_name, packages) - self.assertEqual(version, packages[package_name]) + + with self.subTest(msg='Project deps'): + self.assertNotEqual(settings, {}) + self.assertIn('ProjectSettings', settings) + self.assertIn('Dependencies', settings['ProjectSettings']) + self.assertIn( + package, + settings['ProjectSettings']['Dependencies'] + ) + + with self.subTest(msg='PIP'): + packages = self._get_installed_packages() + self.assertIn(package_name, packages) + self.assertEqual(version, packages[package_name]) def test_dev_install_package(self): version = '1.7.3' @@ -67,21 +71,25 @@ class InstallTestCase(CommandTestCase): package = f'{package_name}=={version}' CLICommands.install(package, is_dev=True) settings = self._get_project_settings() - self.assertNotEqual(settings, {}) - self.assertIn('ProjectSettings', settings) - self.assertIn('Dependencies', settings['ProjectSettings']) - self.assertIn('DevDependencies', settings['ProjectSettings']) - self.assertNotIn( - package, - settings['ProjectSettings']['Dependencies'] - ) - self.assertIn( - package, - settings['ProjectSettings']['DevDependencies'] - ) - packages = self._get_installed_packages() - self.assertIn(package_name, packages) - self.assertEqual(version, packages[package_name]) + + with self.subTest(msg='Project deps'): + self.assertNotEqual(settings, {}) + self.assertIn('ProjectSettings', settings) + self.assertIn('Dependencies', settings['ProjectSettings']) + self.assertIn('DevDependencies', settings['ProjectSettings']) + self.assertNotIn( + package, + settings['ProjectSettings']['Dependencies'] + ) + self.assertIn( + package, + settings['ProjectSettings']['DevDependencies'] + ) + + with self.subTest(msg='PIP'): + packages = self._get_installed_packages() + self.assertIn(package_name, packages) + self.assertEqual(version, packages[package_name]) def _test_install_all(self): version = '1.7.3' @@ -120,5 +128,3 @@ class InstallTestCase(CommandTestCase): packages = self._get_installed_packages() self.assertIn(package_name, packages) self.assertEqual(version, packages[package_name]) - - diff --git a/unittests/unittests_cli/new_test_case.py b/unittests/unittests_cli/new_test_case.py index 80ff154d..b744f012 100644 --- a/unittests/unittests_cli/new_test_case.py +++ b/unittests/unittests_cli/new_test_case.py @@ -14,14 +14,15 @@ class NewTestCase(CommandTestCase): CommandTestCase.__init__(self, method_name) def _test_project(self, project_type: str, name: str, *args, test_venv=False, without_ws=False): - CLICommands.new(project_type, name, *args) + CLICommands.new(project_type, name, *args, output=False) workspace_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, name)) self.assertTrue(os.path.exists(workspace_path)) if test_venv: - self.assertTrue(os.path.exists(os.path.join(workspace_path, 'venv'))) - self.assertTrue(os.path.exists(os.path.join(workspace_path, 'venv/bin'))) - self.assertTrue(os.path.exists(os.path.join(workspace_path, 'venv/bin/python'))) - self.assertTrue(os.path.islink(os.path.join(workspace_path, 'venv/bin/python'))) + with self.subTest(msg='Venv exists'): + self.assertTrue(os.path.exists(os.path.join(workspace_path, 'venv'))) + self.assertTrue(os.path.exists(os.path.join(workspace_path, 'venv/bin'))) + self.assertTrue(os.path.exists(os.path.join(workspace_path, 'venv/bin/python'))) + self.assertTrue(os.path.islink(os.path.join(workspace_path, 'venv/bin/python'))) base = 'src' if '--base' in args and '/' in name: @@ -32,34 +33,46 @@ class NewTestCase(CommandTestCase): if without_ws: project_path = os.path.abspath(os.path.join(PLAYGROUND_PATH, base, name, 'src/', String.convert_to_snake_case(name))) - self.assertTrue(os.path.exists(project_path)) - self.assertTrue(os.path.exists(os.path.join(project_path, f'{name}.json'))) - self.assertTrue(os.path.exists(os.path.join(project_path, f'main.py'))) + with self.subTest(msg='Project json exists'): + self.assertTrue(os.path.exists(project_path)) + self.assertTrue(os.path.exists(os.path.join(project_path, f'{name}.json'))) - if '--ab' in args: - self.assertTrue(os.path.isfile(os.path.join(project_path, f'application.py'))) - else: - self.assertFalse(os.path.isfile(os.path.join(project_path, f'application.py'))) + if project_type == 'library': + with self.subTest(msg='Library class1 exists'): + self.assertTrue(os.path.exists(os.path.join(project_path, f'class1.py'))) + return + + with self.subTest(msg='Project main.py exists'): + self.assertTrue(os.path.exists(os.path.join(project_path, f'main.py'))) + + with self.subTest(msg='Application base'): + if '--ab' in args: + self.assertTrue(os.path.isfile(os.path.join(project_path, f'application.py'))) + else: + self.assertFalse(os.path.isfile(os.path.join(project_path, f'application.py'))) # s depends on ab - if '--ab' in args and '--s' in args: - self.assertTrue(os.path.isfile(os.path.join(project_path, f'startup.py'))) - else: - self.assertFalse(os.path.isfile(os.path.join(project_path, f'startup.py'))) + with self.subTest(msg='Startup'): + if '--ab' in args and '--s' in args: + self.assertTrue(os.path.isfile(os.path.join(project_path, f'startup.py'))) + else: + self.assertFalse(os.path.isfile(os.path.join(project_path, f'startup.py'))) - if project_type == 'unittest': - self.assertTrue(os.path.isfile(os.path.join(project_path, f'test_case.py'))) - else: - self.assertFalse(os.path.isfile(os.path.join(project_path, f'test_case.py'))) + with self.subTest(msg='Unittest'): + if project_type == 'unittest': + self.assertTrue(os.path.isfile(os.path.join(project_path, f'test_case.py'))) + else: + self.assertFalse(os.path.isfile(os.path.join(project_path, f'test_case.py'))) - if project_type == 'discord-bot': - self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/__init__.py'))) - self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) - self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/__init__.py'))) - self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) - else: - self.assertFalse(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) - self.assertFalse(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) + with self.subTest(msg='Discord'): + if project_type == 'discord-bot': + self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/__init__.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/__init__.py'))) + self.assertTrue(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) + else: + self.assertFalse(os.path.isfile(os.path.join(project_path, f'events/on_ready_event.py'))) + self.assertFalse(os.path.isfile(os.path.join(project_path, f'commands/ping_command.py'))) def _test_sub_project(self, project_type: str, name: str, workspace_name: str, *args, test_venv=False): os.chdir(os.path.abspath(os.path.join(os.getcwd(), workspace_name))) diff --git a/unittests/unittests_cli/publish_test_case.py b/unittests/unittests_cli/publish_test_case.py index a167fa19..7877e633 100644 --- a/unittests/unittests_cli/publish_test_case.py +++ b/unittests/unittests_cli/publish_test_case.py @@ -10,7 +10,6 @@ from unittests_shared.cli_commands import CLICommands class PublishTestCase(CommandTestCase): - _skip_tear_down = True def __init__(self, method_name: str): CommandTestCase.__init__(self, method_name) diff --git a/unittests/unittests_cli/version_test_case.py b/unittests/unittests_cli/version_test_case.py index d409db77..3ba980ff 100644 --- a/unittests/unittests_cli/version_test_case.py +++ b/unittests/unittests_cli/version_test_case.py @@ -66,22 +66,30 @@ class VersionTestCase(CommandTestCase): self._get_version_output(version) reference_banner = colored(text2art(self._name), ForegroundColorEnum.yellow.value).split('\n') reference_banner = "\n".join(reference_banner[:len(reference_banner) - 1]) + '\n' - self.assertEqual(reference_banner, self._block_banner) + + with self.subTest(msg='Block banner'): + self.assertEqual(reference_banner, self._block_banner) reference_version = [ colored(f'{colored("Common Python library CLI: ")}{colored(cpl_cli.__version__)}'), colored(f'{colored("Python: ")}{colored(f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}")}'), colored(f'OS: {colored(f"{platform.system()} {platform.processor()}")}') + '\n' ] - self.assertEqual('\n'.join(reference_version), self._block_version) + with self.subTest(msg='Block version'): + self.assertEqual('\n'.join(reference_version), self._block_version) reference_cpl_packages = [ colored(colored(f'CPL packages:')), colored(f'{tabulate(cpl_packages, headers=["Name", "Version"])}') + '\n' ] - self.assertEqual('\n'.join(reference_cpl_packages), self._block_cpl_packages) + with self.subTest(msg='Block cpl packages'): + self.assertEqual('\n'.join(reference_cpl_packages), self._block_cpl_packages) reference_packages = [ colored(colored(f'Python packages:')), colored(f'{tabulate(packages, headers=["Name", "Version"])}'), - '\x1b[0m\x1b[0m\n\x1b[0m\x1b[0m\n' # fix colored codes + '\x1b[0m\x1b[0m\n\x1b[0m\x1b[0m\n\x1b[0m\x1b[0m\n' # fix colored codes ] - self.assertEqual('\n'.join(reference_packages), self._block_packages) + + self.maxDiff = None + with self.subTest(msg='Block packages'): + ref_packages = '\n'.join(reference_packages) + self.assertEqual(ref_packages, self._block_packages) -- 2.49.1 From b95d90a191bace4787c6cac9d4b81513a7ab610a Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 19 Dec 2022 08:36:24 +0100 Subject: [PATCH 022/124] Fixed python path in project settings #144 --- src/cpl_cli/configuration/project_settings.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/cpl_cli/configuration/project_settings.py b/src/cpl_cli/configuration/project_settings.py index acdc9963..a06435ad 100644 --- a/src/cpl_cli/configuration/project_settings.py +++ b/src/cpl_cli/configuration/project_settings.py @@ -130,9 +130,7 @@ class ProjectSettings(ConfigurationModelABC): path = sys.executable else: if not path.endswith('bin/python'): - if not path.endswith('/') and len(path) > 0: - path += '/' - path += 'bin/python' + path = os.path.join('bin/python') else: path = sys.executable -- 2.49.1 From 889f51f5c50ce2e8aed7c0295471660657ade3f8 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Tue, 20 Dec 2022 14:29:43 +0100 Subject: [PATCH 023/124] Fixed python path in settings --- src/cpl_cli/configuration/project_settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpl_cli/configuration/project_settings.py b/src/cpl_cli/configuration/project_settings.py index a06435ad..86e2dbc3 100644 --- a/src/cpl_cli/configuration/project_settings.py +++ b/src/cpl_cli/configuration/project_settings.py @@ -130,7 +130,7 @@ class ProjectSettings(ConfigurationModelABC): path = sys.executable else: if not path.endswith('bin/python'): - path = os.path.join('bin/python') + path = os.path.join(path, 'bin/python') else: path = sys.executable -- 2.49.1 From 2fb515195c93bdc185a57df502f6762856a567fa Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Tue, 20 Dec 2022 14:34:55 +0100 Subject: [PATCH 024/124] Improved query performance test --- unittests/unittests_query/performance_test_case.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unittests/unittests_query/performance_test_case.py b/unittests/unittests_query/performance_test_case.py index d3f9c205..69c2776a 100644 --- a/unittests/unittests_query/performance_test_case.py +++ b/unittests/unittests_query/performance_test_case.py @@ -28,8 +28,8 @@ class PerformanceTestCase(unittest.TestCase): print(f'i: {iterable}s') print(f'e: {enumerable}s') - self.assertLess(default, enumerable) - self.assertLess(default, iterable) + self.assertAlmostEqual(round(default, 3), round(enumerable, 3)) + self.assertAlmostEqual(round(default, 3), round(iterable, 3)) def test_where_single(self): default = timeit.timeit(lambda: [x for x in list(range(0, VALUES)) if x == 50], number=COUNT) -- 2.49.1 From c09f2f8e83a468f4559244c6aed3fb51d12f76fa Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Tue, 20 Dec 2022 14:50:35 +0100 Subject: [PATCH 025/124] Fixed scoped #148 --- .../dependency_injection/service_provider.py | 2 +- tests/custom/di/src/di/application.py | 29 +++++++++---------- tests/custom/di/src/di/di.json | 5 +++- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/cpl_core/dependency_injection/service_provider.py b/src/cpl_core/dependency_injection/service_provider.py index 0819432b..acf3cb95 100644 --- a/src/cpl_core/dependency_injection/service_provider.py +++ b/src/cpl_core/dependency_injection/service_provider.py @@ -93,7 +93,7 @@ class ServiceProvider(ServiceProviderABC): self._scope = scope def create_scope(self) -> ScopeABC: - sb = ScopeBuilder(ServiceProvider(self._service_descriptors, self._configuration, self._database_context)) + sb = ScopeBuilder(ServiceProvider(copy.deepcopy(self._service_descriptors), self._configuration, self._database_context)) return sb.build() def get_service(self, service_type: type) -> Optional[object]: diff --git a/tests/custom/di/src/di/application.py b/tests/custom/di/src/di/application.py index ec91c6ad..bdb0cdfc 100644 --- a/tests/custom/di/src/di/application.py +++ b/tests/custom/di/src/di/application.py @@ -20,26 +20,23 @@ class Application(ApplicationABC): pass def main(self): - Console.write_line('Scope1') - scope1: Scope = self._services.create_scope() - ts: TestService = scope1.service_provider.get_service(TestService) - ts.run() - dit: DITesterService = scope1.service_provider.get_service(DITesterService) - dit.run() - t = scope1 - b = t.service_provider - scope1.dispose() + with self._services.create_scope() as scope: + Console.write_line('Scope1') + ts: TestService = scope.service_provider.get_service(TestService) + ts.run() + dit: DITesterService = scope.service_provider.get_service(DITesterService) + dit.run() #Console.write_line('Disposed:') #ts1: TestService = scope1.service_provider.get_service(TestService) #ts1.run() - - Console.write_line('Scope2') - scope2: Scope = self._services.create_scope() - ts: TestService = scope2.service_provider.get_service(TestService) - ts.run() - dit: DITesterService = scope2.service_provider.get_service(DITesterService) - dit.run() + + with self._services.create_scope() as scope: + Console.write_line('Scope2') + ts: TestService = scope.service_provider.get_service(TestService) + ts.run() + dit: DITesterService = scope.service_provider.get_service(DITesterService) + dit.run() Console.write_line('Global') self._part_of_scoped() diff --git a/tests/custom/di/src/di/di.json b/tests/custom/di/src/di/di.json index 67ca9bd5..8058551d 100644 --- a/tests/custom/di/src/di/di.json +++ b/tests/custom/di/src/di/di.json @@ -16,7 +16,10 @@ "LicenseName": "", "LicenseDescription": "", "Dependencies": [ - "sh_cpl>=2021.10.0.post1" + "cpl-core==2022.12.0" + ], + "DevDependencies": [ + "cpl-cli==2022.12.0" ], "PythonVersion": ">=3.9.2", "PythonPath": {}, -- 2.49.1 From d600852bec1060df1b6800fc1a2cfa05d6b4265a Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 22 Dec 2022 18:52:17 +0100 Subject: [PATCH 026/124] Added logic to support global service provider #148 --- src/cpl_core/configuration/configuration.py | 2 +- .../configuration/configuration_abc.py | 4 +- .../service_collection.py | 13 +++-- .../service_collection_abc.py | 7 +-- .../dependency_injection/service_provider.py | 54 +++++++++++++------ .../service_provider_abc.py | 26 +++++++-- tests/custom/di/src/di/application.py | 20 ++++--- tests/custom/di/src/di/di_tester_service.py | 2 +- tests/custom/di/src/di/startup.py | 4 +- tests/custom/di/src/di/static_test.py | 11 ++++ 10 files changed, 102 insertions(+), 41 deletions(-) create mode 100644 tests/custom/di/src/di/static_test.py diff --git a/src/cpl_core/configuration/configuration.py b/src/cpl_core/configuration/configuration.py index 11ddbd32..84ba9011 100644 --- a/src/cpl_core/configuration/configuration.py +++ b/src/cpl_core/configuration/configuration.py @@ -268,7 +268,7 @@ class Configuration(ConfigurationABC): configuration.from_dict(value) self.add_configuration(sub, configuration) - def add_configuration(self, key_type: Union[str, type], value: any): + def add_configuration(self, key_type: T, value: any): self._config[key_type] = value def create_console_argument(self, arg_type: ArgumentTypeEnum, token: str, name: str, aliases: list[str], diff --git a/src/cpl_core/configuration/configuration_abc.py b/src/cpl_core/configuration/configuration_abc.py index 5b748ff1..fd1ccced 100644 --- a/src/cpl_core/configuration/configuration_abc.py +++ b/src/cpl_core/configuration/configuration_abc.py @@ -76,7 +76,7 @@ class ConfigurationABC(ABC): pass @abstractmethod - def add_configuration(self, key_type: Union[str, type], value: any): + def add_configuration(self, key_type: T, value: any): r"""Add configuration object Parameter @@ -126,7 +126,7 @@ class ConfigurationABC(ABC): pass @abstractmethod - def get_configuration(self, search_type: Union[str, Type[ConfigurationModelABC]]) -> Optional[T]: + def get_configuration(self, search_type: Type[T]) -> Optional[T]: r"""Returns value from configuration by given type Parameter diff --git a/src/cpl_core/dependency_injection/service_collection.py b/src/cpl_core/dependency_injection/service_collection.py index 8be84578..af861881 100644 --- a/src/cpl_core/dependency_injection/service_collection.py +++ b/src/cpl_core/dependency_injection/service_collection.py @@ -11,6 +11,7 @@ from cpl_core.dependency_injection.service_provider_abc import ServiceProviderAB from cpl_core.logging.logger_abc import LoggerABC from cpl_core.logging.logger_service import Logger from cpl_core.pipes.pipe_abc import PipeABC +from cpl_core.type import T class ServiceCollection(ServiceCollectionABC): @@ -53,22 +54,26 @@ class ServiceCollection(ServiceCollectionABC): def add_logging(self): self.add_singleton(LoggerABC, Logger) + return self def add_pipes(self): for pipe in PipeABC.__subclasses__(): self.add_transient(PipeABC, pipe) + return self - def add_singleton(self, service_type: Union[type, object], service: Union[type, object] = None): + def add_singleton(self, service_type: T, service: T = None): self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.singleton, service) return self - def add_scoped(self, service_type: Type, service: Callable = None): + def add_scoped(self, service_type: T, service: Callable = None): self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.scoped, service) return self - def add_transient(self, service_type: type, service: type = None): + def add_transient(self, service_type: T, service: T = None): self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.transient, service) return self def build_service_provider(self) -> ServiceProviderABC: - return ServiceProvider(self._service_descriptors, self._configuration, self._database_context) + sp = ServiceProvider(self._service_descriptors, self._configuration, self._database_context) + ServiceProviderABC.set_global_provider(sp) + return sp diff --git a/src/cpl_core/dependency_injection/service_collection_abc.py b/src/cpl_core/dependency_injection/service_collection_abc.py index a8d5c6a3..7de41dd2 100644 --- a/src/cpl_core/dependency_injection/service_collection_abc.py +++ b/src/cpl_core/dependency_injection/service_collection_abc.py @@ -5,6 +5,7 @@ from typing import Type from cpl_core.database.database_settings import DatabaseSettings from cpl_core.database.context.database_context_abc import DatabaseContextABC from cpl_core.dependency_injection.service_provider_abc import ServiceProviderABC +from cpl_core.type import T class ServiceCollectionABC(ABC): @@ -46,7 +47,7 @@ class ServiceCollectionABC(ABC): pass @abstractmethod - def add_transient(self, service_type: Type, service: Callable = None) -> 'ServiceCollectionABC': + def add_transient(self, service_type: T, service: T = None) -> 'ServiceCollectionABC': r"""Adds a service with transient lifetime Parameter @@ -63,7 +64,7 @@ class ServiceCollectionABC(ABC): pass @abstractmethod - def add_scoped(self, service_type: Type, service: Callable = None) -> 'ServiceCollectionABC': + def add_scoped(self, service_type: T, service: T = None) -> 'ServiceCollectionABC': r"""Adds a service with scoped lifetime Parameter @@ -80,7 +81,7 @@ class ServiceCollectionABC(ABC): pass @abstractmethod - def add_singleton(self, service_type: Type, service: Callable = None) -> 'ServiceCollectionABC': + def add_singleton(self, service_type: T, service: T = None) -> 'ServiceCollectionABC': r"""Adds a service with singleton lifetime Parameter diff --git a/src/cpl_core/dependency_injection/service_provider.py b/src/cpl_core/dependency_injection/service_provider.py index acf3cb95..b5438f6d 100644 --- a/src/cpl_core/dependency_injection/service_provider.py +++ b/src/cpl_core/dependency_injection/service_provider.py @@ -1,6 +1,7 @@ import copy -from inspect import signature, Parameter -from typing import Optional +import functools +from inspect import signature, Parameter, Signature +from typing import Optional, Callable from cpl_core.configuration.configuration_abc import ConfigurationABC from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC @@ -12,6 +13,7 @@ from cpl_core.dependency_injection.service_provider_abc import ServiceProviderAB from cpl_core.dependency_injection.service_descriptor import ServiceDescriptor from cpl_core.dependency_injection.service_lifetime_enum import ServiceLifetimeEnum from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC +from cpl_core.type import T class ServiceProvider(ServiceProviderABC): @@ -54,17 +56,9 @@ class ServiceProvider(ServiceProviderABC): return implementation - def build_service(self, service_type: type) -> object: - for descriptor in self._service_descriptors: - if descriptor.service_type == service_type or issubclass(descriptor.service_type, service_type): - if descriptor.implementation is not None: - service_type = type(descriptor.implementation) - else: - service_type = descriptor.service_type + # raise Exception(f'Service {parameter.annotation} not found') - break - - sig = signature(service_type.__init__) + def build_by_signature(self, sig: Signature) -> list[T]: params = [] for param in sig.parameters.items(): parameter = param[1] @@ -87,16 +81,31 @@ class ServiceProvider(ServiceProviderABC): else: params.append(self._get_service(parameter)) + return params + + def build_service(self, service_type: T) -> object: + for descriptor in self._service_descriptors: + if descriptor.service_type == service_type or issubclass(descriptor.service_type, service_type): + if descriptor.implementation is not None: + service_type = type(descriptor.implementation) + else: + service_type = descriptor.service_type + + break + + sig = signature(service_type.__init__) + params = self.build_by_signature(sig) + return service_type(*params) - + def set_scope(self, scope: ScopeABC): self._scope = scope - + def create_scope(self) -> ScopeABC: sb = ScopeBuilder(ServiceProvider(copy.deepcopy(self._service_descriptors), self._configuration, self._database_context)) return sb.build() - def get_service(self, service_type: type) -> Optional[object]: + def get_service(self, service_type: T) -> Optional[T]: result = self._find_service(service_type) if result is None: @@ -110,3 +119,18 @@ class ServiceProvider(ServiceProviderABC): result.implementation = implementation return implementation + + @classmethod + def inject(cls, f=None): + if f is None: + return functools.partial(cls.inject) + + @functools.wraps(f) + def inner(*args, **kwargs): + if cls._provider is None: + raise Exception(f'{cls.__name__} not build!') + + injection = cls._provider.build_by_signature(signature(f)) + return f(*injection, *args, **kwargs) + + return inner diff --git a/src/cpl_core/dependency_injection/service_provider_abc.py b/src/cpl_core/dependency_injection/service_provider_abc.py index 9ed6fd7f..6023aa20 100644 --- a/src/cpl_core/dependency_injection/service_provider_abc.py +++ b/src/cpl_core/dependency_injection/service_provider_abc.py @@ -1,18 +1,29 @@ from abc import abstractmethod, ABC +from inspect import Signature from typing import Type, Optional + from cpl_core.dependency_injection.scope_abc import ScopeABC +from cpl_core.type import T class ServiceProviderABC(ABC): r"""ABC for the class :class:`cpl_core.dependency_injection.service_provider.ServiceProvider`""" - @abstractmethod - def __init__(self): - pass + _provider: Optional['ServiceProviderABC'] = None @abstractmethod - def build_service(self, service_type: Type) -> object: + def __init__(self): pass + + @classmethod + def set_global_provider(cls, provider: 'ServiceProviderABC'): + cls._provider = provider + + @abstractmethod + def build_by_signature(self, sig: Signature) -> list[T]: pass + + @abstractmethod + def build_service(self, service_type: T) -> object: r"""Creates instance of given type Parameter @@ -48,7 +59,7 @@ class ServiceProviderABC(ABC): pass @abstractmethod - def get_service(self, instance_type: Type) -> Optional[object]: + def get_service(self, instance_type: T) -> Optional[T]: r"""Returns instance of given type Parameter @@ -61,3 +72,8 @@ class ServiceProviderABC(ABC): Object of type Optional[Callable[:class:`object`]] """ pass + + # @classmethod + # @abstractmethod + # def inject(cls): + # pass diff --git a/tests/custom/di/src/di/application.py b/tests/custom/di/src/di/application.py index bdb0cdfc..34bdf17e 100644 --- a/tests/custom/di/src/di/application.py +++ b/tests/custom/di/src/di/application.py @@ -3,8 +3,9 @@ from cpl_core.configuration import ConfigurationABC from cpl_core.console.console import Console from cpl_core.dependency_injection import ServiceProviderABC from cpl_core.dependency_injection.scope import Scope -from test_service_service import TestService -from di_tester_service import DITesterService +from di.static_test import StaticTest +from di.test_service_service import TestService +from di.di_tester_service import DITesterService class Application(ApplicationABC): @@ -15,7 +16,7 @@ class Application(ApplicationABC): def _part_of_scoped(self): ts: TestService = self._services.get_service(TestService) ts.run() - + def configure(self): pass @@ -26,10 +27,10 @@ class Application(ApplicationABC): ts.run() dit: DITesterService = scope.service_provider.get_service(DITesterService) dit.run() - - #Console.write_line('Disposed:') - #ts1: TestService = scope1.service_provider.get_service(TestService) - #ts1.run() + + # Console.write_line('Disposed:') + # ts1: TestService = scope1.service_provider.get_service(TestService) + # ts1.run() with self._services.create_scope() as scope: Console.write_line('Scope2') @@ -37,6 +38,9 @@ class Application(ApplicationABC): ts.run() dit: DITesterService = scope.service_provider.get_service(DITesterService) dit.run() - + Console.write_line('Global') self._part_of_scoped() + StaticTest.test() + with self._services.create_scope() as scope: + StaticTest.test() diff --git a/tests/custom/di/src/di/di_tester_service.py b/tests/custom/di/src/di/di_tester_service.py index 27a40b85..db30e4f3 100644 --- a/tests/custom/di/src/di/di_tester_service.py +++ b/tests/custom/di/src/di/di_tester_service.py @@ -1,5 +1,5 @@ from cpl_core.console.console import Console -from test_service_service import TestService +from di.test_service_service import TestService class DITesterService: diff --git a/tests/custom/di/src/di/startup.py b/tests/custom/di/src/di/startup.py index 9f56c8be..e52192ca 100644 --- a/tests/custom/di/src/di/startup.py +++ b/tests/custom/di/src/di/startup.py @@ -2,8 +2,8 @@ from cpl_core.application import StartupABC from cpl_core.configuration import ConfigurationABC from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC from cpl_core.environment import ApplicationEnvironment -from test_service_service import TestService -from di_tester_service import DITesterService +from di.test_service_service import TestService +from di.di_tester_service import DITesterService class Startup(StartupABC): diff --git a/tests/custom/di/src/di/static_test.py b/tests/custom/di/src/di/static_test.py new file mode 100644 index 00000000..ade713dc --- /dev/null +++ b/tests/custom/di/src/di/static_test.py @@ -0,0 +1,11 @@ +from cpl_core.configuration import ConfigurationABC +from cpl_core.dependency_injection import ServiceProvider, ServiceProviderABC +from di.test_service_service import TestService + + +class StaticTest: + + @staticmethod + @ServiceProvider.inject + def test(services: ServiceProviderABC, config: ConfigurationABC, t1: TestService): + t1.run() -- 2.49.1 From 713fa5243c4b398e32973930e986a71642b11ffc Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Fri, 23 Dec 2022 16:09:28 +0100 Subject: [PATCH 027/124] Fixed publisher service --- src/cpl_cli/publish/publisher_service.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpl_cli/publish/publisher_service.py b/src/cpl_cli/publish/publisher_service.py index b1639023..22ebe291 100644 --- a/src/cpl_cli/publish/publisher_service.py +++ b/src/cpl_cli/publish/publisher_service.py @@ -64,7 +64,7 @@ class PublisherService(PublisherABC): :return: """ if self._src_path_part in file: - file = file.replace(self._src_path_part, '', 1) + file = file.split(self._src_path_part)[1].replace(self._src_path_part, '', 1) dirs = os.path.dirname(file).split(self._path_mark) for d in dirs: -- 2.49.1 From a507ed9f466304648833f80a4426957c0f624707 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Fri, 23 Dec 2022 16:45:14 +0100 Subject: [PATCH 028/124] Fixed publish all script --- cpl-workspace.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpl-workspace.json b/cpl-workspace.json index 0110e201..3c5d5f67 100644 --- a/cpl-workspace.json +++ b/cpl-workspace.json @@ -50,7 +50,7 @@ "pre-publish-all": "cpl sv $ARGS; cpl spu $ARGS;", "publish-all": "cpl publish-cli; cpl publish-core; cpl publish-discord; cpl publish-query; cpl publish-translation;", - "pa": "cpl build-all $ARGS", + "pa": "cpl publish-all $ARGS", "publish-cli": "echo 'Publish cpl-cli'; cd ./src/cpl_cli; cpl publish; cd ../../;", "publish-core": "echo 'Publish cpl-core'; cd ./src/cpl_core; cpl publish; cd ../../;", "publish-discord": "echo 'Publish cpl-discord'; cd ./src/cpl_discord; cpl publish; cd ../../;", -- 2.49.1 From 59263ece6e58defda76eeb971c84de8085f19754 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Fri, 23 Dec 2022 17:28:38 +0100 Subject: [PATCH 029/124] Added multiple instance handling #152 --- .../dependency_injection/service_provider.py | 50 +++++++++------ .../service_provider_abc.py | 63 ++++++++++++++----- tests/custom/di/src/di/application.py | 13 ++-- tests/custom/di/src/di/di_tester_service.py | 2 +- tests/custom/di/src/di/startup.py | 10 ++- tests/custom/di/src/di/static_test.py | 2 +- tests/custom/di/src/di/test1_service.py | 13 ++++ tests/custom/di/src/di/test2_service.py | 13 ++++ tests/custom/di/src/di/test_abc.py | 10 +++ ...est_service_service.py => test_service.py} | 6 +- tests/custom/di/src/di/tester.py | 9 +++ 11 files changed, 146 insertions(+), 45 deletions(-) create mode 100644 tests/custom/di/src/di/test1_service.py create mode 100644 tests/custom/di/src/di/test2_service.py create mode 100644 tests/custom/di/src/di/test_abc.py rename tests/custom/di/src/di/{test_service_service.py => test_service.py} (80%) create mode 100644 tests/custom/di/src/di/tester.py diff --git a/src/cpl_core/dependency_injection/service_provider.py b/src/cpl_core/dependency_injection/service_provider.py index b5438f6d..4e388440 100644 --- a/src/cpl_core/dependency_injection/service_provider.py +++ b/src/cpl_core/dependency_injection/service_provider.py @@ -1,17 +1,16 @@ import copy -import functools +import typing from inspect import signature, Parameter, Signature -from typing import Optional, Callable +from typing import Optional from cpl_core.configuration.configuration_abc import ConfigurationABC from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC -from cpl_core.console import Console from cpl_core.database.context.database_context_abc import DatabaseContextABC from cpl_core.dependency_injection.scope_abc import ScopeABC from cpl_core.dependency_injection.scope_builder import ScopeBuilder -from cpl_core.dependency_injection.service_provider_abc import ServiceProviderABC from cpl_core.dependency_injection.service_descriptor import ServiceDescriptor from cpl_core.dependency_injection.service_lifetime_enum import ServiceLifetimeEnum +from cpl_core.dependency_injection.service_provider_abc import ServiceProviderABC from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC from cpl_core.type import T @@ -44,7 +43,7 @@ class ServiceProvider(ServiceProviderABC): return None - def _get_service(self, parameter: Parameter) -> object: + def _get_service(self, parameter: Parameter) -> Optional[object]: for descriptor in self._service_descriptors: if descriptor.service_type == parameter.annotation or issubclass(descriptor.service_type, parameter.annotation): if descriptor.implementation is not None: @@ -58,12 +57,32 @@ class ServiceProvider(ServiceProviderABC): # raise Exception(f'Service {parameter.annotation} not found') + def _get_services(self, t: type) -> list[Optional[object]]: + implementations = [] + for descriptor in self._service_descriptors: + if descriptor.service_type == t or issubclass(descriptor.service_type, t): + if descriptor.implementation is not None: + implementations.append(descriptor.implementation) + continue + + implementation = self.build_service(descriptor.service_type) + if descriptor.lifetime == ServiceLifetimeEnum.singleton: + descriptor.implementation = implementation + + implementations.append(implementation) + + return implementations + def build_by_signature(self, sig: Signature) -> list[T]: params = [] for param in sig.parameters.items(): parameter = param[1] if parameter.name != 'self' and parameter.annotation != Parameter.empty: - if issubclass(parameter.annotation, ServiceProviderABC): + + if typing.get_origin(parameter.annotation) == list: + params.append(self._get_services(typing.get_args(parameter.annotation)[0])) + + elif issubclass(parameter.annotation, ServiceProviderABC): params.append(self) elif issubclass(parameter.annotation, ApplicationEnvironmentABC): @@ -83,7 +102,7 @@ class ServiceProvider(ServiceProviderABC): return params - def build_service(self, service_type: T) -> object: + def build_service(self, service_type: type) -> object: for descriptor in self._service_descriptors: if descriptor.service_type == service_type or issubclass(descriptor.service_type, service_type): if descriptor.implementation is not None: @@ -120,17 +139,12 @@ class ServiceProvider(ServiceProviderABC): return implementation - @classmethod - def inject(cls, f=None): - if f is None: - return functools.partial(cls.inject) + def get_services(self, service_type: T) -> list[Optional[T]]: + implementations = [] - @functools.wraps(f) - def inner(*args, **kwargs): - if cls._provider is None: - raise Exception(f'{cls.__name__} not build!') + if typing.get_origin(service_type) != list: + raise Exception(f'Invalid type {service_type}! Expected list of type') - injection = cls._provider.build_by_signature(signature(f)) - return f(*injection, *args, **kwargs) + implementations.extend(self._get_services(typing.get_args(service_type)[0])) - return inner + return implementations diff --git a/src/cpl_core/dependency_injection/service_provider_abc.py b/src/cpl_core/dependency_injection/service_provider_abc.py index 6023aa20..a3f7158c 100644 --- a/src/cpl_core/dependency_injection/service_provider_abc.py +++ b/src/cpl_core/dependency_injection/service_provider_abc.py @@ -1,8 +1,8 @@ +import functools from abc import abstractmethod, ABC -from inspect import Signature +from inspect import Signature, signature from typing import Type, Optional - from cpl_core.dependency_injection.scope_abc import ScopeABC from cpl_core.type import T @@ -23,12 +23,12 @@ class ServiceProviderABC(ABC): def build_by_signature(self, sig: Signature) -> list[T]: pass @abstractmethod - def build_service(self, service_type: T) -> object: + def build_service(self, service_type: type) -> object: r"""Creates instance of given type Parameter --------- - instance_type: :class:`Type` + instance_type: :class:`type` The type of the searched instance Returns @@ -36,25 +36,25 @@ class ServiceProviderABC(ABC): Object of the given type """ pass - + @abstractmethod def set_scope(self, scope: ScopeABC): r"""Sets the scope of service provider Parameter --------- - scope :class:`cpl_core.dependency_injection.scope.Scope` + Object of type :class:`cpl_core.dependency_injection.scope_abc.ScopeABC` Service scope """ pass - + @abstractmethod def create_scope(self) -> ScopeABC: r"""Creates a service scope Returns ------- - Object of type :class:`cpl_core.dependency_injection.scope.Scope` + Object of type :class:`cpl_core.dependency_injection.scope_abc.ScopeABC` """ pass @@ -64,16 +64,51 @@ class ServiceProviderABC(ABC): Parameter --------- - instance_type: :class:`Type` + instance_type: :class:`cpl_core.type.T` The type of the searched instance Returns ------- - Object of type Optional[Callable[:class:`object`]] + Object of type Optional[:class:`cpl_core.type.T`] """ pass - # @classmethod - # @abstractmethod - # def inject(cls): - # pass + @abstractmethod + def get_services(self, service_type: T) -> list[Optional[T]]: + r"""Returns instance of given type + + Parameter + --------- + instance_type: :class:`cpl_core.type.T` + The type of the searched instance + + Returns + ------- + Object of type list[Optional[:class:`cpl_core.type.T`] + """ + pass + + @classmethod + def inject(cls, f=None): + r"""Decorator to allow injection into static and class methods + + Parameter + --------- + f: Callable + + Returns + ------- + function + """ + if f is None: + return functools.partial(cls.inject) + + @functools.wraps(f) + def inner(*args, **kwargs): + if cls._provider is None: + raise Exception(f'{cls.__name__} not build!') + + injection = cls._provider.build_by_signature(signature(f)) + return f(*injection, *args, **kwargs) + + return inner diff --git a/tests/custom/di/src/di/application.py b/tests/custom/di/src/di/application.py index 34bdf17e..dd12be54 100644 --- a/tests/custom/di/src/di/application.py +++ b/tests/custom/di/src/di/application.py @@ -4,8 +4,10 @@ from cpl_core.console.console import Console from cpl_core.dependency_injection import ServiceProviderABC from cpl_core.dependency_injection.scope import Scope from di.static_test import StaticTest -from di.test_service_service import TestService +from di.test_abc import TestABC +from di.test_service import TestService from di.di_tester_service import DITesterService +from di.tester import Tester class Application(ApplicationABC): @@ -28,10 +30,6 @@ class Application(ApplicationABC): dit: DITesterService = scope.service_provider.get_service(DITesterService) dit.run() - # Console.write_line('Disposed:') - # ts1: TestService = scope1.service_provider.get_service(TestService) - # ts1.run() - with self._services.create_scope() as scope: Console.write_line('Scope2') ts: TestService = scope.service_provider.get_service(TestService) @@ -42,5 +40,6 @@ class Application(ApplicationABC): Console.write_line('Global') self._part_of_scoped() StaticTest.test() - with self._services.create_scope() as scope: - StaticTest.test() + + self._services.get_service(Tester) + Console.write_line(self._services.get_services(list[TestABC])) diff --git a/tests/custom/di/src/di/di_tester_service.py b/tests/custom/di/src/di/di_tester_service.py index db30e4f3..3c4f9a5d 100644 --- a/tests/custom/di/src/di/di_tester_service.py +++ b/tests/custom/di/src/di/di_tester_service.py @@ -1,5 +1,5 @@ from cpl_core.console.console import Console -from di.test_service_service import TestService +from di.test_service import TestService class DITesterService: diff --git a/tests/custom/di/src/di/startup.py b/tests/custom/di/src/di/startup.py index e52192ca..cff3eac0 100644 --- a/tests/custom/di/src/di/startup.py +++ b/tests/custom/di/src/di/startup.py @@ -2,8 +2,12 @@ from cpl_core.application import StartupABC from cpl_core.configuration import ConfigurationABC from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC from cpl_core.environment import ApplicationEnvironment -from di.test_service_service import TestService +from di.test1_service import Test1Service +from di.test2_service import Test2Service +from di.test_abc import TestABC +from di.test_service import TestService from di.di_tester_service import DITesterService +from di.tester import Tester class Startup(StartupABC): @@ -17,5 +21,9 @@ class Startup(StartupABC): def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: services.add_scoped(TestService) services.add_scoped(DITesterService) + + services.add_singleton(TestABC, Test1Service) + services.add_singleton(TestABC, Test2Service) + services.add_singleton(Tester) return services.build_service_provider() diff --git a/tests/custom/di/src/di/static_test.py b/tests/custom/di/src/di/static_test.py index ade713dc..8e500b0e 100644 --- a/tests/custom/di/src/di/static_test.py +++ b/tests/custom/di/src/di/static_test.py @@ -1,6 +1,6 @@ from cpl_core.configuration import ConfigurationABC from cpl_core.dependency_injection import ServiceProvider, ServiceProviderABC -from di.test_service_service import TestService +from di.test_service import TestService class StaticTest: diff --git a/tests/custom/di/src/di/test1_service.py b/tests/custom/di/src/di/test1_service.py new file mode 100644 index 00000000..93e39d8b --- /dev/null +++ b/tests/custom/di/src/di/test1_service.py @@ -0,0 +1,13 @@ +import string +from cpl_core.console.console import Console +from cpl_core.utils.string import String +from di.test_abc import TestABC + + +class Test1Service(TestABC): + + def __init__(self): + TestABC.__init__(self, String.random_string(string.ascii_lowercase, 8)) + + def run(self): + Console.write_line(f'Im {self._name}') diff --git a/tests/custom/di/src/di/test2_service.py b/tests/custom/di/src/di/test2_service.py new file mode 100644 index 00000000..da27db89 --- /dev/null +++ b/tests/custom/di/src/di/test2_service.py @@ -0,0 +1,13 @@ +import string +from cpl_core.console.console import Console +from cpl_core.utils.string import String +from di.test_abc import TestABC + + +class Test2Service(TestABC): + + def __init__(self): + TestABC.__init__(self, String.random_string(string.ascii_lowercase, 8)) + + def run(self): + Console.write_line(f'Im {self._name}') diff --git a/tests/custom/di/src/di/test_abc.py b/tests/custom/di/src/di/test_abc.py new file mode 100644 index 00000000..92f1aa66 --- /dev/null +++ b/tests/custom/di/src/di/test_abc.py @@ -0,0 +1,10 @@ +from abc import ABC + + +class TestABC(ABC): + + def __init__(self, name: str): + self._name = name + + def __repr__(self): + return f'<{type(self).__name__} {self._name}>' diff --git a/tests/custom/di/src/di/test_service_service.py b/tests/custom/di/src/di/test_service.py similarity index 80% rename from tests/custom/di/src/di/test_service_service.py rename to tests/custom/di/src/di/test_service.py index f99a47a1..895b658f 100644 --- a/tests/custom/di/src/di/test_service_service.py +++ b/tests/custom/di/src/di/test_service.py @@ -1,4 +1,5 @@ import string + from cpl_core.console.console import Console from cpl_core.utils.string import String @@ -7,7 +8,6 @@ class TestService: def __init__(self): self._name = String.random_string(string.ascii_lowercase, 8) - - + def run(self): - Console.write_line(f'Im {self._name}') \ No newline at end of file + Console.write_line(f'Im {self._name}') diff --git a/tests/custom/di/src/di/tester.py b/tests/custom/di/src/di/tester.py new file mode 100644 index 00000000..a43097c0 --- /dev/null +++ b/tests/custom/di/src/di/tester.py @@ -0,0 +1,9 @@ +from cpl_core.console.console import Console +from di.test_abc import TestABC + + +class Tester: + + def __init__(self, t1: TestABC, t2: TestABC, t3: list[TestABC]): + Console.write_line('Tester:') + Console.write_line(t1, t2, t3) -- 2.49.1 From 83f0e8bd424fa188e44c4ebf578af82851e0d985 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 25 Dec 2022 11:25:39 +0100 Subject: [PATCH 030/124] Set version --- src/cpl_cli/cpl-cli.json | 2 +- src/cpl_core/cpl-core.json | 2 +- src/cpl_discord/cpl-discord.json | 2 +- src/cpl_query/cpl-query.json | 2 +- src/cpl_translation/cpl-translation.json | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cpl_cli/cpl-cli.json b/src/cpl_cli/cpl-cli.json index 04b7fd6b..45ae8808 100644 --- a/src/cpl_cli/cpl-cli.json +++ b/src/cpl_cli/cpl-cli.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "dev144" + "Micro": "1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index 931f24d1..92ec9288 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "0" + "Micro": "1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_discord/cpl-discord.json b/src/cpl_discord/cpl-discord.json index 89e2d110..41dac152 100644 --- a/src/cpl_discord/cpl-discord.json +++ b/src/cpl_discord/cpl-discord.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "0" + "Micro": "1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_query/cpl-query.json b/src/cpl_query/cpl-query.json index 96e6c188..f87c7b00 100644 --- a/src/cpl_query/cpl-query.json +++ b/src/cpl_query/cpl-query.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "2" + "Micro": "2.post1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_translation/cpl-translation.json b/src/cpl_translation/cpl-translation.json index f3a36a79..81f775d0 100644 --- a/src/cpl_translation/cpl-translation.json +++ b/src/cpl_translation/cpl-translation.json @@ -3,8 +3,8 @@ "Name": "cpl-translation", "Version": { "Major": "2022", - "Minor": "10", - "Micro": "0.post2" + "Minor": "12", + "Micro": "0" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", -- 2.49.1 From c9bc6a026a75e4e87bcd67ffc34800e9505eca8a Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 25 Dec 2022 11:26:51 +0100 Subject: [PATCH 031/124] Build release 2022.12.1 --- src/cpl_cli/.cpl/__init__.py | 4 ++-- src/cpl_cli/__init__.py | 4 ++-- src/cpl_cli/_templates/__init__.py | 4 ++-- src/cpl_cli/_templates/build/__init__.py | 4 ++-- src/cpl_cli/_templates/publish/__init__.py | 4 ++-- src/cpl_cli/abc/__init__.py | 4 ++-- src/cpl_cli/appsettings.json | 2 +- src/cpl_cli/command/__init__.py | 4 ++-- src/cpl_cli/configuration/__init__.py | 4 ++-- src/cpl_cli/helper/__init__.py | 4 ++-- src/cpl_cli/live_server/__init__.py | 4 ++-- src/cpl_cli/migrations/__init__.py | 4 ++-- src/cpl_cli/migrations/base/__init__.py | 4 ++-- src/cpl_cli/migrations/service/__init__.py | 4 ++-- src/cpl_cli/publish/__init__.py | 4 ++-- src/cpl_cli/source_creator/__init__.py | 4 ++-- src/cpl_cli/validators/__init__.py | 4 ++-- src/cpl_core/__init__.py | 4 ++-- src/cpl_core/application/__init__.py | 4 ++-- src/cpl_core/configuration/__init__.py | 4 ++-- src/cpl_core/console/__init__.py | 4 ++-- src/cpl_core/database/__init__.py | 4 ++-- src/cpl_core/database/connection/__init__.py | 4 ++-- src/cpl_core/database/context/__init__.py | 4 ++-- src/cpl_core/dependency_injection/__init__.py | 4 ++-- src/cpl_core/environment/__init__.py | 4 ++-- src/cpl_core/logging/__init__.py | 4 ++-- src/cpl_core/mailing/__init__.py | 4 ++-- src/cpl_core/pipes/__init__.py | 4 ++-- src/cpl_core/time/__init__.py | 4 ++-- src/cpl_core/utils/__init__.py | 4 ++-- src/cpl_discord/.cpl/__init__.py | 4 ++-- src/cpl_discord/__init__.py | 4 ++-- src/cpl_discord/application/__init__.py | 4 ++-- src/cpl_discord/command/__init__.py | 4 ++-- src/cpl_discord/configuration/__init__.py | 4 ++-- src/cpl_discord/container/__init__.py | 4 ++-- src/cpl_discord/events/__init__.py | 4 ++-- src/cpl_discord/helper/__init__.py | 4 ++-- src/cpl_discord/service/__init__.py | 4 ++-- src/cpl_query/__init__.py | 4 ++-- src/cpl_query/base/__init__.py | 4 ++-- src/cpl_query/enumerable/__init__.py | 4 ++-- src/cpl_query/extension/__init__.py | 4 ++-- src/cpl_query/iterable/__init__.py | 4 ++-- src/cpl_translation/__init__.py | 4 ++-- 46 files changed, 91 insertions(+), 91 deletions(-) diff --git a/src/cpl_cli/.cpl/__init__.py b/src/cpl_cli/.cpl/__init__.py index 384e3fa0..266c7d74 100644 --- a/src/cpl_cli/.cpl/__init__.py +++ b/src/cpl_cli/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/__init__.py b/src/cpl_cli/__init__.py index d5c71351..a9bc3840 100644 --- a/src/cpl_cli/__init__.py +++ b/src/cpl_cli/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -28,4 +28,4 @@ from .main import main from .startup import Startup VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/_templates/__init__.py b/src/cpl_cli/_templates/__init__.py index 506557ff..424946b8 100644 --- a/src/cpl_cli/_templates/__init__.py +++ b/src/cpl_cli/_templates/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/_templates/build/__init__.py b/src/cpl_cli/_templates/build/__init__.py index e006bf80..cc89e736 100644 --- a/src/cpl_cli/_templates/build/__init__.py +++ b/src/cpl_cli/_templates/build/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.build' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/_templates/publish/__init__.py b/src/cpl_cli/_templates/publish/__init__.py index 46a92128..6ab2a7cf 100644 --- a/src/cpl_cli/_templates/publish/__init__.py +++ b/src/cpl_cli/_templates/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/abc/__init__.py b/src/cpl_cli/abc/__init__.py index 609ba749..84ea4829 100644 --- a/src/cpl_cli/abc/__init__.py +++ b/src/cpl_cli/abc/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.abc' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/appsettings.json b/src/cpl_cli/appsettings.json index eb80fe1d..f4dbfbf1 100644 --- a/src/cpl_cli/appsettings.json +++ b/src/cpl_cli/appsettings.json @@ -1,5 +1,5 @@ { "CLI": { - "PipPath": "https://pip-dev.sh-edraft.de" + "PipPath": "https://pip.sh-edraft.de" } } \ No newline at end of file diff --git a/src/cpl_cli/command/__init__.py b/src/cpl_cli/command/__init__.py index 3cb16ed4..3e43a322 100644 --- a/src/cpl_cli/command/__init__.py +++ b/src/cpl_cli/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -29,4 +29,4 @@ from .publish_service import PublishService from .version_service import VersionService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/configuration/__init__.py b/src/cpl_cli/configuration/__init__.py index cd0a9ef5..544b8ffa 100644 --- a/src/cpl_cli/configuration/__init__.py +++ b/src/cpl_cli/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -31,4 +31,4 @@ from .workspace_settings import WorkspaceSettings from .workspace_settings_name_enum import WorkspaceSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py index 0db1862a..0a3cf183 100644 --- a/src/cpl_cli/helper/__init__.py +++ b/src/cpl_cli/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/live_server/__init__.py b/src/cpl_cli/live_server/__init__.py index 4b74e088..dfce0936 100644 --- a/src/cpl_cli/live_server/__init__.py +++ b/src/cpl_cli/live_server/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.live_server' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/migrations/__init__.py b/src/cpl_cli/migrations/__init__.py index fca9b7d7..31de9444 100644 --- a/src/cpl_cli/migrations/__init__.py +++ b/src/cpl_cli/migrations/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/migrations/base/__init__.py b/src/cpl_cli/migrations/base/__init__.py index 2872e0a6..f242e0f8 100644 --- a/src/cpl_cli/migrations/base/__init__.py +++ b/src/cpl_cli/migrations/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/migrations/service/__init__.py b/src/cpl_cli/migrations/service/__init__.py index 6a9679f5..a6a73caa 100644 --- a/src/cpl_cli/migrations/service/__init__.py +++ b/src/cpl_cli/migrations/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/publish/__init__.py b/src/cpl_cli/publish/__init__.py index 51b16998..5850a382 100644 --- a/src/cpl_cli/publish/__init__.py +++ b/src/cpl_cli/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -25,4 +25,4 @@ from .publisher_abc import PublisherABC from .publisher_service import PublisherService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/source_creator/__init__.py b/src/cpl_cli/source_creator/__init__.py index 102b512c..32622c31 100644 --- a/src/cpl_cli/source_creator/__init__.py +++ b/src/cpl_cli/source_creator/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.source_creator' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_cli/validators/__init__.py b/src/cpl_cli/validators/__init__.py index f782995b..cd2a3f94 100644 --- a/src/cpl_cli/validators/__init__.py +++ b/src/cpl_cli/validators/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.validators' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.dev144' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='dev144') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/__init__.py b/src/cpl_core/__init__.py index e8905cca..d1080377 100644 --- a/src/cpl_core/__init__.py +++ b/src/cpl_core/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/application/__init__.py b/src/cpl_core/application/__init__.py index 1c504a19..15180c85 100644 --- a/src/cpl_core/application/__init__.py +++ b/src/cpl_core/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -29,4 +29,4 @@ from .startup_abc import StartupABC from .startup_extension_abc import StartupExtensionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/configuration/__init__.py b/src/cpl_core/configuration/__init__.py index 771be169..aaa2768c 100644 --- a/src/cpl_core/configuration/__init__.py +++ b/src/cpl_core/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC from .variable_argument import VariableArgument VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/console/__init__.py b/src/cpl_core/console/__init__.py index e4b83bae..03b44671 100644 --- a/src/cpl_core/console/__init__.py +++ b/src/cpl_core/console/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.console' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum from .spinner_thread import SpinnerThread VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/database/__init__.py b/src/cpl_core/database/__init__.py index bbfd6279..d30ad22a 100644 --- a/src/cpl_core/database/__init__.py +++ b/src/cpl_core/database/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings from .table_abc import TableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/database/connection/__init__.py b/src/cpl_core/database/connection/__init__.py index 54819c76..335e08ec 100644 --- a/src/cpl_core/database/connection/__init__.py +++ b/src/cpl_core/database/connection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.connection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection from .database_connection_abc import DatabaseConnectionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/database/context/__init__.py b/src/cpl_core/database/context/__init__.py index 3667031d..939e0d39 100644 --- a/src/cpl_core/database/context/__init__.py +++ b/src/cpl_core/database/context/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.context' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_context import DatabaseContext from .database_context_abc import DatabaseContextABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/dependency_injection/__init__.py b/src/cpl_core/dependency_injection/__init__.py index ed9acc99..d223a051 100644 --- a/src/cpl_core/dependency_injection/__init__.py +++ b/src/cpl_core/dependency_injection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.dependency_injection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -31,4 +31,4 @@ from .service_provider import ServiceProvider from .service_provider_abc import ServiceProviderABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/environment/__init__.py b/src/cpl_core/environment/__init__.py index eba19d0c..b3ad91a2 100644 --- a/src/cpl_core/environment/__init__.py +++ b/src/cpl_core/environment/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.environment' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum from .application_environment import ApplicationEnvironment VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/logging/__init__.py b/src/cpl_core/logging/__init__.py index 8aad5906..eb068274 100644 --- a/src/cpl_core/logging/__init__.py +++ b/src/cpl_core/logging/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.logging' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings from .logging_settings_name_enum import LoggingSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/mailing/__init__.py b/src/cpl_core/mailing/__init__.py index 9ce6603f..19343fde 100644 --- a/src/cpl_core/mailing/__init__.py +++ b/src/cpl_core/mailing/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.mailing' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings from .email_client_settings_name_enum import EMailClientSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/pipes/__init__.py b/src/cpl_core/pipes/__init__.py index ed6ffe40..f5af0359 100644 --- a/src/cpl_core/pipes/__init__.py +++ b/src/cpl_core/pipes/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.pipes' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -30,4 +30,4 @@ from .to_camel_case_pipe import ToCamelCasePipe from .to_snake_case_pipe import ToSnakeCasePipe VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/time/__init__.py b/src/cpl_core/time/__init__.py index f3246353..2d1ea1fa 100644 --- a/src/cpl_core/time/__init__.py +++ b/src/cpl_core/time/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.time' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_core/utils/__init__.py b/src/cpl_core/utils/__init__.py index ae0c8ac9..dfc4e657 100644 --- a/src/cpl_core/utils/__init__.py +++ b/src/cpl_core/utils/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.utils' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -26,4 +26,4 @@ from .string import String from .pip import Pip VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/.cpl/__init__.py b/src/cpl_discord/.cpl/__init__.py index a25e9f71..884ce6ce 100644 --- a/src/cpl_discord/.cpl/__init__.py +++ b/src/cpl_discord/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/__init__.py b/src/cpl_discord/__init__.py index 6a44e988..e0647003 100644 --- a/src/cpl_discord/__init__.py +++ b/src/cpl_discord/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -55,4 +55,4 @@ def get_discord_collection(services: 'ServiceCollectionABC') -> 'DiscordCollecti # build-ignore-end VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/application/__init__.py b/src/cpl_discord/application/__init__.py index 219df343..d74f2402 100644 --- a/src/cpl_discord/application/__init__.py +++ b/src/cpl_discord/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_application_abc import DiscordBotApplicationABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/command/__init__.py b/src/cpl_discord/command/__init__.py index e434da8a..6b77db9c 100644 --- a/src/cpl_discord/command/__init__.py +++ b/src/cpl_discord/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -25,4 +25,4 @@ from .discord_command_abc import DiscordCommandABC from .discord_commands_meta import DiscordCogMeta VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/configuration/__init__.py b/src/cpl_discord/configuration/__init__.py index 94b3d0c0..2b9cd955 100644 --- a/src/cpl_discord/configuration/__init__.py +++ b/src/cpl_discord/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_settings import DiscordBotSettings VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/container/__init__.py b/src/cpl_discord/container/__init__.py index e8f95ae8..059070a2 100644 --- a/src/cpl_discord/container/__init__.py +++ b/src/cpl_discord/container/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.container' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -31,4 +31,4 @@ from .thread import Thread from .voice_channel import VoiceChannel VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/events/__init__.py b/src/cpl_discord/events/__init__.py index 524123f4..78f8c43f 100644 --- a/src/cpl_discord/events/__init__.py +++ b/src/cpl_discord/events/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.events' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -69,4 +69,4 @@ from .on_voice_state_update_abc import OnVoiceStateUpdateABC from .on_webhooks_update_abc import OnWebhooksUpdateABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/helper/__init__.py b/src/cpl_discord/helper/__init__.py index 7b11a291..31fecbea 100644 --- a/src/cpl_discord/helper/__init__.py +++ b/src/cpl_discord/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .to_containers_converter import ToContainersConverter VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_discord/service/__init__.py b/src/cpl_discord/service/__init__.py index 2d370a83..7148f2b8 100644 --- a/src/cpl_discord/service/__init__.py +++ b/src/cpl_discord/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.0' +__version__ = '2022.12.1' from collections import namedtuple @@ -29,4 +29,4 @@ from .discord_service import DiscordService from .discord_service_abc import DiscordServiceABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') diff --git a/src/cpl_query/__init__.py b/src/cpl_query/__init__.py index 1924e2c8..98fa7ddc 100644 --- a/src/cpl_query/__init__.py +++ b/src/cpl_query/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.2' +__version__ = '2022.12.2.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='2') +version_info = VersionInfo(major='2022', minor='12', micro='2.post1') diff --git a/src/cpl_query/base/__init__.py b/src/cpl_query/base/__init__.py index 3b768bbd..6051f150 100644 --- a/src/cpl_query/base/__init__.py +++ b/src/cpl_query/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.2' +__version__ = '2022.12.2.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='2') +version_info = VersionInfo(major='2022', minor='12', micro='2.post1') diff --git a/src/cpl_query/enumerable/__init__.py b/src/cpl_query/enumerable/__init__.py index 5009e045..0f2d45e6 100644 --- a/src/cpl_query/enumerable/__init__.py +++ b/src/cpl_query/enumerable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.enumerable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.2' +__version__ = '2022.12.2.post1' from collections import namedtuple @@ -25,4 +25,4 @@ from .enumerable import Enumerable from .enumerable_abc import EnumerableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='2') +version_info = VersionInfo(major='2022', minor='12', micro='2.post1') diff --git a/src/cpl_query/extension/__init__.py b/src/cpl_query/extension/__init__.py index 48dbc44c..dda83ee5 100644 --- a/src/cpl_query/extension/__init__.py +++ b/src/cpl_query/extension/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.extension' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.2' +__version__ = '2022.12.2.post1' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .list import List VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='2') +version_info = VersionInfo(major='2022', minor='12', micro='2.post1') diff --git a/src/cpl_query/iterable/__init__.py b/src/cpl_query/iterable/__init__.py index 77d1c07f..9644c909 100644 --- a/src/cpl_query/iterable/__init__.py +++ b/src/cpl_query/iterable/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_query.iterable' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' -__version__ = '2022.12.2' +__version__ = '2022.12.2.post1' from collections import namedtuple @@ -25,4 +25,4 @@ from .iterable_abc import IterableABC from .iterable import Iterable VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='2') +version_info = VersionInfo(major='2022', minor='12', micro='2.post1') diff --git a/src/cpl_translation/__init__.py b/src/cpl_translation/__init__.py index d789a358..f1d48614 100644 --- a/src/cpl_translation/__init__.py +++ b/src/cpl_translation/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_translation' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 sh-edraft.de' -__version__ = '2022.10.0.post2' +__version__ = '2022.12.0' from collections import namedtuple @@ -51,4 +51,4 @@ init() # build-ignore-end VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='10', micro='0.post2') +version_info = VersionInfo(major='2022', minor='12', micro='0') -- 2.49.1 From 8fc3c0472077d9fcdf633c4f85577509dce816d1 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 25 Dec 2022 12:02:47 +0100 Subject: [PATCH 032/124] Updated deps --- src/cpl_cli/cpl-cli.json | 4 ++-- src/cpl_core/cpl-core.json | 2 +- src/cpl_discord/cpl-discord.json | 10 +++++----- src/cpl_query/cpl-query.json | 2 +- src/cpl_translation/cpl-translation.json | 16 +++++++--------- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/cpl_cli/cpl-cli.json b/src/cpl_cli/cpl-cli.json index 45ae8808..83680ef7 100644 --- a/src/cpl_cli/cpl-cli.json +++ b/src/cpl_cli/cpl-cli.json @@ -11,12 +11,12 @@ "Description": "sh-edraft Common Python library CLI", "LongDescription": "sh-edraft Common Python library Command Line Interface", "URL": "https://www.sh-edraft.de", - "CopyrightDate": "2020 - 2022", + "CopyrightDate": "2020 - 2023", "CopyrightName": "sh-edraft.de", "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.dev144" + "cpl-core>=2022.12.1" ], "DevDependencies": [], "PythonVersion": ">=3.10", diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index 92ec9288..1af2960f 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -11,7 +11,7 @@ "Description": "sh-edraft Common Python library", "LongDescription": "sh-edraft Common Python library", "URL": "https://www.sh-edraft.de", - "CopyrightDate": "2020 - 2022", + "CopyrightDate": "2020 - 2023", "CopyrightName": "sh-edraft.de", "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", diff --git a/src/cpl_discord/cpl-discord.json b/src/cpl_discord/cpl-discord.json index 41dac152..cd3c0f9a 100644 --- a/src/cpl_discord/cpl-discord.json +++ b/src/cpl_discord/cpl-discord.json @@ -11,19 +11,19 @@ "Description": "sh-edraft Common Python library Discord", "LongDescription": "sh-edraft Common Python library link between discord.py and CPL", "URL": "https://www.sh-edraft.de", - "CopyrightDate": "2021 - 2022", + "CopyrightDate": "2021 - 2023", "CopyrightName": "sh-edraft.de", "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.0", + "cpl-core>=2022.12.1", "discord.py==2.1.0", - "cpl-query>=2022.12.0" + "cpl-query>=2022.12.2.post1" ], "DevDependencies": [ - "cpl-cli>=2022.12.0" + "cpl-cli>=2022.12.1" ], - "PythonVersion": ">=3.10.4", + "PythonVersion": ">=3.10", "PythonPath": {}, "Classifiers": [] }, diff --git a/src/cpl_query/cpl-query.json b/src/cpl_query/cpl-query.json index f87c7b00..655b7172 100644 --- a/src/cpl_query/cpl-query.json +++ b/src/cpl_query/cpl-query.json @@ -11,7 +11,7 @@ "Description": "sh-edraft Common Python library Query", "LongDescription": "sh-edraft Common Python library Python integrated Queries", "URL": "https://www.sh-edraft.de", - "CopyrightDate": "2021 - 2022", + "CopyrightDate": "2021 - 2023", "CopyrightName": "sh-edraft.de", "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", diff --git a/src/cpl_translation/cpl-translation.json b/src/cpl_translation/cpl-translation.json index 81f775d0..d47513f0 100644 --- a/src/cpl_translation/cpl-translation.json +++ b/src/cpl_translation/cpl-translation.json @@ -4,27 +4,25 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "0" + "Micro": "1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", "Description": "sh-edraft Common Python library Translation", "LongDescription": "sh-edraft Common Python library Python Translation", "URL": "https://www.sh-edraft.de", - "CopyrightDate": "2022", + "CopyrightDate": "2022 - 2023", "CopyrightName": "sh-edraft.de", "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.0" + "cpl-core>=2022.12.1" ], "DevDependencies": [ - "cpl-cli>=2022.12.0" + "cpl-cli>=2022.12.1" ], - "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "../../venv/bin/python" - }, + "PythonVersion": ">=3.10", + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { @@ -32,7 +30,7 @@ "SourcePath": "", "OutputPath": "../../dist", "Main": "", - "EntryPoint": "n", + "EntryPoint": "", "IncludePackageData": false, "Included": [], "Excluded": [ -- 2.49.1 From 48d0daabf51bb23e33328295a1e324a2fdaf4807 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 25 Dec 2022 12:04:25 +0100 Subject: [PATCH 033/124] Updated copyright --- LICENSE | 2 +- src/cpl_cli/.cpl/__init__.py | 4 ++-- src/cpl_cli/__init__.py | 4 ++-- src/cpl_cli/_templates/__init__.py | 4 ++-- src/cpl_cli/_templates/build/__init__.py | 4 ++-- src/cpl_cli/_templates/publish/__init__.py | 4 ++-- src/cpl_cli/abc/__init__.py | 4 ++-- src/cpl_cli/command/__init__.py | 4 ++-- src/cpl_cli/configuration/__init__.py | 4 ++-- src/cpl_cli/helper/__init__.py | 4 ++-- src/cpl_cli/live_server/__init__.py | 4 ++-- src/cpl_cli/migrations/__init__.py | 4 ++-- src/cpl_cli/migrations/base/__init__.py | 4 ++-- src/cpl_cli/migrations/service/__init__.py | 4 ++-- src/cpl_cli/publish/__init__.py | 4 ++-- src/cpl_cli/source_creator/__init__.py | 4 ++-- src/cpl_cli/validators/__init__.py | 4 ++-- src/cpl_core/__init__.py | 4 ++-- src/cpl_core/application/__init__.py | 4 ++-- src/cpl_core/configuration/__init__.py | 4 ++-- src/cpl_core/console/__init__.py | 4 ++-- src/cpl_core/database/__init__.py | 4 ++-- src/cpl_core/database/connection/__init__.py | 4 ++-- src/cpl_core/database/context/__init__.py | 4 ++-- src/cpl_core/dependency_injection/__init__.py | 4 ++-- src/cpl_core/environment/__init__.py | 4 ++-- src/cpl_core/logging/__init__.py | 4 ++-- src/cpl_core/mailing/__init__.py | 4 ++-- src/cpl_core/pipes/__init__.py | 4 ++-- src/cpl_core/time/__init__.py | 4 ++-- src/cpl_core/utils/__init__.py | 4 ++-- src/cpl_discord/.cpl/__init__.py | 4 ++-- src/cpl_discord/__init__.py | 4 ++-- src/cpl_discord/application/__init__.py | 4 ++-- src/cpl_discord/command/__init__.py | 4 ++-- src/cpl_discord/configuration/__init__.py | 4 ++-- src/cpl_discord/container/__init__.py | 4 ++-- src/cpl_discord/cpl-discord.json | 2 +- src/cpl_discord/events/__init__.py | 4 ++-- src/cpl_discord/helper/__init__.py | 4 ++-- src/cpl_discord/service/__init__.py | 4 ++-- src/cpl_query/__init__.py | 4 ++-- src/cpl_query/base/__init__.py | 4 ++-- src/cpl_query/enumerable/__init__.py | 4 ++-- src/cpl_query/extension/__init__.py | 4 ++-- src/cpl_query/iterable/__init__.py | 4 ++-- src/cpl_translation/__init__.py | 8 ++++---- 47 files changed, 94 insertions(+), 94 deletions(-) diff --git a/LICENSE b/LICENSE index c13cc5ee..e7b78382 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -MIT License Copyright (c) 2020 - 2022 sh-edraft.de +MIT License Copyright (c) 2020 - 2023 sh-edraft.de Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/cpl_cli/.cpl/__init__.py b/src/cpl_cli/.cpl/__init__.py index 266c7d74..fd1901ed 100644 --- a/src/cpl_cli/.cpl/__init__.py +++ b/src/cpl_cli/.cpl/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/__init__.py b/src/cpl_cli/__init__.py index a9bc3840..88563c33 100644 --- a/src/cpl_cli/__init__.py +++ b/src/cpl_cli/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/_templates/__init__.py b/src/cpl_cli/_templates/__init__.py index 424946b8..56690313 100644 --- a/src/cpl_cli/_templates/__init__.py +++ b/src/cpl_cli/_templates/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli._templates' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/_templates/build/__init__.py b/src/cpl_cli/_templates/build/__init__.py index cc89e736..8b300e0f 100644 --- a/src/cpl_cli/_templates/build/__init__.py +++ b/src/cpl_cli/_templates/build/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli._templates.build' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/_templates/publish/__init__.py b/src/cpl_cli/_templates/publish/__init__.py index 6ab2a7cf..d8dabf44 100644 --- a/src/cpl_cli/_templates/publish/__init__.py +++ b/src/cpl_cli/_templates/publish/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli._templates.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/abc/__init__.py b/src/cpl_cli/abc/__init__.py index 84ea4829..7d010963 100644 --- a/src/cpl_cli/abc/__init__.py +++ b/src/cpl_cli/abc/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.abc' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/command/__init__.py b/src/cpl_cli/command/__init__.py index 3e43a322..01e0cf59 100644 --- a/src/cpl_cli/command/__init__.py +++ b/src/cpl_cli/command/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/configuration/__init__.py b/src/cpl_cli/configuration/__init__.py index 544b8ffa..406767ad 100644 --- a/src/cpl_cli/configuration/__init__.py +++ b/src/cpl_cli/configuration/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py index 0a3cf183..124de6fe 100644 --- a/src/cpl_cli/helper/__init__.py +++ b/src/cpl_cli/helper/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/live_server/__init__.py b/src/cpl_cli/live_server/__init__.py index dfce0936..943290d4 100644 --- a/src/cpl_cli/live_server/__init__.py +++ b/src/cpl_cli/live_server/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.live_server' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/migrations/__init__.py b/src/cpl_cli/migrations/__init__.py index 31de9444..d1c8ff93 100644 --- a/src/cpl_cli/migrations/__init__.py +++ b/src/cpl_cli/migrations/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.migrations' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/migrations/base/__init__.py b/src/cpl_cli/migrations/base/__init__.py index f242e0f8..3c86ea88 100644 --- a/src/cpl_cli/migrations/base/__init__.py +++ b/src/cpl_cli/migrations/base/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.migrations.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/migrations/service/__init__.py b/src/cpl_cli/migrations/service/__init__.py index a6a73caa..d32c377e 100644 --- a/src/cpl_cli/migrations/service/__init__.py +++ b/src/cpl_cli/migrations/service/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.migrations.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/publish/__init__.py b/src/cpl_cli/publish/__init__.py index 5850a382..8e9f1d9a 100644 --- a/src/cpl_cli/publish/__init__.py +++ b/src/cpl_cli/publish/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/source_creator/__init__.py b/src/cpl_cli/source_creator/__init__.py index 32622c31..5d65164f 100644 --- a/src/cpl_cli/source_creator/__init__.py +++ b/src/cpl_cli/source_creator/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.source_creator' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_cli/validators/__init__.py b/src/cpl_cli/validators/__init__.py index cd2a3f94..d12f3ddb 100644 --- a/src/cpl_cli/validators/__init__.py +++ b/src/cpl_cli/validators/__init__.py @@ -6,7 +6,7 @@ cpl-cli sh-edraft Common Python library CLI sh-edraft Common Python library Command Line Interface -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Command Line Interface __title__ = 'cpl_cli.validators' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/__init__.py b/src/cpl_core/__init__.py index d1080377..c3d854c2 100644 --- a/src/cpl_core/__init__.py +++ b/src/cpl_core/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/application/__init__.py b/src/cpl_core/application/__init__.py index 15180c85..d088dc08 100644 --- a/src/cpl_core/application/__init__.py +++ b/src/cpl_core/application/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/configuration/__init__.py b/src/cpl_core/configuration/__init__.py index aaa2768c..18ebabec 100644 --- a/src/cpl_core/configuration/__init__.py +++ b/src/cpl_core/configuration/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/console/__init__.py b/src/cpl_core/console/__init__.py index 03b44671..4e227f6b 100644 --- a/src/cpl_core/console/__init__.py +++ b/src/cpl_core/console/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.console' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/database/__init__.py b/src/cpl_core/database/__init__.py index d30ad22a..d3c418a4 100644 --- a/src/cpl_core/database/__init__.py +++ b/src/cpl_core/database/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.database' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/database/connection/__init__.py b/src/cpl_core/database/connection/__init__.py index 335e08ec..fcc95e63 100644 --- a/src/cpl_core/database/connection/__init__.py +++ b/src/cpl_core/database/connection/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.database.connection' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/database/context/__init__.py b/src/cpl_core/database/context/__init__.py index 939e0d39..5f819a4e 100644 --- a/src/cpl_core/database/context/__init__.py +++ b/src/cpl_core/database/context/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.database.context' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/dependency_injection/__init__.py b/src/cpl_core/dependency_injection/__init__.py index d223a051..c52c7f25 100644 --- a/src/cpl_core/dependency_injection/__init__.py +++ b/src/cpl_core/dependency_injection/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.dependency_injection' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/environment/__init__.py b/src/cpl_core/environment/__init__.py index b3ad91a2..b0ab6498 100644 --- a/src/cpl_core/environment/__init__.py +++ b/src/cpl_core/environment/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.environment' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/logging/__init__.py b/src/cpl_core/logging/__init__.py index eb068274..6c781e79 100644 --- a/src/cpl_core/logging/__init__.py +++ b/src/cpl_core/logging/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.logging' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/mailing/__init__.py b/src/cpl_core/mailing/__init__.py index 19343fde..2fcf2337 100644 --- a/src/cpl_core/mailing/__init__.py +++ b/src/cpl_core/mailing/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.mailing' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/pipes/__init__.py b/src/cpl_core/pipes/__init__.py index f5af0359..cff6ea21 100644 --- a/src/cpl_core/pipes/__init__.py +++ b/src/cpl_core/pipes/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.pipes' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/time/__init__.py b/src/cpl_core/time/__init__.py index 2d1ea1fa..4718504f 100644 --- a/src/cpl_core/time/__init__.py +++ b/src/cpl_core/time/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.time' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_core/utils/__init__.py b/src/cpl_core/utils/__init__.py index dfc4e657..3ced2335 100644 --- a/src/cpl_core/utils/__init__.py +++ b/src/cpl_core/utils/__init__.py @@ -6,7 +6,7 @@ cpl-core sh-edraft Common Python library sh-edraft Common Python library -:copyright: (c) 2020 - 2022 sh-edraft.de +:copyright: (c) 2020 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library __title__ = 'cpl_core.utils' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2020 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/.cpl/__init__.py b/src/cpl_discord/.cpl/__init__.py index 884ce6ce..e2b391ae 100644 --- a/src/cpl_discord/.cpl/__init__.py +++ b/src/cpl_discord/.cpl/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/__init__.py b/src/cpl_discord/__init__.py index e0647003..b90ee3d0 100644 --- a/src/cpl_discord/__init__.py +++ b/src/cpl_discord/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/application/__init__.py b/src/cpl_discord/application/__init__.py index d74f2402..cdfee203 100644 --- a/src/cpl_discord/application/__init__.py +++ b/src/cpl_discord/application/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/command/__init__.py b/src/cpl_discord/command/__init__.py index 6b77db9c..f0306bd2 100644 --- a/src/cpl_discord/command/__init__.py +++ b/src/cpl_discord/command/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/configuration/__init__.py b/src/cpl_discord/configuration/__init__.py index 2b9cd955..5fcaa9a4 100644 --- a/src/cpl_discord/configuration/__init__.py +++ b/src/cpl_discord/configuration/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/container/__init__.py b/src/cpl_discord/container/__init__.py index 059070a2..2b27e09c 100644 --- a/src/cpl_discord/container/__init__.py +++ b/src/cpl_discord/container/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord.container' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/cpl-discord.json b/src/cpl_discord/cpl-discord.json index cd3c0f9a..cd29ffcf 100644 --- a/src/cpl_discord/cpl-discord.json +++ b/src/cpl_discord/cpl-discord.json @@ -11,7 +11,7 @@ "Description": "sh-edraft Common Python library Discord", "LongDescription": "sh-edraft Common Python library link between discord.py and CPL", "URL": "https://www.sh-edraft.de", - "CopyrightDate": "2021 - 2023", + "CopyrightDate": "2022 - 2023", "CopyrightName": "sh-edraft.de", "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", diff --git a/src/cpl_discord/events/__init__.py b/src/cpl_discord/events/__init__.py index 78f8c43f..e5259830 100644 --- a/src/cpl_discord/events/__init__.py +++ b/src/cpl_discord/events/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord.events' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/helper/__init__.py b/src/cpl_discord/helper/__init__.py index 31fecbea..dd67de1f 100644 --- a/src/cpl_discord/helper/__init__.py +++ b/src/cpl_discord/helper/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_discord/service/__init__.py b/src/cpl_discord/service/__init__.py index 7148f2b8..110b1d4b 100644 --- a/src/cpl_discord/service/__init__.py +++ b/src/cpl_discord/service/__init__.py @@ -6,7 +6,7 @@ cpl-discord sh-edraft Common Python library Discord sh-edraft Common Python library link between discord.py and CPL -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library link between discord.py and CPL __title__ = 'cpl_discord.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' __version__ = '2022.12.1' from collections import namedtuple diff --git a/src/cpl_query/__init__.py b/src/cpl_query/__init__.py index 98fa7ddc..725fedf2 100644 --- a/src/cpl_query/__init__.py +++ b/src/cpl_query/__init__.py @@ -6,7 +6,7 @@ cpl-query sh-edraft Common Python library Query sh-edraft Common Python library Python integrated Queries -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2021 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Python integrated Queries __title__ = 'cpl_query' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2021 - 2023 sh-edraft.de' __version__ = '2022.12.2.post1' from collections import namedtuple diff --git a/src/cpl_query/base/__init__.py b/src/cpl_query/base/__init__.py index 6051f150..137b82cb 100644 --- a/src/cpl_query/base/__init__.py +++ b/src/cpl_query/base/__init__.py @@ -6,7 +6,7 @@ cpl-query sh-edraft Common Python library Query sh-edraft Common Python library Python integrated Queries -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2021 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Python integrated Queries __title__ = 'cpl_query.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2021 - 2023 sh-edraft.de' __version__ = '2022.12.2.post1' from collections import namedtuple diff --git a/src/cpl_query/enumerable/__init__.py b/src/cpl_query/enumerable/__init__.py index 0f2d45e6..7387ab0a 100644 --- a/src/cpl_query/enumerable/__init__.py +++ b/src/cpl_query/enumerable/__init__.py @@ -6,7 +6,7 @@ cpl-query sh-edraft Common Python library Query sh-edraft Common Python library Python integrated Queries -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2021 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Python integrated Queries __title__ = 'cpl_query.enumerable' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2021 - 2023 sh-edraft.de' __version__ = '2022.12.2.post1' from collections import namedtuple diff --git a/src/cpl_query/extension/__init__.py b/src/cpl_query/extension/__init__.py index dda83ee5..a08c06a4 100644 --- a/src/cpl_query/extension/__init__.py +++ b/src/cpl_query/extension/__init__.py @@ -6,7 +6,7 @@ cpl-query sh-edraft Common Python library Query sh-edraft Common Python library Python integrated Queries -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2021 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Python integrated Queries __title__ = 'cpl_query.extension' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2021 - 2023 sh-edraft.de' __version__ = '2022.12.2.post1' from collections import namedtuple diff --git a/src/cpl_query/iterable/__init__.py b/src/cpl_query/iterable/__init__.py index 9644c909..de80b4df 100644 --- a/src/cpl_query/iterable/__init__.py +++ b/src/cpl_query/iterable/__init__.py @@ -6,7 +6,7 @@ cpl-query sh-edraft Common Python library Query sh-edraft Common Python library Python integrated Queries -:copyright: (c) 2021 - 2022 sh-edraft.de +:copyright: (c) 2021 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,7 +14,7 @@ sh-edraft Common Python library Python integrated Queries __title__ = 'cpl_query.iterable' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2021 - 2022 sh-edraft.de' +__copyright__ = 'Copyright (c) 2021 - 2023 sh-edraft.de' __version__ = '2022.12.2.post1' from collections import namedtuple diff --git a/src/cpl_translation/__init__.py b/src/cpl_translation/__init__.py index f1d48614..04defac8 100644 --- a/src/cpl_translation/__init__.py +++ b/src/cpl_translation/__init__.py @@ -6,7 +6,7 @@ cpl-translation sh-edraft Common Python library Translation sh-edraft Common Python library Python Translation -:copyright: (c) 2022 sh-edraft.de +:copyright: (c) 2022 - 2023 sh-edraft.de :license: MIT, see LICENSE for more details. """ @@ -14,8 +14,8 @@ sh-edraft Common Python library Python Translation __title__ = 'cpl_translation' __author__ = 'Sven Heidemann' __license__ = 'MIT' -__copyright__ = 'Copyright (c) 2022 sh-edraft.de' -__version__ = '2022.12.0' +__copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' +__version__ = '2022.12.1' from collections import namedtuple @@ -51,4 +51,4 @@ init() # build-ignore-end VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='0') +version_info = VersionInfo(major='2022', minor='12', micro='1') -- 2.49.1 From 6389a940bcb5aeb60cd2f4667351cb9e46849e2c Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sat, 7 Jan 2023 15:00:38 +0100 Subject: [PATCH 034/124] Fixed static di injection --- src/cpl_core/cpl-core.json | 2 +- src/cpl_core/dependency_injection/service_provider_abc.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index 1af2960f..2072dda3 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1" + "Micro": "1.post1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_core/dependency_injection/service_provider_abc.py b/src/cpl_core/dependency_injection/service_provider_abc.py index a3f7158c..f2890d3c 100644 --- a/src/cpl_core/dependency_injection/service_provider_abc.py +++ b/src/cpl_core/dependency_injection/service_provider_abc.py @@ -13,14 +13,16 @@ class ServiceProviderABC(ABC): _provider: Optional['ServiceProviderABC'] = None @abstractmethod - def __init__(self): pass + def __init__(self): + pass @classmethod def set_global_provider(cls, provider: 'ServiceProviderABC'): cls._provider = provider @abstractmethod - def build_by_signature(self, sig: Signature) -> list[T]: pass + def build_by_signature(self, sig: Signature) -> list[T]: + pass @abstractmethod def build_service(self, service_type: type) -> object: @@ -108,7 +110,7 @@ class ServiceProviderABC(ABC): if cls._provider is None: raise Exception(f'{cls.__name__} not build!') - injection = cls._provider.build_by_signature(signature(f)) + injection = [x for x in cls._provider.build_by_signature(signature(f)) if x is not None] return f(*injection, *args, **kwargs) return inner -- 2.49.1 From e0ca7c2ae67d8b84068581c8c4d287bb54dc66dc Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sat, 7 Jan 2023 15:03:21 +0100 Subject: [PATCH 035/124] Build fixed version --- src/cpl_cli/.cpl/__init__.py | 4 ++-- src/cpl_cli/__init__.py | 4 ++-- src/cpl_cli/_templates/__init__.py | 4 ++-- src/cpl_cli/_templates/build/__init__.py | 4 ++-- src/cpl_cli/_templates/publish/__init__.py | 4 ++-- src/cpl_cli/abc/__init__.py | 4 ++-- src/cpl_cli/command/__init__.py | 4 ++-- src/cpl_cli/configuration/__init__.py | 4 ++-- src/cpl_cli/cpl-cli.json | 4 ++-- src/cpl_cli/helper/__init__.py | 4 ++-- src/cpl_cli/live_server/__init__.py | 4 ++-- src/cpl_cli/migrations/__init__.py | 4 ++-- src/cpl_cli/migrations/base/__init__.py | 4 ++-- src/cpl_cli/migrations/service/__init__.py | 4 ++-- src/cpl_cli/publish/__init__.py | 4 ++-- src/cpl_cli/source_creator/__init__.py | 4 ++-- src/cpl_cli/validators/__init__.py | 4 ++-- src/cpl_core/__init__.py | 4 ++-- src/cpl_core/application/__init__.py | 4 ++-- src/cpl_core/configuration/__init__.py | 4 ++-- src/cpl_core/console/__init__.py | 4 ++-- src/cpl_core/database/__init__.py | 4 ++-- src/cpl_core/database/connection/__init__.py | 4 ++-- src/cpl_core/database/context/__init__.py | 4 ++-- src/cpl_core/dependency_injection/__init__.py | 4 ++-- src/cpl_core/environment/__init__.py | 4 ++-- src/cpl_core/logging/__init__.py | 4 ++-- src/cpl_core/mailing/__init__.py | 4 ++-- src/cpl_core/pipes/__init__.py | 4 ++-- src/cpl_core/time/__init__.py | 4 ++-- src/cpl_core/utils/__init__.py | 4 ++-- 31 files changed, 62 insertions(+), 62 deletions(-) diff --git a/src/cpl_cli/.cpl/__init__.py b/src/cpl_cli/.cpl/__init__.py index fd1901ed..ed92c57b 100644 --- a/src/cpl_cli/.cpl/__init__.py +++ b/src/cpl_cli/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/__init__.py b/src/cpl_cli/__init__.py index 88563c33..53ec2fcf 100644 --- a/src/cpl_cli/__init__.py +++ b/src/cpl_cli/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -28,4 +28,4 @@ from .main import main from .startup import Startup VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/_templates/__init__.py b/src/cpl_cli/_templates/__init__.py index 56690313..67bd56a9 100644 --- a/src/cpl_cli/_templates/__init__.py +++ b/src/cpl_cli/_templates/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/_templates/build/__init__.py b/src/cpl_cli/_templates/build/__init__.py index 8b300e0f..11fffe93 100644 --- a/src/cpl_cli/_templates/build/__init__.py +++ b/src/cpl_cli/_templates/build/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.build' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/_templates/publish/__init__.py b/src/cpl_cli/_templates/publish/__init__.py index d8dabf44..42a25dbc 100644 --- a/src/cpl_cli/_templates/publish/__init__.py +++ b/src/cpl_cli/_templates/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/abc/__init__.py b/src/cpl_cli/abc/__init__.py index 7d010963..6b5c6e66 100644 --- a/src/cpl_cli/abc/__init__.py +++ b/src/cpl_cli/abc/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.abc' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/command/__init__.py b/src/cpl_cli/command/__init__.py index 01e0cf59..c0204374 100644 --- a/src/cpl_cli/command/__init__.py +++ b/src/cpl_cli/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -29,4 +29,4 @@ from .publish_service import PublishService from .version_service import VersionService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/configuration/__init__.py b/src/cpl_cli/configuration/__init__.py index 406767ad..ced3056f 100644 --- a/src/cpl_cli/configuration/__init__.py +++ b/src/cpl_cli/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -31,4 +31,4 @@ from .workspace_settings import WorkspaceSettings from .workspace_settings_name_enum import WorkspaceSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/cpl-cli.json b/src/cpl_cli/cpl-cli.json index 83680ef7..d9ee48ce 100644 --- a/src/cpl_cli/cpl-cli.json +++ b/src/cpl_cli/cpl-cli.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1" + "Micro": "1.post1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", @@ -16,7 +16,7 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.1" + "cpl-core==2022.12.1.post1" ], "DevDependencies": [], "PythonVersion": ">=3.10", diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py index 124de6fe..503db400 100644 --- a/src/cpl_cli/helper/__init__.py +++ b/src/cpl_cli/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/live_server/__init__.py b/src/cpl_cli/live_server/__init__.py index 943290d4..27db3bf9 100644 --- a/src/cpl_cli/live_server/__init__.py +++ b/src/cpl_cli/live_server/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.live_server' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/migrations/__init__.py b/src/cpl_cli/migrations/__init__.py index d1c8ff93..b6c9cb3b 100644 --- a/src/cpl_cli/migrations/__init__.py +++ b/src/cpl_cli/migrations/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/migrations/base/__init__.py b/src/cpl_cli/migrations/base/__init__.py index 3c86ea88..549d754b 100644 --- a/src/cpl_cli/migrations/base/__init__.py +++ b/src/cpl_cli/migrations/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/migrations/service/__init__.py b/src/cpl_cli/migrations/service/__init__.py index d32c377e..3f4c03bc 100644 --- a/src/cpl_cli/migrations/service/__init__.py +++ b/src/cpl_cli/migrations/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/publish/__init__.py b/src/cpl_cli/publish/__init__.py index 8e9f1d9a..b0e5f369 100644 --- a/src/cpl_cli/publish/__init__.py +++ b/src/cpl_cli/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -25,4 +25,4 @@ from .publisher_abc import PublisherABC from .publisher_service import PublisherService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/source_creator/__init__.py b/src/cpl_cli/source_creator/__init__.py index 5d65164f..48148416 100644 --- a/src/cpl_cli/source_creator/__init__.py +++ b/src/cpl_cli/source_creator/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.source_creator' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_cli/validators/__init__.py b/src/cpl_cli/validators/__init__.py index d12f3ddb..4b99fdf1 100644 --- a/src/cpl_cli/validators/__init__.py +++ b/src/cpl_cli/validators/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.validators' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/__init__.py b/src/cpl_core/__init__.py index c3d854c2..26bafa4d 100644 --- a/src/cpl_core/__init__.py +++ b/src/cpl_core/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/application/__init__.py b/src/cpl_core/application/__init__.py index d088dc08..bdd6bed6 100644 --- a/src/cpl_core/application/__init__.py +++ b/src/cpl_core/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -29,4 +29,4 @@ from .startup_abc import StartupABC from .startup_extension_abc import StartupExtensionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/configuration/__init__.py b/src/cpl_core/configuration/__init__.py index 18ebabec..e0067e11 100644 --- a/src/cpl_core/configuration/__init__.py +++ b/src/cpl_core/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC from .variable_argument import VariableArgument VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/console/__init__.py b/src/cpl_core/console/__init__.py index 4e227f6b..5a40db23 100644 --- a/src/cpl_core/console/__init__.py +++ b/src/cpl_core/console/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.console' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum from .spinner_thread import SpinnerThread VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/database/__init__.py b/src/cpl_core/database/__init__.py index d3c418a4..5ad62306 100644 --- a/src/cpl_core/database/__init__.py +++ b/src/cpl_core/database/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings from .table_abc import TableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/database/connection/__init__.py b/src/cpl_core/database/connection/__init__.py index fcc95e63..b6f63817 100644 --- a/src/cpl_core/database/connection/__init__.py +++ b/src/cpl_core/database/connection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.connection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection from .database_connection_abc import DatabaseConnectionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/database/context/__init__.py b/src/cpl_core/database/context/__init__.py index 5f819a4e..d128019a 100644 --- a/src/cpl_core/database/context/__init__.py +++ b/src/cpl_core/database/context/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.context' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_context import DatabaseContext from .database_context_abc import DatabaseContextABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/dependency_injection/__init__.py b/src/cpl_core/dependency_injection/__init__.py index c52c7f25..c1b685b7 100644 --- a/src/cpl_core/dependency_injection/__init__.py +++ b/src/cpl_core/dependency_injection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.dependency_injection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -31,4 +31,4 @@ from .service_provider import ServiceProvider from .service_provider_abc import ServiceProviderABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/environment/__init__.py b/src/cpl_core/environment/__init__.py index b0ab6498..97f9efd9 100644 --- a/src/cpl_core/environment/__init__.py +++ b/src/cpl_core/environment/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.environment' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum from .application_environment import ApplicationEnvironment VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/logging/__init__.py b/src/cpl_core/logging/__init__.py index 6c781e79..26668484 100644 --- a/src/cpl_core/logging/__init__.py +++ b/src/cpl_core/logging/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.logging' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings from .logging_settings_name_enum import LoggingSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/mailing/__init__.py b/src/cpl_core/mailing/__init__.py index 2fcf2337..c9aeb63f 100644 --- a/src/cpl_core/mailing/__init__.py +++ b/src/cpl_core/mailing/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.mailing' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings from .email_client_settings_name_enum import EMailClientSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/pipes/__init__.py b/src/cpl_core/pipes/__init__.py index cff6ea21..07021212 100644 --- a/src/cpl_core/pipes/__init__.py +++ b/src/cpl_core/pipes/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.pipes' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -30,4 +30,4 @@ from .to_camel_case_pipe import ToCamelCasePipe from .to_snake_case_pipe import ToSnakeCasePipe VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/time/__init__.py b/src/cpl_core/time/__init__.py index 4718504f..86eccbd7 100644 --- a/src/cpl_core/time/__init__.py +++ b/src/cpl_core/time/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.time' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_core/utils/__init__.py b/src/cpl_core/utils/__init__.py index 3ced2335..2680a639 100644 --- a/src/cpl_core/utils/__init__.py +++ b/src/cpl_core/utils/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.utils' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -26,4 +26,4 @@ from .string import String from .pip import Pip VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') -- 2.49.1 From 7f46fbe87ab287b9152ea1c5f06588e1fb3f1ac8 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 12 Jan 2023 08:57:01 +0100 Subject: [PATCH 036/124] Added *args and **kwargs support to discord bot and DI --- src/cpl_core/cpl-core.json | 2 +- .../dependency_injection/service_provider.py | 14 +++++++------- .../dependency_injection/service_provider_abc.py | 6 +++--- src/cpl_discord/cpl-discord.json | 4 ++-- src/cpl_discord/service/discord_bot_service.py | 15 ++++++++++++--- .../service/discord_bot_service_abc.py | 4 ++-- 6 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index 2072dda3..681f8c9c 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post1" + "Micro": "1.post2" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_core/dependency_injection/service_provider.py b/src/cpl_core/dependency_injection/service_provider.py index 4e388440..0be8f567 100644 --- a/src/cpl_core/dependency_injection/service_provider.py +++ b/src/cpl_core/dependency_injection/service_provider.py @@ -57,7 +57,7 @@ class ServiceProvider(ServiceProviderABC): # raise Exception(f'Service {parameter.annotation} not found') - def _get_services(self, t: type) -> list[Optional[object]]: + def _get_services(self, t: type, *args, **kwargs) -> list[Optional[object]]: implementations = [] for descriptor in self._service_descriptors: if descriptor.service_type == t or issubclass(descriptor.service_type, t): @@ -65,7 +65,7 @@ class ServiceProvider(ServiceProviderABC): implementations.append(descriptor.implementation) continue - implementation = self.build_service(descriptor.service_type) + implementation = self.build_service(descriptor.service_type, *args, **kwargs) if descriptor.lifetime == ServiceLifetimeEnum.singleton: descriptor.implementation = implementation @@ -102,7 +102,7 @@ class ServiceProvider(ServiceProviderABC): return params - def build_service(self, service_type: type) -> object: + def build_service(self, service_type: type, *args, **kwargs) -> object: for descriptor in self._service_descriptors: if descriptor.service_type == service_type or issubclass(descriptor.service_type, service_type): if descriptor.implementation is not None: @@ -115,7 +115,7 @@ class ServiceProvider(ServiceProviderABC): sig = signature(service_type.__init__) params = self.build_by_signature(sig) - return service_type(*params) + return service_type(*params, *args, **kwargs) def set_scope(self, scope: ScopeABC): self._scope = scope @@ -124,7 +124,7 @@ class ServiceProvider(ServiceProviderABC): sb = ScopeBuilder(ServiceProvider(copy.deepcopy(self._service_descriptors), self._configuration, self._database_context)) return sb.build() - def get_service(self, service_type: T) -> Optional[T]: + def get_service(self, service_type: T, *args, **kwargs) -> Optional[T]: result = self._find_service(service_type) if result is None: @@ -133,13 +133,13 @@ class ServiceProvider(ServiceProviderABC): if result.implementation is not None: return result.implementation - implementation = self.build_service(service_type) + implementation = self.build_service(service_type, *args, **kwargs) if result.lifetime == ServiceLifetimeEnum.singleton or result.lifetime == ServiceLifetimeEnum.scoped and self._scope is not None: result.implementation = implementation return implementation - def get_services(self, service_type: T) -> list[Optional[T]]: + def get_services(self, service_type: T, *args, **kwargs) -> list[Optional[T]]: implementations = [] if typing.get_origin(service_type) != list: diff --git a/src/cpl_core/dependency_injection/service_provider_abc.py b/src/cpl_core/dependency_injection/service_provider_abc.py index f2890d3c..bf7e851e 100644 --- a/src/cpl_core/dependency_injection/service_provider_abc.py +++ b/src/cpl_core/dependency_injection/service_provider_abc.py @@ -25,7 +25,7 @@ class ServiceProviderABC(ABC): pass @abstractmethod - def build_service(self, service_type: type) -> object: + def build_service(self, service_type: type, *args, **kwargs) -> object: r"""Creates instance of given type Parameter @@ -61,7 +61,7 @@ class ServiceProviderABC(ABC): pass @abstractmethod - def get_service(self, instance_type: T) -> Optional[T]: + def get_service(self, instance_type: T, *args, **kwargs) -> Optional[T]: r"""Returns instance of given type Parameter @@ -76,7 +76,7 @@ class ServiceProviderABC(ABC): pass @abstractmethod - def get_services(self, service_type: T) -> list[Optional[T]]: + def get_services(self, service_type: T, *args, **kwargs) -> list[Optional[T]]: r"""Returns instance of given type Parameter diff --git a/src/cpl_discord/cpl-discord.json b/src/cpl_discord/cpl-discord.json index cd29ffcf..d75b5cf7 100644 --- a/src/cpl_discord/cpl-discord.json +++ b/src/cpl_discord/cpl-discord.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1" + "Micro": "1.post1" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", @@ -16,7 +16,7 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.1", + "cpl-core>=2022.12.1.post2", "discord.py==2.1.0", "cpl-query>=2022.12.2.post1" ], diff --git a/src/cpl_discord/service/discord_bot_service.py b/src/cpl_discord/service/discord_bot_service.py index fe86b908..4c4716d7 100644 --- a/src/cpl_discord/service/discord_bot_service.py +++ b/src/cpl_discord/service/discord_bot_service.py @@ -21,7 +21,9 @@ class DiscordBotService(DiscordBotServiceABC): discord_bot_settings: DiscordBotSettings, env: ApplicationEnvironmentABC, logging_st: LoggingSettings, - discord_service: DiscordServiceABC + discord_service: DiscordServiceABC, + *args, + **kwargs ): # services self._config = config @@ -34,7 +36,12 @@ class DiscordBotService(DiscordBotServiceABC): self._discord_settings = self._get_settings(discord_bot_settings) # setup super - DiscordBotServiceABC.__init__(self, command_prefix=self._discord_settings.prefix, help_command=None, intents=discord.Intents().all()) + DiscordBotServiceABC.__init__( + self, + *args, + command_prefix=self._discord_settings.prefix, help_command=None, intents=discord.Intents().all(), + **kwargs + ) self._base = super(DiscordBotServiceABC, self) @staticmethod @@ -50,7 +57,9 @@ class DiscordBotService(DiscordBotServiceABC): new_settings.from_dict({ 'Token': env_token if token is None or token == '' else token, - 'Prefix': ('! ' if self._is_string_invalid(env_prefix) else env_prefix) if self._is_string_invalid(prefix) else prefix + 'Prefix': + ('! ' if self._is_string_invalid(env_prefix) else env_prefix) + if self._is_string_invalid(prefix) else prefix }) if new_settings.token is None or new_settings.token == '': raise Exception('You have to configure discord token by appsettings or environment variables') diff --git a/src/cpl_discord/service/discord_bot_service_abc.py b/src/cpl_discord/service/discord_bot_service_abc.py index b96a5ee8..399e5a3f 100644 --- a/src/cpl_discord/service/discord_bot_service_abc.py +++ b/src/cpl_discord/service/discord_bot_service_abc.py @@ -8,8 +8,8 @@ from cpl_query.extension.list import List class DiscordBotServiceABC(commands.Bot): - def __init__(self, **kwargs): - commands.Bot.__init__(self, **kwargs) + def __init__(self, *args, **kwargs): + commands.Bot.__init__(self, *args, **kwargs) @abstractmethod async def start_async(self): pass -- 2.49.1 From b18a7297a72786cdbde584f0bf6c15f3e04f6ccd Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 12 Jan 2023 08:58:05 +0100 Subject: [PATCH 037/124] Build fix version --- src/cpl_core/__init__.py | 4 ++-- src/cpl_core/application/__init__.py | 4 ++-- src/cpl_core/configuration/__init__.py | 4 ++-- src/cpl_core/console/__init__.py | 4 ++-- src/cpl_core/database/__init__.py | 4 ++-- src/cpl_core/database/connection/__init__.py | 4 ++-- src/cpl_core/database/context/__init__.py | 4 ++-- src/cpl_core/dependency_injection/__init__.py | 4 ++-- src/cpl_core/environment/__init__.py | 4 ++-- src/cpl_core/logging/__init__.py | 4 ++-- src/cpl_core/mailing/__init__.py | 4 ++-- src/cpl_core/pipes/__init__.py | 4 ++-- src/cpl_core/time/__init__.py | 4 ++-- src/cpl_core/utils/__init__.py | 4 ++-- src/cpl_discord/.cpl/__init__.py | 4 ++-- src/cpl_discord/__init__.py | 4 ++-- src/cpl_discord/application/__init__.py | 4 ++-- src/cpl_discord/command/__init__.py | 4 ++-- src/cpl_discord/configuration/__init__.py | 4 ++-- src/cpl_discord/container/__init__.py | 4 ++-- src/cpl_discord/events/__init__.py | 4 ++-- src/cpl_discord/helper/__init__.py | 4 ++-- src/cpl_discord/service/__init__.py | 4 ++-- 23 files changed, 46 insertions(+), 46 deletions(-) diff --git a/src/cpl_core/__init__.py b/src/cpl_core/__init__.py index 26bafa4d..e75ed564 100644 --- a/src/cpl_core/__init__.py +++ b/src/cpl_core/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/application/__init__.py b/src/cpl_core/application/__init__.py index bdd6bed6..3ab17bdb 100644 --- a/src/cpl_core/application/__init__.py +++ b/src/cpl_core/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -29,4 +29,4 @@ from .startup_abc import StartupABC from .startup_extension_abc import StartupExtensionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/configuration/__init__.py b/src/cpl_core/configuration/__init__.py index e0067e11..ff4e64ca 100644 --- a/src/cpl_core/configuration/__init__.py +++ b/src/cpl_core/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC from .variable_argument import VariableArgument VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/console/__init__.py b/src/cpl_core/console/__init__.py index 5a40db23..d74f0dd6 100644 --- a/src/cpl_core/console/__init__.py +++ b/src/cpl_core/console/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.console' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum from .spinner_thread import SpinnerThread VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/database/__init__.py b/src/cpl_core/database/__init__.py index 5ad62306..1422f1e1 100644 --- a/src/cpl_core/database/__init__.py +++ b/src/cpl_core/database/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings from .table_abc import TableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/database/connection/__init__.py b/src/cpl_core/database/connection/__init__.py index b6f63817..36aa42d7 100644 --- a/src/cpl_core/database/connection/__init__.py +++ b/src/cpl_core/database/connection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.connection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection from .database_connection_abc import DatabaseConnectionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/database/context/__init__.py b/src/cpl_core/database/context/__init__.py index d128019a..4436f9c1 100644 --- a/src/cpl_core/database/context/__init__.py +++ b/src/cpl_core/database/context/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.context' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_context import DatabaseContext from .database_context_abc import DatabaseContextABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/dependency_injection/__init__.py b/src/cpl_core/dependency_injection/__init__.py index c1b685b7..05a2037c 100644 --- a/src/cpl_core/dependency_injection/__init__.py +++ b/src/cpl_core/dependency_injection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.dependency_injection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -31,4 +31,4 @@ from .service_provider import ServiceProvider from .service_provider_abc import ServiceProviderABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/environment/__init__.py b/src/cpl_core/environment/__init__.py index 97f9efd9..2a3ba33d 100644 --- a/src/cpl_core/environment/__init__.py +++ b/src/cpl_core/environment/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.environment' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum from .application_environment import ApplicationEnvironment VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/logging/__init__.py b/src/cpl_core/logging/__init__.py index 26668484..f8bef11e 100644 --- a/src/cpl_core/logging/__init__.py +++ b/src/cpl_core/logging/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.logging' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings from .logging_settings_name_enum import LoggingSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/mailing/__init__.py b/src/cpl_core/mailing/__init__.py index c9aeb63f..4cd5012b 100644 --- a/src/cpl_core/mailing/__init__.py +++ b/src/cpl_core/mailing/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.mailing' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings from .email_client_settings_name_enum import EMailClientSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/pipes/__init__.py b/src/cpl_core/pipes/__init__.py index 07021212..dc270fdc 100644 --- a/src/cpl_core/pipes/__init__.py +++ b/src/cpl_core/pipes/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.pipes' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -30,4 +30,4 @@ from .to_camel_case_pipe import ToCamelCasePipe from .to_snake_case_pipe import ToSnakeCasePipe VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/time/__init__.py b/src/cpl_core/time/__init__.py index 86eccbd7..aae4c510 100644 --- a/src/cpl_core/time/__init__.py +++ b/src/cpl_core/time/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.time' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_core/utils/__init__.py b/src/cpl_core/utils/__init__.py index 2680a639..166772e9 100644 --- a/src/cpl_core/utils/__init__.py +++ b/src/cpl_core/utils/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.utils' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -26,4 +26,4 @@ from .string import String from .pip import Pip VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/.cpl/__init__.py b/src/cpl_discord/.cpl/__init__.py index e2b391ae..25c717b1 100644 --- a/src/cpl_discord/.cpl/__init__.py +++ b/src/cpl_discord/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/__init__.py b/src/cpl_discord/__init__.py index b90ee3d0..046a599f 100644 --- a/src/cpl_discord/__init__.py +++ b/src/cpl_discord/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -55,4 +55,4 @@ def get_discord_collection(services: 'ServiceCollectionABC') -> 'DiscordCollecti # build-ignore-end VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/application/__init__.py b/src/cpl_discord/application/__init__.py index cdfee203..fc324cb3 100644 --- a/src/cpl_discord/application/__init__.py +++ b/src/cpl_discord/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_application_abc import DiscordBotApplicationABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/command/__init__.py b/src/cpl_discord/command/__init__.py index f0306bd2..bd8ffa24 100644 --- a/src/cpl_discord/command/__init__.py +++ b/src/cpl_discord/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -25,4 +25,4 @@ from .discord_command_abc import DiscordCommandABC from .discord_commands_meta import DiscordCogMeta VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/configuration/__init__.py b/src/cpl_discord/configuration/__init__.py index 5fcaa9a4..8fca7136 100644 --- a/src/cpl_discord/configuration/__init__.py +++ b/src/cpl_discord/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_settings import DiscordBotSettings VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/container/__init__.py b/src/cpl_discord/container/__init__.py index 2b27e09c..430aac56 100644 --- a/src/cpl_discord/container/__init__.py +++ b/src/cpl_discord/container/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.container' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -31,4 +31,4 @@ from .thread import Thread from .voice_channel import VoiceChannel VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/events/__init__.py b/src/cpl_discord/events/__init__.py index e5259830..6c4fe2b3 100644 --- a/src/cpl_discord/events/__init__.py +++ b/src/cpl_discord/events/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.events' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -69,4 +69,4 @@ from .on_voice_state_update_abc import OnVoiceStateUpdateABC from .on_webhooks_update_abc import OnWebhooksUpdateABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/helper/__init__.py b/src/cpl_discord/helper/__init__.py index dd67de1f..caaec2b4 100644 --- a/src/cpl_discord/helper/__init__.py +++ b/src/cpl_discord/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .to_containers_converter import ToContainersConverter VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') diff --git a/src/cpl_discord/service/__init__.py b/src/cpl_discord/service/__init__.py index 110b1d4b..6f0d18c5 100644 --- a/src/cpl_discord/service/__init__.py +++ b/src/cpl_discord/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1' +__version__ = '2022.12.1.post1' from collections import namedtuple @@ -29,4 +29,4 @@ from .discord_service import DiscordService from .discord_service_abc import DiscordServiceABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post1') -- 2.49.1 From 7be3cf38dc727182f89932fa0ddfb4a8e4616fbe Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 12 Jan 2023 09:05:24 +0100 Subject: [PATCH 038/124] Fixed cpl-cli deps --- src/cpl_cli/.cpl/__init__.py | 4 ++-- src/cpl_cli/__init__.py | 4 ++-- src/cpl_cli/_templates/__init__.py | 4 ++-- src/cpl_cli/_templates/build/__init__.py | 4 ++-- src/cpl_cli/_templates/publish/__init__.py | 4 ++-- src/cpl_cli/abc/__init__.py | 4 ++-- src/cpl_cli/command/__init__.py | 4 ++-- src/cpl_cli/configuration/__init__.py | 4 ++-- src/cpl_cli/cpl-cli.json | 4 ++-- src/cpl_cli/helper/__init__.py | 4 ++-- src/cpl_cli/live_server/__init__.py | 4 ++-- src/cpl_cli/migrations/__init__.py | 4 ++-- src/cpl_cli/migrations/base/__init__.py | 4 ++-- src/cpl_cli/migrations/service/__init__.py | 4 ++-- src/cpl_cli/publish/__init__.py | 4 ++-- src/cpl_cli/source_creator/__init__.py | 4 ++-- src/cpl_cli/validators/__init__.py | 4 ++-- 17 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/cpl_cli/.cpl/__init__.py b/src/cpl_cli/.cpl/__init__.py index ed92c57b..574614d3 100644 --- a/src/cpl_cli/.cpl/__init__.py +++ b/src/cpl_cli/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/__init__.py b/src/cpl_cli/__init__.py index 53ec2fcf..eadf291f 100644 --- a/src/cpl_cli/__init__.py +++ b/src/cpl_cli/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -28,4 +28,4 @@ from .main import main from .startup import Startup VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/_templates/__init__.py b/src/cpl_cli/_templates/__init__.py index 67bd56a9..7129a39f 100644 --- a/src/cpl_cli/_templates/__init__.py +++ b/src/cpl_cli/_templates/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/_templates/build/__init__.py b/src/cpl_cli/_templates/build/__init__.py index 11fffe93..c2c411b3 100644 --- a/src/cpl_cli/_templates/build/__init__.py +++ b/src/cpl_cli/_templates/build/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.build' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/_templates/publish/__init__.py b/src/cpl_cli/_templates/publish/__init__.py index 42a25dbc..8d3ec898 100644 --- a/src/cpl_cli/_templates/publish/__init__.py +++ b/src/cpl_cli/_templates/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/abc/__init__.py b/src/cpl_cli/abc/__init__.py index 6b5c6e66..067beecf 100644 --- a/src/cpl_cli/abc/__init__.py +++ b/src/cpl_cli/abc/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.abc' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/command/__init__.py b/src/cpl_cli/command/__init__.py index c0204374..461d1eae 100644 --- a/src/cpl_cli/command/__init__.py +++ b/src/cpl_cli/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -29,4 +29,4 @@ from .publish_service import PublishService from .version_service import VersionService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/configuration/__init__.py b/src/cpl_cli/configuration/__init__.py index ced3056f..ffdc24c5 100644 --- a/src/cpl_cli/configuration/__init__.py +++ b/src/cpl_cli/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -31,4 +31,4 @@ from .workspace_settings import WorkspaceSettings from .workspace_settings_name_enum import WorkspaceSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/cpl-cli.json b/src/cpl_cli/cpl-cli.json index d9ee48ce..8dadccc0 100644 --- a/src/cpl_cli/cpl-cli.json +++ b/src/cpl_cli/cpl-cli.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post1" + "Micro": "1.post2" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", @@ -16,7 +16,7 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core==2022.12.1.post1" + "cpl-core>=2022.12.1.post2" ], "DevDependencies": [], "PythonVersion": ">=3.10", diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py index 503db400..bead37b9 100644 --- a/src/cpl_cli/helper/__init__.py +++ b/src/cpl_cli/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/live_server/__init__.py b/src/cpl_cli/live_server/__init__.py index 27db3bf9..8f3432eb 100644 --- a/src/cpl_cli/live_server/__init__.py +++ b/src/cpl_cli/live_server/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.live_server' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/migrations/__init__.py b/src/cpl_cli/migrations/__init__.py index b6c9cb3b..a5949242 100644 --- a/src/cpl_cli/migrations/__init__.py +++ b/src/cpl_cli/migrations/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/migrations/base/__init__.py b/src/cpl_cli/migrations/base/__init__.py index 549d754b..c34d71d5 100644 --- a/src/cpl_cli/migrations/base/__init__.py +++ b/src/cpl_cli/migrations/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/migrations/service/__init__.py b/src/cpl_cli/migrations/service/__init__.py index 3f4c03bc..0345dff1 100644 --- a/src/cpl_cli/migrations/service/__init__.py +++ b/src/cpl_cli/migrations/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/publish/__init__.py b/src/cpl_cli/publish/__init__.py index b0e5f369..33e0b02f 100644 --- a/src/cpl_cli/publish/__init__.py +++ b/src/cpl_cli/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -25,4 +25,4 @@ from .publisher_abc import PublisherABC from .publisher_service import PublisherService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/source_creator/__init__.py b/src/cpl_cli/source_creator/__init__.py index 48148416..7db8f07b 100644 --- a/src/cpl_cli/source_creator/__init__.py +++ b/src/cpl_cli/source_creator/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.source_creator' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_cli/validators/__init__.py b/src/cpl_cli/validators/__init__.py index 4b99fdf1..777b1f30 100644 --- a/src/cpl_cli/validators/__init__.py +++ b/src/cpl_cli/validators/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.validators' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') -- 2.49.1 From 8b40c656612a7dcf067af799b88a7147cfec35ca Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 12 Jan 2023 13:48:55 +0100 Subject: [PATCH 039/124] Fixed discord event schematic --- src/cpl_discord/.cpl/__init__.py | 4 +- .../.cpl/schematic_discord_event.py | 38 ++++++++++++++----- src/cpl_discord/__init__.py | 4 +- src/cpl_discord/application/__init__.py | 4 +- src/cpl_discord/command/__init__.py | 4 +- src/cpl_discord/configuration/__init__.py | 4 +- src/cpl_discord/container/__init__.py | 4 +- src/cpl_discord/cpl-discord.json | 2 +- src/cpl_discord/events/__init__.py | 4 +- src/cpl_discord/helper/__init__.py | 4 +- src/cpl_discord/service/__init__.py | 4 +- 11 files changed, 48 insertions(+), 28 deletions(-) diff --git a/src/cpl_discord/.cpl/__init__.py b/src/cpl_discord/.cpl/__init__.py index 25c717b1..6c75166f 100644 --- a/src/cpl_discord/.cpl/__init__.py +++ b/src/cpl_discord/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/.cpl/schematic_discord_event.py b/src/cpl_discord/.cpl/schematic_discord_event.py index 43f08354..d3c2387b 100644 --- a/src/cpl_discord/.cpl/schematic_discord_event.py +++ b/src/cpl_discord/.cpl/schematic_discord_event.py @@ -12,14 +12,16 @@ class Event(GenerateSchematicABC): GenerateSchematicABC.__init__(self, name, schematic, path) event = None + event_class = None from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum for event_type in DiscordEventTypesEnum: event_name = event_type.value.__name__.replace("ABC", '') - if event_name in name: + if name.endswith(event_name): name = name.replace(event_name, "") event = event_name + event_class = event_type.value break if event is None: @@ -29,15 +31,27 @@ class Event(GenerateSchematicABC): Console.write_line(f'\t{event_type.value.__name__.replace("ABC", "")}') sys.exit() - self._event_class = f'{event}ABC' - self._name = f'{String.convert_to_snake_case(self._event_class.replace("ABC", ""))}_{schematic}.py' - self._class_name = f'{self._event_class.replace("ABC", "")}{String.first_to_upper(schematic)}' + self._event_class_name = f'{event}ABC' + event_snake_case = String.convert_to_snake_case(self._event_class_name.replace("ABC", "")) + + if event_snake_case.lower() not in dir(event_class): + Console.error(f'Error in event {event}: Function {event_snake_case} not found!') + sys.exit() + + self._name = f'{event_snake_case}_{schematic}.py' + self._class_name = f'{self._event_class_name.replace("ABC", "")}{String.first_to_upper(schematic)}' + + from inspect import signature + self._func_name = event_snake_case + self._signature = str(signature(getattr(event_class, event_snake_case)))[1:][:-1] + if name != '': - self._name = f'{String.convert_to_snake_case(name)}_{self._name}' - self._class_name = f'{String.first_to_upper(name)}{self._class_name}' + self._name = f'{String.convert_to_snake_case(name)}_{self._name}' + self._class_name = f'{String.first_to_upper(name)}{self._class_name}' def get_code(self) -> str: code = """\ + import discord from cpl_core.logging import LoggerABC from cpl_discord.events import $EventClass from cpl_discord.service import DiscordBotServiceABC @@ -50,15 +64,21 @@ class Event(GenerateSchematicABC): logger: LoggerABC, bot: DiscordBotServiceABC, ): - OnReadyABC.__init__(self) + $EventClass.__init__(self) self._logger = logger self._bot = bot - async def on_ready(self): + async def $Func($Signature): pass """ - return self.build_code_str(code, Name=self._class_name, EventClass=self._event_class) + return self.build_code_str( + code, + Name=self._class_name, + EventClass=self._event_class_name, + Func=self._func_name, + Signature=self._signature + ) @classmethod def register(cls): diff --git a/src/cpl_discord/__init__.py b/src/cpl_discord/__init__.py index 046a599f..2d33b3f7 100644 --- a/src/cpl_discord/__init__.py +++ b/src/cpl_discord/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -55,4 +55,4 @@ def get_discord_collection(services: 'ServiceCollectionABC') -> 'DiscordCollecti # build-ignore-end VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/application/__init__.py b/src/cpl_discord/application/__init__.py index fc324cb3..caabdd76 100644 --- a/src/cpl_discord/application/__init__.py +++ b/src/cpl_discord/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_application_abc import DiscordBotApplicationABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/command/__init__.py b/src/cpl_discord/command/__init__.py index bd8ffa24..1d3836b2 100644 --- a/src/cpl_discord/command/__init__.py +++ b/src/cpl_discord/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -25,4 +25,4 @@ from .discord_command_abc import DiscordCommandABC from .discord_commands_meta import DiscordCogMeta VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/configuration/__init__.py b/src/cpl_discord/configuration/__init__.py index 8fca7136..7278a1b9 100644 --- a/src/cpl_discord/configuration/__init__.py +++ b/src/cpl_discord/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_settings import DiscordBotSettings VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/container/__init__.py b/src/cpl_discord/container/__init__.py index 430aac56..606b067c 100644 --- a/src/cpl_discord/container/__init__.py +++ b/src/cpl_discord/container/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.container' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -31,4 +31,4 @@ from .thread import Thread from .voice_channel import VoiceChannel VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/cpl-discord.json b/src/cpl_discord/cpl-discord.json index d75b5cf7..bf3c28fe 100644 --- a/src/cpl_discord/cpl-discord.json +++ b/src/cpl_discord/cpl-discord.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post1" + "Micro": "1.post2" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_discord/events/__init__.py b/src/cpl_discord/events/__init__.py index 6c4fe2b3..499ed9ac 100644 --- a/src/cpl_discord/events/__init__.py +++ b/src/cpl_discord/events/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.events' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -69,4 +69,4 @@ from .on_voice_state_update_abc import OnVoiceStateUpdateABC from .on_webhooks_update_abc import OnWebhooksUpdateABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/helper/__init__.py b/src/cpl_discord/helper/__init__.py index caaec2b4..6fabdc5c 100644 --- a/src/cpl_discord/helper/__init__.py +++ b/src/cpl_discord/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .to_containers_converter import ToContainersConverter VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') diff --git a/src/cpl_discord/service/__init__.py b/src/cpl_discord/service/__init__.py index 6f0d18c5..a7e5d9c6 100644 --- a/src/cpl_discord/service/__init__.py +++ b/src/cpl_discord/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post1' +__version__ = '2022.12.1.post2' from collections import namedtuple @@ -29,4 +29,4 @@ from .discord_service import DiscordService from .discord_service_abc import DiscordServiceABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post1') +version_info = VersionInfo(major='2022', minor='12', micro='1.post2') -- 2.49.1 From 269f083662f283425d2a6490bfbdf0bc8ea6cae1 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 15 Jan 2023 02:33:56 +0100 Subject: [PATCH 040/124] Fixed static inject args order --- src/cpl_core/__init__.py | 4 ++-- src/cpl_core/application/__init__.py | 4 ++-- src/cpl_core/configuration/__init__.py | 4 ++-- src/cpl_core/console/__init__.py | 4 ++-- src/cpl_core/cpl-core.json | 2 +- src/cpl_core/database/__init__.py | 4 ++-- src/cpl_core/database/connection/__init__.py | 4 ++-- src/cpl_core/database/context/__init__.py | 4 ++-- src/cpl_core/dependency_injection/__init__.py | 4 ++-- src/cpl_core/dependency_injection/service_provider_abc.py | 2 +- src/cpl_core/environment/__init__.py | 4 ++-- src/cpl_core/logging/__init__.py | 4 ++-- src/cpl_core/mailing/__init__.py | 4 ++-- src/cpl_core/pipes/__init__.py | 4 ++-- src/cpl_core/time/__init__.py | 4 ++-- src/cpl_core/utils/__init__.py | 4 ++-- 16 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/cpl_core/__init__.py b/src/cpl_core/__init__.py index e75ed564..6c188e3c 100644 --- a/src/cpl_core/__init__.py +++ b/src/cpl_core/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/application/__init__.py b/src/cpl_core/application/__init__.py index 3ab17bdb..37306db8 100644 --- a/src/cpl_core/application/__init__.py +++ b/src/cpl_core/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -29,4 +29,4 @@ from .startup_abc import StartupABC from .startup_extension_abc import StartupExtensionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/configuration/__init__.py b/src/cpl_core/configuration/__init__.py index ff4e64ca..eb98dff5 100644 --- a/src/cpl_core/configuration/__init__.py +++ b/src/cpl_core/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC from .variable_argument import VariableArgument VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/console/__init__.py b/src/cpl_core/console/__init__.py index d74f0dd6..847102e2 100644 --- a/src/cpl_core/console/__init__.py +++ b/src/cpl_core/console/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.console' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum from .spinner_thread import SpinnerThread VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/cpl-core.json b/src/cpl_core/cpl-core.json index 681f8c9c..cf09d6ac 100644 --- a/src/cpl_core/cpl-core.json +++ b/src/cpl_core/cpl-core.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post2" + "Micro": "1.post3" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_core/database/__init__.py b/src/cpl_core/database/__init__.py index 1422f1e1..e24fcdb7 100644 --- a/src/cpl_core/database/__init__.py +++ b/src/cpl_core/database/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings from .table_abc import TableABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/database/connection/__init__.py b/src/cpl_core/database/connection/__init__.py index 36aa42d7..2a74b218 100644 --- a/src/cpl_core/database/connection/__init__.py +++ b/src/cpl_core/database/connection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.connection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection from .database_connection_abc import DatabaseConnectionABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/database/context/__init__.py b/src/cpl_core/database/context/__init__.py index 4436f9c1..409ec55e 100644 --- a/src/cpl_core/database/context/__init__.py +++ b/src/cpl_core/database/context/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.database.context' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -25,4 +25,4 @@ from .database_context import DatabaseContext from .database_context_abc import DatabaseContextABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/dependency_injection/__init__.py b/src/cpl_core/dependency_injection/__init__.py index 05a2037c..1b3a6251 100644 --- a/src/cpl_core/dependency_injection/__init__.py +++ b/src/cpl_core/dependency_injection/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.dependency_injection' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -31,4 +31,4 @@ from .service_provider import ServiceProvider from .service_provider_abc import ServiceProviderABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/dependency_injection/service_provider_abc.py b/src/cpl_core/dependency_injection/service_provider_abc.py index bf7e851e..5013a670 100644 --- a/src/cpl_core/dependency_injection/service_provider_abc.py +++ b/src/cpl_core/dependency_injection/service_provider_abc.py @@ -111,6 +111,6 @@ class ServiceProviderABC(ABC): raise Exception(f'{cls.__name__} not build!') injection = [x for x in cls._provider.build_by_signature(signature(f)) if x is not None] - return f(*injection, *args, **kwargs) + return f(*args, *injection, **kwargs) return inner diff --git a/src/cpl_core/environment/__init__.py b/src/cpl_core/environment/__init__.py index 2a3ba33d..3325be9f 100644 --- a/src/cpl_core/environment/__init__.py +++ b/src/cpl_core/environment/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.environment' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum from .application_environment import ApplicationEnvironment VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/logging/__init__.py b/src/cpl_core/logging/__init__.py index f8bef11e..290a53ea 100644 --- a/src/cpl_core/logging/__init__.py +++ b/src/cpl_core/logging/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.logging' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings from .logging_settings_name_enum import LoggingSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/mailing/__init__.py b/src/cpl_core/mailing/__init__.py index 4cd5012b..661fff4e 100644 --- a/src/cpl_core/mailing/__init__.py +++ b/src/cpl_core/mailing/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.mailing' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings from .email_client_settings_name_enum import EMailClientSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/pipes/__init__.py b/src/cpl_core/pipes/__init__.py index dc270fdc..ff519295 100644 --- a/src/cpl_core/pipes/__init__.py +++ b/src/cpl_core/pipes/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.pipes' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -30,4 +30,4 @@ from .to_camel_case_pipe import ToCamelCasePipe from .to_snake_case_pipe import ToSnakeCasePipe VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/time/__init__.py b/src/cpl_core/time/__init__.py index aae4c510..4356202e 100644 --- a/src/cpl_core/time/__init__.py +++ b/src/cpl_core/time/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.time' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_core/utils/__init__.py b/src/cpl_core/utils/__init__.py index 166772e9..522edc1f 100644 --- a/src/cpl_core/utils/__init__.py +++ b/src/cpl_core/utils/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_core.utils' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -26,4 +26,4 @@ from .string import String from .pip import Pip VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') -- 2.49.1 From 2c3664c1b961ab165c40097a812c4a034ab7eee6 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Sun, 15 Jan 2023 10:01:05 +0100 Subject: [PATCH 041/124] Fixed schematic schematic --- src/cpl_cli/.cpl/__init__.py | 4 ++-- src/cpl_cli/.cpl/schematic_schematic.py | 2 +- src/cpl_cli/__init__.py | 4 ++-- src/cpl_cli/_templates/__init__.py | 4 ++-- src/cpl_cli/_templates/build/__init__.py | 4 ++-- src/cpl_cli/_templates/publish/__init__.py | 4 ++-- src/cpl_cli/abc/__init__.py | 4 ++-- src/cpl_cli/command/__init__.py | 4 ++-- src/cpl_cli/configuration/__init__.py | 4 ++-- src/cpl_cli/cpl-cli.json | 2 +- src/cpl_cli/helper/__init__.py | 4 ++-- src/cpl_cli/live_server/__init__.py | 4 ++-- src/cpl_cli/migrations/__init__.py | 4 ++-- src/cpl_cli/migrations/base/__init__.py | 4 ++-- src/cpl_cli/migrations/service/__init__.py | 4 ++-- src/cpl_cli/publish/__init__.py | 4 ++-- src/cpl_cli/source_creator/__init__.py | 4 ++-- src/cpl_cli/validators/__init__.py | 4 ++-- 18 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/cpl_cli/.cpl/__init__.py b/src/cpl_cli/.cpl/__init__.py index 574614d3..98e1b444 100644 --- a/src/cpl_cli/.cpl/__init__.py +++ b/src/cpl_cli/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/.cpl/schematic_schematic.py b/src/cpl_cli/.cpl/schematic_schematic.py index b62d2277..20d5bc2b 100644 --- a/src/cpl_cli/.cpl/schematic_schematic.py +++ b/src/cpl_cli/.cpl/schematic_schematic.py @@ -40,7 +40,7 @@ class Schematic(GenerateSchematicABC): [] ) """ - return self.build_code_str(code, Name=self._class_name) + return self.build_code_str(code, Name=self._class_name, NameLower=self._class_name.lower()) @classmethod def register(cls): diff --git a/src/cpl_cli/__init__.py b/src/cpl_cli/__init__.py index eadf291f..399fcd14 100644 --- a/src/cpl_cli/__init__.py +++ b/src/cpl_cli/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -28,4 +28,4 @@ from .main import main from .startup import Startup VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/_templates/__init__.py b/src/cpl_cli/_templates/__init__.py index 7129a39f..85154315 100644 --- a/src/cpl_cli/_templates/__init__.py +++ b/src/cpl_cli/_templates/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/_templates/build/__init__.py b/src/cpl_cli/_templates/build/__init__.py index c2c411b3..923492ff 100644 --- a/src/cpl_cli/_templates/build/__init__.py +++ b/src/cpl_cli/_templates/build/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.build' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/_templates/publish/__init__.py b/src/cpl_cli/_templates/publish/__init__.py index 8d3ec898..6ec123a5 100644 --- a/src/cpl_cli/_templates/publish/__init__.py +++ b/src/cpl_cli/_templates/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli._templates.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/abc/__init__.py b/src/cpl_cli/abc/__init__.py index 067beecf..f3154093 100644 --- a/src/cpl_cli/abc/__init__.py +++ b/src/cpl_cli/abc/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.abc' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/command/__init__.py b/src/cpl_cli/command/__init__.py index 461d1eae..db2a56ce 100644 --- a/src/cpl_cli/command/__init__.py +++ b/src/cpl_cli/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -29,4 +29,4 @@ from .publish_service import PublishService from .version_service import VersionService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/configuration/__init__.py b/src/cpl_cli/configuration/__init__.py index ffdc24c5..d31b59b9 100644 --- a/src/cpl_cli/configuration/__init__.py +++ b/src/cpl_cli/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -31,4 +31,4 @@ from .workspace_settings import WorkspaceSettings from .workspace_settings_name_enum import WorkspaceSettingsNameEnum VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/cpl-cli.json b/src/cpl_cli/cpl-cli.json index 8dadccc0..49a57385 100644 --- a/src/cpl_cli/cpl-cli.json +++ b/src/cpl_cli/cpl-cli.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post2" + "Micro": "1.post3" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", diff --git a/src/cpl_cli/helper/__init__.py b/src/cpl_cli/helper/__init__.py index bead37b9..f937b598 100644 --- a/src/cpl_cli/helper/__init__.py +++ b/src/cpl_cli/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/live_server/__init__.py b/src/cpl_cli/live_server/__init__.py index 8f3432eb..95eb917c 100644 --- a/src/cpl_cli/live_server/__init__.py +++ b/src/cpl_cli/live_server/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.live_server' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/migrations/__init__.py b/src/cpl_cli/migrations/__init__.py index a5949242..74997010 100644 --- a/src/cpl_cli/migrations/__init__.py +++ b/src/cpl_cli/migrations/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/migrations/base/__init__.py b/src/cpl_cli/migrations/base/__init__.py index c34d71d5..612dba9b 100644 --- a/src/cpl_cli/migrations/base/__init__.py +++ b/src/cpl_cli/migrations/base/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.base' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/migrations/service/__init__.py b/src/cpl_cli/migrations/service/__init__.py index 0345dff1..010f6a3f 100644 --- a/src/cpl_cli/migrations/service/__init__.py +++ b/src/cpl_cli/migrations/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.migrations.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/publish/__init__.py b/src/cpl_cli/publish/__init__.py index 33e0b02f..411850e7 100644 --- a/src/cpl_cli/publish/__init__.py +++ b/src/cpl_cli/publish/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.publish' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -25,4 +25,4 @@ from .publisher_abc import PublisherABC from .publisher_service import PublisherService VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/source_creator/__init__.py b/src/cpl_cli/source_creator/__init__.py index 7db8f07b..6e881ddb 100644 --- a/src/cpl_cli/source_creator/__init__.py +++ b/src/cpl_cli/source_creator/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.source_creator' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') diff --git a/src/cpl_cli/validators/__init__.py b/src/cpl_cli/validators/__init__.py index 777b1f30..f7a04b6d 100644 --- a/src/cpl_cli/validators/__init__.py +++ b/src/cpl_cli/validators/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_cli.validators' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2020 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.1.post3' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='1.post3') -- 2.49.1 From 81795082488fc135c1f45188da7d457d21e1ccbb Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 13 Feb 2023 16:58:46 +0100 Subject: [PATCH 042/124] Added scheduled event support for cpl-discord --- src/cpl_discord/.cpl/__init__.py | 4 +-- src/cpl_discord/__init__.py | 4 +-- src/cpl_discord/application/__init__.py | 4 +-- src/cpl_discord/command/__init__.py | 4 +-- src/cpl_discord/configuration/__init__.py | 4 +-- src/cpl_discord/container/__init__.py | 4 +-- src/cpl_discord/cpl-discord.json | 10 +++---- src/cpl_discord/discord_event_types_enum.py | 10 +++++++ src/cpl_discord/events/__init__.py | 4 +-- .../events/on_scheduled_event_create_abc.py | 11 +++++++ .../events/on_scheduled_event_delete_abc.py | 11 +++++++ .../events/on_scheduled_event_update_abc.py | 11 +++++++ .../events/on_scheduled_event_user_add_abc.py | 11 +++++++ .../on_scheduled_event_user_remove_abc.py | 11 +++++++ src/cpl_discord/helper/__init__.py | 4 +-- src/cpl_discord/service/__init__.py | 4 +-- src/cpl_discord/service/discord_service.py | 30 +++++++++++++++++++ 17 files changed, 118 insertions(+), 23 deletions(-) create mode 100644 src/cpl_discord/events/on_scheduled_event_create_abc.py create mode 100644 src/cpl_discord/events/on_scheduled_event_delete_abc.py create mode 100644 src/cpl_discord/events/on_scheduled_event_update_abc.py create mode 100644 src/cpl_discord/events/on_scheduled_event_user_add_abc.py create mode 100644 src/cpl_discord/events/on_scheduled_event_user_remove_abc.py diff --git a/src/cpl_discord/.cpl/__init__.py b/src/cpl_discord/.cpl/__init__.py index 6c75166f..dcada057 100644 --- a/src/cpl_discord/.cpl/__init__.py +++ b/src/cpl_discord/.cpl/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -23,4 +23,4 @@ from collections import namedtuple # imports: VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/__init__.py b/src/cpl_discord/__init__.py index 2d33b3f7..100e9dd6 100644 --- a/src/cpl_discord/__init__.py +++ b/src/cpl_discord/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -55,4 +55,4 @@ def get_discord_collection(services: 'ServiceCollectionABC') -> 'DiscordCollecti # build-ignore-end VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/application/__init__.py b/src/cpl_discord/application/__init__.py index caabdd76..838c6c15 100644 --- a/src/cpl_discord/application/__init__.py +++ b/src/cpl_discord/application/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.application' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_application_abc import DiscordBotApplicationABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/command/__init__.py b/src/cpl_discord/command/__init__.py index 1d3836b2..0b5b94db 100644 --- a/src/cpl_discord/command/__init__.py +++ b/src/cpl_discord/command/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.command' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -25,4 +25,4 @@ from .discord_command_abc import DiscordCommandABC from .discord_commands_meta import DiscordCogMeta VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/configuration/__init__.py b/src/cpl_discord/configuration/__init__.py index 7278a1b9..0fefae46 100644 --- a/src/cpl_discord/configuration/__init__.py +++ b/src/cpl_discord/configuration/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.configuration' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .discord_bot_settings import DiscordBotSettings VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/container/__init__.py b/src/cpl_discord/container/__init__.py index 606b067c..3ce5277a 100644 --- a/src/cpl_discord/container/__init__.py +++ b/src/cpl_discord/container/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.container' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -31,4 +31,4 @@ from .thread import Thread from .voice_channel import VoiceChannel VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/cpl-discord.json b/src/cpl_discord/cpl-discord.json index bf3c28fe..b9ece160 100644 --- a/src/cpl_discord/cpl-discord.json +++ b/src/cpl_discord/cpl-discord.json @@ -4,7 +4,7 @@ "Version": { "Major": "2022", "Minor": "12", - "Micro": "1.post2" + "Micro": "2" }, "Author": "Sven Heidemann", "AuthorEmail": "sven.heidemann@sh-edraft.de", @@ -16,12 +16,12 @@ "LicenseName": "MIT", "LicenseDescription": "MIT, see LICENSE for more details.", "Dependencies": [ - "cpl-core>=2022.12.1.post2", - "discord.py==2.1.0", - "cpl-query>=2022.12.2.post1" + "cpl-core==2022.12.1.post3", + "discord.py==2.1.1", + "cpl-query==2022.12.2.post1" ], "DevDependencies": [ - "cpl-cli>=2022.12.1" + "cpl-cli==2022.12.1.post3" ], "PythonVersion": ">=3.10", "PythonPath": {}, diff --git a/src/cpl_discord/discord_event_types_enum.py b/src/cpl_discord/discord_event_types_enum.py index c8069eab..9d306cb7 100644 --- a/src/cpl_discord/discord_event_types_enum.py +++ b/src/cpl_discord/discord_event_types_enum.py @@ -47,6 +47,11 @@ from cpl_discord.events.on_reaction_clear_emoji_abc import OnReactionClearEmojiA from cpl_discord.events.on_reaction_remove_abc import OnReactionRemoveABC from cpl_discord.events.on_ready_abc import OnReadyABC from cpl_discord.events.on_resume_abc import OnResumeABC +from cpl_discord.events.on_scheduled_event_create_abc import OnScheduledEventCreateABC +from cpl_discord.events.on_scheduled_event_delete_abc import OnScheduledEventDeleteABC +from cpl_discord.events.on_scheduled_event_update_abc import OnScheduledEventUpdateABC +from cpl_discord.events.on_scheduled_event_user_add_abc import OnScheduledEventUserAddABC +from cpl_discord.events.on_scheduled_event_user_remove_abc import OnScheduledEventUserRemoveABC from cpl_discord.events.on_typing_abc import OnTypingABC from cpl_discord.events.on_user_update_abc import OnUserUpdateABC from cpl_discord.events.on_voice_state_update_abc import OnVoiceStateUpdateABC @@ -76,6 +81,11 @@ class DiscordEventTypesEnum(Enum): on_guild_role_delete = OnGuildRoleDeleteABC on_guild_role_update = OnGuildRoleUpdateABC on_guild_unavailable = OnGuildUnavailableABC + on_scheduled_event_create = OnScheduledEventCreateABC + on_scheduled_event_delete = OnScheduledEventDeleteABC + on_scheduled_event_update = OnScheduledEventUpdateABC + on_scheduled_event_user_add = OnScheduledEventUserAddABC + on_scheduled_event_user_remove = OnScheduledEventUserRemoveABC on_guild_update = OnGuildUpdateABC on_invite_create = OnInviteCreateABC on_invite_delete = OnInviteDeleteABC diff --git a/src/cpl_discord/events/__init__.py b/src/cpl_discord/events/__init__.py index 499ed9ac..dd5c3304 100644 --- a/src/cpl_discord/events/__init__.py +++ b/src/cpl_discord/events/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.events' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -69,4 +69,4 @@ from .on_voice_state_update_abc import OnVoiceStateUpdateABC from .on_webhooks_update_abc import OnWebhooksUpdateABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/events/on_scheduled_event_create_abc.py b/src/cpl_discord/events/on_scheduled_event_create_abc.py new file mode 100644 index 00000000..a83a6e33 --- /dev/null +++ b/src/cpl_discord/events/on_scheduled_event_create_abc.py @@ -0,0 +1,11 @@ +from abc import ABC, abstractmethod +import discord + + +class OnScheduledEventCreateABC(ABC): + + @abstractmethod + def __init__(self): pass + + @abstractmethod + async def on_scheduled_event_create(self, event: discord.ScheduledEvent): pass diff --git a/src/cpl_discord/events/on_scheduled_event_delete_abc.py b/src/cpl_discord/events/on_scheduled_event_delete_abc.py new file mode 100644 index 00000000..afec0ce7 --- /dev/null +++ b/src/cpl_discord/events/on_scheduled_event_delete_abc.py @@ -0,0 +1,11 @@ +from abc import ABC, abstractmethod +import discord + + +class OnScheduledEventDeleteABC(ABC): + + @abstractmethod + def __init__(self): pass + + @abstractmethod + async def on_scheduled_event_delete(self, event: discord.ScheduledEvent): pass diff --git a/src/cpl_discord/events/on_scheduled_event_update_abc.py b/src/cpl_discord/events/on_scheduled_event_update_abc.py new file mode 100644 index 00000000..b78ba357 --- /dev/null +++ b/src/cpl_discord/events/on_scheduled_event_update_abc.py @@ -0,0 +1,11 @@ +from abc import ABC, abstractmethod +import discord + + +class OnScheduledEventUpdateABC(ABC): + + @abstractmethod + def __init__(self): pass + + @abstractmethod + async def on_scheduled_event_update(self, before: discord.ScheduledEvent, after: discord.ScheduledEvent): pass diff --git a/src/cpl_discord/events/on_scheduled_event_user_add_abc.py b/src/cpl_discord/events/on_scheduled_event_user_add_abc.py new file mode 100644 index 00000000..944ab298 --- /dev/null +++ b/src/cpl_discord/events/on_scheduled_event_user_add_abc.py @@ -0,0 +1,11 @@ +from abc import ABC, abstractmethod +import discord + + +class OnScheduledEventUserAddABC(ABC): + + @abstractmethod + def __init__(self): pass + + @abstractmethod + async def on_scheduled_event_user_add(self, event: discord.ScheduledEvent, user: discord.User): pass diff --git a/src/cpl_discord/events/on_scheduled_event_user_remove_abc.py b/src/cpl_discord/events/on_scheduled_event_user_remove_abc.py new file mode 100644 index 00000000..0839207f --- /dev/null +++ b/src/cpl_discord/events/on_scheduled_event_user_remove_abc.py @@ -0,0 +1,11 @@ +from abc import ABC, abstractmethod +import discord + + +class OnScheduledEventUserRemoveABC(ABC): + + @abstractmethod + def __init__(self): pass + + @abstractmethod + async def on_scheduled_event_user_remove(self, event: discord.ScheduledEvent, user: discord.User): pass diff --git a/src/cpl_discord/helper/__init__.py b/src/cpl_discord/helper/__init__.py index 6fabdc5c..b29a74a0 100644 --- a/src/cpl_discord/helper/__init__.py +++ b/src/cpl_discord/helper/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.helper' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -24,4 +24,4 @@ from collections import namedtuple from .to_containers_converter import ToContainersConverter VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/service/__init__.py b/src/cpl_discord/service/__init__.py index a7e5d9c6..d8e5a409 100644 --- a/src/cpl_discord/service/__init__.py +++ b/src/cpl_discord/service/__init__.py @@ -15,7 +15,7 @@ __title__ = 'cpl_discord.service' __author__ = 'Sven Heidemann' __license__ = 'MIT' __copyright__ = 'Copyright (c) 2022 - 2023 sh-edraft.de' -__version__ = '2022.12.1.post2' +__version__ = '2022.12.2' from collections import namedtuple @@ -29,4 +29,4 @@ from .discord_service import DiscordService from .discord_service_abc import DiscordServiceABC VersionInfo = namedtuple('VersionInfo', 'major minor micro') -version_info = VersionInfo(major='2022', minor='12', micro='1.post2') +version_info = VersionInfo(major='2022', minor='12', micro='2') diff --git a/src/cpl_discord/service/discord_service.py b/src/cpl_discord/service/discord_service.py index 6316952d..44c09db6 100644 --- a/src/cpl_discord/service/discord_service.py +++ b/src/cpl_discord/service/discord_service.py @@ -57,6 +57,11 @@ from cpl_discord.events.on_reaction_clear_emoji_abc import OnReactionClearEmojiA from cpl_discord.events.on_reaction_remove_abc import OnReactionRemoveABC from cpl_discord.events.on_ready_abc import OnReadyABC from cpl_discord.events.on_resume_abc import OnResumeABC +from cpl_discord.events.on_scheduled_event_create_abc import OnScheduledEventCreateABC +from cpl_discord.events.on_scheduled_event_delete_abc import OnScheduledEventDeleteABC +from cpl_discord.events.on_scheduled_event_update_abc import OnScheduledEventUpdateABC +from cpl_discord.events.on_scheduled_event_user_add_abc import OnScheduledEventUserAddABC +from cpl_discord.events.on_scheduled_event_user_remove_abc import OnScheduledEventUserRemoveABC from cpl_discord.events.on_typing_abc import OnTypingABC from cpl_discord.events.on_user_update_abc import OnUserUpdateABC from cpl_discord.events.on_voice_state_update_abc import OnVoiceStateUpdateABC @@ -339,6 +344,31 @@ class DiscordService(DiscordServiceABC, commands.Cog, metaclass=DiscordCogMeta): self._logger.trace(__name__, f'Received on_guild_unavailable:\n\t{guild}') await self._handle_event(OnGuildUnavailableABC, guild) + @commands.Cog.listener() + async def on_scheduled_event_create(self, event: discord.ScheduledEvent): + self._logger.trace(__name__, f'Received on_scheduled_event_create:\n\t{event}') + await self._handle_event(OnScheduledEventCreateABC, event) + + @commands.Cog.listener() + async def on_scheduled_event_delete(self, event: discord.ScheduledEvent): + self._logger.trace(__name__, f'Received on_scheduled_event_delete:\n\t{event}') + await self._handle_event(OnScheduledEventDeleteABC, event) + + @commands.Cog.listener() + async def on_scheduled_event_update(self, before: discord.ScheduledEvent, after: discord.ScheduledEvent): + self._logger.trace(__name__, f'Received on_scheduled_event_update:\n\t{before}, {after}') + await self._handle_event(OnScheduledEventUpdateABC, before, after) + + @commands.Cog.listener() + async def on_scheduled_event_user_add(self, event: discord.ScheduledEvent, user: discord.User): + self._logger.trace(__name__, f'Received on_scheduled_event_user_add:\n\t{event}, {user}') + await self._handle_event(OnScheduledEventUserAddABC, event, user) + + @commands.Cog.listener() + async def on_scheduled_event_user_remove(self, event: discord.ScheduledEvent, user: discord.User): + self._logger.trace(__name__, f'Received on_scheduled_event_user_remove:\n\t{event}, {user}') + await self._handle_event(OnScheduledEventUserRemoveABC, event, user) + @commands.Cog.listener() async def on_voice_state_update(self, member: discord.Member, before: discord.VoiceState, after: discord.VoiceState): self._logger.trace(__name__, f'Received on_voice_state_update:\n\t{member}\n\t{before}\n\t{after}') -- 2.49.1 From 9e28dce5ce31d9cd3e1c13b6b79a99ba5231c6b0 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 20 Feb 2023 15:55:20 +0100 Subject: [PATCH 043/124] Updated docs --- cpl-workspace.json | 6 +- docs/build/doctrees/cli.overview.doctree | Bin 24065 -> 0 bytes .../{cli.add.doctree => cpl_cli.add.doctree} | Bin 12887 -> 12895 bytes ...li.build.doctree => cpl_cli.build.doctree} | Bin 6936 -> 6944 bytes docs/build/doctrees/cpl_cli.doctree | Bin 2978 -> 3049 bytes ...erate.doctree => cpl_cli.generate.doctree} | Bin 23619 -> 23627 bytes ...{cli.help.doctree => cpl_cli.help.doctree} | Bin 8694 -> 8702 bytes ...nstall.doctree => cpl_cli.install.doctree} | Bin 11948 -> 11956 bytes .../{cli.new.doctree => cpl_cli.new.doctree} | Bin 20076 -> 20084 bytes docs/build/doctrees/cpl_cli.overview.doctree | Bin 0 -> 24169 bytes ...ublish.doctree => cpl_cli.publish.doctree} | Bin 7952 -> 7960 bytes ....remove.doctree => cpl_cli.remove.doctree} | Bin 10835 -> 10843 bytes .../{cli.run.doctree => cpl_cli.run.doctree} | Bin 7079 -> 7083 bytes ...li.start.doctree => cpl_cli.start.doctree} | Bin 6133 -> 6137 bytes ...tall.doctree => cpl_cli.uninstall.doctree} | Bin 11753 -> 11761 bytes ....update.doctree => cpl_cli.update.doctree} | Bin 5756 -> 5760 bytes ...ersion.doctree => cpl_cli.version.doctree} | Bin 3996 -> 4000 bytes .../doctrees/cpl_core.application.doctree | Bin 75853 -> 106169 bytes .../doctrees/cpl_core.configuration.doctree | Bin 158508 -> 263173 bytes docs/build/doctrees/cpl_core.console.doctree | Bin 201897 -> 213783 bytes .../cpl_core.database.connection.doctree | Bin 28381 -> 37522 bytes .../cpl_core.database.context.doctree | Bin 36442 -> 44933 bytes docs/build/doctrees/cpl_core.database.doctree | Bin 49411 -> 70751 bytes .../cpl_core.dependency_injection.doctree | Bin 172459 -> 225525 bytes docs/build/doctrees/cpl_core.doctree | Bin 3493 -> 3031 bytes .../doctrees/cpl_core.environment.doctree | Bin 77091 -> 85910 bytes docs/build/doctrees/cpl_core.logging.doctree | Bin 129812 -> 138548 bytes docs/build/doctrees/cpl_core.mailing.doctree | Bin 98631 -> 107313 bytes docs/build/doctrees/cpl_core.pipes.doctree | Bin 52248 -> 60177 bytes docs/build/doctrees/cpl_core.time.doctree | Bin 26926 -> 35474 bytes docs/build/doctrees/cpl_core.utils.doctree | Bin 78762 -> 85553 bytes .../doctrees/cpl_discord.application.doctree | Bin 9865 -> 19424 bytes .../doctrees/cpl_discord.command.doctree | Bin 12501 -> 21940 bytes .../cpl_discord.configuration.doctree | Bin 13139 -> 22561 bytes .../doctrees/cpl_discord.container.doctree | Bin 161304 -> 171530 bytes docs/build/doctrees/cpl_discord.doctree | Bin 2967 -> 111150 bytes .../build/doctrees/cpl_discord.events.doctree | Bin 308142 -> 319760 bytes .../build/doctrees/cpl_discord.helper.doctree | Bin 11418 -> 20682 bytes .../doctrees/cpl_discord.service.doctree | Bin 342247 -> 352986 bytes docs/build/doctrees/cpl_query.base.doctree | Bin 179814 -> 203207 bytes docs/build/doctrees/cpl_query.doctree | Bin 3323 -> 2859 bytes .../doctrees/cpl_query.enumerable.doctree | Bin 19690 -> 29104 bytes .../doctrees/cpl_query.extension.doctree | Bin 15861 -> 25105 bytes .../build/doctrees/cpl_query.iterable.doctree | Bin 35914 -> 43162 bytes docs/build/doctrees/cpl_translation.doctree | Bin 45878 -> 45773 bytes docs/build/doctrees/environment.pickle | Bin 543088 -> 678727 bytes docs/build/doctrees/introduction.doctree | Bin 16794 -> 16802 bytes docs/build/doctrees/modules.doctree | Bin 2817 -> 2814 bytes docs/build/doctrees/setup.doctree | Bin 20594 -> 20610 bytes .../{cli.add.md.txt => cpl_cli.add.md.txt} | 2 +- ...{cli.build.md.txt => cpl_cli.build.md.txt} | 0 ...enerate.md.txt => cpl_cli.generate.md.txt} | 0 .../{cli.help.md.txt => cpl_cli.help.md.txt} | 0 ....install.md.txt => cpl_cli.install.md.txt} | 0 .../{cli.new.md.txt => cpl_cli.new.md.txt} | 0 ...verview.md.txt => cpl_cli.overview.md.txt} | 24 +- ....publish.md.txt => cpl_cli.publish.md.txt} | 0 ...li.remove.md.txt => cpl_cli.remove.md.txt} | 0 docs/build/html/_sources/cpl_cli.rst.txt | 27 +- .../{cli.run.md.txt => cpl_cli.run.md.txt} | 0 ...{cli.start.md.txt => cpl_cli.start.md.txt} | 0 ...nstall.md.txt => cpl_cli.uninstall.md.txt} | 0 ...li.update.md.txt => cpl_cli.update.md.txt} | 0 ....version.md.txt => cpl_cli.version.md.txt} | 0 .../_sources/cpl_core.application.rst.txt | 47 +- .../_sources/cpl_core.configuration.rst.txt | 93 +- .../html/_sources/cpl_core.console.rst.txt | 35 +- .../cpl_core.database.connection.rst.txt | 23 +- .../cpl_core.database.context.rst.txt | 23 +- .../html/_sources/cpl_core.database.rst.txt | 42 +- .../cpl_core.dependency_injection.rst.txt | 63 +- .../_sources/cpl_core.environment.rst.txt | 27 +- .../html/_sources/cpl_core.logging.rst.txt | 35 +- .../html/_sources/cpl_core.mailing.rst.txt | 35 +- .../html/_sources/cpl_core.pipes.rst.txt | 29 +- docs/build/html/_sources/cpl_core.rst.txt | 3 +- .../build/html/_sources/cpl_core.time.rst.txt | 23 +- .../html/_sources/cpl_core.utils.rst.txt | 27 +- .../_sources/cpl_discord.application.rst.txt | 15 +- .../html/_sources/cpl_discord.command.rst.txt | 17 +- .../cpl_discord.configuration.rst.txt | 15 +- .../_sources/cpl_discord.container.rst.txt | 29 +- .../html/_sources/cpl_discord.events.rst.txt | 117 +-- .../html/_sources/cpl_discord.helper.rst.txt | 15 +- docs/build/html/_sources/cpl_discord.rst.txt | 24 +- .../html/_sources/cpl_discord.service.rst.txt | 27 +- .../html/_sources/cpl_query.base.rst.txt | 25 +- .../_sources/cpl_query.enumerable.rst.txt | 17 +- .../html/_sources/cpl_query.extension.rst.txt | 15 +- .../html/_sources/cpl_query.iterable.rst.txt | 17 +- docs/build/html/_sources/cpl_query.rst.txt | 10 +- docs/build/html/_sources/introduction.md.txt | 2 +- docs/build/html/_sources/modules.rst.txt | 5 +- docs/build/html/_sources/setup.md.txt | 4 +- docs/build/html/contributing.html | 12 +- .../html/{cli.add.html => cpl_cli.add.html} | 37 +- .../{cli.build.html => cpl_cli.build.html} | 37 +- ...li.generate.html => cpl_cli.generate.html} | 37 +- .../html/{cli.help.html => cpl_cli.help.html} | 37 +- docs/build/html/cpl_cli.html | 136 +-- ...{cli.install.html => cpl_cli.install.html} | 37 +- .../html/{cli.new.html => cpl_cli.new.html} | 37 +- ...li.overview.html => cpl_cli.overview.html} | 63 +- ...{cli.publish.html => cpl_cli.publish.html} | 37 +- .../{cli.remove.html => cpl_cli.remove.html} | 37 +- .../html/{cli.run.html => cpl_cli.run.html} | 34 +- .../{cli.start.html => cpl_cli.start.html} | 37 +- ....uninstall.html => cpl_cli.uninstall.html} | 37 +- .../{cli.update.html => cpl_cli.update.html} | 37 +- ...{cli.version.html => cpl_cli.version.html} | 33 +- docs/build/html/cpl_core.application.html | 231 +++-- docs/build/html/cpl_core.configuration.html | 461 ++++++--- docs/build/html/cpl_core.console.html | 241 +++-- .../html/cpl_core.database.connection.html | 119 ++- .../build/html/cpl_core.database.context.html | 150 ++- docs/build/html/cpl_core.database.html | 169 +++- .../html/cpl_core.dependency_injection.html | 476 +++++++--- docs/build/html/cpl_core.environment.html | 136 ++- docs/build/html/cpl_core.html | 238 +++-- docs/build/html/cpl_core.logging.html | 221 +++-- docs/build/html/cpl_core.mailing.html | 182 ++-- docs/build/html/cpl_core.pipes.html | 169 ++-- docs/build/html/cpl_core.time.html | 104 ++- docs/build/html/cpl_core.utils.html | 232 +++-- docs/build/html/cpl_discord.application.html | 90 +- docs/build/html/cpl_discord.command.html | 94 +- .../build/html/cpl_discord.configuration.html | 97 +- docs/build/html/cpl_discord.container.html | 118 ++- docs/build/html/cpl_discord.events.html | 290 +++--- docs/build/html/cpl_discord.helper.html | 90 +- docs/build/html/cpl_discord.html | 559 +++++++++-- docs/build/html/cpl_discord.service.html | 110 ++- docs/build/html/cpl_query.base.html | 537 +++++++---- docs/build/html/cpl_query.enumerable.html | 90 +- docs/build/html/cpl_query.extension.html | 95 +- docs/build/html/cpl_query.html | 67 +- docs/build/html/cpl_query.iterable.html | 138 ++- docs/build/html/cpl_translation.html | 13 +- docs/build/html/genindex.html | 871 +++++++++++++++++- docs/build/html/getting_started.html | 2 +- docs/build/html/index.html | 4 +- docs/build/html/introduction.html | 4 +- docs/build/html/modules.html | 650 +++++++------ docs/build/html/objects.inv | Bin 7110 -> 8652 bytes docs/build/html/py-modindex.html | 204 +++- docs/build/html/quickstart.html | 22 +- docs/build/html/search.html | 2 +- docs/build/html/searchindex.js | 2 +- docs/build/html/setup.html | 22 +- docs/build/html/tutorials.appsettings.html | 2 +- .../html/tutorials.console-arguments.html | 2 +- docs/build/html/tutorials.console.html | 2 +- docs/build/html/tutorials.create-startup.html | 2 +- .../html/tutorials.extend-application.html | 2 +- docs/build/html/tutorials.extend-startup.html | 2 +- docs/build/html/tutorials.html | 2 +- docs/build/html/tutorials.logging.html | 2 +- docs/build/html/tutorials.mail.html | 2 +- docs/build/html/tutorials.templating.html | 2 +- docs/source/conf.py | 34 +- docs/source/{cli.add.md => cpl_cli.add.md} | 2 +- .../source/{cli.build.md => cpl_cli.build.md} | 0 .../{cli.generate.md => cpl_cli.generate.md} | 0 docs/source/{cli.help.md => cpl_cli.help.md} | 0 .../{cli.install.md => cpl_cli.install.md} | 0 docs/source/{cli.new.md => cpl_cli.new.md} | 0 .../{cli.overview.md => cpl_cli.overview.md} | 24 +- .../{cli.publish.md => cpl_cli.publish.md} | 0 .../{cli.remove.md => cpl_cli.remove.md} | 0 docs/source/cpl_cli.rst | 27 +- docs/source/{cli.run.md => cpl_cli.run.md} | 0 .../source/{cli.start.md => cpl_cli.start.md} | 0 ...{cli.uninstall.md => cpl_cli.uninstall.md} | 0 .../{cli.update.md => cpl_cli.update.md} | 0 .../{cli.version.md => cpl_cli.version.md} | 0 docs/source/cpl_core.application.rst | 47 +- docs/source/cpl_core.configuration.rst | 93 +- docs/source/cpl_core.console.rst | 35 +- docs/source/cpl_core.database.connection.rst | 23 +- docs/source/cpl_core.database.context.rst | 23 +- docs/source/cpl_core.database.rst | 42 +- docs/source/cpl_core.dependency_injection.rst | 63 +- docs/source/cpl_core.environment.rst | 27 +- docs/source/cpl_core.logging.rst | 35 +- docs/source/cpl_core.mailing.rst | 35 +- docs/source/cpl_core.pipes.rst | 29 +- docs/source/cpl_core.rst | 3 +- docs/source/cpl_core.time.rst | 23 +- docs/source/cpl_core.utils.rst | 27 +- docs/source/cpl_discord.application.rst | 15 +- docs/source/cpl_discord.command.rst | 17 +- docs/source/cpl_discord.configuration.rst | 15 +- docs/source/cpl_discord.container.rst | 29 +- docs/source/cpl_discord.events.rst | 117 +-- docs/source/cpl_discord.helper.rst | 15 +- docs/source/cpl_discord.rst | 24 +- docs/source/cpl_discord.service.rst | 27 +- docs/source/cpl_query.base.rst | 25 +- docs/source/cpl_query.enumerable.rst | 17 +- docs/source/cpl_query.extension.rst | 15 +- docs/source/cpl_query.iterable.rst | 17 +- docs/source/cpl_query.rst | 10 +- docs/source/introduction.md | 2 +- docs/source/modules.rst | 5 +- docs/source/setup.md | 4 +- pyproject.toml | 2 + src/cpl_cli/.cpl/__init__.py | 18 +- src/cpl_cli/.cpl/project_console.py | 60 +- src/cpl_cli/.cpl/project_file.py | 5 +- src/cpl_cli/.cpl/project_file_appsettings.py | 11 +- .../.cpl/project_file_code_application.py | 21 +- src/cpl_cli/.cpl/project_file_code_main.py | 39 +- src/cpl_cli/.cpl/project_file_code_startup.py | 15 +- .../project_file_code_test_application.py | 21 +- .../.cpl/project_file_code_test_case.py | 21 +- src/cpl_cli/.cpl/project_file_license.py | 5 +- src/cpl_cli/.cpl/project_file_readme.py | 5 +- src/cpl_cli/.cpl/project_library.py | 41 +- src/cpl_cli/.cpl/project_unittest.py | 60 +- src/cpl_cli/.cpl/schematic_abc.py | 9 +- src/cpl_cli/.cpl/schematic_application.py | 7 +- .../.cpl/schematic_application_extension.py | 7 +- src/cpl_cli/.cpl/schematic_class.py | 11 +- src/cpl_cli/.cpl/schematic_configmodel.py | 7 +- src/cpl_cli/.cpl/schematic_enum.py | 14 +- src/cpl_cli/.cpl/schematic_init.py | 9 +- src/cpl_cli/.cpl/schematic_pipe.py | 7 +- src/cpl_cli/.cpl/schematic_schematic.py | 11 +- src/cpl_cli/.cpl/schematic_service.py | 7 +- src/cpl_cli/.cpl/schematic_startup.py | 7 +- .../.cpl/schematic_startup_extension.py | 7 +- src/cpl_cli/.cpl/schematic_test_case.py | 7 +- src/cpl_cli/.cpl/schematic_thread.py | 7 +- src/cpl_cli/.cpl/schematic_validator.py | 7 +- src/cpl_cli/__init__.py | 18 +- src/cpl_cli/_templates/__init__.py | 18 +- src/cpl_cli/_templates/build/__init__.py | 18 +- src/cpl_cli/_templates/build/init_template.py | 7 +- src/cpl_cli/_templates/publish/__init__.py | 18 +- .../_templates/publish/setup_template.py | 7 +- src/cpl_cli/_templates/template_file_abc.py | 13 +- src/cpl_cli/abc/__init__.py | 18 +- src/cpl_cli/abc/code_file_template_abc.py | 17 +- src/cpl_cli/abc/file_template_abc.py | 10 +- src/cpl_cli/abc/generate_schematic_abc.py | 13 +- src/cpl_cli/abc/project_type_abc.py | 19 +- src/cpl_cli/cli.py | 7 +- src/cpl_cli/cli_settings.py | 5 +- src/cpl_cli/cli_settings_name_enum.py | 3 +- src/cpl_cli/command/__init__.py | 18 +- src/cpl_cli/command/add_service.py | 46 +- src/cpl_cli/command/build_service.py | 7 +- src/cpl_cli/command/custom_script_service.py | 15 +- src/cpl_cli/command/generate_service.py | 83 +- src/cpl_cli/command/help_service.py | 48 +- src/cpl_cli/command/install_service.py | 136 +-- src/cpl_cli/command/new_service.py | 212 +++-- src/cpl_cli/command/publish_service.py | 7 +- src/cpl_cli/command/remove_service.py | 74 +- src/cpl_cli/command/run_service.py | 54 +- src/cpl_cli/command/start_service.py | 7 +- src/cpl_cli/command/uninstall_service.py | 59 +- src/cpl_cli/command/update_service.py | 111 ++- src/cpl_cli/command/version_service.py | 27 +- src/cpl_cli/command_abc.py | 9 +- src/cpl_cli/configuration/__init__.py | 18 +- src/cpl_cli/configuration/build_settings.py | 16 +- .../configuration/build_settings_name_enum.py | 21 +- src/cpl_cli/configuration/project_settings.py | 20 +- .../project_settings_name_enum.py | 32 +- .../configuration/project_type_enum.py | 7 +- .../configuration/schematic_collection.py | 5 +- src/cpl_cli/configuration/settings_helper.py | 7 +- .../configuration/venv_helper_service.py | 15 +- src/cpl_cli/configuration/version_settings.py | 14 +- .../version_settings_name_enum.py | 7 +- .../configuration/workspace_settings.py | 9 +- .../workspace_settings_name_enum.py | 7 +- src/cpl_cli/cpl-cli.json | 12 +- src/cpl_cli/error.py | 6 +- src/cpl_cli/helper/__init__.py | 18 +- src/cpl_cli/helper/dependencies.py | 2 +- src/cpl_cli/live_server/__init__.py | 18 +- .../live_server/live_server_service.py | 49 +- src/cpl_cli/live_server/live_server_thread.py | 34 +- src/cpl_cli/live_server/start_executable.py | 39 +- src/cpl_cli/main.py | 12 +- src/cpl_cli/migrations/__init__.py | 18 +- src/cpl_cli/migrations/base/__init__.py | 18 +- src/cpl_cli/migrations/base/migration_abc.py | 4 +- .../migrations/base/migration_service_abc.py | 9 +- src/cpl_cli/migrations/migration_2022_10.py | 3 +- src/cpl_cli/migrations/service/__init__.py | 18 +- .../migrations/service/migration_service.py | 1 - src/cpl_cli/publish/__init__.py | 18 +- src/cpl_cli/publish/publisher_abc.py | 19 +- src/cpl_cli/publish/publisher_service.py | 200 ++-- src/cpl_cli/source_creator/__init__.py | 18 +- .../source_creator/template_builder.py | 11 +- src/cpl_cli/startup.py | 21 +- src/cpl_cli/startup_argument_extension.py | 111 ++- src/cpl_cli/startup_migration_extension.py | 1 - src/cpl_cli/startup_workspace_extension.py | 18 +- src/cpl_cli/validators/__init__.py | 18 +- src/cpl_cli/validators/project_validator.py | 11 +- src/cpl_cli/validators/workspace_validator.py | 3 +- src/cpl_core/__init__.py | 18 +- src/cpl_core/application/__init__.py | 18 +- src/cpl_core/application/application_abc.py | 5 +- .../application/application_builder.py | 9 +- .../application/application_builder_abc.py | 12 +- .../application/application_extension_abc.py | 12 +- src/cpl_core/application/startup_abc.py | 15 +- .../application/startup_extension_abc.py | 9 +- src/cpl_core/configuration/__init__.py | 18 +- src/cpl_core/configuration/argument_abc.py | 30 +- .../configuration/argument_builder.py | 8 +- .../configuration/argument_executable_abc.py | 9 +- .../configuration/argument_type_enum.py | 1 - src/cpl_core/configuration/configuration.py | 113 ++- .../configuration/configuration_abc.py | 56 +- .../configuration/configuration_model_abc.py | 4 +- .../configuration_variable_name_enum.py | 7 +- .../configuration/executable_argument.py | 24 +- src/cpl_core/configuration/flag_argument.py | 17 +- src/cpl_core/configuration/validator_abc.py | 9 +- .../configuration/variable_argument.py | 20 +- src/cpl_core/console/__init__.py | 18 +- src/cpl_core/console/background_color_enum.py | 19 +- src/cpl_core/console/console.py | 173 ++-- src/cpl_core/console/console_call.py | 3 +- src/cpl_core/console/foreground_color_enum.py | 19 +- src/cpl_core/console/spinner_thread.py | 27 +- src/cpl_core/cpl-core.json | 15 +- src/cpl_core/database/__init__.py | 18 +- src/cpl_core/database/connection/__init__.py | 18 +- .../connection/database_connection.py | 13 +- .../connection/database_connection_abc.py | 16 +- src/cpl_core/database/context/__init__.py | 18 +- .../database/context/database_context.py | 11 +- .../database/context/database_context_abc.py | 22 +- src/cpl_core/database/database_settings.py | 15 +- .../database/database_settings_name_enum.py | 19 +- src/cpl_core/database/table_abc.py | 20 +- src/cpl_core/dependency_injection/__init__.py | 18 +- src/cpl_core/dependency_injection/scope.py | 4 +- .../dependency_injection/scope_abc.py | 15 +- .../dependency_injection/scope_builder.py | 7 +- .../service_collection.py | 2 +- .../service_collection_abc.py | 40 +- .../service_descriptor.py | 4 +- .../service_lifetime_enum.py | 1 - .../dependency_injection/service_provider.py | 29 +- .../service_provider_abc.py | 44 +- src/cpl_core/environment/__init__.py | 18 +- .../environment/application_environment.py | 13 +- .../application_environment_abc.py | 48 +- .../environment/environment_name_enum.py | 9 +- src/cpl_core/logging/__init__.py | 18 +- src/cpl_core/logging/logger_abc.py | 21 +- src/cpl_core/logging/logger_service.py | 70 +- src/cpl_core/logging/logging_level_enum.py | 15 +- src/cpl_core/logging/logging_settings.py | 4 +- .../logging/logging_settings_name_enum.py | 9 +- src/cpl_core/mailing/__init__.py | 18 +- src/cpl_core/mailing/email.py | 45 +- src/cpl_core/mailing/email_client_abc.py | 3 +- src/cpl_core/mailing/email_client_service.py | 55 +- src/cpl_core/mailing/email_client_settings.py | 11 +- .../email_client_settings_name_enum.py | 9 +- src/cpl_core/pipes/__init__.py | 18 +- src/cpl_core/pipes/bool_pipe.py | 6 +- .../pipes/first_char_to_lower_pipe.py | 12 +- src/cpl_core/pipes/first_to_upper_pipe.py | 12 +- src/cpl_core/pipes/ip_address_pipe.py | 12 +- src/cpl_core/pipes/pipe_abc.py | 9 +- src/cpl_core/pipes/to_camel_case_pipe.py | 14 +- src/cpl_core/pipes/to_snake_case_pipe.py | 22 +- src/cpl_core/pipes/version_pipe.py | 8 +- src/cpl_core/time/__init__.py | 18 +- src/cpl_core/time/time_format_settings.py | 4 +- .../time/time_format_settings_names_enum.py | 9 +- src/cpl_core/type.py | 2 +- src/cpl_core/utils/__init__.py | 18 +- src/cpl_core/utils/credential_manager.py | 25 +- src/cpl_core/utils/pip.py | 40 +- src/cpl_core/utils/string.py | 49 +- src/cpl_discord/.cpl/__init__.py | 18 +- src/cpl_discord/.cpl/project_discord_bot.py | 77 +- src/cpl_discord/.cpl/project_file_discord.py | 5 +- .../.cpl/project_file_discord_appsettings.py | 11 +- .../project_file_discord_code_application.py | 15 +- .../.cpl/project_file_discord_code_main.py | 23 +- .../.cpl/project_file_discord_code_startup.py | 23 +- .../.cpl/project_file_discord_license.py | 5 +- .../.cpl/project_file_discord_readme.py | 5 +- .../.cpl/schematic_discord_command.py | 7 +- .../.cpl/schematic_discord_event.py | 22 +- .../.cpl/schematic_discord_init.py | 9 +- src/cpl_discord/__init__.py | 26 +- src/cpl_discord/application/__init__.py | 18 +- .../discord_bot_application_abc.py | 4 +- src/cpl_discord/command/__init__.py | 18 +- .../command/discord_command_abc.py | 4 +- .../command/discord_commands_meta.py | 3 +- src/cpl_discord/configuration/__init__.py | 18 +- .../configuration/discord_bot_settings.py | 13 +- src/cpl_discord/container/__init__.py | 18 +- src/cpl_discord/container/category_channel.py | 1 - src/cpl_discord/container/container.py | 1 - src/cpl_discord/container/guild.py | 1 - src/cpl_discord/container/member.py | 4 +- src/cpl_discord/container/role.py | 4 +- src/cpl_discord/container/text_channel.py | 1 - src/cpl_discord/container/thread.py | 1 - src/cpl_discord/container/voice_channel.py | 1 - src/cpl_discord/cpl-discord.json | 16 +- src/cpl_discord/events/__init__.py | 18 +- .../events/on_bulk_message_delete_abc.py | 9 +- src/cpl_discord/events/on_command_abc.py | 9 +- .../events/on_command_completion_abc.py | 9 +- .../events/on_command_error_abc.py | 9 +- src/cpl_discord/events/on_connect_abc.py | 9 +- src/cpl_discord/events/on_disconnect_abc.py | 9 +- src/cpl_discord/events/on_error_abc.py | 9 +- src/cpl_discord/events/on_group_join_abc.py | 10 +- src/cpl_discord/events/on_group_remove_abc.py | 11 +- .../events/on_guild_available_abc.py | 9 +- .../events/on_guild_channel_create_abc.py | 10 +- .../events/on_guild_channel_delete_abc.py | 10 +- .../on_guild_channel_pins_update_abc.py | 10 +- .../events/on_guild_channel_update_abc.py | 9 +- .../events/on_guild_emojis_update_abc.py | 11 +- .../on_guild_integrations_update_abc.py | 10 +- src/cpl_discord/events/on_guild_join_abc.py | 9 +- src/cpl_discord/events/on_guild_remove_abc.py | 8 +- .../events/on_guild_role_create_abc.py | 9 +- .../events/on_guild_role_delete_abc.py | 9 +- .../events/on_guild_role_update_abc.py | 9 +- .../events/on_guild_unavailable_abc.py | 9 +- src/cpl_discord/events/on_guild_update_abc.py | 9 +- .../events/on_invite_create_abc.py | 10 +- .../events/on_invite_delete_abc.py | 9 +- src/cpl_discord/events/on_member_ban_abc.py | 9 +- src/cpl_discord/events/on_member_join_abc.py | 9 +- .../events/on_member_remove_abc.py | 9 +- src/cpl_discord/events/on_member_unban_abc.py | 9 +- .../events/on_member_update_abc.py | 9 +- src/cpl_discord/events/on_message_abc.py | 9 +- .../events/on_message_delete_abc.py | 9 +- src/cpl_discord/events/on_message_edit_abc.py | 9 +- .../events/on_private_channel_create_abc.py | 10 +- .../events/on_private_channel_delete_abc.py | 10 +- .../on_private_channel_pins_update_abc.py | 10 +- .../events/on_private_channel_update_abc.py | 10 +- .../events/on_raw_reaction_add_abc.py | 10 +- .../events/on_raw_reaction_clear_abc.py | 10 +- .../events/on_raw_reaction_clear_emoji_abc.py | 10 +- .../events/on_raw_reaction_remove_abc.py | 10 +- src/cpl_discord/events/on_reaction_add_abc.py | 10 +- .../events/on_reaction_clear_abc.py | 10 +- .../events/on_reaction_clear_emoji_abc.py | 10 +- .../events/on_reaction_remove_abc.py | 10 +- src/cpl_discord/events/on_ready_abc.py | 9 +- src/cpl_discord/events/on_resume_abc.py | 9 +- src/cpl_discord/events/on_typing_abc.py | 11 +- src/cpl_discord/events/on_user_update_abc.py | 9 +- .../events/on_voice_state_update_abc.py | 11 +- .../events/on_webhooks_update_abc.py | 10 +- src/cpl_discord/helper/__init__.py | 18 +- .../helper/to_containers_converter.py | 1 - src/cpl_discord/service/__init__.py | 18 +- .../service/command_error_handler_service.py | 3 +- .../service/discord_bot_service.py | 55 +- .../service/discord_bot_service_abc.py | 13 +- src/cpl_discord/service/discord_collection.py | 1 - .../service/discord_collection_abc.py | 13 +- src/cpl_discord/service/discord_service.py | 138 +-- .../service/discord_service_abc.py | 154 +++- src/cpl_query/__init__.py | 18 +- src/cpl_query/base/__init__.py | 18 +- src/cpl_query/base/ordered_queryable.py | 7 +- src/cpl_query/base/ordered_queryable_abc.py | 21 +- src/cpl_query/base/queryable_abc.py | 201 ++-- src/cpl_query/base/sequence.py | 33 +- src/cpl_query/cpl-query.json | 13 +- src/cpl_query/enumerable/__init__.py | 18 +- src/cpl_query/enumerable/enumerable.py | 3 +- src/cpl_query/enumerable/enumerable_abc.py | 9 +- src/cpl_query/exceptions.py | 26 +- src/cpl_query/extension/__init__.py | 18 +- src/cpl_query/extension/list.py | 15 +- src/cpl_query/iterable/__init__.py | 18 +- src/cpl_query/iterable/iterable.py | 1 - src/cpl_query/iterable/iterable_abc.py | 27 +- src/cpl_translation/__init__.py | 22 +- src/cpl_translation/cpl-translation.json | 17 +- src/cpl_translation/translate_pipe.py | 5 +- src/cpl_translation/translation_service.py | 19 +- .../translation_service_abc.py | 21 +- src/cpl_translation/translation_settings.py | 11 +- tests/custom/async/src/async/__init__.py | 2 +- tests/custom/async/src/async/application.py | 3 +- tests/custom/async/src/async/main.py | 2 +- tests/custom/async/src/async/startup.py | 9 +- tests/custom/async/src/tests/__init__.py | 2 +- tests/custom/console/main.py | 28 +- tests/custom/database/src/application.py | 15 +- tests/custom/database/src/main.py | 2 +- tests/custom/database/src/model/city_model.py | 35 +- tests/custom/database/src/model/db_context.py | 1 - tests/custom/database/src/model/user_model.py | 27 +- tests/custom/database/src/model/user_repo.py | 25 +- .../database/src/model/user_repo_abc.py | 17 +- tests/custom/database/src/startup.py | 26 +- tests/custom/database/src/tests/__init__.py | 2 +- tests/custom/di/src/di/__init__.py | 2 +- tests/custom/di/src/di/application.py | 7 +- tests/custom/di/src/di/di_tester_service.py | 5 +- tests/custom/di/src/di/main.py | 2 +- tests/custom/di/src/di/startup.py | 11 +- tests/custom/di/src/di/static_test.py | 1 - tests/custom/di/src/di/test1_service.py | 3 +- tests/custom/di/src/di/test2_service.py | 3 +- tests/custom/di/src/di/test_abc.py | 3 +- tests/custom/di/src/di/test_service.py | 3 +- tests/custom/di/src/di/tester.py | 3 +- tests/custom/di/src/tests/__init__.py | 2 +- .../discord/src/discord_bot/__init__.py | 16 +- .../discord/src/discord_bot/application.py | 13 +- tests/custom/discord/src/discord_bot/main.py | 3 +- .../custom/discord/src/discord_bot/startup.py | 15 +- .../src/modules/hello_world/__init__.py | 16 +- .../src/modules/hello_world/on_ready_event.py | 25 +- .../hello_world/on_ready_test_event.py | 3 +- .../src/modules/hello_world/ping_command.py | 17 +- .../src/modules/hello_world/purge_command.py | 17 +- tests/custom/discord/src/tests/__init__.py | 2 +- tests/custom/general/.cpl/schematic_custom.py | 9 +- .../custom/general/src/general/application.py | 33 +- .../general/src/general/arguments/__init__.py | 14 +- .../general/arguments/generate_argument.py | 3 +- .../src/general/arguments/install_argument.py | 3 +- .../custom/general/src/general/db/__init__.py | 14 +- tests/custom/general/src/general/main.py | 2 +- .../general/src/general/parameter_startup.py | 39 +- tests/custom/general/src/general/startup.py | 11 +- .../general/src/general/test_extension.py | 3 +- .../general/src/general/test_service.py | 4 +- .../src/general/test_startup_extension.py | 5 +- tests/custom/general/test/custom.py | 3 +- .../custom/translation/src/tests/__init__.py | 2 +- .../translation/src/translation/__init__.py | 2 +- .../src/translation/application.py | 11 +- .../translation/src/translation/main.py | 2 +- .../translation/src/translation/startup.py | 11 +- tests/generated/simple-app/src/application.py | 3 +- tests/generated/simple-app/src/main.py | 2 +- .../simple-app/src/simple_app/__init__.py | 2 +- .../simple-app/src/simple_app/application.py | 3 +- .../simple-app/src/simple_app/main.py | 2 +- .../simple-app/src/tests/__init__.py | 2 +- tests/generated/simple-console/src/main.py | 4 +- .../src/simple_console/__init__.py | 2 +- .../simple-console/src/simple_console/main.py | 4 +- .../simple-console/src/tests/__init__.py | 2 +- tests/generated/simple-di/src/main.py | 4 +- .../simple-di/src/simple_di/__init__.py | 2 +- .../generated/simple-di/src/simple_di/main.py | 4 +- .../generated/simple-di/src/tests/__init__.py | 2 +- .../src/simple_startup_app/__init__.py | 2 +- .../src/simple_startup_app/application.py | 3 +- .../src/simple_startup_app/main.py | 2 +- .../src/simple_startup_app/startup.py | 1 - .../simple-startup-app/src/tests/__init__.py | 2 +- .../generated/startup-app/src/application.py | 3 +- tests/generated/startup-app/src/main.py | 2 +- tests/generated/startup-app/src/startup.py | 2 - .../startup-app/src/tests/__init__.py | 2 +- tools/set_pip_urls/__init__.py | 16 +- tools/set_pip_urls/application.py | 17 +- tools/set_pip_urls/main.py | 2 +- tools/set_pip_urls/pip_settings.py | 11 +- tools/set_pip_urls/startup.py | 13 +- tools/set_version/__init__.py | 16 +- tools/set_version/application.py | 57 +- tools/set_version/git_service.py | 1 - tools/set_version/main.py | 2 +- tools/set_version/startup.py | 15 +- tools/set_version/version_setter_service.py | 35 +- unittests/unittests/__init__.py | 2 +- unittests/unittests/application.py | 1 - unittests/unittests/main.py | 2 +- unittests/unittests/unittests.json | 6 +- unittests/unittests_cli/__init__.py | 2 +- .../unittests_cli/abc/command_test_case.py | 4 +- unittests/unittests_cli/add_test_case.py | 23 +- unittests/unittests_cli/build_test_case.py | 29 +- unittests/unittests_cli/cli_test_suite.py | 7 +- unittests/unittests_cli/constants.py | 12 +- unittests/unittests_cli/custom_test_case.py | 1 - unittests/unittests_cli/generate_test_case.py | 72 +- unittests/unittests_cli/install_test_case.py | 104 +-- unittests/unittests_cli/new_test_case.py | 181 ++-- unittests/unittests_cli/publish_test_case.py | 38 +- unittests/unittests_cli/remove_test_case.py | 27 +- unittests/unittests_cli/run_test_case.py | 83 +- unittests/unittests_cli/start_test_case.py | 87 +- .../threads/start_test_thread.py | 1 - .../unittests_cli/uninstall_test_case.py | 49 +- unittests/unittests_cli/unittests_cli.json | 8 +- unittests/unittests_cli/update_test_case.py | 45 +- unittests/unittests_cli/version_test_case.py | 45 +- unittests/unittests_core/__init__.py | 2 +- unittests/unittests_core/unittests_core.json | 6 +- unittests/unittests_query/__init__.py | 2 +- .../enumerable_query_test_case.py | 52 +- .../unittests_query/enumerable_test_case.py | 3 +- .../iterable_query_test_case.py | 48 +- .../unittests_query/iterable_test_case.py | 5 +- unittests/unittests_query/models.py | 6 +- .../unittests_query/performance_test_case.py | 34 +- unittests/unittests_query/query_test_suite.py | 1 - .../unittests_query/sequence_test_case.py | 1 - .../unittests_query/unittests_query.json | 10 +- unittests/unittests_shared/__init__.py | 2 +- unittests/unittests_shared/cli_commands.py | 45 +- .../unittests_shared/unittests_shared.json | 6 +- unittests/unittests_translation/__init__.py | 2 +- .../translation_test_case.py | 37 +- .../translation_test_suite.py | 5 +- .../unittests_translation.json | 10 +- 632 files changed, 10917 insertions(+), 6775 deletions(-) delete mode 100644 docs/build/doctrees/cli.overview.doctree rename docs/build/doctrees/{cli.add.doctree => cpl_cli.add.doctree} (91%) rename docs/build/doctrees/{cli.build.doctree => cpl_cli.build.doctree} (85%) rename docs/build/doctrees/{cli.generate.doctree => cpl_cli.generate.doctree} (95%) rename docs/build/doctrees/{cli.help.doctree => cpl_cli.help.doctree} (87%) rename docs/build/doctrees/{cli.install.doctree => cpl_cli.install.doctree} (90%) rename docs/build/doctrees/{cli.new.doctree => cpl_cli.new.doctree} (94%) create mode 100644 docs/build/doctrees/cpl_cli.overview.doctree rename docs/build/doctrees/{cli.publish.doctree => cpl_cli.publish.doctree} (87%) rename docs/build/doctrees/{cli.remove.doctree => cpl_cli.remove.doctree} (89%) rename docs/build/doctrees/{cli.run.doctree => cpl_cli.run.doctree} (94%) rename docs/build/doctrees/{cli.start.doctree => cpl_cli.start.doctree} (92%) rename docs/build/doctrees/{cli.uninstall.doctree => cpl_cli.uninstall.doctree} (90%) rename docs/build/doctrees/{cli.update.doctree => cpl_cli.update.doctree} (92%) rename docs/build/doctrees/{cli.version.doctree => cpl_cli.version.doctree} (88%) rename docs/build/html/_sources/{cli.add.md.txt => cpl_cli.add.md.txt} (99%) rename docs/build/html/_sources/{cli.build.md.txt => cpl_cli.build.md.txt} (100%) rename docs/build/html/_sources/{cli.generate.md.txt => cpl_cli.generate.md.txt} (100%) rename docs/build/html/_sources/{cli.help.md.txt => cpl_cli.help.md.txt} (100%) rename docs/build/html/_sources/{cli.install.md.txt => cpl_cli.install.md.txt} (100%) rename docs/build/html/_sources/{cli.new.md.txt => cpl_cli.new.md.txt} (100%) rename docs/build/html/_sources/{cli.overview.md.txt => cpl_cli.overview.md.txt} (51%) rename docs/build/html/_sources/{cli.publish.md.txt => cpl_cli.publish.md.txt} (100%) rename docs/build/html/_sources/{cli.remove.md.txt => cpl_cli.remove.md.txt} (100%) rename docs/build/html/_sources/{cli.run.md.txt => cpl_cli.run.md.txt} (100%) rename docs/build/html/_sources/{cli.start.md.txt => cpl_cli.start.md.txt} (100%) rename docs/build/html/_sources/{cli.uninstall.md.txt => cpl_cli.uninstall.md.txt} (100%) rename docs/build/html/_sources/{cli.update.md.txt => cpl_cli.update.md.txt} (100%) rename docs/build/html/_sources/{cli.version.md.txt => cpl_cli.version.md.txt} (100%) rename docs/build/html/{cli.add.html => cpl_cli.add.html} (79%) rename docs/build/html/{cli.build.html => cpl_cli.build.html} (74%) rename docs/build/html/{cli.generate.html => cpl_cli.generate.html} (85%) rename docs/build/html/{cli.help.html => cpl_cli.help.html} (75%) rename docs/build/html/{cli.install.html => cpl_cli.install.html} (78%) rename docs/build/html/{cli.new.html => cpl_cli.new.html} (82%) rename docs/build/html/{cli.overview.html => cpl_cli.overview.html} (79%) rename docs/build/html/{cli.publish.html => cpl_cli.publish.html} (76%) rename docs/build/html/{cli.remove.html => cpl_cli.remove.html} (78%) rename docs/build/html/{cli.run.html => cpl_cli.run.html} (67%) rename docs/build/html/{cli.start.html => cpl_cli.start.html} (72%) rename docs/build/html/{cli.uninstall.html => cpl_cli.uninstall.html} (78%) rename docs/build/html/{cli.update.html => cpl_cli.update.html} (72%) rename docs/build/html/{cli.version.html => cpl_cli.version.html} (73%) rename docs/source/{cli.add.md => cpl_cli.add.md} (99%) rename docs/source/{cli.build.md => cpl_cli.build.md} (100%) rename docs/source/{cli.generate.md => cpl_cli.generate.md} (100%) rename docs/source/{cli.help.md => cpl_cli.help.md} (100%) rename docs/source/{cli.install.md => cpl_cli.install.md} (100%) rename docs/source/{cli.new.md => cpl_cli.new.md} (100%) rename docs/source/{cli.overview.md => cpl_cli.overview.md} (51%) rename docs/source/{cli.publish.md => cpl_cli.publish.md} (100%) rename docs/source/{cli.remove.md => cpl_cli.remove.md} (100%) rename docs/source/{cli.run.md => cpl_cli.run.md} (100%) rename docs/source/{cli.start.md => cpl_cli.start.md} (100%) rename docs/source/{cli.uninstall.md => cpl_cli.uninstall.md} (100%) rename docs/source/{cli.update.md => cpl_cli.update.md} (100%) rename docs/source/{cli.version.md => cpl_cli.version.md} (100%) create mode 100644 pyproject.toml diff --git a/cpl-workspace.json b/cpl-workspace.json index 3c5d5f67..e00ea987 100644 --- a/cpl-workspace.json +++ b/cpl-workspace.json @@ -1,6 +1,6 @@ { "WorkspaceSettings": { - "DefaultProject": "cpl-cli", + "DefaultProject": "cpl-core", "Projects": { "cpl-cli": "src/cpl_cli/cpl-cli.json", "cpl-core": "src/cpl_core/cpl-core.json", @@ -19,13 +19,15 @@ "Scripts": { "hello-world": "echo 'Hello World'", + "format": "echo 'Formatting:'; black ./", + "sv": "cpl set-version", "set-version": "cpl run set-version --dev $ARGS; echo '';", "spu": "cpl set-pip-urls", "set-pip-urls": "cpl run set-pip-urls --dev $ARGS; echo '';", - "docs-build": "echo 'Build Documentation'; cpl db-core; cpl db-discord; cpl db-query; cpl db-translation; cd docs/; make clean; make html; # rm source/cpl_query.tests.rst;", + "docs-build": "cpl format; echo 'Build Documentation'; cpl db-core; cpl db-discord; cpl db-query; cpl db-translation; cd docs/; make clean; make html;", "db-core": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_core; cd ../", "db-discord": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_discord; cd ../", "db-query": "cd docs/; sphinx-apidoc -o source/ ../src/cpl_query; cd ../", diff --git a/docs/build/doctrees/cli.overview.doctree b/docs/build/doctrees/cli.overview.doctree deleted file mode 100644 index 219aa2b4ab6b1aedb77decaeeeb10083107b09c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24065 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 delta 31 ncmZ2rHp7gifpseHMiv)F#_-9Wj6R!ZGQMPFkN28edcb77~Q%E6qc;6>eN_Z#vm@IFW|`uQg5n;|yu{qplFEYA;wiOLGK&3*GZcYz!De5sP(}a__kx`O delta 257 zcmaDUzDS&eNOD#$)Nd+t504c~w%_#u$xIw(kyyB9?oE(Hl-W34=F8U5^ delta 33 pcmX@TgYobVMwSNFsTLbqycijyCi^q`Y@W~fmXVQX^F-!d5dg~73y1&! diff --git a/docs/build/doctrees/cli.help.doctree b/docs/build/doctrees/cpl_cli.help.doctree similarity index 87% rename from docs/build/doctrees/cli.help.doctree rename to docs/build/doctrees/cpl_cli.help.doctree index 8d4ba844d16d2bb5653e7882fc528e4a0a9e2487..42e7ac4069c8862332ad70a818946bcdc95c19a9 100644 GIT binary patch delta 39 tcmez7{Lh)CfpzNVjVw-#j8T)_8GV=wa^g2nVtmEO%99LY)-qSh0RSm?4ekH{ delta 31 ncmez8{LPuAfpzNZjVw-#jA4`A8GSZSXMD-X$g#PVxl#@Q#KH>- diff --git a/docs/build/doctrees/cli.install.doctree b/docs/build/doctrees/cpl_cli.install.doctree similarity index 90% rename from docs/build/doctrees/cli.install.doctree rename to docs/build/doctrees/cpl_cli.install.doctree index b92b9153822adab6d2f380cd079fdf5e38869e6f..58c5fabb2e5199b9000057649429865e896aa69a 100644 GIT binary patch delta 39 tcmZ1zyCs&TfpzN2jVvCFjIon_8GV=wa^g47V0_ES%AX8kwlS+|0{|1W4I%&l delta 31 ncmdlIyC#;UfpzM_jVvCFjFFRl8GSa-WqiZP$i2CbSxp-Nv!@C^ diff --git a/docs/build/doctrees/cli.new.doctree b/docs/build/doctrees/cpl_cli.new.doctree similarity index 94% rename from docs/build/doctrees/cli.new.doctree rename to docs/build/doctrees/cpl_cli.new.doctree index 3dcb91910437eec7c060baa8bb6c5ea8cc903d59..9f65fa704de66fc91dc05507c791ddb91e8bf70e 100644 GIT binary patch delta 41 vcmaDehw;lCMwSNFshJyD92glRC%ZEGFc;*+Z=S&Tl981=8N{q&{^SJ!G|mp4 delta 48 zcmV-00MGyQoB`~d0R(^rm0__2Kmh?&lSKhc3T$aEZe@2aZDf>_;1DLW#R0eh0SB{! G1M*6yP!UW3 diff --git a/docs/build/doctrees/cpl_cli.overview.doctree b/docs/build/doctrees/cpl_cli.overview.doctree new file mode 100644 index 0000000000000000000000000000000000000000..370fcf10c07f071a17383ae55ebd65b3e922d2f1 GIT binary patch literal 24169 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/cli.publish.doctree b/docs/build/doctrees/cpl_cli.publish.doctree similarity index 87% rename from docs/build/doctrees/cli.publish.doctree rename to docs/build/doctrees/cpl_cli.publish.doctree index d78cbc7ae5dde7e50c284e77115ec807c81e8f13..8934390624cb4a1aab3fc9a0784a2b61e74c14fc 100644 GIT binary patch delta 39 scmbPWH^YvlfpseHMivi7#@NZej6Tc-Iq{okFuq}AmOOj6R#^GQMVHcV8GSZSWfYSF0A@P}WdHyG diff --git a/docs/build/doctrees/cli.start.doctree b/docs/build/doctrees/cpl_cli.start.doctree similarity index 92% rename from docs/build/doctrees/cli.start.doctree rename to docs/build/doctrees/cpl_cli.start.doctree index 1bde7025eb2db9000fb996dc8847c113b6c27738..b79235b43106fe9010fe7f8c735366832cb51490 100644 GIT binary patch delta 28 kcmeyW|5Kl(fpzM;jVvyVjM0-l8GV=wa^g2nVN4VQ0G&Pw)c^nh delta 24 gcmeyV|5cx*fpzMujVvyVjNy|#8GSa-WK0kP0C>j;lK=n! diff --git a/docs/build/doctrees/cli.uninstall.doctree b/docs/build/doctrees/cpl_cli.uninstall.doctree similarity index 90% rename from docs/build/doctrees/cli.uninstall.doctree rename to docs/build/doctrees/cpl_cli.uninstall.doctree index 074b870e1b8f5ce857924270560caa769df632b5..efecefb72288dcb8c843beb78eae99d407ca8807 100644 GIT binary patch delta 39 tcmaDE{V|%QfpzM$jVwNljPa8L8GV=wa^g47VSLZXDwqsn_Atk40RS$H4kG{n delta 31 ncmewu{W6-RfpzM=jVwNljM0+=8GSY{WPHcS$h&z8bF3Bs$af1r diff --git a/docs/build/doctrees/cli.update.doctree b/docs/build/doctrees/cpl_cli.update.doctree similarity index 92% rename from docs/build/doctrees/cli.update.doctree rename to docs/build/doctrees/cpl_cli.update.doctree index bbb915dc656f94afd7238a828fd09648ac50df2f..b9940e8360a3deceb906f2fe9a578295f56acd35 100644 GIT binary patch delta 28 kcmeyP)1b@Jz&f>bBa0g&W6Wf4Mjz&aocPVt7@vs%0Ern1ZvX%Q delta 24 gcmZqB{iDOuz&f>XBa0g&W5i@{MxV{I8J~&(0B2ALEdT%j diff --git a/docs/build/doctrees/cli.version.doctree b/docs/build/doctrees/cpl_cli.version.doctree similarity index 88% rename from docs/build/doctrees/cli.version.doctree rename to docs/build/doctrees/cpl_cli.version.doctree index 1eb8970adc1da2ec8cb760f194320cc1856696f8..72d23301f375576facc67c50a548539253d35fa9 100644 GIT binary patch delta 28 kcmbOuzd)X)fpzNCjVvCFjIon_8GV=wa^g47U}WI~0DvM0Qvd(} delta 24 gcmZ1=KS!RWfpzM{jVvCFjFFRl8GSa-Wn|_90AMc%5dZ)H diff --git a/docs/build/doctrees/cpl_core.application.doctree b/docs/build/doctrees/cpl_core.application.doctree index bdf49dbabee76c5e1ef182af756c16f4d7f092a3..4f15e383ca6700a290b03663f4bc54ee564e0c7a 100644 GIT binary patch literal 106169 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 DTSR6I literal 75853 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 Ef8(Nqs{jB1 literal 158508 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
  • SM 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
  • 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 z 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

    +Aq1ZC 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 bEh=R8A)7Bup9mQ|e%f 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 literal 28381 zcmd^IdyFKL<8-MziX-pf9d?42`~liXhH-SrcPwPpK!u@vR(CBCzbCC(oA&h%_` zU(X}mJ?C8_EDS{Wq%sesBS8|&V9Ou`7*GP?5!;FKK>R_R*a;zse@KAv2O$2iO+Z5M z`|8!zJw3fMb9;7JEZw@hrygI`_x|dus-Kzo#H+0_@gLt8b(q&$TX5?2R=e&-3Ex?7 z*Sbx&6(=80jz5w7bTY@ML+7!m-3@DQ!pBge#=M{&x~=5lgwIg%*bAZsRevgSYq8gE znd)qUO|q$nlQ}lcCt@!ST_8&nU~cHHl-5j-1| z{#YX5MTdv@WXA!7al#Jp>8cqL8|Ra1B+Gn9;I-Ujxx3=!`u1n4d+!A1z9_7t7{r zA&fBMD^G3juCUz_dFkx$*B|)xrEO?DoCR94h&Vi8%`v;CLCS!Yv)#_J>*O3RvnvTx z>|H<)y9!isHU7N^|Bm6`aZEkCMojsPalA0$?{Bv2-N3!IGSJl7%|n+=9@K$h0gjC(IBR!wOVO6hMt9m4=Cn7X_3^Gr?vq>cWSa63N4cnAb}*|%e^gE z<^BtvqJ8l4WeZ?Xkqkb9a||?yk7~8FzZE z87ztMKuL8%H*&-Cu8<7pPbgI;ztID(MYWGOq`P2apt*$aqDI>*J`A2DGju*F^+v+48&)F0 zR*`JWCi%`rHwXlz?0K3=mmQ@UJhcrVuFz;L5`q$lZNo3M9j5s->?vn8bUMtYut)BK z!4@r5mY^U+mrIX6J}k6VXQfskLr>gw@=+s(rc^(v2;t@v2J%%KZNw2Bw^fINsII{< zv*G=TO9?0p)v3UX-OvfFKG|!+h&{|N?3msk`;=uMZ|FU_Rc!VxAl36 zna(48e;F+O z1I5x`R4n}!ZB_B(r(K~6ThcHf>n&z(rLGLJN^1FOF*!sHBR&0X+s4KK?EmzqUt6v# zu(uqp^z@Hp)UvbuL4}RE<1k`N9Ao1w+bXzMzEqlS%-VHWwWl_rHSL%uS;s_-8GQH3 z7I93{VUowm9L-76Kbd0<{ejneXIxjF)BIJ9+&G3Rf|4xIj6J1{B0Qt2X%qih)9aL? z5zVgV-7q6*693)AkRtq07ufG-G>0~|V7vGgQ+KOkb&MYr)+1RpU=lYBJcLdx z+xde%s2LG~5>48*GyU0pU0u-E2b6r)bf8S3F=;N7i&)KDz6W}m(IisvOO{wp7=#xQ z3*Xl2amV~SguwT2#s7o}d6}3`f~(VQ)#7fC8@g>tgM+7R_op}LzSG%e&Ur2VRefjUiH|ck=KW3lH3cf!d!NX!Nvgg@L{GFN-PMWxu z)&RmDg}0@^A&1L9N{~sP>kC<8nPaKNc8zK*s>JPzlUiyk>z1)rk-<34QbW}-MCkvP zoV@21T)ev5!|7<#_X})_UXxGkFKhkZ-b|^w|#5BdJ8eYqz5LGoN za!naXl1!N@e5$4`FJq+vsS!C1@IaOOiT6i$X{_|l*R_?%MYM~>aVJ_@6oK`H=p%s> z)R@~`UucJ`iwMeJe-i?tp^L{=ED=NtEN%u$0An!%+9CtayEXtv)jZ4(6%H><$s;((E`e0#2Vr-?Mc`NujX3KIh*Y72k|rguc4K^6tL;V zxSH(WY!T-F9qJ9^P_ozkUnhXy0NcGOha&~iQB8^yYNl+qFIXh-zeLSsYP~GR0PlTQ zN_ZBzDY{Jg^ZrXnUWfTr8@8Sza*)E9mj9$7Tc#j}N}j!o2ppF5ETiYfQTYNSHd0+9 zi3CaR*q((mOOicg)eXJGpF|x{g1?>W%AsyR0pu@hq9H^1O@aRYeNpSL(+tk~l2TH& zQbb=bQc=?ZQRSZv(7~U`4*qC>qMwmPwb<1%yA&$+GT_kK$LOStij+Y~5nGy+ZeuLZ0Mr}30tv?ER}1SNBIuT`~@wF6`4RwcYbras-wp+%)$=V zN94d$X(D*=A>t!jRt#iXKbotRejDWQQ0-~QDm`|d-v&F`Y|;l`cDb#n#Y^#Fp0Ds+YS{?FWkF+=DvGQ3ZU=m zHb{NcrD@~e2a#k5v&7H)g;J>fhtW)r_n;iTpF>ql(?HbtiPCQRIC`psUMKEQ(YUkN zc&@y|K7O441jd^hK{-F}eM4Yjc<)V)w!h9O=Dn0&(whE{WAK;2wJH&Xq*CBnZ9z#O zyu|wyHG$l7USi*+Z<-NO@wzJXtYPgGRhEiR#ec>Z_U}O7{;TxoPWtm2{W)Qt?!r@E zp(~{}vN9Ko^gpD^T*9`Q%3Qbj)+qCT0ltP;=C9{!4W!Jet3j3dKbsD=4hw6<=9Rhr zu9UfY&8m;-@hqCM6JD;&)4B9_QZqSaenXEkcUBM!aB6X+^tlOKolrjvsncgmfiKnR zSD@;kI{kQQH+^)v>Y!JrUmfJDVimE}?djnK0)%z+v3H2_X`m6VB zCpIN1%R}Z8$=srTVFi^nQebez2BNNkNIdmGG~XNUm}AQ#fIm+m+xfa$H^ZAwUM~8E z*oInu7$NxY*h$B`koBPQyiL+^N$&NJ_Abw)keX$EI|=$MB}mEG?qNPybvprjOjI{= zZNL@^0GRcE9>}rHiL9Q=Qw0*>{U=NfF*kcb^P?Gx_wd_fI??bM*kb(rR#|=MENnUX zb~>*$DE{i(5Q`v)E;=DwG}0SvqJ%VB))^U3XZZt#tzJYWp>N!R}83@a%p2MUF}oU4^%+2X()bv39h{~6Q47G(ws&i%3pZrwbP__ngL z1QlxOJz{MmyhVien`Xv~Lw}!UPiIuDw)K!h?WfrCU!!Jn-b$Yo)gcmC{qJr7U0K>u z5p=2L;lF^U`&*&~c@G7OHHVo5>-dxGCI27Lv@$!@#E3}DAE?3fnrilX{cJ%JG|A{8 zGMN4U%1xWK#(SBavz%#{rE9$tJAh5;V~+P^75h{4s}%Ni>PECO3QwIty^G?hO_>oQMoPKg!u&|YI|x6XA#&*9$I+afv;1MDx<<(Z?{D{} z>ENe_l?448)$4@WD7mkN5~$;Ex1N)f4q8}HB{|}&g${$Rzv*e>sRLr=2j~dnQ27D6 zQYzVn_1Pghw@it_R%F+5wX(vpPxO|$Dq}ru*iwE#U^@7JKyGQSfXV$=dd|FOb=6a5 zc8XnwGNU}5S)WrgMDYGi_JaTBrpo(EcH4ue#%EKs3o_o-6czlEovi0dC#y8Y`59Ej z>`eQL?lm zoDgg4qHz)_`~9y3rn6#f0MbakSsi}Xp=2e@boTqF3fi{=th%_$elKFuv@gGb);8aB zmhRb0{Aj6)(|Pb)TrP`vfv4!YJYFzVuD+65L)9_z%%7Nm#GduX>3^2e&eE+-SK7T~ zG!kjfj;YEJY@fA6GpqslR{o#%etOCJ#NWnTegDfgAeTBze>OMAmX}+arT<>4ry@7K zS^9IiR1F;m5sr!6hVMe}8*5d$BuI4{QPhvG+JmuHUrAvNPu^}yM zj2fLdJ8A-c|0qI5r=w$~@4n3pPN*E~%z|GUo7i~4??@lxMzssUJ;zd~+fS47wg0@a z(~Z-Z^!ZGB7B;Sw9?`T@_muP0e-q?j3zos0g%@(Qa$H!vU`Snoo(|KgONF}%MuX)G zqr;NrB3n?|QG;hq2mCu*F-Ub08w|c>re^q%K{~DeH>sIiPU0opVDSA?s7sR(zlW-z z;el4w-ze>-k4LRK=uJi(V1vQ%nfg_dr*LF=Mzs#UGhK%9u%&L?%x`nlm?m(xo|bBRvUo zMm+T~XOspX*_4sFnZxfTeCtgaokhCYri^a)huD<4Cnx>}lhXI+YUPAxu_;4cm6|f6 z!O|EVmMjnTGi5$#I@pq?j3&}t!qTMvE(0j~HS5HF)J)Crrc64m{!dXeIaB7+Z?AZ& z6!=n$<^rk?YSDbEw3|K_jq0G+q8V^|#c!8)I+9hhx!WsBjT<@qVc9dKqqL@f5;O6Z z8#jt~wz6@f#ev9v1mi|mg>hr#K#IRXjhnv#0MfYm4m}CuMm&`oH`#t{1wg2y zZJ#<%5zv{m&TK7ZdiCFe@lOV{?;Fs>Qx9k&r(Yculy)-bKZ7(hPOET3ZN!*IZlARo zqhJ+pfGp0^4H?*Ukb)_05aAthb)<$p@XFi__}OIWGH_`ShyW z!a1~YJ52C`bx=2oon{9wyJa^xe5rK~ue;Q1Hw^H$H*VLebe{qJin|~t=p=j`HhZwq zZpS!U+_io@wT8_%?89INK zPX0x^uG7SqY1-}R(x8$j`Ha`9wy+tu_F-|m5^_SU=2j#)RSi4`9_91tD0oPZkKC%#~ITM?l@{nUxvZoOT_ zVeBZiALj$NBe!bT6jV}+tLMGQlO(#YTK6JnC7^*QD5o?-uxt4q3?{-Un(|CRP>m{9 zZFm6&hs!w*(-S&@z!ztW;cRiVRtL&=btbk?=Xf{u>;u+7jo5CH!(KDF8spDh?|HdT{(1qM>eQ z{yo>-g!!Ba8?{{X^d)Wny}EfyS|E}==Y|WO8#hEBVEaWnglrKMi(68_MfI2^r*`tA zpvh*{u%{V-I*I=R-yf~x!Elg7MbyPTC%FG5 zE$20fc!Rbhxsh&UIhTNDnk#M{EW8d7n2Up=FYwE8XNq&K>f$i!po-gSaJoO;%km^Y zpzfOiu?7t()-LcpvIWt6gxce7>pb1`!gosX0)7T*;)Eg(%o11Sanyp44gg4yS_~YoXz5Xly zbon%urIVAy%`>9(vM9MMN-cNURk-p*G{E+V+PDg28Ao_cszbDm+*kMPq=A}cqt0}e z2`)p4un{hK61vBCA&rop`PsK2@_o_!*TgP0?7S4WqQIVegsqA*9>vkM;z$y4WRTds z?9&csG23G6o-kDW1_rNJS=A!4zFI~U7-;G~|29mW2s~ZveJs?7nnJUk5&0do!$#~8 z5*b4xsZzvUeTwJ{C&ed+xXbt25=W5yUK{~0#4|}b`GpjVE+=`*{vyjkbVEWlSK5IQ zVxs6}xsRswbf(2=-K(f{Fw;J4gfJ$fX$LT3u>>{?vhf&38=Mp5I`D$?_v5( zomAgH4u<|%avCBWXZJ!Gfb}B?E$WbNw3><5BS?JxIkm#ftyk%ujCVZHf;L1KZXL%^ zik>P$ATH<)VkITAF^#8*cZbO6ne{)38eo)Z7!C4{f~q*G(*l?u`mjC?dDp!DPeWGt zTNb9@6Fu}deRa;-?-1+~AUG^^lBjK=YYRLTS;`dLfs;4I?E{l%?tbv@(|40aCNCuu zZK&(KPVFGk_N%gs^o%@x;NK2V`LE%}EbH65xk^x=@+wM7WGCb=35ubR^i|XVguiP+ zc(GXdwrFx-tPlji3MESng%$rxsF-4e>K9=o&5_XQK){I04;nL4Gm>EF-R84U*t@+} aE$G(CU|1!i59f8l(p5$wO>}o<;eP>A8!%r0 diff --git a/docs/build/doctrees/cpl_core.database.context.doctree b/docs/build/doctrees/cpl_core.database.context.doctree index d682166ae4468db954d05be3e2dcb941b93cf01f..fce538d0abbedc7f923036d38d039436d9d0c302 100644 GIT binary patch literal 44933 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 literal 36442 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 b)JoM>nPUD$%G+!zQ?g3tb;xCE%}@U?{&5DU diff --git a/docs/build/doctrees/cpl_core.database.doctree b/docs/build/doctrees/cpl_core.database.doctree index 208ae505b64c0121ac393ecbb809825a035e8162..ed9cfcc092adb7ea7ebc98b0ddb3dc3ef113c96b 100644 GIT binary patch literal 70751 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 aGFq+{E3FdJq&Z|LBPHbbf(morp8WqAu@iLw literal 49411 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 DzD|IY diff --git a/docs/build/doctrees/cpl_core.doctree b/docs/build/doctrees/cpl_core.doctree index 39eb74a8cd42bd04c259941d6ba553d0ee83a19f..8440d5e7cbe69929c27f586ed68989b1e1593aab 100644 GIT binary patch delta 18 ZcmZ1~eO;WjfpzK`?v1SN+>@hty#YSY1~LEu delta 422 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 diff --git a/docs/build/doctrees/cpl_core.logging.doctree b/docs/build/doctrees/cpl_core.logging.doctree index 28781205b4a46e60f94e61d89625f8eec80f499a..eea196eaa9a4787bf7379a6577e57a2c502e8f06 100644 GIT binary patch literal 138548 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%0Dn3M_kEs(v+=vnKa|_BDM@n4*__@R_@Qgv-ok ztanL%#b!~_l2+wYV1lP(OB<^F1n(x0fLPM{D!ifz9$n4A1n>0n z#8`D8|7qQu{ib)=dZ&}SO-XP;L}sjKJ!tDxe;+!-9ASP@@jDzSNAJ?7d5DTLI_5O5 zsS(6)o|V%)p##n&Z;`kw+=}?3O&U$`KBC#mKfy~x5`7q(X`SHlhjQDqy=fk`^AO7j zJ3IIX0L?Ma`v#ARo978kej5FK7EQ)HPqH$ddERe$ya#ih_e<&+dnkMKr0oby2kXr9 zK1=P}YS^t4wvSn6o3R{R90{N~^zmdK6Q_>?lb=35n?;kMkCK(?=;Ll4@4?i^^QmKU z_he3eZ2!2-JEYm)1UR}Aw0nAahn03{ptBCM+5u9|;cjWf_?*LGD(5f(Z{UOX35|>Q zEXY|{#;@9cMz2E6gp)MA6;$OLX21Ndmpp+PYIlsn%$}OvVIJaM(KYwv=^8b^d_4k* z^Rn-ROW!<%b2`F7JtOqX?IobNIN^s%`jua}FOS8QQR>PiArse+!`b za}L)5RCdlm_AX|bP-ds6QhpKIdQ`hb<*+-%QNNk%==fgtW-*iz-)+lkU|Ls7#XY*yl?nUKCSk~)cthBmhm zw4wBZhdfG;oC~Grp=1i{k4Q*f15h{>zE!ziLNbfA#2yGFEy{WOr_)rp1nD$AleY+pw9ZG^zFx zmJv1;^FaX3k;M2ckBLiS2uyxT{Z$rCMiN7^GMyyGcX_-AGl}syb&NflJ$ll12c~Cs zl4|dx_Gc!kwqyktps`#m1kfD%co>g~(?@~HPaltC(PZeOWMw+~csh^wVCv(k)G;~q zQLvv=AKO1JlWJ-9Hvx_gfObzWsb;*kPIwZGY-jIQKIH@{t#*SnV|-dIc`qFSyDNFJ ze%3xTDx-GxM|-`MR89_Nc^p9^9F)Uj?L5pxIe5*3ECI=wW zvd;s7q(wPz|IC_-m>{#Jr}H*}?K5kaKyQf5+NF3!nKinafy~sK#9zAJ00yC0va%yj)_Gc!i_H$N@EEoSF$nrfU@pn8XP9Fs(KYd)W zij92IEv#f^I{LVQ$9pjK@n|5$jo&n9F;&Xrk7JQ7OIgS!Fe2} z)Mn>GE9n3!9Tdnh!DrOgBn#CL7~Y?&Hod0&qWxxcDQaYY^dfJ?M7iOHxY;kaVad~6 zO{0}X*X+&HH7aE?f4an;SPk$%qqlAtF{C7%_`hRGPGe$U(93` z?gP;LS%uvIm7PYDy^Coylo}WIF490PLv+gX#d+r(1y|r9`YzXaxRpf zhmxtQDSujoQ{h{cX*4+ik(O&c5J*~-^Y%}psW1uBXnF>36WBhDb|!SCNTZ#FSCmGh ztL!wIjlvuw7%6=t>dfOB!T!cjVH0)6rn9#c&eShsu1~^>+@XSgq_FAiv&Cuc18~HGw1IjUQ%d&@daOx_ z-=zgSzn~_#aAiZ?>p(eiOnQ0;QE`EVnLxi?BbeReY8Zyq{aRw}#>Jo#X!{3kdEc+a zk)C+}X!tS9wJA})2TW8V%IH1VjFa^5Q8q#Zyy~ls|Kn}&e?ELL75^tP@JDydH%`_6 z=F@lxi!*ENtnsm}{9-2<_DDimnb6fPlv1YFAMDQiGTV7krhXflc&k`+s&v<%P{dooLuvBtW%Lr(vIh*klaaf@zue>nPU^iSXmp^7O(XDS!o3b!$# z0ipjRD)bkj!ho?G_u1zZ>j6wghm>C(x;A}YDsn$^J`9t-YsD~!3EL9cL^AnGZh?FL zs-tF!%EsF}#A>|P`%!FN%n5oiIt^+-TS5s<9>3*KV5^63D*TZY)iR?7ruOp#0L`BY z{}Mn^?T30eS`BlN_yj$^WSDK_<&wUkj2s+-Kf5QTq@}1G+-w^a8_LYl|G;yY9|DE? zGF}SBeq1Sby!KL=HiYCzLCQusoYdd6EsPc(0`2uj^YKrf^!*%=ZX&97XR}=K5>PMW zFj#jM2Nr_D?xAZ_HIU0%$wOpi4y%A2gzxD>3_-2W2#Qm1Whg1Z0`n zaUpvCXUc{}Lx@HAvJU3eT4%`To#{~Ana_I`sf`Wm>GO60Xm@;G2eJ^Uf%TCb0k}W{ zyReO;amEcoolH=Cz4&lWr$OT~f7d-0l>iN3E8?F#E=Vzm%O+k%q-OUO$VBZv5?m#L zs9T=GM`hL4kl=ujg|%$r+HRWfG}E1C7)u%1@oJ^<~GRp?M2j%C2r2-uzZ zECWK_Kv2A8I5bnE!7QZzsQWAW5Fh|NAH+YM*aTcv@_r&RyQd7BAo$5+6Hp3iHsQdG zMO&RjT35^zHQI74CJctfkT*a)|LAm{VJR+cu@unE^y;uJ=Hn4WFU&_b6Ej*z$)-H& z@MvqBuT6QljixfQ>+b<*cWg>Gh2$6-48lxX16X;5IWw_)l83?!J|F@xvZ zE806-O{7Vug#^q3ox_D}|Bwny+C5YfLIBXx$I39R%LcP;WxS*S*M<003&uvPevycZjEZ4PSInzdK8FqD|RL+N=SQ<`2HwONQrTZo(oS+tAs$bg%8IotYM(e z@0J}ydDnBKG+PS_Mm^z}bIB&v3zNl0SZLG&NQO;}VzO_n3@c1!XSI1s_hNLX5W*WI zYGpF*7{invx?Ri{??4EVFTO+5&4a-j-AM5WEohZYq>c0B_KSz#1^C3`;XlDET0Bfw z?owT0NENNPMys>+qx<4#js|w`ofyu8z|8o{iMulFoVpZsKz8iDlp}rwC`J8m0l=Iz~tUvl4b&qWtJ^ItOilzxx z4(v{FqhM0MB)b1D_@+I1x89txi4`Wx#c=?dLn}|`F>zWcF!^caxh$Ftt(2@xM=M{< z`Ruh55rtsf~%MR2#QXfD#5j>JP(i%>oRL)U$ zFcvUTaHgqBEA`2J;Re(P2#U`++FQV-knNjV+R+c7L7?V)_$OCBQ4)m(&hHXY*>X1W ziGu#bK&Npnb9e^V?-N{G1t=jVR)%g|B3YWxSbpB`n zojIMyq7(`)pUxxHJc8nNKKIt}XF;RT_8Iu66TQbG-f2Xb-A|@{G4x*WkVo&4bD{S< zl+0b`2GYvEh9#~{*juLlB2i*n&=;?JU@R{^Ww39>sWQJi0P=M~T!BD+(=E6VQB zRYrD4rbar>>;$!1wKkKP9YQdT%+3pB$SMfU$n0z>1p8snDI`>3MbzNMlZ|q9qFA|V z=l)Va*Vh!zqNKapN@`?)Bz-aiB))0KLT>!^?C9b%K(EuVvpIB?GHA^JJ$IV&7DWzw zZ__m2uKP|c(cGD$w*hF5Ir#^8Ox&DYVDg)jf0{*;F(;R-OlMC16&~-wpOb%)y2o}z zY>q_;A=@rHnW8_S_HAYCR;K8`SYfhU{7jJLdvxJ~b)2t{IIR?z{Iqg4izY)WB`ed> z%8fkUgRhnAfgm>&_2|!OY2|wKX4zg$T2)KT3xfTs`h}Oa2iwI8mF4CfV&8lJ+hsf^ zPCErAKkeMZqRG%s$%-YmwJA~-;!UPQx(2*dJ?x0L!BgX>v#oXDRZcj=?pWhW!joxz zc$HF@`BypY+{UuQS{Q*TMRdJ76myW>$09T5A^!CW16il};Z%`{LquS0<@{?LF79W! z@DQ18E<8r0-#Ga+OBX**J`L*#&Awwz#sd@gL=KV z7fwUUcu4-IpRCR@Z1cIaAz;G1c zvctNs{-BfMTl(vU{4IacqHtXLkQaQ*-_o@Fuv9p$=)L-9 zL)VR)z;5iw%2(argm9Va{${6DTb#b?elJPNhV@kUKL*g5Q+G^Cqu}zXJ3`$?P`tXY zXzg~;c;{}S^q+wyq2*8GpH7q>%L$(#va%&@D81kykJ2OGX-dB-!+%}o;k(wQ!)nc6 zgufd~FTMjIk2+#9^!<=lUrOy6d+)xF&_e5t`HJof$~^zj!C*_(SNH$DO^-09{{I1J zcXZ$25hF)9JwjPZ^yetbd?Ns%9wsP$1guU~0T=|WKWN!UtB;^@uoC}tG7fNi$}#|U z^G2q{F~))5BhNTM?!`FZp=2p*dm9ZfXc3VW->U71kd|XS5J*~7sOw)=Q_~7inUwjB zUs>$}=nYX;yAZFatVUNeR8|`+Hj0&*EUOWME|k>-p(2Wf3B(q)mTRa$-_Z7TR92Jp z$+DXGrUw`qw-P(L__ErFhMmn*Ji+z7H_wArHSmun=JuABSy*4YUW+z&eQh6r=BTgT z#$)1g#R8LG4(vV_O-ABKvSQ_mbFRdGH;>mZE8NYM*zcn5v114}(hXr*LjI$HTZJl=z^mA|6y$)S}(2-DKa zZr9h=AISxZtacs+pgC;j79JC)odT1eb`G&T4JA)cEP_4A$44pVo)j z^|fnRcGzN(z?4ihb!pO=UfEIB1dGg^kQ~(dTB^vh>uaxJx$qE~Z7w`Uq~AEXkEM$r zC%*Nycd7aI;pP-KJ7j>RXa6MY5%yauO*X>=oRQao%-69 zaIdTNH8E|#ED0XDDo|3D=xXV^`TE-NPJN9wNCy+6bvin5vR2(&D~^k7)VkR3VQo^P zA7J0XLVLCgP0=G8_#Veuy#G~BRmE=Z?@G>|_LaE*6+QW6o}N^dxc@>RQHlFCT+aSV z+@VL=0b1fg`AXadgv%^V9P6}d2eH2C*<+v;E>Xy&XHN#u{OQ^6K$o$VIN7~ei9^A8 zCT0z&)da;SX3esj6tQ_LF*(nN#(TaL!ey%aE1Xtsar&zJI7!NeHM@dQ_Zt9o=F}Z)ODMQ}>W)y? z5)`lQPR&h9*}0o2{qIAQ(DHrwrxT^eO58m}R<@*#tiRwOkJ2OGX-fZ;RN_ADh{@1* zk4oGF2;HU<_csm(TdKag|EV@T!sz}(0NNehH>QdhoM9zS8ZxZppeXZ=0EGGgLGdG? zwcsX&-ugo_4t@X)L;K&uKb?#Nti*knh_idlv^d5%5Pakr2gtn`2RxLle)aj&A|flk zRof9EEx)9AjAvHTqC#E&N}QU2=xK>{Oo3k|?%1PMC2k{LQ6-M9W~LJNtS~5!1|98i z^F72)V3Z=|xR9bruNH%-8@TIk9YS`I)N}Q5H z>z1`;hWKcfYZoM1ejbRdgk_HaSMy`_)t2uiT1L5RWWxZOBj0;1kBQ6o3QT@^tO*uP zM)F6pVu>$jjqGL~uU}@jn>DgmQuo;Alg$S;UN>q_cLoz5qR6~+aadlEP)_w)=z4<4A$JsqxcPX*DET1}vaQ|9k_d_^BZL~t&( z#HXB--6f{TkXXzx&Em5{wY4HqzF&*7?b$GA8H>G@T~kZT;Ja9$eJQ-^d17y&Q7v3o zD>vXk#JZF|NqwNhmD&%Ae)xwx{h;zg4MHQRS8@dJ{p4Qq}HW-9S3 z0L?#@_;Y|_vqnazqu@Lz5eC#Z35uUY9Le`T^eXd2Vr16#laX12e{xMLB)OPVS_!~h z-p-g-2+p#d1U@Q5c|#r#lRUD!7@=e+|IZ$e?uQoy=>eISmd|(~khCcCrYtv$iq6eY zzD0YS4yF|sL2rl!elNf)npV)&%uFlJC{K)4J6Yd%a_al7l2_2Gld-Y=X-p}Oms1KN zGh=mM>*QjQz$#3a_@c)QO)SRP0mDx$_GsAnZL{||3YjM;@`WjeEq_wslT{_Ntd6?l*Fm^iHznEbTz$1Iu*t(2@xM=O8J<30FV z`5Wq<99k)akW(w$KQ8CIiJyoXC@N>pdkx&{%A9wZ;Ue`>r~)HR(?(=J@iX4T)Qoqc zfUX1I3khdWi5bDVIOA9CRHIXlp`dIK|Ktfo=YR_(A)YK51E(}6&q3WK`schn{i9~V zXCja|2laVy={pM^u&2QX^&Hfz9X@?$yn7KYbH-bCTD47$?~FGf8QQR(Gu}FY=AZGN z1W@dZS9UO_IZ$w(GhPGg3WDNiy!Mf&Qponr#GKp(4FWZ9#6Nk=NhFEFdF|_osBAeK z^IAcFwq-ZwwFcKO7F=7&o~Q5})IWEG<*V}_L%2+x|0}0eTb{l;{}B?E4eP1%p9RpF z(|Iiaqu}!CJVL#jpm?3neGclkp;2i2Tll9Fy~pJe-z37aWo_ua;31FRBj-Zzc_^7f zxx}9q;ad1sWo}81L8Rp@4+N4H<-+~*IVy63d`?OP=T{~^a=psu9EDeu&!MZC$>%(? zQ7e`@dexcl8*T`}G%`Bs4L5?&jBG?}N@uaeD-4zVrX2<)bxs2TXO9{_sk2SP&gK=q zQU*_HR_8)3soYteT>zRRt8)d9iJLzQOn&p{F&0h6{8_Rxo%!>A9`C`QKR2j*Y{$Xo zLxd2rO}3NOIfvSxnXJxRSz)qV{JtQ|H>-0$kBQStfyqxRKhC1b&`Qb5bhPpdJl=z^ zm48p&lS3)!7X9x{}pVZ@3XAA7VCI$RJQsMq-QXC_b%| zyy1o#a@R3r{j42p^jk#JA3Y(lso=@(4>OcUQfK)_8RbSvj=$D&oST`QwHv5|*5DuC zDTB)F^dgYR?5u#xxscg8$>Gy?mir8Z%bew&;k0V2x9==>JIT<7HHQYXmf?8-ntzu2 zE6`mwvm-kgGdn0a&snYkbpk>0vs^og(93^$rZjNx7ieeh*?Kewr^A@hECwNi)3^iJz65?FrYXLMzPUi$36E}MnnEYnXr?F@CB#Y z@^}ya?0E+e?=+A5m>g04*QTsEK(v&9@RtijhTKQTQO@>xV zR;HtsZ{qPDe675Py2m!<9{rh9E89OVb2^Eih*qMgoSe>ogB$5ePDicOA&ZYb7WbwI zjFgJ_jr3Q1N@q>7QU@D?EfZ>$PRcLZnMPkg&ibRzd+P!ch>4t8yvS9$P7>bdBxB%= z=Hv>UZ;SrHYD}aFfbK1`WLN<>hI~emgC^*kKtpW85g5u}2x$-!hQPTa<04s1)XwsZSk|@mM zoB+UXaN>Zd(@X^Y*%lpIS9u(R>;Dv7&z3ySE=O3tI{zYs%hdTxomOqV_0{={+w=vK zySxTKXHMra7l4Axr}GGP4ngrcpF59pJv0h!@5euxhQ?81%3n&g#5~Rv5oY(31ETa^ z@Q_FEk#nKmSi)VM+=4Io0zONE*zpypXnI{wX#u0Q%J$lQO7uL52F zvW6f5903C8?1k22@ySBM&ncwtvjZUsZi(4uyjeV*e$t2Yu#@7`B**WasoiWg0fUnV zhDNI;v1z$b9rNLkb`wG~7olG41g&U-e$DS#y!+zk;-(3+!NLHILfHJ^L(fUg_!%A@ zlR~zgU)91FBbUps9_~^+u&-E|3e-xuTlKiwe$|=BHG=((p~5C&Y17$T3TKW6_0mYa zymzEN3F`xg3i^@4rnAo$=hY6trekS}^r)c}?4phKIPgn$EO($B7xPy4U5eqIFn|yh z=jdhjDSRzFJ5M8+YnlsAD!gC!*YQ4zq^9_O58M5BtQJ(-ioJpGqv6La-=l>59!tnk z0h>W57A9|@xOcsM#0>5^$H zp$(LI`K`2Kpc#)Styb>-adjg;=A2?ZsKeVC!Tgh58oKr-^zVac&ab7uLJPD+K4zR{ zp>ILomz_>9rcmpcmW}sSHLwL)Zz4}(_wqgmfo-;YXHzwl)E*nw4DXoP)Xe~ze>N2W zl*k}pCq=90LnFOfycC|n0eN%HP?CCKmvcTrB^G`Up2MgBv}6n~VRi-@nJD0@9q{r` z(6yjOTN?+JscN~e6(V{Iw$mTISvIEv?CgG(w9H948$#PM35q%i$O*=NAxFCEu&Kf>4WSE=EO#bAfQueJ8PFT1Rk{TOf1|?G`suPguZ$Jkq zP{>fFbbyfs>ecoyEfaL)ap2X@$DGhncqO)x;Z;i}hzy?01a+8w07Jg>l1nbW`ntAo5Rlb{k$RHreWun?n|k-hJ1S-L%vJ%p2Luz13)

      yR$e=#-6&yXj&6z#wU97Dbt?#-Yf7aB1q4Y^Wg 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 vMD#~;MP+=5o|h?+QqL~aw2OLbLKRh?xV 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

      1MB05;HzPMdPo#Yb;Swhr zzGAg%x>eWO>ldIEYR)IA_WC%$rL4Wa7YUA;NE0%}i8SOCRj9xjC^3u-=+eA#HX+8c2-s5R9k+yJw z$tzd=UWIUp`h9@as>x1Q{ay*Jw4&dK0bFPG8>fblQ|a^@q2@6tTEDF+Gr?BtZlvX# zp-E`@6#UbQmg7X)NsKI0ED2i9dyq!UvEOl8{(?-TU1qUKQ*eigG!LPhOr(uk7)-9Z zDto?(M3Rj8RRGtzvTIp|oJbR<3MYk-cj;6fp)O%iw8}TmmkBO6{tzktTcBZRKg2(+ zC_YZ4?PJ85B1%wv-j6hjkGU9u02N&H<6_h2V# zXm3z(R#aI%dW4xLM(l_HcC8+ntFZf}L6ghq;QNk+7x6>GYvs&tJQpXEtBOAIrF!Q2 z)&1j|;19xDum$p0ZCzh<4?6z_tMgh)LN3k@5iT+3ev8$rIrLo9kei^DR&wsY0l1WD zNFE7}sVNCbV@(M;MfrHGrldh#&7kN66-NjMYQNlA_`lt#)eEbTkmEg`|y6Vj1)P0MtI6WlBrSr<7&#=nGheN&c} z{1J3TAD?bfT=zl~${M2aX$hjDOqQOO{9ch2PJ3xbNl6#i0q%(S7iADxLUItvH+r#N z#FF4ZY^E_Gp$}s8Et}Y~>|=tbJ1rJ9U!9wImzKUR=Y;a$SV?RvHtfj~tVmKE97c zlc0~HEA8mx-89~*)WsZ2q{&ljH1f1ROjK9;>}Pd8rv1s4RI}J3y9p zJ}bO6og=T3IdTbJ00nQf7~|(_i@Yu2SLHv0|3J;`4W4jTP?;Y;gVgcW6+aTduKBUG zP1)^)R5K%Pd86`kR!3cP;qFDy-NamYKK`1RkGbZ;bD@=1a^V#KmogXrKC&Su7Zy^* zTo^e;1(sSatU*1?py*uKJo;2{)w~%gXg{*HH`qXOSoe>Xf?~$Iz6oQsjF;0NSs)_g z)q4Fj@3pbU;srbp^;H(LT$TK_2$!hje`d96`Vdzozo>~UlIERr0M}V1$7KV^sdP$? zP-ihHTFLE$PX%A?+mWJQ1C2u4e~Et*O$njsxXfZNBg_!xyP1!|O;dxT^Ed7*o#FgL)Y~}^6@cf?a2$@ko1E47?Jo6V* zeuUgp!7;fh^(qogLPjmR(oRObj>bEc8TDEq#SYsYBx$-U-Ah{)o~O9rC*|Ea=aOtB zdvP}Fw)1wjKc_KK6&{YsO&>=|Gzt1By3&q5?xpcgr9MtD!I<8~L6Rx;vH9bo!V_nI zBjDfx(C+psJleZ+xF^93aQg1Akxr1+cs?Wi0bS#XUXH_n?PU;2KPw*^dV#G1mn6YtV}AE_CaklmLGh;8G^Q zA4Y;>sysrfSmi-ZQSl{~M#L@}4eB!ticWydf=-hv&;KH&y}>j1Cspz*h{7t*|1hFV zq3Dd&syv+j$O;iv9x4RB|jKiX+_D82Dr{D zIaV!@Q|Xi(p_VZyTFLElPSYyS+0ZDoy$%1gqUc!VIfD^q3MN6(c^}d!I`*6^It?YN zJfC(LbfU^59f*6CM|wx7@~G6!q^fz9rv}X8Rh|jFVpSe?6%{Hy25j_H9p;vk9S&7))0-a@E|J6IO!FhHz@?u zbODbh?Wn-h#qV;L!@sD|l$CexRNYEn-icTed=#5`LCZUzCp$tWVGjXlit^55G$tyY z=9t_x`iCT%gmhYTrJZ#8ziGTvnNI(b3C0}C4w5wel?o8`&hZT2j6h@3L?yQIw@L>PsOHyG+K+G@7Zw9+iBYT6Ivtr7U z&J9QvFX>z*fM-HUC$u{1n(e+5;S#gmcUi5P!^$<=y%kz%CENWVz@^M~OGt1`Nk>Q( zOFGCYDxlO#IvUiC42sTnQ^WC-8cLLOu5BV{q(zi;qyup; z=}4alB^{NnnN&3|>6{A8;w7EUc*ROO>?*dT!$&)mbWAk5>Ozn3EzAB8m!JO@mPMM+ z3$nWN#ay*&zFwK10)MWe>O4giyK10nV z9pOFm-Cjw3Ubt?oJUmhKPEP8T>Qs0Xe{y32pVWg!c}^pBQfoFsM*ZV^2Zqaez9l$Q z9%<S zhF{KNEApd8ywWZm7`_%N<UDnAaae;mkWr6h)@|O*4`%Iyj6+yAHGElh?k#Gp36Ael z44$2lr#ixw3H1&O$_gCfYoUmWGSqr4^d^O1dXFodOn9r}ShI1_FB#hWL6hGfRqTkb zp}yC@&C`9JWaZ5;rXp4bAHil=wLYrf&XYERN0{=fiT~40@KbM0h{JEbcKmxU;vpSsXu9bG8GSMkgCLG8Snta!?reOmQ8) zoC-+E4juxaDaOMwG$v|1a7=FFVKa#)VLXVg7~^5T1b)X1iMU5iHouyts-;nJyi#Kn zxocoXjf`M9kQt}^=fQnDX?M_#wv_)67C%g-lPfRs+hW>-#`X37JNB_i^8;j7H&HUT|x3QoBp+E6f z>66aLRXs>X2c%ye*b$$X^5Txjhau_P!G}2{Z1Y7EQSuet0{8rNOU)vc4UcOPs~^4f z^9R^E&k1@kI`t|*TSN&<9)Dy}V5)~}?fH8#s-;H_Nww#n16<15^CL*`Gfc4lv*D3y zOo`B1E4D@QVAVEwDd_Z0M44uyMo<|xDl@)3;Sb0LK1=v0UUFrQ-iW^PB3={BKtUuU zcq5%m>~G5c1zjtkz20CB{z+3Wp8?#BSk=-C+lTG^EqV`dtR7PJDmY?LRIZqa@I@Th zx>pe)!o}L#@vvV%Ak{VGPPDO+7Wz!SN(p7$z>HRRNdHa8QT55o`4 ztj3G|IWLT<=p94kA^yV2RPFW(KSufYUoI zF=-ZHbAts)#RA(3>_SZ33bdFuDjj2%V2?$)sV%O-PK_yo39D;bQm}I^z_n!wTI7Lc z4RE#@MVQVSAk-*>qOHOHiCPS%ApS=squ_Qx0C;Z0KdsmSoT+~|BQjY!njPT%Nn;0) z3vqT}FU$HHl)vpfZ^y!I(QFdV7Gjv7%|k6*7-t|Zoh)jUwdiITG%F!)0DJDYgr`}D zizb0Vw#oQ1qUR=~llivNQD#TJYW307Hdj0H#U`4XWJkUZaBbOgM#c0euaNpF*x`Jng3#hn<}8Y1I^&@KBh4^$Qf>M zXehBXXoUkUVrh^}h2&b77T0HN4_}e5c)1#RZjN00a2`u=V0(1UFAu{CgJvr=Lhg+?*LKm-w2VK3|*cmCWEqZl3t6 zbeb8c_4`o@O`o`Xq=KC(d^M+{=k)P47l{ju<7WPKQ<3VO$s85&?%x1QW!k)mDu&|3;F&-amCi~g zoq@#n260S^EK+bNJk?gQme=zh3YQqeKpqAv1j7nshYM~tmTvv1`n6^&vq{y=c&_GW zY84NnCV1s3)H_BBMYT?@$x~`b1!c~JF@ai|Ow#7FD&1iS!K-wEqMHVTb&i4TBP5_o zB_nQQy4rjZ<{JSYUxaxbUa>`(?8;v5$PMY5fYaK}*4h(?y`hOwYHzJHrnVzUd|j6b z(9aMg`+?i1uOASUH**6=3jODtY_iKXaths|dF~U$H>JPKCEPCbFJ5_Rm+&418_oOOmI?Nw4@tC&TL7t}B)}6iduwo_6U95d`B~7Q!iC?gi3J1wvbOC4ztz1oGqO_7@ za?{EqNHhsrDZ0{*R-QoPoqDZ2j)^CQR&pk!)XL_Mix6v4-E0HeE$fP-7%UPr>j z#k!kRQ6fjlqQt*J?2yqnMu~k|m>3<*#r$XTxn1VZ%CQCo)CVYxI;#biOK|%3os2t- z)L{V(qwGv=&JUb6c=O{0Ahq zH@FA?q^fZVqHuEUE=H6o7u}a>H7-tnH0a}cEhg8rUhm<(HYV3zzysPJwV36q=if!R zL_Pn$)vC!)S3UnWW0eW3%OXk7e+qCN*K?c@L1v}XbA)=BLD71idaLK${h6-M#y_p- zI!+)x--N%KuJb;m(RJ)O*L507)N>~sXc6^X=|*IJN4AfN>?M! zRk zTKO1>CP6DjSK86aCuqD=ua!S!;z^;EoC$4d66kRdcwlapxoV`&R#j6{zBy53v*kbR?X=>bb zHaNKpa-N=wH&V-0M!i}+TxNwc!xW&@-8lDNsRiSVu4y<>@Skn4L$YxF z6v8DI^q#g_H6t3=g5GbSl~xMZe+0P5Udyv#n05B{;88V&T74gTfSt>^&;M=k&q#25 z;aZ3l3)jdj$AX>)^#p^W3wpMA!S3s~BJDhAHPgYZ^UgL z@OoW`9*d&2*5e=X9vemLwPRkjnj3{9d}7pE{1&I#t775!lfb1O^>gGY^qbI!6D(f2 zs`wU!OH}c#R;#V4_-Rcm!dWE?HWzt|g~8;it4Y7P ziA0k0{WgGWOW(DAp}&Sb&(dG_2==AZdW5=`b%xgZ<*{N1#c%vU@jJK=dEFcQ6aHyM z_i^?8y^J_hN(s8p`;kWXvG-i}X(%yU^L^$IXj;TP);U%IXo||?IvNvIdE}VfDk{g5XcEd0 zqANz_G36T5vuV6;HAbsW*47%+txPuk+l z8WW|J9FvDihGNv4w8`DxaD=R?#U zrZG|4$uYTU=XXdn3EC;TVrXYaW@~;yQ{$$ylQ>)Rvp5+h&({2j><&5gz%fO6sha50 zGBY!{TJjPqxYBbOVtb(Fg*0TX&ep`TEP1x(FtQg8EHll8!-#YnC&!a?(c{E*wq`4d zgPg5NGvr@GqM^HzZnh>%Vrpf!hWFEyv98*&flBko#cWNKV+6}_=vuQizk?K{qq8+U zTfhPf&em|0Y(nG@BH5v5YmTsHYuMgYuQXg`$9s%d%A=Ls7%yI}4&5GBCMCE5We4vQ zAw{UO9=n0_I?o~Pe6Q-Y0(kn*>)d8_GcvsNyv`j6mss@vh}EhY`?wYX{|;KA<{y%Z zfS&}oltsY5LW1Mxb%a=PUI&@wSpL(X-o>Ek@}EA5BiO3ninQ}_Bovm6wJw7WXi-+Xj$&&v?tpUt=z5k_#M2*?ab@kI_nR!*grMf-~I&8uPmmy>iX{xE>YK? zvsyLz>Z6S&)ecq2Wx{tl*x=%xi37%V;SUIFcOz_AM%6)=I#*QkYY+-`ueZVX} z!E-xau?Ze_l{CS_b*G&Po>%x@ZrE#SKaT71PaH$?6wfq1{z;PFY>ww3u_H$?lfNEp zAOn9JCv4`)M!BVvU)8WF~U5&5c*n?QuunGU93LEZW3}VD?5Wub_ zjKIkD`lSVti;Cbo9N1o~z*fjit(@6iDb(Odv8w1JGZlU2Qq}$An&1z@vX}+(S8bJ3 zbPuAEv#ri+fiSsX^+JS8O!h9eS~a!YHTZosv_hpLNx|=x0GBfOJsJs)FKh^5V_^fC z#!TW!Cw5+ibiAEV;3XWl$dTev_P2mEZHLAqhghx z#*fn-5QsqdREI}JAS?%>dmt?BjIus01j2U!fjkiYd%R+SFuO_$ggGDD34~85lt#*} zEOdHl?CTPu7rV(*P_g~wAozXL_v|}Pc(V}r2oVA^HYTicY7B zAphhsM+d^6QLy2RV6PblPvNn5-&KrC9SwgIKvP7+|4Cz_qG687EgF87M3WE=i>|a2 z4KL`Wv{g6v?vuf7MZ;Y{knQWqXqYo0+4sosRvdfxbuND6G=okZd$)mPCfSQV)@|oS z9|JTdN-H@gH?2H}M3bPEqATrayX26LO;o9OL293j1$a<12APrG+pO?NTci6 zbFS+&l&CGdtBI_U7ExP}Zp6K|AU!0wqZm)^wu|awU>2_}ycVxmZGl}S)fV`eZ>P3! zVy%+PxAck?*E8=Jg5>JLG(PrSP~NP(AWzokoOG@)bc^P>ffL_UFvKbhWpd=v6^5M( zb~^8l(pdb0l^Cv9oJw6{xE4TDlo;wXCMucZnB0=N50GdQk~z_pc9OYI(s-vnnY){b z#|*T{WR5c-*_l`+hHF^+<{WURN(|p7nMwBI-#J;XyPkeZW1_T@V{+5V-;!t&v{H1X z9j%r!aN9ty^YOsF!909?xK>o_DhzRDm3i&X|>mSgs% zL7mH>=-9Oj*VCoS zaJ$7US3Um-!X@hYomQ(RKV9|w4#p}IR+mLmmEltW*Ks|^tQnb=PR|kQJq(K0^VC&_ ze}hJ$?Z@#?E4q$VhDR7-$^6xHo%bP)u4B)+uG3JW%COCW7Exu8Zp6LHAbljbqZnuH zR%MuVh^#Wq#w%83U{^_120rH7sWO~^=fq9s3I=u#oj-4|R?nfkJ`F^sy~TAJPqA~t zo0S;k3I@hT=L$m?Z=BmU{zZjBtiI3-@=qRfbba9f1v{NrFhuNq!O9EADMqC(FZ2Uw zit@tgG$tyMndmSk+$Q2CC;$sYeYs@)Dma^|J~HP@PVD0DY5*IIzTCZ+(c zxmFjn(n?KXKY&Y_YyA+}5MNUeg2kEwGRra7(xCpALD9KZs+z(kvenUrGi5xg`b2(9MPoiFC9)w-uQ5-gbu^xUV&yI+yVt{TX@6fvyfnOelUzF-&J z4-bX?6dUv9inp;?9vy|?fc^C<8^wD80rgrq$O>XU_GlI#?H7--ztPrB4^ss09t2bMsTvPd5A0jWBel0JXAyb&H5yRQT2*`6(WyS(D|tXG;)=lmo- zJ&Qj*i$ATR8RzDEgMR^Tx(~2rp!8o+5UiuCprfbDe({d_hh7bxJq(y5cqthb&i6{N zPY&MJf!sJReCb$uc%tZ?oJrya?;h`6cr<@HerGtaPJh@eBt;~LADyhNFeU;0<9i2& z%Xz+&FH;_I=^@+81I?U=3b2idAL7cE*}FYF4VMJ#4QBe-_=2UqF7&Lghc9;!ObppZ z6)$2wACrF0)RsPfMBWGwuqp1_l`Bqoa%)dfJ$T&Zr>w1cdujujb*xM4HgCwBGVE3J z*=k`lTOEfLQ3DzENM_yU&HQ+}KG>BfjEovBtdRCcrPYGUT?*IijLab5%7p69kfY~X z`$atd1PmZVMR{3KL-2RPv%gnl%{0x$V)I)S507wBB*|vChfPTwL`tI1f3JU=;Z-D) zZ#I}59Ei=ZT5j~p(&e^NN;(^VFlp**LepLT$75-Fe*#Tr0koS94MvMuVA6ju>LS_? zI1D(vN%CfrWU{C<0H9RXW|hWHaC}@8A)V_BM+#Y=LJlUCfi1QZ8Ev%&^ooec6ee8Zu$^z%40#*$Z$f z)0Zoe;Afa@{Aa@+#Zne}!8u1W%{VfZLNQZ*KvtOEgq`OVrYv4UIs{r6Dc!Oy@JbcX zFR#Kj>-0EK5PljO4S%wAKRE?crHxZad?(XG8cjUTjPW ztjN#y7MWZPV&0*N8iX<7Kr1cuGwjv^Y}qR*J1VSNZPO%MWLZh%>AD3XZaKs^r8O*0 z`V^@$^n~Ll6l{3U3<|>~vshRVg`l&K7xvsKQv7Gt_qaL4gvpIB0Z_y2;i+5$hTd1;RP4IV1}Gw@2DXcE!u`Wx{Z-O|7H%m4Zv=F*qOec zHspN@c4q0m;EHX?k4t07Pg8wQVaQJgpcIDud=dv~$T=oALw-4lCc%&k1YpRIvkW=@ zqHC0!A&+z^7{CTBL%tU7O`;*^8Zjdcxm0Fm$d44fZ^4jDP%z{%0&q6uHv$EG{$L+o zF+%Ar~#$hCI5BhMa#h4fzLz=w%|1#*n{H!Okp0F1TVF z@?+B&@_SX^QyB7l04Rka{{o4FG~^tUn<0OkM3Z311p+YS$6AIQe@So1BV7va#s(}y z{w}yTiH4kO#EdlLQkj_{e~;jO3x-^Rf+3F)fU_Zg9w^|3{7-nr3^}`+97DeCm4jzp z&;dJsQcIN;MBauOU)4}p;SE|=yi45$BhJ5=HvA=rn!gumP};rL5>6CSBja1=IRneb(B zuVW@WVdzK;J`+`$8SoW?^DP)~2?_>0hW*Y4yap6-13rOQ%z(42$uZz(UU1e~9kAc8 zXvuy9?l#Q#{tf1vwP#uHx$-6$Z+30k?zaemw-SHfq+r93&m`N;IAWXbW73%J_p6?# zFx|HSPzuxiaS{hGKC zu(x5n8)s!iilSVvg_((H8qh{!( zGBZQ|$JPzG1O-DLBLHVZz5|5E4S5c)m?39ZlVixY{n?fa2RmTLTPvX;@;1zPV;;yG zw5)iSx{Dp3BL;Nbu11~7&_8|&!`fLP-SMotAg__ zMB)+@40sItoelUmfdX#8zlB%KfU_&ofG1CQqeyVkj9f(wyS-Gv!y_miXrmg*jxq>)O?Ol z=o^AMN0hdgXabQ#HU^$|Rctq`xOulltZ5)zHy2f*l~y(vy#e4-ZY~-@f}aUcMPPH$ znVn#w+LttwTrI>jsA!a(#vz1<-rRz`;#-nN@zUOsbohndc*U#2Zf~|F2{%9&`CjCV z^sv&lxIC)NP4HgC)*HNAAdR1Mv!gYjcm}x=W|%atwiZ-w2SqNIs^y|b6o#ZM>_8?n zUMY`zmD*kigOZCvNznZQu~ih3U6L}R!Xdd2Tt-$=ldLQhZNfP|+6OLaPO}w!fdsN_ z*h7|nxrIhwwxCSQmr#H}RMe2uL! z9V)blxD|XCo3ZL-$6uo?y|7L4pbzaJ2{|&fGZ|0=onQXrtGEg(2N*#1FbijUve4UO>}kgvvvYht%m84OUM? zt}}4ZGiUaXLOUCy?54ZSBq+ojY79rr*XntZC6B3@y#f@Lm-9}-D^|{9R}D2Y=A_!) zWVUUjQ1tMO-!@%u^1OPY>y?<>@VzgwlED6`&8cy|7h2}U%>-U%L0LvAzAk~NT%GTr zLNK{&wUlg~j}TH2$&$0Y?*c=nVDh6IrvELgPN(<35yOHKHe>l;_68PqE|#-5eFI4i z=}oT&P*-nyGl?d_n+gPt-jwyzRK~3tU5XnnMXWVC_oDyQG$X;RHG_lzpF?58W6xe;=ke*^N8$fay;T$BbD-4 zcDRtQCB8xcPti~uw+tD)BB<`O$t`|6 zh(wd%bVXMT7IvXl^WHQ%WB#Mb$_+H;mb@{?)2ch}1B&e8w}VJcHxT2$gI%*hmaq(g zX@C_WYyA}IZ!pduk49?n45}RlauKfJ2XL=L9{<2ZtEFCP&naMD^v6gHFFg}yvh~8G z#V#mjR-=QMs+n4u89%A?b z9Uv_MoF*rZl0(Ig=8P6b4@4t2)b9eRC5u#T=4eS{v)ZiBUIgUUKW@yt&T7}xCD%!w z-O!4y=epV^ogjA|z@?nzxfBUjlRUgjyc)D75YoYu-jQFra@&O=OP~m{vq>iaM81<+ z${u1jj?)-Oaky~NkW_PkiWz=d#5a$JNpZ*Q+zCYTc<*C)#o|47l@RYm^tHICWqWuA zTS(Mq3FO4|@g75)80&FwNzFaTRdpAMWhnik!Ko>Jd>O=}uS0Tko{v~i=5S1Ko`{Ol zb-f7sd4(XnbB4@32(ej}kM2mCQ1%etl!a$=4o|AS#)VdNP#f_ncmkWTY93QE=kN?k zKN+w+1)#1~lDX?lO?A>afuJ!kYc}Vwg2tu=FYfOEp4vGF-t{PMvdw+`aEsI^f(#x6 zF?A^7O0ah5=iv1_Gj6c65bHBy0JKnDk)Ysf)%cAVulZVXzTtFGR_<-L;1%<>>?*|h18Gm;j*gfOGs|!#39dDc-!LO(s%@8XSeQ(1mch*=#AccPBxfD% zY1y8|1qkMAgc8A`jWe?tSi}2-5+Rci_6Gk0%+?cG%U5c)2xW~MYJQ_2*oK-Tfd{Qc zMCXMsF z#J6QBY!3$$+J#Wnc_U6lCCvV9P11Wca~M4?SMFUT$~aM{j7>U`#F|%z4oT?Gl)a?r z$UbvSxkarTEhuXw#;=S)RIX9$VG6;EMC;AnJR8zzot#lf2V@4vXDEKg2glUAj3QYC zTd)}`Ft-<0N27w*`V)UQDSUMk3aMqeaTJ;}soHyr%n4Ne2V>4p`vI$Zac?#nAxS1@ z*MG`Wny;iO2@~=>{=W@q7WxI7+On?dtaJDH|1Wa3z0rv-w`^(V#q__cJtY^ z&b;C1CV@*vTiUdg;~S1{#TLZ;6!TT4g1*y2VA?#_`Keo=6-w|)^Hc8!xRmo#*CWBt z1Sp&MHypiK;t2@!Q2LZ_LFL3QYU5Y2h`y3}=yzkO~2@l%Rbaq(3`9qv~E)UawQ`CUwZB5{xD@)dMyD0V8 zGGy_wy+E)!jA5gxkocsY#7A)nHG37QV(?3B0EHJp2H${t9gAqV$9yPs9Hb)dc~K4# z7R7x_NUViQpacca8zVNY5=g(%X#iA`mjX}5D^?0*R}J+xW`x__Y;zfIWtc2KG}sA0 z6cN~l6FNM}3F)m{9%!NU8>B}1Epw<}Oj;7!_q0A`n1;qw&wwK71s-V~O-G_%=3RIhN1C zy^cGU=0i}rl^5AiU{2)=LQX9>6$uJXB}Q1zPUWbhrBhjlSInuftI2UH7vo~7&O4NI zI^j_GIxb_zG)?L3;3Q|F)`#`^QN^t3sSD~^3HS`__MBYQ5lOWfJM3% z3}OS8(>M|Cb=+ytLrpr27m?~SXK|8{PYcdMf`YS%5t6gBcrQ@EGmzWxia85*MLLUQ zJwi$0$~QS33*@PZd=ska%D0aw(mtw4V^8OcjB*AI4>ONs=&G7`;C;#wNkm}X+NGjJ6uxr@-;ZoJG*D3Tp6pwou$=U zr7#Y>8XE)9Dm2;4?|4Oz-O27Q)ch=4s0AbgMgf2;x7dxv6>q#;sfp>ebLWH${ajIf z?G9IXdkVlSI015^Dj(_&yNA7@iBV{8>F!*m#14I^RlM97-07)Ra(NFsRlhM@S}2WA z)L>y=zB~+1)x(~N+Q`ONY^)aG`e5_NtXHX&D_K8R8ZLSj;4_j6d%(kG<%ycvN;hkz z9Agy16>`?4twLEAAqL77&{Lp4&g{y%u7m(?MemgH;M zU4?3atLQQ~#iN=Vf|9$Ua=si8{)TWdbfyZYwX_WK&62{hsLF9`nx!vk3sOSnDRiHVgQBcHUVXRQApTB%vxOChb&jM3C7>jwXiFjuy z2ejkh2w&pYYU9;`O`G6$71l+<(IKV&a%FT=JzRxPG6LYqY|R@3@zg*Z3*i37BaeAG z@N;QpByTm3ccSKxlFh?l&7sQf^eX)YuQtMPz_8!s*T#x~tf!V6f>AUKyJXH?5Uv58 z9LuWVsXCCYj-!U`3zt{-!f~m4vVLLIFT#J&->zaARey1HEC&PastFj^RbbRg_MLyt z7R&jZVC|Z`p96Y8@O-?1C>aX@dgsJApjZmj)e1Eb9=8MgKzqvhLTLnaKpKYq&{R|> zhOFlbW2n5va*mJ2E@qWLXU2xSVHo6lfdt?4YJg-_9-i8n^~Q1qIQw{b7|wx3gK=ZH z0$WCrSH0p0H*5RC#k>X9d=;SQdZk@;m@f<$aPtD=8C0`S8ZN+Ksby=q%BTnC3KVGt z5DBVQ11k${4#PQs^{c@E8h6nzvD?tvi25=Qhtx2;KOb-M>%QOt^pc;(kJm1Pj|=hR zi}139;B)x#Ykb|pFYx1+xQ_hi`0+`6_#XI}2z#)l+TL-7kGD0*+8JbR3^MpZ20O^$ z1}FT(u7;x|5uv}BVe>cogMLpqkM}b26W!uy#zWzG|1j`pgUaPe_ZD^+s<3>yek1s* zVEs#>$u;3kla=Ryg5jaoP6yiXXW_sajMt!pd=bx;{%CMAoGuY;!H+d_;bSd+{H_~5 zp2v@`Er5@&6cwiBHd>%ipTLK?%!Ve~!OHow2@Z)Icx^ANS3rx-)9P2Fr2 zzZ+jo7|C1q!W5>T!EdqOzsHY{W#Hoz__6jd_~^qAe3yNI@4FB1mB<0UHaWmIYzFui z&H!K27T~Mgf~)WY-w4F5#Z!2Nn@LEH;sZ_`eaB>SRBm-}=cj~_+{E4rO~q6E13c-U zot7Hl!MyC8xB$Nc*YFd*Bsy$dbZmuz#U=Cy0Wby0VX3P=kNh1&V6JmIHxUn zb25}H7WVk7ZX#I8O}S42$}YGfIKWlIY$Z*At8D_D;0$mQG{A~(fzHP>ggV%#U6>30qtkB z51B%xhN;OayDjm{tZ*R&zxnb6hPL%^QNCO(@`wTwp!r+H{aYXkxUPO71ajlK3WS6Z z08}A#L4X)neh$qZC(zWQ3 z!L-CreKjsP?G0WJ5Kz_Vfz+V@{mm7#LlEli)Cdk&z8ba}>wTkz8VrK+Mnu`hE@kXu9-C64G5rMJgeE6d-`Yw`ml%E0qUWlg?5> z3P37{&P^$m;0^$cB!cj95_z~wvV@_SYKeRcdzVTg|IXOgQHlJ7HR&u7qyQxH90akc z#)%~ngpZTR?eir|7>cQu$gB+#ee8UJwXO4uU^o8Qd5J6qBB;`xWx0?7kjNto+LH*v z$4O+QN3w*Wm}-fvPc4z782dUpMovs85u^Yl@(ggUoiT#&aT58_LM0J=WU3`{VQPt7 z(0PgMNGB1b03`CzqV^<$@Np8kW3iG5J~Gu3c^&pHl^@x|*w@i9vX3?C>_?CSkjM>C zJL=ZksA~*IbiQpqsEs=MpmdHChFOfUaNdzeXiHyR;R67zu_&ABYe2tO_ zJ~Gu3`9f-me75rvc|4s&kOGj%N|+#QM diff --git a/docs/build/doctrees/cpl_core.mailing.doctree b/docs/build/doctrees/cpl_core.mailing.doctree index 727185820630c2e42ee1a6a8583ce95f8717b299..670cf3f28d96ca254e0bf54c18a1a3630791bc77 100644 GIT binary patch literal 107313 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 literal 52248 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 cx!5Y`9BgkNQ3Z){68*s&RAXYTI3?RjP9 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

      DiQBmFm^#&aC!dQNt!|8OG2B_ZxU6o$ytc< zoUGT2UE~{rMvtG<4zR;r#eMa3 z!z!AgYsi=Qq`cCTI1*J$Y8wsL&d!y)akFHT_=X5VwYA!|mAG^)>O@jRx8dXOo$_*xIzm^` zqTrNPh;V^#L1#L+L0;Z92dPonN-I$fox7*UchM6X!4=Trlef5|7`0U~Y=P< z64`r$_F@#oE20gk{r)hn*U;EZTwaD2RpYRCc$!}bnXKb>5T%}`1L|h(lYD#U1a2Zd zUJ9{6UK5+-d{eDSqQ9k6$A)R?SG&;b4j6Tg_$_~yYRyVnvG&4Bh_3)wFnm(qz-7Tg zl)ksy!Yy@kpe~ML@L$@2laQWfCBnv)H4Hn+RCKz_iF{F=gtyi#OKsdFtP*4fllLlA z_ykA@1Kdn|5|$dd?kxql{T8>X4yHp(EZwH0aBPVz0X22p(nr8fqR zV?AIhpO)qY`V7&;rDze9B`(SPZ-pT30Fe;27*-Z_;!DDv-u*CuUaE*XqGZ&zVt&xI zy-`(UpQ1$hTx8!PVEr!s39k(gu@Iq6ETDf50N2<8{qrr#@g)881pV`M{L|$#R0r*V zQ;o8grSRG%QNfZZyd(-Pi9$==a5rTW?Q97Tg^Qw*@P;r%EWxC@;Maa1U+z%btJOmT zdHVb^pNKjD-QGI^Q|x9KE-bHoaNXCSoY*>JZL-6C#K+{4*S3lnAbgVV2DMIkJbXyp zXDDvA6n8F(dzr-59*nO4VDve3MxRU?JuSqeu)gZSoTLR z2+N#6wh_4Jlva#1Uk^hV0ez20d~HdbQx|9186Em#bTE+7$p}WLCm4mEG73+XqI?BO zHu-Lue54Gy`1mu8E`zU4-I2m2^iu>ii5(n9yF6kEl+kJ}qtz2e3q6b`UX135UB1<| z(85G)#U0%O&IlD`3IVasCvB0NBJ%<2VA1Q#&6+X#BI~({M3Z~Qt8qrRDhloN>R0hI ztC`$OsOxFg(xRgA$pOfeGd2j^p$B;wtw| zH!fZO%j9b|yKQ)QjAnxXY`84&g~<}Xn~0caDzb_1H2#-nsTkSKCRrfe=BQDrb*qH5 TtK===3;A#nl{Y1&dh!1N)@1`6 literal 26926 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 literal 78762 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 diff --git a/docs/build/doctrees/cpl_discord.application.doctree b/docs/build/doctrees/cpl_discord.application.doctree index 64d0f8cc1e41bc4466efa7fe985bc993ef409485..c839d9d364e57d668f67b30d4b0d12ec0fc1bdee 100644 GIT binary patch literal 19424 zcmd^H3ydAtS@zoAr@gzj(-@0x?2+Tv*ED-Kv76FvD}!U3$T- z&tqQq&fUAav1ElvSCQ&;Oq@kB@%rYnOM4|M+awaa@1BZZ(^J(6pn3Pc(x@ zw{81z@=S8-iR42`jZcQw)hOtO4Ljkx(4*nFUNf})}44Ug?5YjboqE}tK-Q^gRau!zH*o>TcyBS)o*lc2iV}g(ifInK0 za4+D!AC>B11Z0n0-rZex_DKe74mk((JDt_MT}0}dCOQVKg~0R0^j`X%QW z(a14C80R>cb^`yu9sk$x|MviC=Qe?CU3Pco0mW#30H2DoRV_Wd)S8=YDx;j9tc+4E zhtt_AQL8KQd&FE0;z!J!5aMOIVMsz~I?yzIBF?p9U}4G%4-)jsco;esF7~ zzdJ|z2?)S0KI-~Sdp)O-QdujR$j6~9p)2IO#`ktCH%$0@C57Hg%G_7x6oH8_dAbl; z622%$&u?e2Gqw~b7D?6zAPfpU{*@i7Q4}`v>a&oOh=l>D)H@rCq=BH1zhVTf?U18> zL7Kw5g7{o!4A0$lo^*BuEc;=tqg!IsSOkz@dHKUt^BXl`!VK5n4%nv>e$O`eHvrpy zjFlD!Qo9$fs?j5~HT*I|znGB=;~ICvf~)zhD%5L@z;C%Li^hiu1vnzRE?c^xa7D#8 z659HCF+%+g?%ZZXcDUv?>?l7=)9%<%FTb&2x;~SBv93CroiJE)n|3JXyCO%wU$tSz zQ^MX5O0xnb%lCs=fRn?UpZ<~e-5SGDEE*>T`%a#{&3KPv+KWco#W;EPENroG z#)tW+7?Gs*2m&?dd?asB^7NFG<<}lDv`NHMah8wfXDNCFK5{j&%5LH3Y31&+U2S$I z*W2Erzy|?HC$x!*ws0v=V(b%gy*I1k!>xi9`=uNpQlq#*M`ws~-nkvk)4bc>;3B(U zs%CeM?}IYVgJS|}K21mn!4vOxUJ{&Nb3RR`{4*IxonIG01+bqK*q2d1Ql--xz3L7{ z6n=jY3KN8agnxp-s0RJ_`hk8(fQ~p5e2eYSa}j~%*q7Xh=0{lxZBSF-^MD`GfS0Xd zI#_UQNrtlHJ*NprPsQ)#gD{m1br-eIRzY%wP4ClzAUK&ru zRsUtss-50d|5>g23)(aD0haMQ)ss8V_qB_J(BGz0ALvVKvJT{G;N;D9>@jj&Qenbj z-aE2@Hk%#UwQB%yxj-HpLc7%r+Lr4le0OI9+aEN<8y&+77WX@fgPh) z(iW`>7gJT(No+VsE!YWKv%i!-hM$I$az)^w1%305f7as}b7R)UZXf9sSnLEFez@CU znF8jd5Fqfe9qGPchcm_}T3yc*4#|0q;*Fnhj#8X)c?2N-IGMm)xCJ*A=aXSNS3=pW zN%D#-q1AD6_Lkp$mxV;oqOqtA&EjL(z9P4i%qP3V9-z42draAc!+cy#n7OH}3A*+? zn3}iS1&Qb1|Av48WXC-hv5V#9P-UN{r71mkn9mfU&tRop1$(IkV{uD>Jc4jq(w9JV z=cR!z@ScqIXK0!^_9^_+BgT1+925QtsfF*Va1lw~g|SyKU#7IF3nSNKuTw(Ojp2I8 z$6d8TzvzY7Gc-6;H|Mp2z6&2Ec9g?&o_00TFCBfeZfHo=gy0U^^AQ<-nK*uweTn`N z3d)|PN2#ORN`*LUd^w7Pj%h_3exr5@d5^6ptt#^t1|obXXd)f*@EbX8J%czYq`Xpc zI7d}-SeXsdb0MbaJ69H2u)ha8WpKfM z7LV-b@TUM5`$e>DZ!aO^iPu;{Gu%3aa*2EuqK*Ftk|iwsKY%dOR|-=?j_C>D0#ZTAm`j_qnhYAoq}?rti)xd~PD9H0I6_LXNo8l~Rb+B<@8f|D|A$I zDis~`6}s7bMaj`nL3dhu>}gL;5qk)PfuKA{|A-pukX1-_e>y_c4i5mb?Zp!Y$8;)wIwX^4P29O`S$Msi@WjnrV+rFXn6?`x(ze#k{^xCvvMz<#= z-F_;i!Vq-R;q_0_pktT!LXk8Tp$?OLs^!{V(<~*drTG@eImGX|9bxv98d^^KPBwzh zM(D0MID;S~j9g2G%!?A47q*1Vb8^rx(LYC-!U=I-hRAZz+{i)8=W2~p#_8KnpEl;{ zpEE{!rlQ_V51!20KF-6S5@=UYf-(U_A`=_rc7FOJ1E(%X1p7QeEh$nxEF+NUKF40& z5`olaN>PUP<-d#ZgLcy7*IuDD=Ge=dbmbF7Cz%AE@`9_BE9f{@f&(_#IJ@f!AF1Ib z>bB$ywn(E9(qeIPc@Hh~Il0VlZn6w@eMxpDMwdNo*(raVx~9TFC_h6jV*kjV#bYrh zsj=sCZItt9*nXr$0ht*6o-yKIX}US~x|&scwj+v*P_sk zgI52A@tX;qVlh!@Yb>S(G8PxZuQD4xD)G@KFJr~nwu6B+UVq3ABb;Bm$VaFldm#=$#|&^y}#Y{Mj2Q%*qRp+M<6}TPc2|N?5c;S9eJDSY%}HOOfvvC)Au* zoZl(zPc-3Bo6ixBEzvZkG{U}|#A&b!ZAC~P-2{?BiG+-WIY_cZ!cBeTT|iXJ73M}o zCkbd)Ps+FAsEq7W1UwoDxYNJ%7GTgI zI|LQRr4OiSs{obWilBaSJD|R}Wl*af>6<+QXX0*EEl5-qJ zde9yr(y1!1mm5%5W;}mxlxdiea(&lOCv*EuD7@Q%s>;DWV@Uq9y!sHnWO}b8u2#H~ zRt(IhPo`t}3pZ#SqnSgr%ur){0QrvXr&L9egYUx%ZBgG!M3NQ6F-5Pw7PVwh&v~vD ziG7zybr{&=P;283lF5HkWhN zsdJ4bb~O_Bs%-RRs%gdSITIP_vshJTq`!}zL`GUXl{3;(*N!p?F%_1!mrh;dceY)G z1=q_;(A=f%)XuDgoN#MaLXIh0iLA9EHu``Pf&L;ixaRgl>DU|CN@TRmWSrdx$giK3 z5KC$+u|hu4otNo^%wCL&2I@d-t*9axDwHnS3UU=s;;9Ehk%H|h!HWZjx&TVmUj2+)1L`(xp$lEL)8#*O zDc)_(m8f+!3x&iCqZ;#(z~-~Mwk%JoMu_6{QtGFyo?c!;Up&?&@N9B^EC+qz#DKn+ zonb^>`yCfZuWp@-w2;+bVItYZKk)g_v;pUOPk}Qd>rE< z1n#mQr2E|Ba(XKi)M=su^^oOtaeXztfHS+qCs%BrDtyp!yfjhjLuIPn!OK3m3`(H> zDqg45Yd7@pHXR2IlWuj>uUKxBuEydv#GzIY#JH_z=YG6A!l&tGJT?&KI_fy>1T8ak zRkVW}hi$rWA7RS3$`;$RMT>dWjd8PE-7Uw8YCzhsKeRhR7@MBGW_!uy-F(Wiy!3UH zAGFu$syHqVb|c+sl#e#;Aj!y0M81i~(IO z!KvA9+?s#)yf~#jSNzem!!QU<2Ni73#+~3X0u=|i`E1aQi?fW1SrUFr>6g+J?8GR< zdq&Qi!JtRa6@MrV<_8Fe2!z75`Hlyi5=?rMq>CeDt}Slu`wM zsOv|>{;a7J+1+Mf;(jA~9l(L(AhK~XBO58Cq!F8IZsbZ4oh5CvmOVm*ZmweBxK;>f zp6>@T5mZ24dVZOTDF8rE6E$PESOaRm z;KXeYi%rJXGPI}}JIUnZKmp(BA_m}UgHOFC^)v(O$SF5JaJ3`Uw;Tl^!GhOR<_jW{{I;LWMT~f@9;x)ir)Iz8qn#nl|oe zc_u#YfeW+rb&99>LG^hK2&>nUX6+i^FJ}2D+Ej|PTSZJj)Afg$wwbB<#&C{iN;E!{` zImedZ;n-#R^B>gy@AT*2=+Eo;)8&&ilFl56uW^X6OU{KQF>FZ;SrXlG)$2IEN+IXn z@0@e$Vp5!|Og0H=Mv=PCs>*g%h z(w_ntyjW`H!6bo@pUGI$sbxAX=qOko*(#2sJJ~u*_z-oGzLZH zE?z{)E050^bV|+;f@Z8y6mB3$HV}LvRPpBTSTv3|jvF=gZk&-PQ*gKJ>=vf@#^cX7 zzVY}Ag=vbE{W4**RRQ@D1`XV&j4Hy8a7Ea?mzI9uJ_>{7hqD;%Wm6iH(@<2E2i|Oc nC=Cs@+6eXCmo^J0ywCL;Ubjg>zzPL&Q%#CqRiGzLSN;D09j-xc delta 1654 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 Gn*V=UIdPr< delta 3032 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 OQ2_C)3iYJ9n)`o(MA^Fl delta 3157 zcmbVOdu)?c6yNRo8f&}SwHsU8b?n)Vt)o1GE@~!hVKCib#TZ3E!5|3?AAkuVMq`3TWyDwfL-E|(@9S0=kJzOBZtp$k z_nq^*zjN;0caVJ9YZx}X)VyGq;aO4$B(pG2p{7oSX36^1(w2k*id+~T=*s|N&Ch;X z8Bw+=erk|~>9~XB5E!emkRW;ntx3;3IVc>inTy;RUEQ%nMps-)BqGrbab*fXco-Dw zp+Ok%Rlu;$Nlfr>=BI`RoD1wWpE0(Op>FyRT=Q4L&ka^MYZy(g!IQ?bBnm4`O=Jt~ zG}Re4qem2ii#+hH$!+MvfAk%54=nF%%hVJA`)JrpI5q%MkW<5q; z6();km6fX|`=^^wU+Yk}M2mUOB}hsa4A0u^80ApC9D@2<2-=6ioPC^p2B)+4WPK&r z%adJDXK}%HOAfgxUNL6z8_uKc7ci3Rh2Jef@;y{o@3Va*n+LYmhx+kA`gcJTMnB#7Q z)j8`0YscYv`z1$rmAZk{$m8_W4RA5%0dfHH>@mr1GDPovo z{2BWWLKdK*7v?)$<{-()pdMBWZH`9LD5eiNTsceBX?$ROPrySJWu$|zE~Za~rh{`P zaraoQuw?V`p+zX`c@{}YorBigav}-*o%t4+tgyfvxpr~{KFF=hPp6PWP9S7xx6|o; z5CLy|Axi}vbQb3%vtx775S=Pvy|Z|QI#-^YbMS}I3@hWqbWJb|&V^_hC-X3UKb^V{ zp{sbl;Rqe29|Lif)}Uxq46YlNqaq_m$F#JyjX4P`U8~Kna0?H6Seu@HMHW7w^ zP^KWVOhNHMJDtd)X(--U(k%%yWD_xfIM{v zQZebj|<&CEly{9LB@6#04EtyxaxXo9*`;#TAWJ z!8NXUV0)o&`4x1NO|fp4*g7C7>_`6B+#|)q)Bc;Hu}HK>+M+ziLko#b_t4`h#<3Zs z`jL%vLV^3uvIeYaQHUu*XQ;6&?rPEx1EuR7Mjb{k#H7-nEDjrND)$!LqBx8?I95<( z)d~^&8`D9y_Y#)v6>or)qOWh+?aEe{dMPX6L#|-jukE;;8BYv~I`gxou&t<)EaK6W zvo_@Drs7dcJBT=`(q78#eYc2SwLAySzB00kTSBsgt@gOs6O@bC19}9km4VqaS94Hs z(45A>3|UR}YW9za{?2td>Govt?Z(=aKUcf%2G~BwX1R_CYKuLFr_fxXE^QJ;QKA#- zT3$7~{ueZ5!x#|zm5)aF=xS;-iK81OrEb4=yxGj1a(g1SQHo;MZiBNW9W{5OENu^A zveIozcJ!pq_NK^5)7gH`|E+YkS8(i{&hZ`<2JHR`16R!fXe_TGhY{xXlG7ZKruR6; zog{aP2X=eOoj{zF8Gc}31_((`hjBb_~?5e7;Vn3weWWT`+&#Hz(xLoC0CZI}E zP^Bp-F}evVptZKCRQkuvBGu(k%gf$J&Hh5%JIcbBj_9F8>zEUI~RExZ$PEjvX0kz7z zC>6&!<43+|AdI(8#`l%&(T(rxm_^{N)#YnXYIP?Utcgln2BdI8>M4%n1CuIFL=t^c zK)Vdz#v=V>Jp-h+)_4ND`{_)0e9fGO+?An0o~$%Dt5*AHs57pm<6VYp^L+VgHM2`R zc@E7vU^afvw#$Y-X|vR)wCH8MXu-0vqiJnZdy^s?stN;7R>ux diff --git a/docs/build/doctrees/cpl_discord.container.doctree b/docs/build/doctrees/cpl_discord.container.doctree index a3f5ee12869218003c02a58452875d6f0e796b92..40bcda722fc3feecc6cbe3c18e0e4d877d9fb254 100644 GIT binary patch literal 171530 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 L%Y&87(i#7M@*bEq literal 161304 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ℑN5|_KSnk8 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 diff --git a/docs/build/doctrees/cpl_discord.doctree b/docs/build/doctrees/cpl_discord.doctree index a373b278156008c64d159d65d69deeaa714ff455..186d38f1a7da26ea00ab246654154bb293670308 100644 GIT binary patch literal 111150 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 YvC=N#40At535!b@8u2KC%@rp8KgM42UH||9 delta 435 zcmZ4Ygl)PwTLbIV9&Uz-Z0(MME}6y2`9&!TMX712MX7nosZ%o8W2aMA;T%dCBrSlBf~4hXYy*G8QK{}8L}BV8FJn%8PXa0 zrAdhy2s0)du!z+onNpgeouLa<2DKlg&95{m6|SR4Fa_d2U4;J(TI^zXZyvajC+_A zGEy^=ihDTo5_3~aDhpDJf#H~u>Q|hh2&9uTc#5~{uVrLsoc?$tqbnOQOiPpW01%3q AmjD0& diff --git a/docs/build/doctrees/cpl_discord.events.doctree b/docs/build/doctrees/cpl_discord.events.doctree index a06155489455682155b3bdbed0ee1c66742db9df..a1d4c8964b08de68cc37468e71b65e49fda88333 100644 GIT binary patch literal 319760 zcmd>{37B0)mG~1N3jq>#P#S0f;RTXr-vY8FfTAG?#!&-?PWMY*Upw8gyAw7++zmcg z8Wo)xM_h0pnL!1Y0Ug&FopC`yaCgRa+(z6+|N1|ts!r{7Zr%G{H|f^zliYsqo~l!) zPF0=rtGf5yIPaD_=FFXg|7$N9-_jZyxw@}^aByUFusJ^2UN|^9uyu2DWMcB>$)(Sm zyneFL-gT`1s`1gSV*|~}_8holpfxl+IMy7QykfGw7;m2#8XoUc@(aeB0~14|BU-#Q zuQk85;EKscYuEO?iJ^(%ru9|(pn)yJm#-fj8Xp)P8|-UtgNny{xAYG@tAA5-62(Aj zm!~wZMs>u^b5b|IXi{j~n#Y&fp1-9Zbf1`P?bY6Oy>4u4=k|Qn#*5p#3=fSoCokT* zp})PTe_~>6Xv5YCunpQ`=b^!IZ1;kJ;r{V)_z;5F}db!E(of{^Q3=y^n>zJ=^q+jYB&Red11AH?($> zok_jX+LQinFS=~&hRvgcTZf?y!s7coA8EU`P6Wk|mx^E9Iuy;*>IIv$4uf7g0{(v_ z{J#PJKN{NGS|-}rCvR^p2QB8=0_{cPrq+HE_dc}>TV#wzh51ctSZz8z;#Pg5BbTq= zuyy!Zm#>HJ8V3gh$7>EZC*a@y4FkQ>24n&(!S^*NVU8$a4wV3Rh!W=5C1{JaJ5i&j zbx}22UufBSA@um1_Pn8y!RFQ0aFZi3*=y|uFfhi3gfBPRyKLzn8k=mNEbVeeZ^XYw zM}#@Z8p;@Gi^=v$Qf_%QvDW;HCno#ReVz_IuA0>TRENW4d~CoT9>>ag=Ge6QeOs>&J&+dYsrg=By3}#+%w$ zDn=;^FA>81BO{{|{obb6 zlb2Yj_HWM<5|er;Ls#{*USbbOTXR{M)w=fFUYbbY$}Q#9b}8-@+MavWWWPU;z7lKR zx}ljKw!2=vd3c3r53J5x#+u{Jv29H;2fqkppC{{^J%b2V9x(pyvgaXi!Bv%l6~u5JEw5ld#f5p`#lLh!!Uu z6SU{6g}7aD>7X&&n%`cyaqIA~P_uOpn)A7>L(q&*oD2Fr2b*en(7@=(gdOfugoN?x zt`IBsZyM|0(y|@wp!516@>|in0u~9;k1MXc0hYWznBuS06UYK}lNtPN{Sj#K9oyjO z&0CrygD}CbzZxP&yRvj^FTdhNiy&=6*?*5Q+_gXC`JVB zK$wUcdN(>BCyygskgEaS)-$BGO4WtQ0nB9in2B>)ddx(Yld7Xg@VRw+TKPVuDNsipO|v5-bo1=BEuT0;A-DDwFFidYMkm&?+c46#&k zw6382jaiYCBwQI%6^ybzs(XL`)WAYSvwu7FwX^;dS7__S_(7xf+1BTr^@c1DVTEP+ z;&LoT=r^amw}^>wnTCm^IfmoTS`6DqWe!OhEm1C_i>qA}rY0iJ!@Op_AF?eZttdz{ zAGij)hBa7w?nsa=6jz~0PcaVvh#+TQVIb6E%hr*BiLF7FGfCj@)7E*a-^;3A+yY{tFDf6oS54LJM&#|pm+znzT67;N=th!5vlxrePVRNtWTJt@&H5rC)iE35#6sLpH?YzK?@U8U_+YLKh#VJ}s?APoG zO|O@NZfq}=eUsXOP%V|a4h?y40v*}6Iw_&0Zu>1$7T8|l z)9u1acMdEqAW=_%QtKwj^=(z{eF4kR<>~igyBrPuP1@XTz+Vh&r>&CyPIyw@;E1Qc zSd~91+LI{dKA3g3bOkfTIWc*B7p-mW!{TVi_81Chb8dA*_3hd?@uc#Dtq(cN3mFy= zyJgtorC5xY^zLr^A8F`*=<4#i5?#0i*L1Sc#jKgd02D0&dMrqLOsRz@AuyZYdZ4%! z%E37rqAgXAh)J4CbLclOCTX<3tvj*{fvb(1JUZ85BQrLBuqWMg3B>J_~=PzDbB*?p?AakzlJEBIig{C5Wi%MYv0)t1OY zLx1w5+|issLs%6|V+pWaPm#qtOW!2*D=1>-a7ryGMWB@km-t`mmbTwF1L9B1KLb>} z$Q}-IqP9PBSIom%!}3Vj*sM4Vi^0{q7>22n){6Gg`C~^c@5Pucy}OWBV@rJBaDn5_ za07(};@WN7>1^9r9&|E@2Fx!FYA@t#;+UVTsg*Sx*Rs_lhNEhVLuwb;Ml}I|MzZ>Q z*PxsD`mHR~S&~`4ctp;`I?2FBv36VA(K^CHb~_;Y(VZVp;lEA_ssp?CYt`=1s)?&WHGzf#)f&Z9 zz_x8XRS>~;D&&cyy2MEYD_*0+y)2$XM#bQ{Q$aHx&q0M-;5;#$evhF#l;=^MkxyW| z`YQAk_d>5!LwFz45(42J2;7UGMa_=`_&})=~2u+ujBSJVK3`HRwcS@WNSomu_ zJgUILKYCJbY>kf(U&G6_f?fjk%GlLT_5SGqgEa|z_xXe8zVD~3R>2GQyS@&u5Q1QPovK_F+% z3JT#kdI2}55}{lV_bEboB3^bzCBR!^fMQJ6sU)H^;&qJTN|%xC&B z55X>-M+o+4ypjhK@hae)A~p&*r@tH$f~EWibkm7qRJZh*$y2pzr)ky1RiK(cEP-l` z;vq=F+9yKr$RJn~ipFUyiZi?CMm+o6B$7u4%$@)h@?f?(Ha0pIW3nj9Gg%>;z_GO| z?kO&W&Z$OXS7`}BVtYFvvB%~erWDPV5VkK1!WsdWzZ%uscTRbPrl+F6_l9GTD4YySxb(j=vz%LXByzZRns5kaCM(R_vzrO*J@|4!d0K|NoD0sSQW!Y?i@zUF&G~%Vw1|kd^SNcyqFa4Njsj9s6vnZeBrT^xY z?hf2sUixV$#ZMUQfS%!{_kn12UV1l3NnVQmli;N@cg2Go47;7190`#A0Pa(O^uu`B z86aJ2u@Ny8%GszMG2!B8i0DO`qb@ANhB~4u4}nsnHREFrdEOYzS3&6&z~{1Fp-<{` zsQ7Xm4u^{U(ep8&*?~`p?lfQejy7W!DqZABxwA(CtzcDYR9a7wp8ATImBY^s?fB!* zYHUsE8%-cN!@czN!ga(>L*9$fLb-BB53uN-{?MnjJp964%8zGl&mST+W-X4xVnP^t zdHx~N>H|_VvC-Xgrx&v3U@_WC5Us#Z*YY)S{8ZMI$4>{?Y7&E7HKiN;bSq!~Bg9WJ z0H_E-8PM9a|qp_|2atHLStijoa z+#)q|-(kV9!x={`{|^S1b6lv|UAiF27x!qmC^aM!5I`jLfd&e+7MMN;uOB_ zEL`NLG&m4h?jKdu6K1)k=dDQ;fVy7UO(*5S{+$*;ZYSPCurpo>*e|XEqAs$4fT;Tc z9l?G|-a$8wHKMwuVgH_5wY{`z;wn&0AiqGhMzH}G5PX`Of&F3-$2ot=bKpWU8}au- z2Q!GDd0)ZE2)sfv#`c+4BM6xU)UQ@mPtgn3uSW9^))Io|H=yZt&sCSc8bP#Fa{RJa zBbZxVf^XEF(x=aL_1Wy+NZ|A+{^|m-7q3R3!ZKLB)`ELAg1$-M1uESG3C7UnXnwKX zN4HFES&v)Ps$ymiS-hzg2^dy^0%HMzp1Z? znVJ3U$6mPa*A-0Z3lEH2=H{wKBH?ubx0Y`=P);tVU;86>9bB|f4rTHSw}*LFZERNT zip7MidM7m`lF6~^0y@|jE79~{@nz_w4p-I!XKi{QT-XR=bZZRjgNsx7K)C7CZhC=; z4(?Na97YGpJ|GA{q5uJOcN*j80g6+>4O5EE`d0sJ9Kx>3*ry6NyQ zs#_XRoUc{8K&vLM0@Xy~6R6fG&H&q{9|#wn8b=e!lPcN~vK|P>%$$J|2tcCe4h0Ss zRmHdjibc;H8nFbLs9a%Bu@+2UjZR#uB?O%~4s1}DPAuck8k+V>KyeIv(9pZvWfVr~ z_Isx6l%cCZW;Eyttr=N`zjY^^qYJR&Y_GghUg4?($O2!J8ab`&-UrmeQ`-uXQU#eZY3cGlfC*`ixiC7G);(~iS1bU&aV8%JE3o#y>J$gHl#bD`*T*mXpXwTWqb0E!}} zAsa8Emggzu!>Fa(Oyl1@GgW08UqksM(|Euu-5sO3OyfQ%r6$w(9*9*}Eo1;Uu)DeWkKo3`aG!!3pT*10;Kph=Ib>F>G~Y1yh_g-Jz&DiRyqqECFN&Dd zmeKTbTtt4)mnlL7Z4mre(cqF0^%}lnBWNC=G(FGw!)%M>_*$Sg8&txFx{xu`#cj>vxlTA^j&_mY`yyNJ& z@9SG2sxvA&l*5>|oN~ZUIF%BK*SZckKBgVC3gGyZCzTak4*!XLN~1 z;wRLNmk=ZJz|A#fpED?*A7D!s#yqTAqN&LVf2s0uE2L-{1Q*uyK`9ecUpVpk}o zCb&2NM5}{~KY{rrxWN8NfQuQh@Bpd6{^cezA{9%qr^HW(7yr*VU%mBzTl*|XmBcKP zh7@L!F$3D5iNxDAVnUd;iO)S2LCw%vI&<{mIHQ9ut|5L+ZACBqQ1P`35Dy4hK9Vznpb4%7skz^Y(|O2CPFimb1%h?$)Il*V4I&(#&Q z-@ZeKj@l6e5V6pByqtN>2k!DWq1zf?hPma>*r^!DVnY0I5Hmo;((FC(x5(VDzILAZ znJ2!cHC_GXw&y0cJ?sNhF9y*HkNmx!uZeqLO4gM3z|`B>Y7)avHN`RB&M-?!(}h24 zE536Lc^6-At;eH8HQX;q;Hqjr$w#pdKFN2d=pJ|0$>`70Ax}^8JztdXKFK#vOzP4V z;fJjE(mx?Rx}`bRKQTIH|1S32qscSj$~ES(PVuc8EqjgfzocpH$fZyLo_=bt*wNYuHN%@a~CGBvwsW)1;5y=>@*id zVemS3nlD#kvK0O4*0~Q~C-+;$vd)UOD!*MlS{IvLjc{?MFh=UPiZhan0tXjRSa`S5 z`3gmt^+Y8cGid!2Nzqx#@x!F3l(Uj3uuQ#}8FS}x*7LxZBxhZTSAw&Os{m$-$TNVM zeo#W3m2y4MP3OB&-O`-(60O>kwQAxjP)*RCK($8kHk_M}grqgXSw(OiN319jL99AV z&!Vdc8X3BJEYuODtDD9~w{E$7eF4AU9Am5~7iFwMZjO*kkk;x|_7qow)r=c)>Yaev&Qu0WOh%tr0JluH*0sULTBITNqNI2 z{;R@R6$dr!eD9UIf|=&9E~`zPC-WSL!lBH&-Dv6k+Enp$k)yW8%*8)qF&?#D?D`|A z>3{6%^Dia(aOrDIAG4|!H$l;9dYd?V=GvMN?!8cyil|i6MYPgZ%7@WPw-N5wJTp~A zxZg$jB*Oi^SGqeua}n;hp_G~k_h%ql9pQc%q$I+{{z)L*8MlH#)PTLs&3)*K_>;qb zf%_ED{R&=ocJ%B?fSio`r>U;FM;$%8&{~8I-aR)SH?q>0znB|5*h@{+)RTd|&vfS^ zx7@}+s~?W74_j}WQ=jySrmU1-FYDbp-W;=T!aw`g!hd#PG`>tVT|xWq85G;P4jj;8JfLQe8*^;U`qW)`FVcpH z2Ljx}Ym8Vt0gDN_@j0CiF@>I-UoqZK7itevb*BT47N|QZ2GM`JHn@_t0gKr#2hj?w zd4#WtW6iRrJl6aiwwlB^R!wmXxO-q>6LFZAb2&G;rhNskNiF)^BTj>j4fd(tb!Kb! zg zk^|sUGJ(MBRNGUW4n0u~f}f%#1O$IP7^5x(SHIwr`t@zuHL}qXgD+>#9tZckAlxY4 zzGI4$1*3B%6mE&B$?{U+D_y|h=lKO@0&$}fAaVSe_sHgvZ+C*?mhui3Hyu%q#rO90 zo(?cRtX;ec7@zQ@++{uy^Y>C}p-{u6$Z-v4LluHAM z2&bvk4X@;P>%hR z0Od1ug@X(p`<$B*370If6>^>Y7xr%C>>)78>LgkhbVnO^rSoKWORM$)I%u!cu{_LQToeR>$2Lv zM5>dE(r@K!;v84jl;^m&v(+RVS2e|P+{!5ZZocMPj#?3=bKdy@(Onh1QyQhBcb4C- zPf8EE1Y)mQc~7x7bW1hLzC=q1%65IK6u#oo>fZ?KR%e z`b)CMU~GvMIMS`s!}eqV!nxe5R#!%BAE}`stYIB$7k~F%hKG>2}%7y%-9k-y5w?qb-NgQ;`@gC`h$7m25O!9%Wcr! zd&()2#)a$QEWKO|q7|@vFJBW!FJ(=6^s zk}k!s1zG_h=8<`eoJN_mZY~rN`=`+uGA??M-pisqyZ8FZM(eOECjGU7&>@KeI@FVx z>9Rbmc^!C(#G22+E5Q!MRlp8K{1ULklx~!WfNnZbi|Urfn%lK%H)++xRiK&x8i8t! zVmS`K;~=h!VNG2BmTTk}Cz~jnmzQP1O~iN%+*|>*ad1;TDRcSyfw5-)L=LU&ceov+mr0(U;G1KfE^4(?QDP*#x4^W+TX8Ig0rr)fz0vr`

      2UZFv>jDOSa-!T!6dEcDJoEx?V1^Quv4u@@z^LiHaxe-%{wabI zzsTu;qo3Eqr3xIq&y#XPk3=+vRdJcVows~eS1_xb-$kYPs-fhP5b->U_$$k~;p~sK zZR5!fcaGWgOYtKt#)GB@Bs`fkPk!%e_`4DfxpXY1p@|lXe}$sc!6*LwV1*tbg8Bz2 zlnAOci-^ZQrJ6DI1a-+??lNgIo4nJ_k4E_Gu1?o&K?CHIQD?VgrFmV)c0;A@B(eac&x%j0>=Ku z^Rbu^%pRsjzP0V)k3XTW%V(|EjbP%h2CBHx1GW0~B5G~bf4hymm2D&oYi|M33b6Ke zz9tUV%9`?E?FZOu5@TF7#eucE+j)_6o$wvk?oF;~Kf`NM3*8<_=r-^b?hV)&joAE_ zVn*b*{|evvp;1P+mrg^(Z(kiLpW(N$fn(|_o(QFNGlVYC6aaCLt+;w>n)}xnz#y76JRD#tx?{^7YnG6KxUy{M3~(`y@So+W{0R( z7SSo{jVaPo^g_o~L%j!U34waAoG#QW^{H)hBuUG$R&6&4Ncro zTm(gT7^fP`66(DX3MJGl%_1VRC#hykJ?ed}XRxZM_suAuM7?kEN_R(lF6w;~l;YMv^wg24M<7Ui~aKmqh8}QQ@ON4+K8^e z&9a1g?}7Ui>b)5+yN!BfgL6@@Wu8RnP!aW(7Z_42DdR2VWE>4NnYUqhsCN~GJ*lc@ zHtKyyxsA3=7V7=JC*@8i2@Hf)rBQD^MSfFX5wo87*{dDH+^;K`Hq>i*eU-DeDv4ch zi6=&3%9ArtFO4p_%!DXdeeXsBi}sOI6Zx3yE&SUujQxvUv6vke_4cxjWSL(Nh*m(o zeSA$E>XkL+q24puY7%2yHKn_#_hMd?X+*skjo7G{Vn#&07l~eUeLJJuOQ#`1y$43h zw?i*AYtd2N*uXJ$6<>yybTfo5&=eu+T~)SvPCM$grpIZXU2mB)2V!FQpNiP-Q%g&j zS(Lu3fJA|->RHirZXWa94*nz$_1=V6g87Q80IZ7WDFCbfs!7b35+=}1XO~gk(#-dD zTD8|})x=exnjkcRYK`Iy9H?2$SNcN-%-1+n7W2Ilx|?CX=KyBTI^MfwXk`5I^;@?L zCJy;xL0N}J%j?a-CgDDYdggrLAJuw32u8=O()z%N=v8APJs6%|hX z`ob;`Hce`OZJJIFcna0ZT>UcK!15BX*IMC-U7*9yV9KsYh&`KIVpSZ?u=B02=?Z4?0C5R2zA>hBXVG^` zg0c04-Tdr#+UC_+vgxnlw^)qFk`H3MoSMMi<7zr@Uv3TIGs&2yCN3$y1lp$q;?xg) zisxe~^Y;3P!14l6n!vKOkpRnIQC1Jbziz*U;b6~dRl#xt<&$9fXs>j4O2`GvN1~B7 zxUzP3!+_Ppk(;;cVo@ zHSq7IzBOAW;Fx#+@VXl?o0u5d-0Y)^D|X;x${Um~YLjNM>%x=r=A8I%6Ju2{Q72vz zQBRTQ)K|o;TYeU9$5PMK6|{dnJClu)0q6xIJ>0}Y(FlK&8;-nM8#o>~aa-J`bBb4C zF(KH#RK*p{8Rn{kSv0aS#fP46XRX2_(YJtT1rq)Nz9x=@%bM~?_`kB%B$6K0l!av9xTI;jx}f0HQR_2M40s_E5CuVKpVoxWH|0yOZ= z2ks#M18Z}(UB8iv=Dsd^!G1EfqV>#OnF`LGWleeRydPUl!ktx9924%Hvb0Gs^y^m^ z(!GG>ey{Bs!KOJ4FrQHY@Pls8d>!hK;2^jX@POFXTXJvKs@qV@e;xz$ALP+}Von%V8;1 ziD}m69Bwf&n{(N(yh(4%VG&u|a!PIb59D!qG0 zTA}&_8J3*80cRRAZD-PrF17aFEOB>kU)!xMH}Bm$y4;G}ZAQ`D2QrL=x5=he@F1G$ zz48q<@7+7P$m!Tz`!79Qs%)CR9tEV8 z<=jMO?*81I+GuePWSD*_=3p@%xAGpi(4I`1C%<{Xkv1^xZ$e)v60E`#bU^Yio-!l?weu%B=*gw>)kuX zX{K^%g$xi~ftzJ%r|c5APwkW)ftQ`_l!fo!kqyq>B(uzu2p!DcSk}9D$_osMyp-`4 zaxxB~E^aq$BB6V#s>X)q#?i4Ri_QBtPBh1uJ9gk*uVLj^+H_gFUK5^_JKH2;3#d-$3-?k{V~qgCgH!TDc$wo<9SVX5dU2cT2}I3X{(CR9(A4pnD&@2@_>V1&udiRvI`cHfCAQI{(8cHTARexN7L}6n=ul1%+^EN$( z!A<3+$7Z||n;zmS*jW%sL$I^p$AYx!L7V_|(@-UV0-aTdfC~K<&5k9lkaXRc%aL*w%H;)!W>;p(x0=Ls4ODK8rs1r4M zikqOUL`#T$j;lM^=TJWta7Hh;StX6&JZyAQ#=}OTn7hkin$iB$6rcPHRH;N_ zLTQx&oiF@L&(@IWJaKOA&e+yo6E8M%ha=DuHaJ#Q>Q>s{2%6?E*#-oYw4Xfg~o1OUItt*&4PVa7Qupm8f(mqNLs*1UJ#Dm(baTdUB zY?v-7zK+Fs8yow_eVFu4eeLS^qZ0kNZH<_ICPpakgrd_iY3div#WO)cZ_uvBPoPZN z)sQw3LD&aXD`1ZEg0ODyYRoy%T@-ywcrKp1Z5DE0p4=F828>=4qe< zK(zX<#-G6aa#sWUC$XzBiQ!Cz$<=b=_E>O_Jy+;B97*S%|c7n;GwnPkD)oxZiGF)=RjP9^<*J`RuLD zk%1;W#xpcNFgiBaC$#PpHo9V2FKv3Lqp|$$JMa$3`RI|5uxfi}?SQQIq}-V)5r1G+ zFeN8;KE;RV_3XBcttiuO-kzu)_*NXqKF(9waOuZ+&SBe=VK{fj$QYBZ zfNe1q9C1_3{wg>o|5}%xVKVk!pUF4=g>aCr-&PQEt>P;AtkE+-H1N;#*@0ocCT@O_ zHRa7O*Rs_l<`>nJ?#?f5UX#29ath~{m&W=pJ-_?|+Z=Y7$eMEJm-n$1+0N*^wVQod zu&eV+)Ntwf*bx_3!M3v?PrUB26FtZR#+9c1!P0zRl0)NJV@OAc6OOb`6bcjdcrQJYHFj$Sv0rzZaSU$_O2(D#xeyacD~SN`T-BB^ z0POZ|{L4J6nRG7i8N=72d~!Gb^O5tM62({zXYV@Zanr+VmE$P zFVzrep=WTDGrH}!z-{k@`_%sYOYyR^M-H#ndt{N3Q?^SV5wZ8`pAd^o%#Qu$Zbt!T z+c2V-w}(%r(|gLyFGM|+n>yJ_x&8bdc*FgR%CEF>vNqfw@TA8}9WK z`AL06%p&9`)pl(3d0j#K;aQqMux=e}#G99BMn|4pulSqX;NmaZ!tp?e3ocCW6o1BI z!cF;um`!;R3c1^n-PknW?;tr<(~xop2TLRO0?`UP1c&oAaXSREro0`3H^9 zA_!FeT~{#E9M&bbkL6f`b|Au>nRmM>$^U3m#ZwZF%^EWoKgD7^HoMsMM^e-O*wyF% zO7!7Uq?kTt^({UPMW+M8BXVp_!1Yg16aiP+bP?5jRw+OAz;*8)cjc)HTn|S1Byc^{ zE8QKSxxn=xD5WNFT?(Srf$L(BlE4-FCjne%+zN)f)xwg-m1E&2Lew+hJ_S*i;ALkJ z^+_6{;#5;cP4#r-j(P(|&&?TN-fC!g4HoagPHG~-2kwC-%GWNEp@CcO4CR@BqquBk89 zhKR56+?r~PSiA^}*&(pw-?9y2vE%DOv;uZ~7he;H9c4{<*zqp5n#7<~P3aUn{u^KS z^k7F^x^3)80TyD%Ps4Y99Fft-rIQ3<$H_?fk<5aAl0G&fOkKsrP+I3vW`PC(&PYcW zqU)AMi8Fe76Or>JV6~b&kVGN=(KD3kk31eY?_lDA^YKa^2*s-ax{078fNrsX?CapV zln{V!Izx);mga%`Xw~-Bs)?&WHNgr3)f&Zzz?Is^K=hU5ff!uH-`Rv>$=|3zF&o15 zw;FKL{pc%%UoL9(w04(pOrtL5Wa{xy5l8&S;5_WMW{mlvB**-uWP=MDFGM$O?g6#X!t1m&L?%GV5@$ z8j4QGY)9tVoY>$CpfF;C(f}gDS)OEr}Xg2eBIMS4{>p~ z=^=$+NDo(wE_0nWqmN4`45EhzMas7$88yEUJ&cVAQ&;g-Xh}CB(E?2X{IIudCDROX zR!n#z(!O8K;$fs+`rJE-0Y|kY@{Dj#q*uimL$FiI5}!cK!lIXA3ET z0Nr$671b@x65pUzd!trOTm`BL+7PJLD9*x>hOdlGvP2nt#c3k@u2~Zt(xE<) zcp_34mM4x515F$lYxYk>sUpg=R1xIoDES0itgk{(@h<3}YJ~B2Eg=Zw>%lyApJ+cZ zi!g!#RQn}nJRt`&dO|L1G)-vVGu7djt4KBA=*iL)3m>l({?rBX_{3PDx%AQ14-n)z zY)a+cuJbClISz|79aYXE>Gju_+T~3LkNl<{5LI~Oe|u7H;E;%=uqrP5wsVZH>k4Lr zle=_sSrtE{^rM=Po16TfHfD8BX*#0#0~X_P%6(%akaUiJ>FT!dP;Lt6^QM??X00#o z1AWs`BD-fd=8krPmWx1Hf|k-6B9!`?vTqnlb^8hOUe8)pq2)0spM;jnz0%!LoeM3O zqLJ$TO6{p2S{+*UfRu!m*gpwqIV+Y*NYu~+xJi@{<`dvPg)k4s%gzwyl?IBKkx|Mq z&8-;wM3+nhG}l&{6=SoGMRrWZ9^NEV5T)S`L$1uOq=D0g^_pk=vkzDD9r!Wtrg92x zi7d#u*^_c-h{U>&Rl(Glc+9(=BG0X_h*=^09MTRz`gH~E`(}8QofsJYN*){HdL@s3 z>8|9H+G6o2gCn5E+QrRSOh`ZvOpP(2qWjGDB6%;4K=G~ji?F-k*VHokhue~Ou`OY- z*xNz00{Xm*uZcsSvZg%r`DwPA#IRLOanR>3+NLJ*&~J&BU%IAzfUmh0_}q(r@dEo% z%(LvX+87?#*pq@d#Gd!TcYdsr(Z8ir2w~6LBIPsKGd2uNUB%^4TGs;F0__0ob7}T6 zry=NUoe)JZ|4cMXy=SgT6xgGl#Z33*anXHxiHq)wSAvU*s{lTVSSEmv{+dQylyVf% zP3Lh@-O^n2FiXZC8VYa(*uu; zBGn10C2LK@tAsywnULy2s}NG7Ult)Xx7+ESuGve+Oh;8Cq`JK6Af$tOKvW^5!=6-D zri4{-$-SMRT&XLV4NhK_kXn95k$gEJwT0X;^?BNu@!W+w$!R*GxDku-^Q!o;mJrS+ zq}r*y9}9V9iEdn871PbE`o%gZx|4v?7?cRP>**jWK{tn*($v^pVu3rI;qiv9CQ5>n$aQ?pb;PKO@A zO`=3dzX?$FZ?aU&imPuk$MHNC?Qj`aR@1)SA?$YeE#k z{C}&7KMdwePmYo(P)I$CneNLYq;CL^ktavrh*yG;imL!aidZJVkp7xRgp_g=(CtQS zAiA>F!Vu%k1i zQobWX8dIUCxC?r!8X^6FmJo#W9blfRKSL^&uSiHOA(xPvCQJ`JGKy4B`z%>2c3Ug_ zsmp{^7g~jo8vU{eskz-Iq`GD=9WxzOjgac{rh}0FR1b(Mg!I>*lpA9tLN2VzpOz!x zf_T5>4|N5z!O5!uB3`0n@-;&NYAvIsRy6s=0 z8%IcEx|vnK_#XIBCjq4~C=t>FL0KZC(i$SD`Y+|IVNliWGo*c-2&rX~SOidokd_qXfgpLew_^GCiPe*kH(}Pbf&#z1i zEZJ;_F2koZwxak{ed#Xqw`q&TH)*+L-dMYMGZqu#)01lrKoO=i+~cRaQ%U-;q;~*y zzPy1#9QxC3?OkkZSp;_{h*m(XpXO`g5UZ>y53%0IR+AXoswtfz)*tXSPX}Vf_`*i4 z6a^w;{T_Vh2Rj-4TRP1UVtv0T-}TYm)RK~N(Rt!~@=*1c>!6DcmmvX7@a|O2Hef!8 zR&dY*`IC8b-<7mG1!@5N*qJYyx~z4~ibazJ;#*g{UzBLa z0fLxzX5}wF0!7yhDm|0ZKESV_MA`?C_7H*9$5b1peji}L5$?KIbsu1Fluzyh?CX{8 z4(!~0fIXoUKQ*?u` z<~~WehPFl)@qdaZ zZl&0C0MA{<5dZ>8za{MTCDon7Jl8 zB~ieWdP*}Ln1@dP52}~w^pAKY(5biz_@sz#0zT=laD+}NaRJ?QdKc9#jZPOnmQ>pn zuY_viDo{-zkwCRZ@g8tG9-UfiO$~HvN!u8ceFZP#K?a?c{kE0_wJ~a1_LE*xG678M zRNGS=2>nuxmF}k{1S`F(16G>#lU{~vPquS@(#yKvC8S32DgQ+zqeC?~D)ynAY>0NI zAQF4x+}ftz)~28IT1y4y(on4ufKc`)y{tCV3PE*wNtWq|a{Ng@>816a4)Xa#?c!C) z=VhK$R^EeEaS6MfZd|A7N7qs0>r4saTS7n`sc4{*{i zcWK`wRl_e_owk+e#3ey7oy@9SoCigxLq7H=y^PI?XkHD45z&+e5b@3`r9MnY4=#P) zP=t*daSZG~WiI)rsa! zASH<=_D_OnPW4ZE8E5J03I{0`_Bl5r62klt+@}!c%kZ)@glT@#OSY_(Ug~vGgG*ZN z46|f^(#x`-zg}7_MilC;pVVB9<(M}*tSc)!Jf>{r$>Bj|>&qSZsPb2oLud^M_ka%}FLIkeig_n^`w z&cZd$Lzi?0SuKC`r`zNM*(S4KYhMtp056Z^YvSOgtSJv(p2Sv@7{aP4ox;lt_`0VD zUSe=y!%GU`5MG`qy3BR!j6N=%QV3q|Da!W{yE>Mf^wW%U$pvdzwgnrdO55$RGj|2W z>2T$ahpYLTI4_ko<$39g*=iDAs+!WNm%g5_`;qt3Nzr8$yi^*dqL-H6uFfV0Gy5$& z&jD|O|2c1yDEtcL7~dbX2%LH63fr4up~?@OW#96q5!M) z0_^s2qrKCXYbM+CH#a9*ql1%8J4Y*ec7jamE8uw&q~C{Ef>w*GfL4nLJfPKn#6=*T z@@3FXV}z(~X^{S1t=jjrYT_zTO~AE4wMKCwE)481*vXJ9&d}Lkursk**2!Ze#tc5k z_d!Qb9uJLd8^TvIr+>T-MWd&VrD)0T*43)Gr}!0gNHv1~b1fkV`n_O}y005KmjB5* z*>39v+LLX?+!Gxd3b+j2sNTMF%1%54N@OC2P;Sl06NJ-r?f28HmJ zGX=K-TL>E9oFq2=QI6902@0DImVU%h?(oQqkd}E;Za9#LkgzI_9N8IgudZOmI<)RU@;z0-z)G?Qa199tJRtktvI9})5@&R#X(SXIVtUM8CG8lD9#xQX|C?vruM+S#m|uS zi*jeXU`D|-%BjkO>(pqXfZPdS*i`p43`%dvx~wCK@`FApxC1lv_o&|2hR9;*cY0Fp z_)jd{SQSis35H%zkx$oG#LWGEMrTJ5@6Z*rKQ$9W;lNb`j=pC&ROGxLe&H_04{6iH zLj-OyHfAjz#9~5{eh5FLM9APm$i*Zf2c5XX$K~=CiZ|w~KiziyiftDQB7X*=6>#}q z_?kEnDQn6Lv-fDo8J@;?)@W5taX{pJ%d#e*(1(5LYuB8I^0n7Ok^9kUU)h0bnq_}Z z4%dDgnNx&@$owEs(GNs2`nhxlA!Pnz;TE3Rt%j=!hhCN(8yu#t;w?~GS0dE{Z2%DR zu<`{?pYfeFlc0#l--ZUL_c{a;1>C1+Fw;r6q?Dt`XMo>H6uAzs1d0?_0q+y>O2GU4 zg^N%mr5T``PQaqNrBP%{t2U%n6IX$10!{>~HHzKAw(UNM;37X7Cx7VFKJ^U8C{YbYT5>d(uA(1S>GVvmhLO6&To`GzDut2eRt+O{bzbUZ`lAAj)P+q4 zjC{9tcBNrfPV>*6l($^}ZNI&hgfs0cA#%W~xP04AC2rRh%veXR0wXP#qIjE!k+y&v zLVi|TE}m&{r+bani_c&&DHy3el$6yl(tP7;^|cbMxcn!km06*S+o0&WA)YZK!N>=o zG=h=R1|s-*tI~h!VdT#}OPSmu?||ZXyRmh@_;R9uY*TY$vRwm4;@WS+NQ%%9M&2g6&7H(D`nhxlAsD$OQobGNcrY?H zI80r|(NJ1fBGm$IV8h5&$pvouV5BvfP3a^k;_+q5H^X?m^jsu~0`Su_nCYZE82MeO zUc$)l;gx`q;wm71B3=oIpTBSsjHEOJbkhk~RJSyY{DoHSms&M(6{sfQM4(!uxETi= z40&cmcYdJCoLfuv&?VNfv zrY{GL@GQ1n(sWS96OMKVKwkK>!jtlbO`I}fRa_!%=Lmhef|=&9E?j(UmID#2%e>po z8P;f1#d8J@D;hHw7h^FVR$T1*BdO_s?CNtxi9TEo6Vu16vc*y;Ivu7Rkz;G3iR+;# zqKUHUB6>MSDIZ2J-9Fm5)iYC7ns_71Cu!pIz0%zQnoARJfKqDG#5RbUT%)a`BJnD- z=G9wWD~NKMqFjCnc0W$s+$mdm}f zbXo7#@#dIys1g6{TMPf$fe$o(SarU(Ocq1@geT>W`UI80s$jZH9B8bk$bIz{G1I-D zirMkO2XzJQyJt{9>w0a#4fpT{i=5uQPu1V6O4HRNTUtjtcwyi8(`Xh)|pon`MBj;Wke(pdjIEpB1$_t|p zVyj7vSJf1UBG!0)>2kjAS`4xB>q~LHw+SLeWk?X0f`WeVkc-$|EnURAM3 zx->2h%84B_?}A^Gi^@OT(fDN6sI2y@MRSYXr~lXUHE|v)Ys&M`&1^LZ4^>TZO{Z;Y z0$qLNb{FxbYs%;HHP`abz39L#_M->^*u%D*cU~vD%bOQo2r;aGz^1qgJ_L7`MycqX z<+rOR|6^0R5iafkU++9|DsXrL-0tB*F^#on^tvpP!GFf));m{AqJWF_(rWr64`qKC zTuh?ukKmO++2ShT#UhRlc(ETp5z3|<7j)A}e^j?L%KofY?Q>c+aTTa0@K>N(qj)sf zwtWm_?2&V|GGAB@;4{v#Q7m$()}$Gj#biNjq_+&jJ`O5kA$Bo36s6cG$Wm++OknI9 zmG%@5KsQw5*k9EWf@43>0moKvx;>+p?H6pa1lfvv^B`N_?viYycKdx(9r%+9)ljyU zqFM4HXm}T3_Bmd8xip*f0i1nuRtIUGtrd5Gw&{U#pbe)FR|}r6ikc3hz1uQ(DC7k? z`*>3B%AN>xuquw~*cs~rUBL`=To-C5-ps1zU-Gv;3Y2qicjLc?wpTo{<*>G~b#W9H z<6-S3o>!8h!RM|KrP?u#%$i&51VyLgGk#lu>`i3*G$@P6wrsr!W_D59Pd(Yb z*t3%f`18)mJ{{$gWP6=gx;s#F$@bqsDSmQk@Afk1WSbyboortOQj%Za)z(JA>P63@pPTP)fIHocPO|;oGZfEsqw{!zw()O${ZI#GQ)O z+tnAzh`}qlAtzXi#>o%*}11 zjoGomD|H3!kIk&0)^pK-XfJjLDXp~r$L>P=32lz}($6il#+1d!v6zr)AHokKp`!Ol zK1s-dChqVb$(OfK`{2cWc*@CpW9I{GyI4ASABa}q*FWHE;^?5PDKBV#n5`x;LRC{7 zIym35tO*x1AEd8cH<`a&t|2t5c=JOoLa0x{$_`XhD@zG+Ww#kN#b3y< zi2{(*bC&6rJXm-xc$$QT=i!xrh2kn8av~xLh@8JX5iF#%0d&);R8+S#EL@{iyF{xd zt^(BrS_o8Y6u$;m)y7|rPQyYBz2dYm@r%=PfUl>hFbfwVBx7)4@;P`}*X8TSnwv+r z!COHsJgE|$k542k=*mphTCL3lNP~=?Cz`h6mMoiIM4#a*POX z1NC&D4v_d7?d(d!tgPh?o|LyZ$B)KhRa^#bCkwC870g&ic5!0jdHT?$D7wxUa0AAF z)Rv3q6&zADRxjR%#dt_jgKj;#NZH6Yu2vr_(TdA5Hqg~>G!T?Nb8+LN`(*EHLu4)7hj~)&_)owL ztSXHg>nUTP3asxzMQXpy3ix8 z{Wf}}2o2HWcF}F_B$m<7r85Yj$G?e`ZwERadW;PYQ&+JUl-89`eTVLV>?06vKV?9(%t>7+am`B|u5g2>O|l>m|ADxiHLUI}QQ zzi<(Vq%;F`(+OBqw={_SnpW+8t(v$BR11RpvXGa_7p#W{-{PGzpo_(iTn{5qwZt) ziYt~JUlfg&AX1%oFwW`rqxzS7hN{XPH=%rzI}UlJy8||t zJ2s(|n%r?5M5}Yhr-78@j@Um5?s&&kN7mX|y1K$a`hgYUj+9l==gNJ>fVeD1Eu zU(`m4M+w}DYz$ibCl(XZ#~tfo{vWVyWl7cdK(qppe3-9^Ba*VFyuf>>x+=~Crh6IDmTK#>%rH%kz5rxKmnEamIY@Tlz)82h4Yb> zS|pEez^2zbtxKW+qV+;+dM6K(zZo1(Lh{@2N3d}j;2rRihLr@$TO*G79vL~%pmg8W3yYg4E9gd zJFhE66Og=C#XZG6&>__*`A4;cpya>ofRg8(*Okq#a9-CEa5=eAed>=n8YL=X1mPdf zX`Qv=qb{IweO_0Wn9a(yR;A~4t%mDGz%;;l?BDc9IWE`db+zu(!OQcwI##)Ibi zRIc_=Qa199tJT3JT5(BwOe?cK7e5A9Nk?`iTMv5F6E{B;6eVshZ6HFQpDKTxdTxHQ zXQ`^({2Y`|a`W@N(%pfZ%gxV1BW-YH?PDy=ivXSkqSd+i@gOC+IrdM2n@{<9U2Bw9 zI+0?@MHY-hg@a+YbCV;X^Jl_+3Z0*Tmz|+=>%6X1vYegk5o5NBY4J1koIkJ2*~88~ zM7bV7r$!Sn;?C>#2i6WsZ)|98935+>UJtOWw}0b=^B!DDN7W;)JMh~Bu2s&V?Uc2y zKi`w`hIsrr9IPsh((5TQSzi&eH24Xh9bjzJ6-@ncUd!LRHg5!;9N={8)UH&37VGc} zcddS>HcfS)Zp>P|1B(fP`r|qpaiR_0TXGjuiL2%N190{8-!vd^Aq&h`f4c3yhix~D zwmt%)72x_8_?kF$DQn6@mk+VkB%*ZH6bD_>s{|78lD>A$`7^%uTKKZYn+7m+umL*- zcnH{k4Bz>2Oh!MK&M*YnKP1X`-;1$_T2a!@I#1j|zN-FmZM)YAa_Ohp-JPe|ChP&C z6h;i{@BoxAGUeC<1etDYgct#UtCbk*|P6>X2r^G3LMHaLD) za$kEd`t50;tlq*|VOD#9$l^P!GD3D1dFf7@JPYgYMUY-%03x9bO6OF0KNy zEh6)PZ2K`7L3c{1K{t&WqPnG_`%ATI+qG)qDo{;exInc=@gQXNB`4Em=oF{!{K<3^ z^<`mq#LNtK$Jh5JPNt8K_iu{wc9cn+Nf$B+&|a;op5paj{c42$7A+wN`|mp->`Tjj z4oZNFs-H}iD$**x7yV5Ten>Hd z!UVs659JX2mTeXx$S0NNQxCrvpXe?nRpIxeP(BI25AsTP$6_x0J^)Jblg3Q={a6sK z4!;+Hl!V{dKMD9fV-_YzyRnzK>5W+Tsc@fS-MissXRLdbI9@7d6^?S7X~!Pm25p~S zI+~mnPNpfMP>*C&lPHJhNcIX_7pq8k-GnIG;n(65Ak^aD9T-txrutMHAPZ5i^Q7EC zoLEq?sx+dmr^x2|ikPX}Pmk=CeT}YQN?(32+(aD5$c58JBH@++i(X{L9xavjNA5!T zeBJK&qRlOo#%9Iyu$YiPKc;lZ2n}6mx2G0T!%E!aLFNVOCTgMn+il+K+2*nAZW2T* zu)DYOHF4}t)|AKY?qsV;j7ZfKhutl(jcb;EeMnY+?;7;eeEqfP-2wEYSE^5GI%QvK ziwm`lnkk$@)cgtf&W{>0`nq(cAk_S-NcnbDq9zu4scmeWn7WFKptKGH$^u&t)fiommOw_gdd}PqAl-3!kWRK- zvO0BgHhHjFcBm!cB0Hmf`$JQX?2Hx_$(<#rXUSE8|ptDnD0{U_f;_8Gd!uRtOTp#@?bj|xL8*(lO5Vce@n9+i$dxO z5^jt*s?8VADL4>lOka#(F&+pMuQ?IZk>&N0LB+mu^}4=9FD}=K>1CGc;t5c6I)*D* zDb1iJHuzj9j@Y0yg9wA3s2VW!Z15J(R3<^ldy(xwpnQ@I-sY9=4&Yoi`1eqXALZLo zICC)eJs?`04Za$rBpby3NwC2gy#hk+ggwvAlf(=E1@2S4@HKeZ883XAVHWG4X zX~~@{PMf?|QPFNyvd*S7@}j z71|iLSct{!fHd+@ws|a}ItWB7(8%R{O&pDsHRaLBGuUbpLsvDW8#Hn?U;p&cNDK{Z z8c6{h(#R)>u5(>EqpwS+6rzy_M9R10Adg1I#)+w`_!6|FJCSUGMgS;zM9#XWpWvTW z6QhXQzoKUSFlsM--7Sd%Ak=f3>8m_=`BHEXd8lwZUI}<9t^z_Rf|-C2`U@JtOG-vS zH=U_PbxXs`*J{;Xr&SYIfog(f1gbTP6*%sWg$R##CAVW(CiCi9k<(tjzBxEFQSptpLUN9fOmNIP)%Fx`hc2l`G2fyk1jSs~3B@dZ z<*j6rXfMey%U*fw-R}}iqxqD+G1S$eBEO`jnq=pEXnYsgrFiA7P)!w>O)g0#?v=M* zoAp|tm3Nq>>4X@HL^YdVPK*R_vVA(r3uq}*U25hr0)TqbU37GKpB%uEM%S!MD$ za?hD4ugJdN%{G3kjaHpg8iNN$^uUJEFKkS1_fozxCX`+R35hI15LK zw>~ei7^NIWaw!NtcUR|EX`{p=298e}gBGvEVnRN7Eh{&XAvcDC^>(Yg&pE6~e3`I$s-`%`(`S3dcn@EY ztG{=fc_d%|j^VF|fs&Q{RT`+Gzn0&wp52el`bM~T8aP@vaI*9_q)@!oqojktY4-O~!`Ubobd|g}x5L*Q20mSx$FyiZ! zN`r2iFhq4r^Yu}!+7_*vxC&Gg+$~V8QG6Wo`ShD|g`+LU_$f};OAeG$_?E@i1x;qy z`k6rTqvwRTj16rQ@5mi!^^c4+;iiGHX5yu}SV;81uqtHEdQ}Kqh(Z#?y+dVsiswRq zRfF%((Gmi_@7W1_KaD>^tc*dnP^OR={#5p{e@4;;@}@QI|Cq9q5@~HR!39&mnvqMS z->sBhw^F!E7ij(3WXYx2KCLbQ{KQ)X(=q@zl1+4&zUj+yrhibf(CL8t|D?xI6}bOl zPs)w{5@8uu#i1-a6@QaWn@2=@j?p9Ye>4$?SE=3$8&q`)UxTJ;yD8n?bBC+tH%qkS2t-Uv6HyfJgrd{2=y6qhhIR_R4aL$5P?1bL}V2J1E2vQJ6kz`(b_!{|K8;Qs}Y4!03T0XfF!vGj&Q{C>4DkXU`q9>ZYOA)8*(F^!BX z<845Yp=da88xT)VPK)X48Y%#{UcvyUbNXCc?7-U&E4=9L?+Me;KhKm*?2WUBW;EG$ly@>_tUJ8};-)=*n%Qlpyz1M+gh24pl^EGj_SJsp_=HJLx zlSnI6Qykj6IAUWH1L+q&__w*{eJ`&~E%y6p+U5#paQ4*?7`xcp6%=9OcEvkIU%K;S zM(3AKPPAQdRiu38uyt$*nYxPOp|tLX+yxo~K=6q*)>eH6`>$!{70Jkn%Dcm4q!b~O zC}3JWNtzzcL&!gZ>Lo({Fdr_dD5Q8(1n)3e7dui5Lo%ZX~fF133aftCFx>i)0$}{X-1ox zSlKGTpVe1&>jf48R@Nm~#>z(Be5`C_f*e#U;$@nqFKb|BUFdXR<Ts)Ciz^`yM9 z8vl71tcpV$cB*xsI9Jyfj4V#=_x_G;2T zz{=(hSIfZ?Ex9x?rlpB8isPW@j$>S7U&6{8p;*Go(l{cLJ3%!hjO4nFm7n98%%oI# zugG`_$|te%cCU1I^ygyb7eOgCvGUCzS{*B24N?*-WB)wjSlPJER4=^{DxpJgb1z}# zx50f1D_?_`ot;jPVP)Cue5`DlDH&i?#>zQ`#+aCt^A>wD6a}u8u<|MjlG4@9bgcYw zJB$v_@%aIJgVX11=APBFR&Pmm4TeXfm`^WK6ASR@#Xm|&-Ay19r=O=|RN;n-L*brp9(Y2A&z3p7TIFRvS!ArT6;DM(eOECjHfm7%qtd!_~8;>ES%SJPJ-L`SKRL5`0-)1rS%nSpmdN z=|;&G=%(}2sBUS#e7#of2CbU73RDxkCs3_XJO*r=%a^4)bi|j9M`iJ40ZbXbd>&Bk z%wx-2hDOFOUoU^@EJm5JsLaF5SkxRT}mgQrr>EZ8r_4@NHmyXoJGgs}68_4{mF`w{U3r)HGgU!cD_;*v^nk^GUqa*#p>uwl?XDKI!HaGj|;))&k`1RwJcWT3Caq>$% zDR&-AggRJNnv>U4WJ7&L(u3HJxmM{4+JBtQNlMAE2+;W<{FFp7OWAF1&~lYFc09!5 zf)>+J#WpNPLv+GR?WgE7*7|ia;W^u?Lt8Y|d%?^U9OiyGYZ(@{ZwJu|u>FmEO&n~O zHRZwfce2$aW)Rhs?!)$v@Y+l(Y{y{BhV2v*BW(YW=u3CD&FK8nsg7X#i$wYEqX|7` zte69hcP$4SCNk}udxh7Um27J=Eay%i8ROCwu=bC9i)xzimxw{rl|9ri6!ao^_kX8>|2Y#Q6W}_nh{xhgUzYFX1+OpCg-*vl-skifsFa9xDDDi}CjBf~QEdSCjV4 z9j=xSmuSf$ub7r5-YD*cqSN7U=Ie`0&(Id#Z=qP)qLaoEG2JIrL&BJ@+s~Qo{y29n zHHlr`b0!C%d~%EKQC{ip=+E7v+Yd^qxkYz4h?)evtzyOYZjggFuii2|Gyw0o-!5*r zs()-`a(l5Da;ah=NXaca?4QII-SoY_$hgf^FTD_VqeF0WFFj{+GTf&&<#xr(&Nk&@ z&zZ<(=kLc^W=aMaW*aW^^+h>_#&Exs^A>wD6j3B@ zV#6_S(29u3+d$iw%D3kLb)&<{>312_a!!A`wskH+N+`um*1{-V`A%s5iTANj?~@sv%moz zd(>(z!MJpssrO%|?^Rw_bnpm;7a}pgNDb&PF)!V0AyL@S(2;=Y;k?b3Cxg?<&6Z2? zN^G`>t6)b%q#D7Fh95Q3V_?J^KsSwOqPnFwTh?pUuGFfDt3Wk@JOkAl#U0>~xsO^& zcZlz^WWLJFcvRLFi`X+@wpj37eDqPPvHq(rUk~r+AHXAx@MP8CVC?ZK6pub$1>$qG zIP9nl4kor$YAeuFj6#o9+fW(S5@JK;xK1`yPT(J-0t4vwWAo)!%JJ;8Q&Aar6UDTk z{n05qix|@*li@@~*Nj}+f7PYRm(Cp=?827G6C!1nZkEK9gKd(t;yawNyJ3SQ(iG=0 zC(}daTO<2Likps2k=yh*sIn>YE>9{eUc;(5FlQ5hzt2!s{5?TX7I(^;&F#+LqThDZActzTF`Eg+g} z4v+WQ%@y(T`P-T!6Fcx$#L?(7u=S-)l(iLcf+yw97zyTxRi(Eg>M63Sz9MG9@RLeA z5IIs;(Ej2~j&nWTs#en3AY(etTFIJJmO;5 zLv=Cnu^QW0SfFGmywQKV?H^^^&tlnUfoO%Th3om6I4mn`%EPiRW2;FFbJY|F%kIzE z+Qc$?lOc7xYwo|}wX20{m(q4a>735)Jz!{J?>$feiF*&XimrBN%naWsovvu_VN;}h zI}W2m_ln!b2A-*_cnp-*tysE1GXSwYDs!pTly)}Gydp|FT)A+VL6p*15(VO^Crs0C zc{KI`s9w_8uj7@VvEnK~o+6S8kf*x6oI1H0jQA_AG?1f}j2F*pn)7SYZN5Vo%H`u|~>e zv8EO6PfSmgs5PlWV~wyg6R$+S>H?8n9WAvQlhrB$mBn|hMV>ox#-YC7O%+X(95QSA ztDMXp5N*wLu-T>OxT7gAXgl7M^2T8Nz&cjN5e7RYdaSNsmN>ghXcNE6p71tG2`Wmt zk?aN9qVdFuqqL?siu17;kJ7sP3T8OSq%QHTtKCydwBypcn06)-D0-pjbac6_%D5+1 z`&1~BSgkaOh_ntEjaRxmx^r3WRw$(=t9=28R%f*>kdmwx`zOI_XUozFVGTL~H=h!*y#?-5 z#C8ZTJ3E9v;PV@?DrPdf&+ox3-mht5{pi!c7kKU3&^gz0f#)t$3jn<9yLHo++ zA|0=0mJ!@Ll;3DGWf9!FJt=n{NuV99Dot?fDe~|26)_8mpNQJw%6oMM?FVLlY#w*% zfaLBMoe3ydNqp-r``^)aiw7m#vTtl&d>f0Ii8S}OZ2MVa_rD-of#&XVuAKR41iNFA zeI9xv_y~>MGs=rFAdfF3=FbbC0R8_-dv*o9AMYal8wSBjdTMKWadtz)$t`X?ih_ z?XCyMlx+7(yb^3zTm=AC#90AA^_Ns)yN9V}fo?kAjOvzVyPLIYBU&|a6{sdSO`uw% z*b9_sp9pbi8QT?cWt{G!cs5na;=2M~GJN-JsIdayZEhYdhGLi(%c+2QML7xD+qp_T z#r4pM)u8XST0%hIb2@>(D=I@@VGoIZPp^u8jjRiRO^e!Jna&_n>r)>Cn&RY6iloP)9T}aZ zD`@{>7N!iGrw6$DAZ9k9;DWu!jV?B6)5fD9F1j$?Qf$OxW+J-2o^3yiC$9m~3h4S} zd`;XzWLZ<*tZ*w^O#)r3rc6D$emAe39sStxj{9zP?*-vqI*5$Xk&Uh?hDCIJyXb0n zg3a)a(%FsB_0~xF47!dDJX2S3ER@#mu)aWZ0Kh(_-h!=J_Fv)rEmEK3mE(u0PwDYx z5{1B2PqU`C^APtBpn8e8e~4ECaf_>fBa7%Q;K;E^8QRqD`eOWK*vFBR_91&F;SUTighZL|b-y((j58UZ(vwVLH1YtwDz z$ojx|i>3otpQ=Ym6KlSbp^A>>0LnGSIy@r`>HDDCS*_1W{oFg z9F{g+Qe1|`cvyP>xDS)wsjprAHk9bcC5$osOtet+LDA{BwdxFgKOB90pcsTQi9}1A zh;ZyU)rv42>-HJvYdw2aCDAWJ`6P*ciC4Ni%5zEd3!s#mB>L4LTAf6111U+Ov40XI zdKN9E5bK~Ha8oNfDYECczW@6{k1=Y~zb=Bs|_)HXlFsXpY zm&q&?XL5XbL#2vl8CJeW`HwbK);{-VJSlfdNdP3QDvg!vDf0FDikL;kPh4%R{1IJ2 zd+L6J+j$tu8c=y}woFM^a_fL0?;oEPbRdxU+6@GLuB{gjRJcIESiblf7Bdsc@h+?6 z>`bG}9VaXuoCBg2$noBMO&mFvHRX}xUbdRVz*kL~dUAXMuiYa_jxn0C$uY&8NRInN zS6B9p(g}>n@t>e>E_Cw_J;w%~sjK)Pl-9)vTtwdhjh9!Ou2j4}>nCNAiQI+rU%j)> zBnnZZo<&V(=7HhO;GYr?Mn6O#bvv9BgoeU1fw`s(2aM`PcQ8JE! zl_Zeg+@sm0(}hY4GxO6N?Mb>&W_MSZF`)A{j&!AT&sFy7EUO(Ar9d^Z}UrKucysvg_s5w4)1>CT$ zeJNrSYwBSjt92K>{MT9S3|GA{Z@2~Pr9i1xH6BBy<`TT%7%ILn!qLtzyFsnCU-YXa z`bczH@7D3=m~{vK*|!${vje~K_X2bfNY1pGvIy$Mo|HQ&Bvx^(Dos%9DRO0fMbd-E z4kymj6|_G-H3lz6znEzQQD#RL`;g3+@&8*HKt-meDk zZHlDPs%~?z-a@*K>|j1{4e&D704y1O35Zr8qqp)kab#51lt)HyXRApJXw?+ggpPep zD578IyHMZYn)Gg7gIe_SQTheG{#?zzuoq(on|4x!hqUtpqWj$WE~CFoCmW)jFA(Ls zZ>e4+*A-kzVqUuoeoY=L|8PzFP1dxm_FtFkM6#G%c3$?v-0jTGP*%|#?(L2j;SFe+f z&GkmOcpP+NH`1^I2Pi=J-m)-GpV6KbOSwoh&sIYrOfySQU6UxJ33??qy^{ymF93&= zaQ#BO5^!By1q55f;{n0;GY*35ls$uP8Y)C}OT+c2Xw}wg)x=exnm}!VYK`LUxDMc< ztQcHZD@yu>(W%p1N|1PM7ETucnZfD!uy_eh7cW1FovTLK5}+<*6DO+cRoznzLZ{e? zM|vhjpTM)!{aQjm^`~_L)sM@B>Z0ZH81=DvSlvjtVBKin{?ODX5?YI@Xx#{!$#i9x zUIl$YSY$q6*NOpRKcfU0=zA?_U>f0IcGE58n0?<+|LFkjuhV{C1+>4(lk&z_{B$%{ zl?&Q$))mZThjwxM(rm|~c)Nmx8%f@&%@@z1Ipl6kU;Hx`;~{rzJIHvw1iZ1YT)jR~ zq8FFj$MiC*cJT@*Ivwvda&1rG{gY4}fp=*J5fQygH6VP=sIB81y6&$|;(dyv+Yak`TJN8ckywB(r5JC~`d2XIWw?zED z^MyD%gXW|J@|$J7g!0B$^bQY=PpqRPn?Bdr{)!!#&L4{YQ<=^mD`J)nKSi|Z{6V^c_UC43P#t=AK%L??N7G%)HSGqt!{EC-U4+KSw;Wt+G3Ek1&hh91kno6 zevGe)!=SRJJPdjxTTNn|tERXHw2f<`7|rY#(D$xEU&Gg53)vq)^R((yn$TG!iZO=` z>?txtVE+oyb?y|H(buK(4*~njMfonUKbjVq^2I0S&+uN5e(`&;e0lbFDZ3 z@op634n`*%$$ljcQ+ZcS3Ws83hBo&K&!mrLTa{r_cZ$gvtFC};H+lx**|2uPoG0g` z^4rxmO>Chz!o~jJJKag!3!Io?qvnX5AYX6R%&N#v(c1dfx5u;3uxp>Xx8e;i zf2^E)Y7c9Fd+oi~{?$}~yo}~}DhG?^Ts4+x&S|Nl zISd9K(-BANbPCn+KG*ro$c}D_|F`>U6RLFSF219)hi2mQ#_5drHz$;vHr}HYrKr!F zoJOX~5oW4%(~JO+?!C?dpu-bdwJ)MTcdGG{CJJXkgDKc%Ss6o` zwF$$Q+35?EWsEVTN`y=9cuaf3m`Yk-bx`S@ae*(EqGQKrihroW`BoZkPK zz;UDj*ih;?(yCA{b2>@j;!ss`9H~1+&h1_iy`qG7twAs5SXF`l!t2F_PqO7mcK@BgHlH8Sh zB+^Z7C}VX?CU<|VRQngD8oP?9#z>inY6IT&7@wz-TiKc1WqZGPiWdcRrg+un(TV6~ z{H2BH#Th#th+clgP8`LH%pE9Ro;iWs?XvQI?^o1MLBG+Q{erWTq;-F;axhxAJQiAa zwIi*o&n6o6#e@Bw7~Mb?lg!on`;YeC6Vz&?<#7W!^^ClYY<6d998NdCAf`-r>Q?JU ztnJwy2AfVC*iZ%~E%K+d61w+kC}o zrdM|FNGdwnlkD{VgC5?JgT0i>lN>BZg1Jo@(SoSkG~OJn7s4tn2ir#eL=JXWsC086 zyK=BiDy2&f_FBrCo`W5vT%3bN|0Hm*`}>MWyEt^dZOW9a>t0GHSl1o68bZ(YnO0!M-F~;cf(pR_PRiXg!kD4EsI~{oQf;kwoju+&ql;OvZY|&YP^z zTD3oyHP>@}4*ybnO}4NAugT3?w_B@8uvXC&!&*}xvD32G+?AE4JYvUYox`lVLUY6( zdhR+OqQksh{9$YkN=obOoLqzf;^umt*}I2qeVjIL9>yp|0FHO_@D%a?x?APhcJ*F> z!8Zlpmv5_eI89SB=`t%Z>1uh_UFOE}KR{NVK@4y9i#nJ2@}XvnjGTG7e1qsk$f^0-o1Tw0kni8Ka`Xv1@2MbL_LU zcKd=_Kj0$Mrrlhb>7iWa+MVFapeh?r6x`DORt=nqZ;U2;o=Kc2g_Xz+Yv+XK_I0rp z^MSIBDc5j%{U|21t)8K6PHGptW$JNK2R&@t=r}#}TIl_ndOg{-I;sP*k_}%DJEPM= zuAvo|x0bmVuL+atJsZ9ugiu;GJd6B^Z1}~Y(#^5w%7$MAkhYt7gWk5~^!T??*7R)n zIh2dD;pm?PHhe!=cxX3`{fOzjWQQ%vr@! zvyf|6cI2AF`2rnFqf%v-uEXytQ*)$N=$wPUbUaXA=uel`gkC|PN)1Bdr8!6kW*s=&WzLi>lx+9HqTPM1SSu5$W@vBur9?1cl^ zKks4H==7Yi2F!a1#Y8#d$znVtKE)>R_XIN$SEBAb?;5IQOv|T-shRi)9vwG_t|A}y zpU!8?{T>5Uvyva7I#9#y#wz@ns^_f2zu=0o3hXMfb!T&HWa}Otky1D5 z%_tv-ywF(Pl39gcDAj(cRAW~W)!66LP71eA_3URVa?ca|y{`1L6yj6NA9^ z(iR2*yR`%cq1hfP#Zd^zl0YFKO9F?Gs-k{x@)qt1$Ymz9U<9~WbTtm?{XO*#ryUrH zuzM^d!ayey0S)CWg5VnxSp=2Rq!F~X{+&HsCS>i-Jc7!Ay$=2u2PWb4Kv@n{f>eRH zgk?#-m`uYSPf%(aY=TC(Gn+6wpka*jb+UH83e|kGnZ}P26N|BMdZ&i0+l@{*JCrLl zCgPnaR281{f;*U?@3LA|uwNLZ$tWD%(N?58)o~g-I9W=4A3UQj~wa{BeMJKyOi8PEHiIP^>PQ_qK2Ccvw%>0WLLh-17G2Rc^ z?G8bdmR9%^SA=|@xr z{(TeOb<`FYVHx_=aFXj@;EuWKy{uXszy8`*J&l(45{el+y%1NT?m6#4s%32JsE0Y4 z_ytA{Mux6p81}EuXI{WVq9dbTKu4BAW~FIe^`l1Jjb%7ID_Mp`xMC~=yNYb(*$f-m z%7;g#WErG$qgF z$}=d-lll?QpzoQQ+|of4o5vNWiC(F_JQbbVKhl^h|?#lPek1?n((=N-Xdqbt6?ex9cE$qK{ zEX(XFmujdW-zv2#L!}k+VgetF_6uPq3R$Ox`9DLs%t;}E<3Lr(97lJG%-YJWT&kZ! z5xo+GcT+(R;T6@=9&#Lk(LmomDAo(~Tn+6-GWEd(wmXm^*4kq^4mq;;R1c0r+%Z?& zqpgq*lx-`nM$5~fm?+2b-aq6xWd6p0c{YTQ3s?MX-r^Cc0B@tc=zv) zt55BO)&lFNcHmkBU)+-pAYRZ*H+Ga-qy8*Dk#m=&Yuo)oT<;}+Pv@J~wpia8<~7BD z#^01Q?eTlodV)_7xR3jkFGJc!d@O3qi8RIo*&pWUI@8`{+grV-Q`Qvj$|ieFw%MN7?@>6}6F6K#P)Sj~IF;QaOmcm8h;H0$F&dJ3y(s5e`o!NVloUO5ubRPUO9>ly< z68xGM*atyOzBnUzGA1r4ptGQOUJ`rLD8<+@h$*vDpiphpH0o|a%)7{t_@mNy>?702c!0>55YX(R(thtr!arSD z^UEp+3u|6Kmayh>`{UDSv}iMrZ7#FEi5*UE1~|3e{%3pkG)zbZ#|b5zYisQ?YWZc% zO2#4F`NmLr9YdZWeJJjka2|0eAq77}iW?7F>mKMF0G$^qYF`9F|6N&jnjq+Zg>soI zcY;HMs%!y+AjSD}Rl$B}xMoN+;Z2pW8A*rOHM!~E&406PO0&P%t+Dpzp_ou`bZ*Eh zrJ|Ahrbd|#8rdk@IF0mb>%C0Ik?emR7ylG#2yYoFT|#QgNGWeUi@VuZjCZ8; zj1W%RsdxMI)CS~FjFg@iD%~8Yu94F90I9ndy|+@<^pVn2C>M{EqJI)1rTgQGMszGX z+%^r$xM`l!38(s0T#hYnx|KpJfgz9_JPjmb+k?>P*HP4sPU9@RJYvTXs3H_ol?|1l zGuyM{W+g&dEwQ>=+{o_tk)?66`~A3LWH-BtFv`rY zjxfq$Z%UHga`Q{NDMBDtw`8*WPnBxEQjJ|jRAU5LM706$dD?-qBMxHT*ug5YoD<6N zjCaD(2*?-UR-I^X#`Rig?=zBU@16BZf%xubi_zZ6^fwBKrN3DL2k-(q(BNZGqTl-{ z^-wxG{C1Ut(cw3bg$_T(PKPrPI0k{98}-*%S@DEiCONKK;Xm244MV&pjvRSH=B>5M zVOy8Lvc`=t-x6DDN7_7IMPkp-ji(3V(-TV&+a!ZZ*ZtL*N~agQV+!0Cg!=zfVe5I+uhcr>S5v#!I%sFx{>N#j*MILRDmvL^Ojvs3dqT4Czo8-}3(o;z{?*q- zBYMxm&%4B21Jknb{m7rl!XFtb-5lMnEc_xWCA{+uKAmMbZgqgNrf1=2Q!dWJqkj@u z_}9zQNz?+2z&4*sW_~TD6U_V^T#k*IFA%#I9UaL8eKf7$>0_o0&DOtV?8`A|%4p>w z244aqc@7(c|KZqaF20%p{_tghvp1f`T$YhEqT=+$?;4dT?H@@pf$9Itg{3KAo#_8} zhH{xRPl8{8s*>sd?i3mBUJ^0de zme=HFv3-|vCrd7UPK%gmiea%cLg>a=Z7_*B5gcLHqASZiJoIWwKtF#by-d{{E)^<+ zmBQ!^ejmMs%Q>%6&t|=clA5Wkmjg8>>zya!V*&NC85-~m^c|vP=U6een(mpb-Ok_Z z+hVWDX1cs4H`Be+T1~=aE1F_}7qm;Z(fn!X^JWYEU=q`GhwNHR6w|G+E;L8CL!YNK z-OkBHb}tzw543$6S1i!Rt|HMaw*8Gnv%>op8EBLI7U`yFz*yaq18ol})gD%=v8#w` zj6RR3HsC!(hUeqEE-`_&orp6mXCW+Wye;9gFf4l{c;ggyV=*O5*zFWjIQDImU8U{i zdj0CA?Tr&;jt#lV%pJmQT~^-jeU17kU8wDER1OwuyL~L7w$=7fn{2!hXIo{Bv&CgG zgKS!V|Iwap%VX4VjIhP!+*-Rr*wDBI*Di=Dvtwv2MmLJ9ogGi)#U!SnT1-QXkecqD z&LK4lJ4A}x7Xh``)CfouP@8m_b)?0A4ggiz2;d;!^zTZo{oJt4Kw82FD&x#c@+N7r zn11O(YbV*?TG9A>3s6ibghrnqidd^uIQBPFvtv7GW@E+TG}EiP_bM4qvfqfW$;NzO zEe3xXJ3F3Km9aC91ap~wA?!2iGL82eEN6wV(z|N6H(1U`{>0eXrcmkT_P{lEb{;_L z?hTepC~NxI*%_3J$Ij3{39+;NeMKa)44rSAGG)xHMCnA#?2m9cwwT$K#CwN^L~_6^ zlu$&=BC~^zm0j#S2IH1kQ1_uKLoqT5faJ4mF|rF|=CPO>5{?o)zg?*oH}F#iCva@* zT450i5U1GI4WV4-%#gsXpsM89R(Fbgw0lMLx)9zY27Qh9sS5mO_FpGD#%v=2t@&|- zhp!EBKbed6=M+roLs=SP?*SAO4P`A+hw`ZqGmg&)4l(9nn8f}9l`E1kM31Vo`@~wP z{x%!=HEScSblH=XHAOt?AM7>RC{kXN8%6p87@IvAQKwqGv1B)+yE4RYWyLe?(Lp@cxxUe60wmBt#w4X{g@Mp?a@sxC>PHKHhtfuE_66?fmfX%; za%-BFc%wYif5(5SP1pgchHS4FM}pe)4-`(woV@DflQYZl-6p;ksm@$ zdFPgD^Z}#>y?~N{1f}T%M7c_=wk433Y%Zjwoe?}&y9JR%}J6QX%TQ*&~EYmEN zG8b*ya9;M3^D=b42Q8nCQl?mH# z(+H(sQ07kNCOQ|`r0ZN%pgY%ep~5zOBX5kH=5!}arHSHgrcERU-2G|fdNeAf<|sY+ zQ{L&HaCxcGq|a4sstwkyu`V+GBV+ufK=#mruk{oWAVG)5NPz z(o?p7aEy5~m_koRPhsiUFQEtY^bh5QzDQ=aplWS_m4+x&R@-bRd4+dTo2b`{EV)Uh zO<^N9R&xw#X%ixusrjDnHUGf4Xik$&yyo%;hIs{lnVR3xz2>)fqj~aLA-hOCAQxwn zI_<=0^v$jA*_ET8pow^HIkbk7ET6v?hg4TL?xp4?8#CEH&3=*3$E`g=)Up zTzgfkJzOna#lRmRkf(_h8fJZq4DTzV8Z}+3CoTPX@r9OOl~a}XO=RZtz!X-ku7u4+ z&x8s$XLZ+T<~OJm+fcH+3HTgkO&`sCjB@d4Ci;d)Ge!H*Q7@K{oOo*pvl(=zZ9#m25dP69s(GMRie4+_u4i?Q(%BZIc$Bkl5euz5u+k9v=OCG!ev&; z^)Wet>N{@2Y=O3{{Q}Z=delY5XbBSc=d6d~5v^J99Bdjt&Mo9+9FF)}e%&=xq zgDzCGv07PPI}ijb{Dn%~GpHpSEp|`txWT)ovk_FxX(A6e&h?dA`~vR$B$^=4SoA9i^v6tI4TT45SJR&}#Gma(mHwLDsuyzG2?_j4)lC6oJ~HahAFS6~ zwR)=*_;K?je|ED}Xp!@t+f9*gX_a$~ z_aK$2Mv(zT2)i+>Q5vo{TDdCqOLcVfWPe6EUsZoj@#mFxQ=}Vje6^c0(G-75v9!It zgUXw;E8nOQR+OSq$`8?Msuc5-P%5{8qB+IlNr0gUsD; z{t(LSAA~kE38*qbRHZhJ`m?L~+Kx7vEg?>^Pk%Cfx6VJfQNmHixngO!R4Y<72zg}v zsr2y0AT^T^sT6Y}$XA}~&&ju2^_;%tPp*(r%`UcwhI7jB2v~NbLeFnBYWXS(oXhSI zy0s>{U*8&TmfFR7ZubyO>Y&o@;d-+~4=CuI%t{Ka+|Ej~!cBB81{yvhObroQPLl(o zyxgBfjcL*l$hRn7Lxs*3$#R30Dm9L#o`txgO6UMhq@f;0X+`StnT`A|^(UF=Jd7%` zoZ1dD#A;=z(i+`z&{BWSaA`P4kOMZ+2xSH# z<-WQ-OjXPw?OK%<;m_xR8_0Us3$)_Q}#pg^gv&XtBJkebUEi;WVSFs}FKp=5M? zP^#@5rKQ%N&Zid|&t#gFTCqZdrIq8~gk^>_kCY@+YtbxAWftj(gVFcV1ZdpF^AYSe zl{TpUn2NZ0k=>t$oBVpf`!&|vUy&$pEU)+0fCX3u@#q^!JPfgZ3W;?Pi>8q{6k_Xi z5*I=2=_7G1#M@?)xB_C$Y!a&=X3Zth2eJ1c5;sFEnor_Th)*0$;^PpXSwP}mh&_jr zxE5mWA`-J8Zasp;UWmnuNi2f6>qruxfH)~bVgTZ=jwbN{#Gf8R;(Cbr$B~!|@zU`m zege@LAW?^S?F1740r8!aNPG+8t;?x6d#tm`Q~^>~(bd6so|mUVTOb#s<=ah7#&mUV5G zb!(P&X_j?omUU&8bz_!wVU~4YmUUg0bz7EoS(bHImUUH@byJpgQI>U2mUT^*bxW3Y zNtSg-mUTszbwieQL6*UvWzc6C>{$kRmcgB6P-hv;Sq5>I!JB2!X4~Z@0F#ZoS>^TR z6>QLz&o7th$)Bm>Bhboan!+EC($5Z*l~*fWSAR;SN&e{Q_2jmBMOw&-)$ZLFezv!( zSLbM!X<~jXlJ`Wum;1*s6LPa>|H}OY0uLYTE??^%H;L@fNt##Elx8tTuk!JQh*Z3A%O7ET8@QRK%2`DFG0Kt!KUQLF+=|&gbfiSa6;t% zo+Co-q;MizzT7QFf@5ZuH~|BJ(@%lKzdLeGpf7L)dUZ0w-KP+%sI%IBry(cVWO&YD4DJp^-a-!YS}-UDGn z0|}ha=$)19Xw=)oIj>%+r5HM9CW#B$EO5CIEx!q3{wxxQLNI6lH2D6PLfCLY0w-MV z?3tDDCN@e#^_^)vm~b|U4caZRDWLUbh?gKrY1^!9Tu zzmvAKjQen(b9Y2@N`%mQfzVmNU_HcFA-(~@wuQGIL{|?&*bqVjCxkxNV}!&js<{GD zda3+i4pTI{#0oeFto{aQ{4K=hc_c1|U>oPfw3G7Ags@?S1QQCY)O!XKE1g|p1snuc z7Xpo~5Z{4#4uVk&cY$em62gWR5;$SiyW=O!#tsv27&uhQaXqt^AyES&0=2&fF3&=| z^$-&8gkUtxXTi$+9fS=vByd7)UyVlo#h^5+9hm*^ zB9Vt+0fQBQ>LLgmN=PtqP|{vdDxZL%r1MIYfPg^hO5ku6#E&3;0>OeQUp$(w{uhJ| zB_xt{uRPoLZS}A0!<$}hOX|1u%Uzm69T1nt@}M*D6d2b z2ndw^8aR9fV#Bc{E`VS`xCO`2)fxyJN=V>@Qm^N1Z3?N(NN1DSpxpwSbJ6I+9PKgO&?)jzIe}5Pt!2F9ZwKwg>2H zFN6&pB$ycJ=(*O>bObs&pF{^O7wCKv?f(?Si6@X)3BkhGzs1#}6G_<6K>{aqdgmkZ z&&SY1CTTcHGn2#xZ5FtkfR?X-_&mfz5G5wkiZF-kN3ixzlV4hf;}|$7pKzI|A4UJg9J|a^m4A@_>_wDxN~~5k=dl} zpxpwSZ=?0!g?P(pB;EnR9;18j>2&qy5H@U(zzLfNduBVsjml2U7LrO%O=ct)An^hg z0!Ct5!b zVM7iHoRHghBQv!-5C%;bAn^hg0=Ec+;%eR-N!Tz#0w;`m_gtgV z&_cD8Z*+^2$}DjL1_GxHkT?$FUWmVhU=N7Ddp%v<4q?Ly37l~H(!Q}J-c%Mq92;7y z2#Fc+5SV=msN4^+@>~+9K(I&YCvBjsqabXUA%PQSy^GQswv~F^(Di#uJ zzzL7u#X8#bMs)gT8$-DyGHA6x=4G_~=Mb$olNfLAnc z_u7MZcse>Zfldb)+Fq}!0|Z#oLqa!I>OP~yK3OZvG~Xy+oD@IFUl1-!{BnRlgN~di z)Y~`~V$`2ms8_4}J$^cNWZDLCe=ofdeck9bIzC}I-=KpS1ow{$@g;*f&5JoTN23_j{37B0)mG~3L0+B6j0coH`gcnFUAbU_05{RrpAc`g-cDi5k`r7Gkx;tzNqVpd| z^omrk4@n1aQA{Mn%AKk?526{ zO@BSXv}-L4mr*Vn=>;9fCt6F(J-4VvwRSHTiMCu)E*KmbYEE3Tb8Bz8q<4ILbYSbw zaj*fldG~?-F>K%BzQNwHG58}~FC6OK!LRn{-#McHv9-7F*`v*Ec+bvq@p$ic{Ar@K zZ>y`dSL^WB?yV!r-c_yP9nDo^(7sidK&$!&hj;dGxg7s_d0%U^Ik0scOwd}jePDdc zSZigof3$bo_?CW9uw6a zRIB2y)`{GBm$Z(=E^2i{zqF15&o~Lu;w4`z|ILzn(>*GebV5E0obfP?E$8i77!RDFW0lNttA7`uL>i3LXzZ!iGtTD8`dw5%3<9pT* zodYg)F?Xo7%qPx1XAQdOeCU|7rAKCU$D%P%1tyPjeYo`Q1{BfWji)!pir?qkn73kDRMsShp}GKmQ_hM}vv zT0`c5G&Sdi8Lcblcgv{*uIy5-GfT0DbvggqiC%YXUxPL8+}ex}+dZ$_F}Rww2Ue$% z(dJll^qMA{7Y0GL#p|0pg9v6rF#cY==V9T-)kZGXupIW}d9&=NTrs;-Um5SzM)@dk z?v>ClOw)32RGhgN`*+jq@77COx8mgYa@}vOm$CUDTD&J~vD@5(!(&7?EB3Rk{#z;a z_dxZz?t7pLakbyh$ONSh@twrS? z+jb5PGBsOwpgFg-jzBYBI3M)u!=@S@)HggdZiah0a@e!n6Jn^|?W4UTEz`jcJEs>S zqSf82VUb|{xcXT)L9EaNQ~a~k1hQD%qz8Yg{sdZl+B7(N^GI{3A13%M*Fhv@R(4>t z7KjiR4-SksM|%eif!6&jdOWz?9akK?m%m|FYR^2d+_Rd?-A1m*N#y#Kd;+w(22J@j zQ2xtQI8rWx7Qos$QSR>##0dzd@z))_149$72g=3pukq_gU{wp{W|P(tA~4x%$6}4vcKL_$Y2k@AQcFXm4=^tb4vdX&lqsF~bB_oHH_OmvhpK10 z4pVx!Ld4nIH(nj7KqMn$o8GbOhx)1|bZoPStj3-mii032HfM;|wMxf$I8z+%NZIpB z>#sub466#}V2HDr_8n1VReeQ_Rmw@O!Wwz%=y9#ShAq3J)^274B1uyX#8mnsxjp-5NpO!z+* z;T*^egj$U39O@h2>7_{XS4%D6%C7$Eit0!F>W8iBlV*>b$yy?_2X9}o1!R?v9!}1> ztd)({m*njt^FA067&wjH@>kM28R*4~W_aYJ0-DxcR#d|4VbRUlNV9KX+dv-~(%?$| zMd->~L6@CdixIP_^Eawa+vuqNHd6KCx$v_)9~Yw6cufHlEsHE=PSyWHR&6FZrqzl! zf|w2i9jisF?vNq*ng~Q*ow|xE;Qy!q zT;6^ezg@3ddhXP96?-woFfnU=u=OE(2L5Pn3f8)-bw_KmT$vR)u|OR%v^l@1V)|L^ zgT2Bt(0iQOhyuKK8=|cvLOscoYnHw(;&HW`SBtc(_%o~1+E7T#5KgGJ4t-wEH1 z#SR?-_H>HFl>}?$z7T2D%P%i3m(zO-qHTOXp+W8^n73N_o}q5}mT8OHjp`G(4or#l zLu+`Kx4TIIDf<~_VU>FVh8B>8M-ZrS6D0DcswVL_3|*aD?_-vuaK6roJB{v(%azj# z<&vV)jgFKvIKsItR^`rkf#tk~Ddl=q!EA9(%nV;47q0TCFt;&1M#icsx7u;|h%!z% zV|;z<4c6KrGe&^thGC0gEXK)b_cHxYYH0t_*5#%OU8w9;ce2(+FNnnjP&7y5p$P0T zl@^|WsB2McvbY(_!8sa2DNzp#I4%;JL%%rzN2B#A)sY=w+Qr{GHqyC7Nl@&sOC5?g zp*%+lKD;j8;*@TW#YXGtlo>%rocsPGi)mexZ) zmYy|>5sW76S!zl{w*&56Ok$JSHcRm;yyS6iz35+3L9N;H8I>c* zTGbGWi9&61tePZ4&K3cW*Op)>lN&+cIU48Gu}Ua9RJls-S%LEQmP`|Mb}J z5_354$=Upqy-F_Goez5H7j_TRj91&N*b|Gv6}z|`a#OiJl*gry9k!$w&oHI;V$x!4 zvELguLEIf~kf8v(w%gWCwv7ZlT_EZ~yf}I7p=+Wb92hRUwSMfc2y8)CnD5IcG?+cSxZ8 zK;}>gvKJaLx~}5OFbTC8SMuOxvRoEf%@n$ueX|^kjqexpv>zKs4_jfVgD_5tLe!(C zD{cHL7{@W!EzsW_bG;a^80KPEF6QE)huE{WYcc&p>Lx>el?db$xYsDvUaM4NSDtDN z2YISBiZj8sC1x)H4ktn$hrK1FIwWsH5=HQ~6F?W5w}DzCaP${WZ(HmQ1!?xC1ziqT zqtdS8ZD8^|Cihk)!I<1KutdG6`(k-+H+J4vbRCAs!d4v5os@*<94VXB=|+?vpZ2K9 z)+7_!Il^joT%(NA0g`t~xY%T-XDbPKZw;LY+4t+5$Z3?t{B)O9Ge0=Y3q>K>wo04{ z`uCq|c;wK(?>kcV!XF8cuqrB5Hq(T!sS4(b!`pN)a)1*Y4ZXmbLV9HEohfApl@BSC z<}*Xx9mNzD<1j-wNgMKCsdnsVTfc=1sHvUKkV5+DV4(OC=p2vtR^$wRi4+%uwh}3F zld!PqE5gWr*wksHc(`LOon53M#Rkepk>YVq>Gl9mMT*Cuk%;GWVo331kjq4hhoZt$ z1$IjaDbATy6XI*^d1@Y&$niY11xJpL#>@7QW51>y#`IK8A7M%}qM^vzsgdL}at33h zGy~cgsyfJ0nnVH_3Rzwmp5Mat%ngpYRd|dtPZGy094UL+h{Oe070j0rj#*EU=hjz5 zuNxG{yh>G2{>L1M$iuGeA@6Ug0Yd+Uu89Jnyrwh|`f;+F$aoe_=>!PnffBrFAYa=F!(=xguw|RG@TDPope3*a+4ZQJ8byppvOd zQQ($p=F|O{##HxPD4FU~yy8a(@yY|2EH?7MrMnzTrYdtD&`l+WLEYk~8jnz_9jR1f zSDtDNt9Yt4ihCjPDlwBIn5qs%9lV;C0g|K@`65ADj|UBD(%Kvy9UiqHE6UK2mC3k# zHLt3!q6aLWhgOeQ5)7>#*#=r&m3G{bHI!4;o+PTO1#F?W93WA*>O@U9z@nwPKdNcz0iNzN0ZMz7v*&=)0Y@q+A;PMt z1m6Uun^gs~){$*88hLzHl2PqaGV4eeuoID+l;y&S2z7>1TfMjui*b19QqM!BvVmW0 zt;!0msPrhLm0pO8E1~Fkuy-sCUX0KFATlK_<4fWs$SrjT zR|_}UGh>b)sFqIS8$|pCKkdb1zFf7Vdz^DWcj(LY+yB8{z7HX7Pj6ysvlh#+7@ux# zN-9*>_2mw)y zJxm}fV?zX@SF(Pz=b(g+ubhb_5Iu&KZ@cXQVlgt;8{ytoCoE+5$+0c|We@0^NrRIO zc`nz?enCO}Z1b&jO_T@on$kS@b!0UW4;D?ajJKC(T^)g|1J3qMwrSr@Yf{UX8^Ke~ zf$)Po=}h_aKe1lT@MmtjOn?`wX*9@N~8Bb0l(uXqJN54jNY>=50SGhz(eG2Kqu+FOxQs;g))M= z#p(S+O10lB)!3D%8pC{^YK`K2TtJXO5cHl6Vh7wOLkp7GBe*7*J@LYTp&@ulqXp}U zw-K(Z>yh2rNSUG!2|oCrn7W2xvPI?BS5oNtG6M2IBX%;Jlagyw#H(dnbZ zH##=baeLa);TNHNl$^iVDcv56spR~HP)Z$gJ^^x>euCjZQ2^ zu;gRUQd1hb9lnj=4s0t2a7plxzOUUi*Hn+8thpskKkrtoRicMSuDcL9`EK zRxd?iu2Td5eIhVrS)vW_0oEGh)UgLpaZ(8kT0lPoH(pds;yM2 zu`5qCmh5<{HHxFaw()1MS*JRzAtAscDFf!;1Z6;!5j+{lh$d6W0u6Y7@Km6_-(?Ny zRdf|k0K4X$20TMaFx;>Tnp+n)te{T=>K1b1a6EYw(7D@&4qEB*ozr#>(AFR^)N_Q^ z53R*7p~+be7K-{GOoDeIKFKMs5Bc-0+-))WlzCt4^N(*VEm(F4v6djML5H-7>2ZVDD_K1~`;&o7zgcQ8- zEF@_O<^7PP(~#ny9W&)ZijSdu6jDq&rQ2gP6;j*@rPP5G_kmm{q8$!o}?Au#71*k@gBTvk5*i4`FtE$*yF-o$uzb&CuLZ<;+UoA3LJhR8>#Yp z;uznN&Lm_P99SfG8H(|c=t|YfB#QB{BV`ZV2*tpvV8)72jCzVJ-IIHwR6j!zJ!88m zlDW$NR<*SJ$ZQHtZ4dN_#@>$S^C{Z-tG!|#LztC{hYXlNHx)w$b&JD}UZvVrr5d~PRAc#+r&^3UqLB#NW`B(E|Ww&fC^6) z*exLvF$)$OKo8ib)Z``6!+uL}crl0jZ)|XT=;18Leb~$qrw)2z(SumChLbABjIm~6 z8paB9;DT(1%v-6$5hrLJRB;XV&9K$o@HyTU-N(U~rN`j^j(awIiF*6kF8oa23hYSe zJ=N?a+HkTXWe?5>ZNREvR*KMudWxJ^UlBbayE%%vLN`yxn1z;->SzZ_9qO4S73VuW`mc{ksdS z8tStOxSpC1&&hZPAD+97b&oykB=l$Hke3h74Y2a-=B3 zPU?%iyv|HpRo^b2W(&=(TDW*DGe+!-ya@>fk6I^7c!kip0zc^WL?jurX#Hbx>ElFa z`iW2_IF+IRC)Hx6&7B5Lmp@8^)8p`pfm3$n(McA0dUVnaN+dXy`5ow{a@?S9ad3K? zQtfo58oTmTV?@VOtx=RXH=|z#z$pu^9cEhTf+Q|QoJinOe9=)5mu?>&-Z`>qO99^{ zwxB5r1feMtn8yTMbed5~SFsMvY6jKzLS??_2748sNn5KV7(jgzw74!ntvDpc+Q^!i za!Aa%+eWEc>GB=Z78~0dB=S^8X#LPSbcGAR5jyaM+F5pSm2lNo1_)~;Tea_ll+{++ zLao~L)u?qpyQG=Gtv4ul&cUrOaHO1J6aIECRz(pDGnuwFg4$y`{AQ(Kg2e3Li-WCY>&`h1Pn>Ld>qs2doa3i)-cU$ z&kpliQW_HyeS<@9WfK*~B#wq%WzRo$xsAS7FB~QxG~U=I{?fA!V~92U=M~*M$C{(Y zP595A4e&p^FzelIFYX7*NJ*@Bi6dnX`UrHws$jN@u-1LfO~ls)=`Fj z!IgEBZQ7l*Cbe*K7dx*t+TSC3*P5-#ms(+rU~*;|!y#wBn)ReT<0W)`<#Z!C^OIQl zHfLVKR~B4LLhic&f0n+>|6yDA??~&C+P|8sllo@1x6w6Gj>~IGbKHL+tBE+SXo}^y z3zSU*4$FVEP5EiM=30)rR5~j5Ba0Ynd*{blcV&1dH%g{=R^Kilb!g_-!o?q8oVA~3 z@mPMc?4p7=b^do&FXJqA{G*QD?~xlPVv_B?aiY;WYV(8}(nwM)MIjkbE3xj6G>X03 z-jZVPj#rFgvnvl3vk2Tn#WCGvMhvsx4Kju`5qC2FpCv8pT$e`6I`F zS!}ct(XoTF(|7>Mvytu+JR1*SQapRKxnua6rbV<-gd*Bp#AVu96?GNeVCFokeYlcf zRC`?;R9k%3B=(JI)?Hh8Gdb5@NuCb&?zhRdR=j-QG-m=@=Pb5uh>4l-GUgT?;M?c8 z1tt=1tr9Tq)2Iwz-zf=!p}fVpbw^Zl?)_c8XM%KJu3S8abZ>N|>@_?R(qL5-`7u-3 z^{Rr|>A*Jcj=av&9mMK;(8>4P;ogWcT0ZmE1}}!O7>9YwJs88!c^>ZnVC!^Kg-#Ur z4(X&9+2R5yIv$W6lQw`Q`MwznljNHlfQ2s?3H7I+eE+RuC>`Rby}a#BC?6%?Z*fYu z2W%?&z8y-bL%!bya+&1&m8kGkf!z`!-?Ma8gOnWmnVJP9|DME_bN>A*yljtuU#1`$ zU%RRZII+TM3cfCFh6Q&V9EkVa^ic?#rJiFv}9`D-|Yo?$v%8C zkxpZGKh4IqL5n@Hm>?T(Z@39$=(2H9=sIHyD+CvTg|j=QE!4kl8+4O4AQ591h-R?y z9=aw9G4h(y5aScbY9eD=G{r)UZL{%9XiaJ%$NFp>qX?6Y%P0@o_yw#dZTC;;`pT(C zvhhP$`JH9sqoj37?T5HJscigax+cnTc};1Kdn;K@#BoJaEXU1e<8P#EuH~qiY@G7W z*Rk%(@J?=&Oz*6|U9j=c%&&!uFT*(NL@LJP{mHVsDy&n4d`>LvEY-YUL@R!(S$W=D ziUN&R>$2{hG*bRea5(;=jBnu;BjxPM!_h20_i(fuh)IesGicCFfrX%MaZ>&hrP@!G zYV68Wjo~&=wMKC!t^-H}0_VLMg;~in5r>thG6a&ABQ+*y`AX0#Ov`r;4E6&hzovI! zuy^aA4a`w049rmqK)IB1nR#w?UBw^3=6TqBN=Yzmz8(xv_b~X0^xHJHV{3I|IXORp zCg%YW8=hjo_Si4jiV-yCj;Mbvfg zR1@`s0&SQHsJ>!fd&s24LMJ;?_TnFjg|I3LCz<(hLsc-#9oweskr%#%MwrYCb42Xa z@qA^&e8#TrUpxhiaTq&1ycQV69O(vsvo(8qg=Q3K4{4?s>Ef|abUeIUo;!6f6u>FM~mkHaSjS5c{ z*exO0K7DVY3ysmV*X@TSgX4!IbnI|ynv~T2wP*q^GKiP$QTL6A=9S$!IAW0$hMv*lE+XrfBFl!jc&e^|v)}bD|@WJyB2v<;+ zNCNF2b)@WRAhMogRWScW4xZOjAGtH$phqJUDlU;o+Xd#VkBS!a~Y{2Fn=s4=msPSeOx((NMQbJ<`Q<#n$Mbx z8ApDHC^RB;UBx?~v<}6rJTRIpk4anP6q}rLb0Le;-vx#haZ&DxUMUJJP)%aG%hEXI zR`5d3Df{q>aY}aO!9W(jcregi$0Vne$p`4BlCz+0aZWj+RJ&TK#;!co7{u^YYZM3K z@WXs6#3^z8TdBaFgDNwUFp^dxtRrY8KKf75O7Zl{rY(J=&E9dFS)we(EQRbmA?uRM zdR2E7H$z|K@yi>P1ml-aZ-ZZ+n!+zd!$rF}#5^SdVg}@FlBpX~erB5EGGCW0oEZ=o zlkFPV(1-IoYnVTEfNMTAQf?yK^c4lbc^;LC`4Tc6^P6UoPThOeq!T`O$s!K7$eEy> z?^nY`=$Vuq-RVd<>wfrU8CVsS#+ymWdsGE;%K2^fxhm81WH_HKXUD2vRJILgGSu5O zbiWi|z+xN!Iv!c}Ul#522+xmz5CR)F= zUgWqp)Sih%e}m?jDzIBZNOW#3r;yxX_fs>g1f)k|M{+>=TeMAkfOJ6N6nmAdqNMiS zCMtCoK#fbU${U!mMOsrLTL}lAO5;diLBZ3@BU4_is=zxw@MR@t0I&u>Lus81n|W+DS+2@l zJr$n)OPF0*5^=KdWNicT11x!-+>}eLe<%;LC zTSLxfx4I!ShOe|Pwb-p8ZcoW;nLl-&-Kugk*{xPImECFyCoNPeIO(76y=-=?ikt~{ zyIKvG9Cmw-BjpUsa59EfQG~(FflgHw%qi!u!EO!DlQ~clyEWzP*!Jnlw&C1}Vz;_q zil<>QG`m%vEH!u7t^VECuvwuYmA!>D)ImXUA{5Nm?si0WU|}p0(}g{Wt_!Z8b?N*8SHkg40U2v z&2DykuW%b>nWU}W&pJ}}1QOvoSQX5ik%O@H6!}(tMf4itrlV%ua+j)L#@Mal^*N_u z<>rMU9vOu(PflRBa&+;f#b>+XcYF2!wX$J2KA~2BZU5p|Sj;ZVZWkZG=U+LH>>)uy zyxl=GgWVoP*F>>fUQ-&oeJoi`WQ>cZbe7$oLTfUE>=xq?likWV5!vmDtQWJpy>c3o z?Dk=(n+mrab{iTvx~}5GP+BL$W*(b)>~?L{>N(@=)|eh=e0F6?#GN>e@jxy2w5=2c zKB^`|-KS~nb_Cp%v)iljim_XEyX9_Bhuvxig3n?$;AO|hZDvlqq}A2hi=T*5ppsy>X8>VNI(IuV zFf_Jl%g&L0_w+56kaYSMOPD80&>Z*GtLDw0hyTHsHZLsO(Wk4p6*`Q!J+#D!uz2O z&m_vuM81yJziR=-cSmay2MWT9tLumq<9`GJXK(~gh=sRUYBvNoEcg> zekfSSPw}lpD{*c-A1~YE#@BjB_>94l3Xctu!0BIWVb&CRu+HpC%vwGfGt_dJvNW6o zJ`__f>(-e7msfNT4vdX&0Y%~T;`sIO|J!@kkBq}X?B2nRH(}N=KCq+NBQG}Z!Uu`Z z7rv-WniRG?)seF2s7Tm?RmEX+Jw^KJD-s{FX8d%ns-XPs+)OYk2A~swbWszJj6mp{ z>=5KSW#DkIM1>%_bBb%R7@t&MCSnQVlyUB0W{qr2^ReVxNvn`(`^6xdfwo^q*F>Rh zUQ-&{{wK1U$c!PH(pj|qQCgE3MB5lRnP^)EwurVr1i!iQTSB*2PHGZuzmS!0dvTXu z)zoUH)-d7rR$uHP1?0fjf3OGn_eh(Q?fMp1H1(Cszo2WP+?m&u=FWd2tBJU?Xo_XR z{bQEaNrigj$sY3F3ER5+9K_>ExrRHdahgY$yAN+ICfE~y; zz|L9@065Pc=Wljeb1vDM1k2g;N5a6g1x$O%&9N)NR4}3O38(sY@viL9(yoPzC&T#b zI9=c=>|}X*-PA$tto?k8(;|V&9>*@729lM zSKf{m%O<@Ytx*1cH~6o_OQ4$qb3xtWn{6*rs@!jQ9f)O15;?9{l{rPgMeA#P9H8#=Xz=DhAkm7BSLrWH+nWI{_g zyJkuShmh&stKKnlUU#F4oQd7Ce^bLHXSeJtj+7JVh98;0s#15$KCLR4Q_gSik0m|& zV0fO4HnZjIEak__wqeji?TYDsDSm{-I8e%YBtm(z)I9pTt>ILKh7^hlX{f`4;$A2^ z9Ksu%rqso5%xHc(-~eVqB{1JdGorF!GXSk@rhg54cGRL4o%$Bdazi63QrZ- zEuoFDnR?xgc9iK{P9Y@5?x$u}`N+g+XcxZq^(ee-Z|lo{-3@PW>aLezo=CW$H@lKv zcT-)UkJ!14vv^D6NRC5oZ;eNEk5$#!+T1og+9Wx6@3!&gC~?Owyp46a@GE7yq;0H? zj+8yaL?|9s1ygI}nTmRf?5MAZUS!;TL;&n{E%ywx)Jqzx+cnhc};2lyJ#5?sN}+zw1kPKbk=_lp*7h>{P#f6GRuFttup<$ z`gXC+5n30taB%@RQ76+zo||}&3~i90EEYYgjg6Ul-IKBU&v@{_lIV-X@b#1E%3Ta8 z3OfaAt=D~;wu^B&xGCSoxB{=(E(W{uwhCC%;B6JSv7mfpNU{OYO@Wl4Zt-1=UZvVr zr5d~PRAVsGQ>{_F9}?uWM~1i?I2#zbw1nKdKu}NYT|6H4AE-x$nmdMzf$+0JC`xTz za8dsuA-;1_tKzQWYUq-@jf){A!8R_g1$)%pxDc<~KeHQJzD2&MuX#;#XnaghEWFv) z<3J}TJPzcG+1nPn8RaLZ`JA4oN)~4ErA2ykE^{R{6+;$t;r!a2vAJ9yE;ez?!qXCV zEY@aqtK6{gnq@uVqr0tozv7T^i)LcG;;m|s8bGbZ-dU2t@5viK5|DYq%OO<08WdeI6$!s_%k#g80&WyuIjU-l!n)afB*$4q^#;YptPvSmlOw^IvpXTpB1r?aJMs4LG#9Ce`k?8G zZpkm@gEp5puin`l>TAM-HUndQ!=wE@%xpc(Mw?f3%Uuj{c$L0=7v9oXfgTBNsO+7z zrE#(&WzR+to{3e#G#uH|sHezz^%c?Uk(xE++Du&ROFP@3T_?sCwY{v(AjjcrXZ~k$OX&%wc49*@%CqC19HEA%C9Pa?p zjGd3?(KS)znAem>j$cYv6PYPQQ!H{^<1?+d({|n`4<=>C}?Nmo(wgmd)kvoCr(hKkYI8anj0Ub0)cdshb^NqHCgD zme-W#vfm}EiMXt2ieJBAU|K`DKjO7V&0qV|7+v5HXxHjM7{w`jz zEpB$@?ISbttORfyMDFPqVExyJ5KT5TqE7jPQryAS8@>FXSCFT~0%cBqK zv0x?gh+ZaVCpWlpLzmd#J{@$VHn<0d#+%zmd-2^i;cad#fZFCZ3y5uYx1mH=@h9ja zlatx8t2u$8hv4Up{-7k-miP0(LUp&iliq`An!wulPI(VzOxWK3)=etEKFu&JqEOZ* zc&rRDTc2+@UB@=WH&TTsZi`3shRyLyDG(nKlQ=%oTx+9TcX0Ja`4Lo0XJWg2)uZhp znHGJY=14gMIs9}VRz>aan8f&aRl!^yB=!b6`98~-UrLl*PuPY~7b&BMK{K_Pt~;!_ z5Q}j()4M1?mu;YLvUPoCg{~A759zAIj^Y?7Iv(GW&*VpXNj?R*2};J5Z5sqU+)6CE zYlyb^(Osvv*GC0B-CDZm?1KDxdBJg0PfR!H4me-4yVXM6n?kjva&A3}wv3hb89 z_WGP&o*}qGZ=fb*bX9yG=51&nzTrNMm+fu1U#B*`0;8pB+dUv+ZoZ!%ibnJn{Ekkq z{CXcSpqR5MFHNU5iHSF4KaH9$$x5jW`dxSj{e!}rR9G&J%wMRvRZS$jvYeSIk{-8BXFZ_%WcM8#N{LapmkIcfo(hT*B^I z6WB=NED&;NMCiJTcSC6%53zY1H(8!hd+}6I`7d>jW$DO!p>srxm-`7ODGEWOnh15b zr@`hXcru60+wh9PW_INfT^3P!MAuzLC2W>imdd>#`wr?Bhs|S3wQ;2yyYf_H49HWh zQ7pqDj45OkHk->?jkm&?;wHc(!82l20z5ZBUkW@I!vjN`*n7=HZioUDXhs3|{cjnS zbQOOE=FbDkH!BGSlK-X+kh~)0gG$&${;Id*6CRmTciX5~D_y>0nxj6cK^7ZULSn|f z02Q19rKy6i}Y!jLbA-ah@Y(kLL)oz^cHLB7m}yW@Q4()vAK> z!?P$_i`gYO;$M*sA{o>3Ks19RzJjia zIy%g2N*k27lhs59rD#gK9Pxd0-7~`xanUw8q715#Bfg7unLSS>^l{}RAvxl60_B^r ziNg^?BSP0zoC2k_A6fG7WwMm#4}$BKVuQ1KdSlV@X~GHpXu0wre-MJA8CN^ zf1r8}_%A$>Fff zMH3!#V!&R;6QPTh1Os_5s~vM+T=t}ZJl;%>@>V9GJmY>F=4r*t_f2zzq;<%`d4`zC zD=uSh(E+4)j$2?N)YB>f);o<#YV@5ltud6h(4OvyYP7e%tM^R6y(cOc&w+dAI#Tu; z9tmr(Dk|AEL;N#T1+&wEZNztMqBF^$Kly$;9eAcPS~wk`FrPMf@eC}+!F&=s8-C8g zlK+FPQ>#KJDn$wDq!-!ZWGFfwkR6j|a|!zjC``gWZU7d(oGR4!!cGC&fLtc*doC(GRbaP-VBaiV)gY$8ex_zYiTvJx@=HO|$q{_wlcT`)XA%`H0?`Z{cnDn+g#&p_X*lp0vYN;M z6-{Xu2cAyXJu^5Emvs{d%CHM@;K{7ZvirDl!jL#{w?O%3*6-lJ(1_4=6(5C`bRzoX zA4a0m_u$MK56L3ZU4I2Mw4 z1kPQcBpj4U1L&r5si1CgIQV>}+6$Cw?8;M(5e84SM)5ctX_y2>;UEvb96XqsHj#i3 zK^XxEPXMh*KsY=Ic(8A@**k7yLKGx1AqdVBf-WqqQE6B43NU^iGQ3quFl6`|uteR5 z$WKZ_hR|fuV$Ka8pTZ3tAsZg*CX|!Y9b4IoBJ+6K(x~ zDL$FZm+aeB(quQsf{VJNs^Ox1h4f`+c{2eRKcNOh4q*IuN6L;0B7qWCMWxne0&%yh zU@kbhjT=|w_?gTt@`UWf_c} zG{n{F9sJQ=y`Q5j7LF{a)mvM;xB-jtk>(+>F~(H1ACq3f@5K?wesw;Rx&VKcE#v>N zTk;CBB_zvyDTrpU%-iXjD3-}PW25!hP?}Xpn_#~l!E2j|2F>eW!PjJl8Fwk`sYoN4_1+hF* znk<(mFLR1&&eaK#1@PyBkwvtW`;O&oSA#2RCYnkhG7F0(mOGl{%Zq zQ~zk|c1?wDRMHgEO)u%iIZ$*v(V{k}M4s0{i4u8oYp{rEt!TsaBhOnMYw08;?LC!$ zhw@S6d7D$ZJ*rcY=WC!8H>EH`{@7F2{{V8C$n(Xh@Kk}_@`xc%?IqK*JVNM-y-rP> z@)+g^(GDDWz638jiadEclaQxjlF+K3gFGvWa>x$9+gXOCDHP}<-Y;n)&$Tj2305*2 zk>^*0Qz%O$Ab>@=~1?CG+NZ^t*u?m z$6_8?y!jTo^Jz7O#dlQu5~8zG=yyAshcn}G)OCwpVJw#MqsvqxlV_X zrz$iDd20QVkf*-gM4qZ(b2qdFCN z9s#A)L7po>E)#h!MTMsd?3PCid1^12p5+meH0*V1;*`kqEHnp4p8MlvN0BFQXA<%> zOcGl4bC736Q4ZPRcRS0lG=;=6)G5zrh4c+p(%9PEHar?U=eeR=e3knq?`YC4d<68F z!ef+~l6dG=N6MZuB7p!_1#@NO2xvV;#_KDhmkc*|G$WFysS0L>hZ>%ro&FoL$qrq` zL*>{C@=)=ky|mw=EEWzssHI(7yLb^6B*Rb+!AAOWqQerN;ko_(_RQ$_!&|i~QB^&T_uF=T+dGnS(f8xf8 zMr&a?f3>U)uI!o~rfZ@cl-HEzpnE@-$2fAuN?LnFQ`&RTBk7tSX$L(F)XQ>EZj?+1 zt-f7+<|#CnYvJOl;4K|X(|9gmL;VdBHw6Q^nT7hs$~;r6I!jS67emrdQ7fUo6a{du zmSWv~X;A-};E^2aZ^SDG_1Tq2&RMkXk#jdNlTcq~-k_VJ6G7eLP`{;A8&ImTD^E4X z^E}lW#YZ6hOn~~l>$9Q0_81!KBg!VA{wg?UO})Bd=TPr8y#s^2Tk#DJ@O++}+)<8t zbAuu0BK`a-yNc_e5AulqP9?#J{(Ha-(@OM>2B#B!SI8#%x(Vgo)BJRqqevFAaAiem zu|a!I2ax_n!BP{MzM~;9eex3*&h3)vyA85l-Jtub8tN|#wq+)${yWs5$f5f0cchX6 zDy)ivQ)UkRHdVo#aP$nU@4A|tUP-L)3E5%xXOuO=`89QtS@%ToX)MOU`UeF)S1KL( z)z5pcFT)FwgSD&N44NIvec&6cwH-uvu#q|}@i-Vgfn&HPP zRYCdH*&b&H{gz<());abzWJlQif>gW3&$ALDz434^kOkS!+!)mcz+$)Ad-TPgJ=e( ze<58HML~H@X%uvVtR^yiMN=#aTH}NFchGg$;-J|dyvJCEUI52yw;EED_N)% z1>UHpG~Iz|EcCyidd@<>k5`O^vMUcbvgpPGj_wL4S*T1_KsS}r1$B$F&|fOmex+1n zSDtDNgLtYnidW%aBo8}xt^9uGke&^~>N`k@94??@^!q24dTp2LBO!>~0alef`wc^wMnINr09_?hi zMpmjL_mLpXx^RANQ*SQicdj|TJ1EBg&nQp>h%B%_tv5lrL~fw+C!0qPz)8se>p>kjp%Kd^IXORbaP-5ao1# z=Sn+BM^`n7DX^cZSx_>`H(<;8Y2#76Y>!Fm?_BYgRpLms7Ag`cS2ztJ$?sel7IfE0 z1Fo<_oi$T7S8+DtB?=p>%JvTuZ{ImE*x$1b|JOfCZ2Y(jA13~Ya0q3gYg0(%y^fSU z2SiW?Rt1w^ghbX;`}*k_5OkwK788u z{%)_tKT$>rM+ekOtPNWH7>n^);~DaluR4`)3?*`$u}H!>GrYGfjSW+AhlSJRDPghX z$$#2Sewb`BNvi$`q8T)D?_>BBEk~q1whD?y@|x1(?!(AxB12d-#WG(F8o83LduC`P zh6N^#lwljv$mO7*8=WNdapjaEY2-uPC7xj()7?uP9FF>F!pY&Ml7=N)a4~Cgk$Q4? z3tbcCrM#vzFWo^_6Y)~fly<%Jd34>6yq7+Qb(u3iJR5wf*C9~FRq#h}Yi^iKFRi{^ zF!RvNu7!*DfzNj$$Krv!{+inc8BKbzph&{z#=^~V$oGQ{Mfjfkl4B_f&{?g!x_8om z_(#CuI1s-RuNV+#R~~g{fwxDU-9QUF2w!q6Q)AFg5rd#^aUlK~rP_T;HFo8x#yFa% zTBCS0t_S4T+<2tru<%qkKw@yj!2||JOdmWFJTP?40KUyQ@F6#p2_6ULGO=&C;?b_UIVPNzPdlE+4uooVKV{8A9buf zPSV1k0~{%Pt&fC1SQUkZ%=C7#s$kYSvdzaEsV*g{bGm??5H^(M!Z|QS$hFmrW3d>A zkT3N-R4N@go%tg)&%6tAbqyXq^V=X*C- zGoyx=sS3(Z&c^W9b5#$F@8=H{KG*v{*bDHz$~57yfLegHS&MtH7$1!vK@TYwCfKhd z*hfn6K^NrT{1zEwEE4~;+w~2yT_jn&A4D_w_YdisD6+_FN(-%jM^+OVt)eLwSzKgT zRtFL4>uU06+nkFUe0`BKj5Al%Vv7gKml*L56w@sEjWt~LO$IKbGGySpfr@VMk@Fg`qY{OqsOHQvy%!sV59n8pITWlS-t;CF6#yxLai5ab` zx{57e?>x-7Nl7rw_-SZ*-2=C2n9+ErbD4x04FQ`jYSpJ7%4j9>=%OJfC(5<*mF(@F zx>a;hm6%EwwN{mMQQxZQqN>ixi*$cv&_z|)Owh$wDrXlOCM7I???^doaro#hRz)S# zW}a}Xs$kYSat>WITuKJhG+i_W?D+6K%5vc}f})Gs>czXUm>6AD9x9bpbW#6eYxS`T zt*GQCq?KNNi(8=Ry78Mfqoj+IP@1HR+y*SNd5O^9k8C=91ox|srF3GD_QkXBp?s7s ze%~qG9=NG=@jFn88{ntV#s2}hOuG0bRCubuZh1uLqV|vuuX2zlVOLWVqNIy|#>R8H z_+`B87+vIztE7vD4ZIaQl`c|c7*K`Z=B%Q!(K6*tqKj)~OyQM2d+Fk%m-F6NhDchh zk8-5!F(2U-SQSimkt4VD6gj!RB6_}elQc7GI9OFM{dCcA=(IDpJV~>^W5xkc+*K*M zD2Iwi7sU_u0(`zQO*kx|7GQ1G;wf0nu0$8NknJL=(?$@@po=@`nkc%+Yf7Vw&mpUc zj8@T<_UYnF>Dp(CF5;?h(nT4SAzi$Mb(=kjCG>OU3?k{`(*xz3!Hq)~LxV%tRV;N#D!53d+qWLF-- zWATcI@Z5z<(nXnCfNm=33hEZ8i(gZ!eO;->t~}KkknmJ%6gS|2qv;}FR-7}8G+pE( z)z9)HVk77xrozEPj60e;wl+sMZQ0s8WT8bA2%cc%0`pM7<%$`VbQM1YGv`6Y2b2VZ zieG>h*M*8J=(CHwjo3tH`0{vud*tAvbGMBXwbJD~rfs*@)*vywD56B4kYPY;@x&aaH=v@I3b`op*C}I3KrvV!hLLilxn(v zw)I(Cp%0ayg!Iu%Xt5s@9go3|PO-JbgXcj}5)bmGv(RLJp}ZfObQ%wCa?F&A2e+eq z6b}wKrP~8E6%RI{lsb5D4CFHL;FYNGRDs9biT4o5)^#9BV~{D$Wn||!4wyPg7p-+v%VsFig$A>GbVVw zs-XPvEDB<6uk}FS-p*j*Q@Zn4dxia?GDLXAr&d^P#NrEBjE?|MVUOAyW5;^*J~pmc zY~Vb1zn3T}{x~zcL539z`M>P8{*Y`diHp7uq8V85cXUk@7UVUhh0ePj&!>1f%9F;c zXo`geYdmy+AYFGYD46{UP+aLvBq$>>M1uQ)f^NW((8rbYheU$k;Vxl4biahVG%gOp zi7hiPz@Mdy@_*PKdOB%TQu~uxbCVyqKaZ}7@=#t=nulINRufrKL{n_jDVyrxRvn66 zz<#t%xs9&5mVYjlM`E!bSqMNLho!u8E9)+Mz$Wx>rgv7~E*`cIP32m+crEyP`^gfI z$S2D#Dil+vU}yEZ%o4!A7ps7u09LYTDGK~oEv>pg(%AHyz{NP5eluP%HqEX)0LP&Zgg^RC}*dja_-FJ%EVRQ>{_V$C)3q^uWnio-eEf*y(`j zw5*;y^NNg?pwi1hBa%uN!vi*!MhOy2qlC+)bE@eoCc(yeVEUsU=}*A zO{pUUp|gS&lKP%~PiMR96v>tY`)#^KcaI$kLi_5N;aba;hER307D zNH3_xPry0i!57W>rM)GpJ`&WFsG7H)MJhiN{^v(3okrECICj#}eA-FYC!>56RiERO zZV%K{RDBj2X{#-39`=YmCw~#hWuod6QQ@fqyCsCGXX7dcsW)~qHT6kaeHAvF)9T0L zWqY)Gy{2F2_LaC=jtzH7)4+OdttHWbbXbMMtYt%GP)nU#ReR1C@F>A4xxpt@1F!Kv z^zdbM7sk^!h~8F4NLq$p;7BELrMpaOLY<2~* zj*EJTdLMg`%GK5Vv%R>!U6~^vQfpHd|A@u-kopLE7%>%{r{JXoA8723Mq%-)Mf?`o zKKW0(U6W+HNE~!0h-Luk&(SqexR2MAhWoxrRuc)7MN@3^8J5){f&zYv#Lu=le@@q4 z3;C(1;CX+Fsg=ZjxTc#>TE<)mrGEmyxuHcuKUdBg5=wtCP`(+uh)G611s@t5x~}4C zD6IpLCl7BX%Ojl7+MO#zU^@G!JQh=rf$>B{llyW_DGG#5%~`rz(&%4frKEq$@ruzu zcI6>97Lj;}&0U@({gbHz=%&)Apl)&ccdAnDG^HB5@>F9u!BeeK{3qlqC1yTx`iG&H zgZ~m!C6fOk3M2Sm^g(n!eQeq?+T1aG4ZLC#zN9MGhUhczTxOn-aT#DVwT`wjQ1bFv=YAJtqC-l*y5J`-f{dgbgnWbpZpR8mTURZ;1&nF;Jv z70g;kw)tS>5q96DU`K<0t1K5z8Yo7ntzNtui*XpCBG+nkNo51S*jl}{LMw_B zhP2X4Z!rQz$D_5#Lm8gkB`LfEN|U6J+kiziqeB1bCxst%ETz+cG*b9!l#i0a`<&A4 zftyMSKMAF{;k+4c$4KEZ{!fgK))CYAxTo*X zY0td-a@DTtam4-H!7Eo_{|9>kK7q7-qeU&i+N{MYEM`|?iRY2+A{o;;AezAvub^w9 zSR$_}jU{d+tBH(O(UkUC;y7LVOtC~<^-Y#2qcUWPBdpu(Ni3nCD`ybN63+^hZw5CG zOAHMTU03mYXh}z+Qyv1bXWpw8ICYlrlheJ4VnhbhItj8E{C{=qlS>w*D9}4KgXvC6 zBa80=zu@Nz--}m_EV3&P-?4bb!*}k&CCQ>pEkHMwbOm*blf{oI)$UTNu`5qC1|&Sy z8bvP-xX3f_eBoNj``TfP$>|kI7ZI@$bTRr_d9K-}Ejx$c(4z$xQG`5R$V6PWm{n0% z@i{Pd9$NgYl3-}@M{S_RitpEpXoEGAlSTUb_1^t9Sk#J7PKtKdF&7I~~}jiS)Fq+)f=gOupYv8V)CWg+6bn4PJC%F%C;q?`e>} zsS+92X(w!*j<3*(N@PMh>7}-K2z(?StIpC|83u68t{BZg~ z;u^D&4Q954r0qWMSL<|wnq{1`}JnaDj{OLAsQjBBM%IjAOYBdw;iA;SVaKgm)RKRahIe_*X2($BDbv^Yfo0+e)IR z`#>}UF@BS-i9(FLrnF%DCuB8|u`8NlA;ucd&;OCGyB1)~etsTf0TVCESPk*wL-3m$ zk|gwT}8x>f6Qh^P#C+ z3m4A=U++Xh#iMriv3eV5c*~o}xaP)6%@W4vgAGNjo=d%@C}f~&q1C;UM!jDI4#%nY zEqKMKH@ouCGK;c3wCqM!l6uQLSY^imID)#xsrTP1)n21iV^^MP44QeWHHsfYG9LR_ zJ&(v%vV6jU-l-&jWZuYr3FcjS%ys8Te=mNtKIcR&mvO0gUR7Pi9boM|?EMxc!Lau) z+rZvwCu(^^IrmOFQELd;;9ILc{Ra`X5}D+ixdKZYRQAgL)B*ObPSkFYB__jfrB&sL zTBG5C23Swp>;9Y4>(fxln`0Vv8p&5ucyd!>MNp`12=;+ z+4yEv!So-vHT=C}^G0BtI4iVqu9hnx7ij+ndwqVnGEF#Ypa{7(YwT# zvCU^#R>vTUMus2mzn`wX7LTm)a6bkOCNY;m9TM{|!f$TulF-kUGmIqWZ(!xy#C&hD zq8KK1-bAsG-64Hd{L6OL-;=f_oA5iX)5!dJ^CVU-=dYHv!IfRpqQ~KavqvN}8BX6c18|&R}19ZGOa%!C2?2_}u!n=y+fob!Q`E!*7L*@@bE9<_Bc6rq| z(pcL#EN@hNAWh$DV{)x-`Ic#X=tNbY49K+vrm^f_9iZZ8n1v+(ais;I@SfNqH+2)^ z8(LM1e``Zm^Y493EoTCK|Fd%19Q6GWN6HS4B2f!gMUfseOMSPhV754?O}dY&_81v? zrrc_Wre9FT3FoO4-PVRJK99vXx$|D8|49w)Kiax{yFwQ#XAbG2m%`%hP;@+&dQ7E- zCC&aWlp|?2Z!?Q8-XS#i1bH;}EH$M`czp!+5r@~m!DhDyuh+5zplr3FuyuHG z(yaQ7$`NF(YCP{?g*s?jHc5IQg{D`V6O2(Lyy1ZrZ2@Wa7eLPJ|94^LyxJLpX{rA? zj#SbjidDgk6?sW)Jw>jluZW(m-F(Mf%}-SoOzTVInVYaP6{)mYOGMn#JAA!Fk3G3O znt!qv#{t#u@Ip;3j@o8L3yblA@?$E84Aao2aQi7CF|61<4v1SUZjvoj|F)a=JhFKt zjC&4qj@OhnB5xzBiG;PHDHe=dY#LWD_X-@V-))1wi>|*Gj$0UWOd;9vwSn>jCuHP{VMF6Y*HxSdrL`GE@z{8A;l+j5!NnFYgPp(e6ru zLAQsY^>v}!32D%cHb4jb&KIxGF;A(u;ag{Df5N%1q$qG(-#}C7zgaJ z7mKjz$nbj3ltMq*di7W6MddLez4S6%oB&0~k~3xey(VjC1E!ZBe67UDc! zG{6sWI?ei?>zGOh|7oo6Z%{tU`fhPbw+C=4>-%dcr4H+R706|>zUxroDb_6^);FtH zJ%~QAx2d@iUGb9;fc^uTf%CuX@v=Sscco?!V*07ZfW|cCuUMK1UYtDH`K9=?qQePg z(`9r=al&;e<M5y2xuvql-t8)kKD_Xi6vO;>mRVGe;LOC@|@w4BC(`p1`^;yRR#!6iFBV z40ThnkC=fZT?~yAU03lTD6KQmD-V$-%cE1)J@vNOIW;k|Nc|%?8}aZc_t|+V3h|bj z({x{@!N_57KMo^D@QT4mcI6R27R-3W&t1?YjFbro=%%u>pl)#(d81P8CZ!s?@>FB| z!c(nLJO;-drc?xs(#`p!*ThfE$R zo2o(HxzP9yut@gOSf-jNFquS3m8h4-I&D_-yi(p`kh&wP8Ked{qO6%9kasH|&moYX zair{pJ`w|ARaBO3W(^-z70gZtw%KF!ytU&@GG|D>-_9hyt&A4VBq;8v4PJZ;i*fQB z_R?5$Oi5M!A8eg|R-qG>-Gp?~t8MW?C^{asMPC(T+gzS5{5cdRi6b`vi(@`4)SrIh zxcjO0@{~&)_d)q6aoo=--5#*1#Bnbug^IdkU!Qt3$Ym18htcp;1$Ik_I8NtFV{HfN z=&FW0oy>;XjYFX(vc?tIW1Kb4!^`$qBY$bEZdo;Hlxv~4JZs9hj;4&!5=@?gH#vM! zHdhh@iZAxL>#tjO=mB|V26=!c^oYE5!!CSa@hQSFl%%cL9_uNx zwZ0%uSqriMbmlUYS0FZi*@db&K=zrzzE*u2f@Jo@$J>d8##vf5epmaR9-~vBMl%o(d2s zR?e9*0n1MTwSwn(M@9#(VQ-o3YxNEdHQ}bd(Wd*_S(FYQ=oQlQwg_psVA3u^uUmar zu?;#SkEZu22}aZRZHK0xPM`4=&6lkgjptnbH1aunLeeJex;5qJr)?IBYm-PNhyvCR zUCLc-4R^3L%t1PU-#0`{uH^7>b%Dr7-pLo20df&-q6O)7Usgl z-*QZri~fIv@=^5v6Q^{0^rxc#A3!N?N@8V8i&(bQH_`f~l{ozty zZV25j7Wc~VNd4Px=r*#UB+}aoq8Zx_<8)0FzU4Kg;oBFG)kMa;Xo`hz_X*fo$35x| z3+`>Uc_(OXYHdC|TJBrD-XP~@X7J4!Wn<*CNdj;C6qcs`C+ z%oqbqScH@-#T37iqf>_t=VzNFCuTIXGn|+o{kG0mXK-RJ-3BMNs_!a(4jp8Mmi8oQ zPEzO}_$r8>DhbAkm(3t2=DOG6#D=8JiFIpc5RGYVYI0(u0C&n>+o@MZc$`?3oXv@~ zy6K!)%XkTmDkefW=gCV&&CRdyfC7OkE;%DJy=Q%NNb~-0E%oGhO zvN>@|p&`h{<(vgx8cK1{t@0By97r@;+vOihj}xzzfl<7=+0KdoQ8<#aPZB47uOnqo zED>geRmC}RJw@)VuZUh<+_ct=Z{DgZm_bf#jDWO5Y9hZ?r(=u)qT@2|(@C6IjAH&B zp|sA1**umDaN@PqYwIJxiH(W#5t?~f0`ev?r2Pb>k`qf&V6keF)IFTWiJt~e%Q^AW z@rrR`cIClX7G8NU)?H8~Czg2?=%!N9pl)$a+^E=Y1Lw$3$U1NAirX+*x2yctjGaSpRH~Wc zx}~_0=A~da^=(AK&^9SEe2*jLL?&V2j8#zp#7xNEqAHm41IEVBr`B^&Npb6n+v(dUl=Z{u z8wH|u&lMlXVjK{CIO*}S85MWg+J3o0TPoQMX{%$E;tf!AJW|Hp*}$8r-89{qOeB@Q zAIg?gnp=tmg>MwC@q@xnQ|X^NcFU#G52AdON6`m@vTS8QN?yuXph0n~b2S6yq$9J3@0Ol2p`bTK5_89ezfdh)hph*YShEVWS zv$bq%Vm(@G9MeHTh`Sl;Is950QBoJ`obxNm8MLC_B#^zLdvIWEd<&=x=c322hyUN+ zvwmcJV0fr^aN|w=@G#@}z>a2*yx6=8ACO*!j+%Wy`ZPz%p1UI88>@NY!2xk?#399B_*itealGZy1h@hj9RX!Qmc z|0Hbg&}I#F-sv(8$F0Xn%a9~>1Vl41`U~iqD2&c)O2g^`$-ACUkz~R3|a|AS>T~c%VzKb!v@ME1PhCt4H>b z0&)`2f3S!9r%0=l?YfsMn)(Wu`{|k}r{*=KIraC+Y9dZ8nqrx7|Cpt93Zfn)*hAhs zVO#fiv@&TvT^xQ8cq6_qM!pheUnkxnA0424`B$MX+$eo!{zj)cdpyAoRGdLTbs?`Q zWIE}`PF)9+by?|E@~d=~%DPlo*jdYMR+iiBwB|UnHAS`M?CB$6T-pMrz2rXJm4M@6 zKI8LE_3h$yJ)t#T3m3(&N(Z zW?tRuyNVm3tIQnQUYgA54{;_w337vyVB2`dwzG|w`NkmL_&QI57?Sqpoo>wx9)8!_ z)ZDi-3UDX(4I{W%PsbaBRLR*}bz0r@CqcA~$KsSC4rtSTS-m;uy)j4?Iujdn?^Rd9a4^_gaf#1!7+xr2)Ebg@a`QQ5o!*&v5FVk$Z06hGONO8#fLM*xoK0 z;s0>0WLjJVGa+=3Deo+-2*+?&ME`{0c49-Y(m40BQ4Pr*E(sW{L(C zdS5N^jX^1ehWI^~a~61MsFaSxdz)mT z*9OT!8Gm3z++l|j+m$`T0S^^Q=)NenVKM&J*oE>d1Zrn2G#t|gEsK(z9kByt`Q{uT zZnVI+{I-Eu!sS10Tii(6g5;CegJ{NP*h}b|D0IqeN}Cq`j;toKZy=gtnQt%8zB+zV z8wU1GwrSr%YhngD$>h6BzIQ0(QzQh(=*Qd&lhG+|g}sgSq&O+s9SvZFA((^IWcycSoS#HXUTJ2)FB`Q(M%GhsUe#Gc8j*q+H~ z@3ot@z>Dwu@Kho^1l8Yfy*CTxg1aRkH&4mI7D<1TCiW~TRltty!H&Ta2$9G~G~az7wT#?H6yP<9Nb_0&Fw?t|hVuo!0_Yw@p8pxm|KreJ~63q%wAK&jKa7XR)T zOK06_yB1$Z`RK02e>kPvqd9fg;;T?fon4CuKrVCF;xnl5RDs@gy*-M}ut(vpcJbW__fGN5kGC%B9f`}*2VZD`#dOWB)Y*TKMo8Iz z*c6z;LRBoJ?l!r^nTX%3C=!g~u#pTzw{nJDRz<3k-O zdzOf-`B+taZ=s$d$JbXxFA{E+Xa*m9s|w05&gRHEe;G`M@kHsK1S3Ob{6CSIfor1+eMus%%-*)?-Mz){ite1gk#$G`` zT@%Gwc};1Yb(E|oGR#F&EY5l`VQU?~s9l5D?Y6o9AFW+2_PSi|A5_litAW;bzv=_Kca}8Vz?oKo%cN;P)nsm92Pr&^=98pj|ec!9&|FuGStV7U@7oC8*K(n1ocGL%Rl zRXm#*JcbSmnn<;8u-Q9mK~#j16x?JB+v9gzoC|5HgYuzFfMVD;n-u*w?E z(dtR*XjMzua8H0BhGFk*Ogh`Cgc4~ zDLYJEsVo}KiYV-=d!tx^#W>j2-YC$+foE)yUv2Hqtk90i*+SasWxiMpMaM(O6*)a2 z;p-EjNC{uLL0A~Ir)Y#9Ms*s#UhbGnCogI6^(vH)!q;axrQ4%B6~1nQQtH6h0^~B` z>v~jps=#gu!PmL6Tte1{9Z$`n62U$fO~DcDrFhvMg6(sG3|k2kA#BB}sX^?OIYTkL z1bcXiRqo(eX%NL4i4OxjE4VO+tC?d+_O-%ql$nx{>>C{^d+vxt23S=b$<|ZkpX)24 z7Y{eHG((gLRYCcU*&mOGUD`vl2L)#W8K6XdwU_!&E4zgQ5o)Q|HZMMf#mq)L`)#uQ zB!c@75Y51|Kcj1+@GP$>EgAR&Sxscfi>6FJo_*BWeEE~pm@^?gl6V%w78B3PuoCg? zVo=+So)Ubca_W+J_N&a5;>K|BY-r%=x{8-UX`PF)c_24g9-p!JDo8t*=VF#+yh02& zKg+0uwNey-sG2@?FQ&oT^T07VtX+p!4A!zMkBG83%Oj%hk}6@XOrAhDm172Vi^JM0 zlxiE4YV68WjjGQjwL@`NXH#5e0nT#I$Yr@&)+V~TMdep!GJ;h4 z)aSao2!D<~7rm_mi1*5P(RDblQW1CzUyd^wi-+aVr!Z4`3gk-#-!+e*y}YsF)jw1#vGIP4R=c zPNU-gbc~jZihqFeQB?dRr*wNNNJYgDKq+prW1ba>z0v>IAeV`XzlI7=71%8yR6J+b zVMr;_6Q~(jvg6&)!Ewyo^y_G*_So@wkQi-Y>uMH3PFaaHOdiM|vcw7>renMj4qcWe zle~d?ZU3|5vm;gG90ScqqQ8NYDT^fqA;&sW_RJHZPFPhOG}lw)jQWb`1<1{c&1mQ_ zRYCd7IhZC;p6>DI!-&~L1{CByc0_TBGHp2Wp&|<1EycxH%xq-Q{bc(|-uNsK&0x`^ zbWIeC<~60U=$pxEBC~>M%Jj47SJK)&k}MkIB9leSxD{FSt*oo<2{yquDrYyzqBjM~ zH^V=NMTZ8SuB$j0O6zne&*R0(^3-|@wt~}tf%7+uBM%Xd@25MJ%vy>97gp1(?(H;Y z{W++fGwaXe6=T-y$^*kJdh@`ryE;o|Eweb#O(nlU-Qvvpn@Y8BDb?7Ory9dbo@$Na zc{p-0Lrr7WER1%@b)Ec{Rc zwdX=}u0q$q*IoZuNibTyt{qx^N(Qaw&E}w5oK;RaHfV_1j9Ry&{N&68pIVhVc-oM* z=IYCsCv|{IuMZcSN2Ilu0HfC?q^erL&QgtLSqxftTQ!3|B;2Bz;Lk^_vBy%rH~3Kq+<5@^v7WiIz8`!c(kULTGsoEuRqIVBb^Isf5WdMx$_; zd=*}{2a~tC_=m5Hi5$6d5!Lv3W8VB2o_##B#T9UXu{4XqpTu$GtyvY#F;0Ak@E>KU zBu@NpN6MZ?B18zQigV(6iriga5xtPOnW!1HyjfLHPTz;A@qu*t$SPc5dd6O{lJ<7U zm~@s~drM_sE&kf_#r;^!Y(&97Bim2nz8`^T1`7TIT@!_Z zc};0q!s4}jxslUF(!du@nSK;}D6QQiiGneXF;TFLGZ6(J1ZunCRDy3*PGAxRKfqkc z=_AeE{lat;Jc*RIByYg@<3%fj=>aMTYclf4WnN)#pD*X)V7AL)1m1=!THFo8x#^8;o zTBBHm0~2$_D$>i>We4(RCYdDPWjK@IyZGjcFyD>7o)<;JTvvzy%JtvOn^jR)F$$K? zl($%{?ucp@yT4o3OiE^7vAD^P;@-PJ0{KM@~rNcp)d(lxdB*6^9G^5AJTLhsQ%b7R4!2cEy_oM>Vr<{ z_JBqNNYTSYU?AZYSvkSjAcO^PV_R-l>94UJuh#*m{Dvm_!DYCA< zBJsgvh7ikD1?4@nE(Uhp*yEo2Is;m+$KK!V<#>}aN;pKImSb(uVj~vglg_i+8*Ho% z&ZqSD*G0aY zWFzrq!OFMa^t^6$2Sw>-WfN zBHk*RVtMNVWz&GC@*ize{)Vo(mX|J-UW)z5;)UAY`3u%v8Q#f_lIfk*w~JRYhvs@M zTpSJBb|UrS@%?1kT@}WuQ`B=}DQ8jrF~TAJ)UuM6OHoJ@)Jm*-Cykb`JWtZ{9=u|- zoLzZHn#JQDk`Co9NXuo$47w?h5Y#PB%g7|$C zVkZD&w~+__dXzz=siP15giOr;Zqv==1*JIY5%`sba}?E#!h z(mxBO)FJ8L0J%(({xMW|s=#guk@Q);>OuH{y-m%H=!(eGe~RtrJpC@bY>%g3Y2r7w zt|bt4YW>qx{o>RC7g$9tY{;r}*t%?b3R@rZ*Hyp##*XILSnu|x0nf!>dM@U_tmu|( zZfte;;K11UMwvCszbg*Ec^Ag*i`H?cQI<>EDBs7CvS*73@4%|!xV@et-SrjGONE>B znYev7RY7^*EDfZ6@Ak0!Qg7VLh$HZey@H>j3>1zms1;lrw>TM#@zMLm9UX@PRz73? zym`x?KXKzkqqVTyPt_m>wz$c{a*M@H(kklTwk<9sZ9#I)bs(BS;h#a*L~%`CQySOY zPF52c=b|aL0ZrrT$VEZ;#qxLCpx4v&*P@%tEh zTgpA*xfTwWCJM@}KOO45jnZG{Z*&^)U9tfM)qA|AfT4)(GTVATCo4Dc-n8%4Wt()f zGU;Z=r1PI*$7aqHQ*Bavib)u&wt#6j`IN$yuy(?n$LFN#+r_?1Xrb4_#s9(V+L=_H z=Yx~w(J4W`+I^W*ksZSl59?g;9vSM0#kL#co}<9)j)wml^9p8^xYHp;A-PmRneMB! zU6@nBbNMq1r{NXbg<)6TRtL-6yseIyZj!cuZVE*Ob&K!9tW~O=t5joGo@xx%da5;w zZ5Rt6KcaSFSeEKMu8_{0$ekFr6+!I8;OleKc4F9zbF2*+lug@^VY2SNOueeRiYuTi z^0sH5swCL<%$9bxXHL!9o?#8=n>6ArHnGQ0M2xkC0}?G~Z`J6Ql%JWY3{&Y+Z^K55 zJJamB9ePjtQzPZ(Zr~_IVH@YXBmku(Tnwd~X6@+c-mBixIW*F$nb_9(8#P{Xwsl_S zNZAocBv!_%D0FG!mA_II%qi!$_jy)jdY%jjv*qld_^ryeVKPJQ`RINr-h#zAdp`Ja zS24S-!R=Z-IQRxb^mkjsf3DDwVn-njbtq8W1VzU~%GgVPqBAysJXv;npx$h&~MQod{gMtc-h{j(0~VrD_?aU8Aq`-RqqmAl{r;L<{=+>2VZP1 zjiWX{i1*ZN$gC>q35{KNV`$&=x#K9?By9{WbENDkBoZ)SRq>6XdWtNsuZUhn+%(jT zTppz=D8DyX!uI&Eao7LIlprIQWwGDw_5Uno!*GN`t^eBo#S^g@fA8pM3Az7&c~=4? zM{#A5&^0Eo0-=^Lm%T!?d%An3yVTP?^dTXF!^_%Xu*-&p zF+Q+lVekRQEZAP(fbFou>tmP8EcjRl3qChuy^dg4hFC-Fe|c49R#kRZ&$O&ziO{E} zI**?(e`fxCzbY#f#Fe*HY?f)PbL(UMZpLNSR$5uP&6G7oRH)xxlZ`OsHMue9!`5mN z2Dxa8#-InUUNEQRDTAq+?*|EV!@1e6L5S7rI^PQ)Bpex%J|ZGRH?r>2=Rk-4ZaV?V z$k4?x<%cOfN!kh)Hg3oSb$L^$w6S!VxnK6UzbfU*sc6~%5A!P9Kui)eP&)} zB}P*q1Ko&*J)_MIFGw8PEruGRv9Cezv}a%E#k65xFt5EA z>0`#t$C_{C(w&F|9}894_<`{LWxA?hoEx^zwc_-wtbD?!xV>0yHnd$$$h_ocB~2FH z4PB-%jNiZ57}fxP?*tTM?63}wu~w;Y>~Fee>)L2$+gZhF7A)J|WGXt@O>FmuLV&+~ zu>N!^Pm-z}3FZ?`6)lMRL}UG6{UrugX-UUAIPqx>fcZ)osg;}%9oN< z-3W#EdgzuoQgytqg0w9|hufw}Nuyo|2sn+J!R6>^)Gc97gbxFUhwFp!61N-%#OY@D zc`s&WiJ2meC+sBviVn0;r2}p?I5DK-@(i21gtaKJoVe57MlOA(NLcbwRWf(lnIaE& zu1K&>n47||?{SB!!2jp*>r}@M8eRjRvG+X`6QxJT z!KpUCumWIZ(w?KNDVWng*lV&er@SUNul~>0Y7&OHXv)|yr#&0^LMEpsW0KjI%qbj= zFmoy$K`^J2Nlnw=ap>>1(~o3MpW)`Ay$LefQ*BmQp|xs%JZrA!`lS5n_L^+g%4>47 z)(frGBv`9xie{~;Pqo=%uel>DO?j$~%{s4S-K7s5hyG1zo$ZqgUO#TG4>EfnBwHV& z4IAGTJnk=b^Y9dt|At%T*%tLSF`GxXsBLL`nU$z<<6UQQ_MuHZppO$eM+@YE7jOlL^a0XMO5qa_7ZRGgG{i|_Iz_> zF!m`J2rF67sA>yYznGLuBI^q~HHIEZlNkEKPLq~*DtLkSWkNO`7ypRL!MOO^Xt?;} z+H&!Qo%|u`r95Ra11}QlynCRlzpI;D1YWs2+b+_x`LD2Z45;-rK~XM@I_I2qwN#wd(%l5+h(7>l8yQf;PeheF~**GdSG)>yYMYtkGXC1uFqVhpGa??YLu>zJy&}B6oAyP z=M6u|l5_(5*_1COy}c9)@Ac3varE{$SZru}j6StZUXsDS6s_b8_Hnoz9fN%)C$kDW zt-N()`3XpBydD-GoQq@<8DROJ)iUhN+xhV-R!`oB^{%7`UpHNv_)&5ynrSvlYH1dN8`eC!#KQ;4&-iz*PqZaJ#VsKc?zAJMa@+F?N7mMYiB$fV2rz0MeRVfLqZEygv|->BxZJsvL|A*fAP1psyVnfTnRa zK=1~MY=BCs(*c3D{+=#Q{jzpvK0sx_o&|r50V8l~s4NFcK&n8T0FFhD^{-?a_6&hi zQ)2}Jgxj+MvqBoiI8-MG4pqLAYc$gMMq<{`7sCY`b?bHuUmRoPa&nANmCdsb`y+>` z3dV&|>de5=ZEZ!mC=Mz0?pmjCiT7P>+(3Y-_huAha04?!mN)X@|NP_4$R)qd1f zx}c3pHku$#rC`PL4yK}$ou5QrMGi^H6I@8eNS=VVoOu!RgyK;zVyt41|}ZfGt?tc7_T~27Jqf0u91IHb!l#Ef21-V+&9Qt>Qs}F)Q4D zLmAvBx=OXqi86T5$fXa)1i~CuB~u2SDe_q7iUc#Txl;)*(R)+{{sa5F-xye2gf{3= z!$~g6p*#9Y_l#oL8r%}x4iG#QjgP!y5rdmd~cJc}Oai4L0k)f-&gYnh* zY~|l2Ix@QQx8)CHR@$Shehg4|;|~tVNd8~~t{8v7t|FUsHp50X>E@`E{DE|6NH^u+ z#p;&KAM`5KW-Ha$RYWzmsfno8=S?DPeYj?^`~l3!AQ0NSaaIO_?XEjv5SlxO%hf?Q z27#w_W)QTZ7kEb!l<63RBUBE?Al%eN27&A9!XSiF>I_1lZ5KCdLG6wVLMX$g>Se66 z$A&>rWwm7x0u_=Ogdh#MYN}|%(+UuFVh~g@G5*z4a^I<@l?U?z!!8>tvc9PkD+_u(R;c+`CuYvN$UfG90-@JZxPBo6K| zO4rArD{-)kO6i0+_&nuHNgUh`h4*^smVHYc1g0_i#fOLkbgOM1lf=QJXecKR{vMa3 zCk}W+l8J**Lqh|%EpZT^4ZAM>i?N)^#;C2eg*dn~q(@L-U%r&9R*RL;`9rz>y!_rk zuD?=LZ?|y`R$gAE!`8OkDBoXJ-(Ow6NZlJM4)xPlSvRu(ZC$=-N2ypv1-WLiSsp5` zlo$K)(PBRnW}=XFT8#hQ$fZvN38V$8N+vBjQ{?5&6$xg4b9)r_3Z7LJbdj_OjRyK4 zK%thWCtql*v8XnXu-6G?h_&`u(n5|bKD~pq5O?%dcG@OBaY&2M`?jxSTV(^Zys0QA zN?Kh1*Bpn;$1uMBeuz>?eD(x$fk>#mI5Slwl#Yt}TZivRD}2^BQx2!BDc+M?Zm-Gq z<`J*SEp&I9wVH&nE}EhNIKu=ua8A^>XS6gruov6)=;%Ep_5B%REwFxn22MrzT{-FW z;a$1)tPAxaoX zw}(EC66_XAk7mM@y3&GyqY zTw^AyAb}3)X1fL*jf*)_8MUYEcuZW(x-Er^!of*tsqK@C$C=}{3_)h^NpiMEN6c~d zheahXlcavY3+#iaBww5nFc}pW6w+BxJWq?gX_QuM8uMjsm87%s+jwAdta#6I1O90!OTW`r_LH4D7^ z3EXsX%Fn1AEKd2p(ZnfN*q?MpGes+TuyVQeY?G{=kB!qPSW3NTNXumB>R2bdW$3eq)Rdu5-g*}Ld{*EY^-;z;^m&wl zQ{b_?eUIq`3xsZ>SV?HLN{)tx z5;1?@81X?^^gO4rWiE->0)(nCf~2ycGH_#i9s6=aGo$3b{^CHbPVZT(P$#Ngc{z#Y zi*f@^@XgVm_Tw;TK^TF;#)(C%7`gO8pRhWks^laD%s+FC1%`Dx0Uf&=`jy(Sw6$ZK-r0KadoCSlx)rfBe`J}mJ$d(9nk zf8|ELRxhknbFh{B!@?g9PfEuO;mK#{H`D)c=-;+;h-9hnVdd-L$r)n3NHWpM?00FQ z;xFAm|JRDDwE=(T8o7ofd*05S1-VY>Grlzfz-w|d&_k`&Bp9e@%IFOAczex%Z38`) z)JtWc9F&v>+CI4;r{m`GAhWlHjB5<`Puxj=+&|Lplqsru+^^7VXSh`i>gdj}Eqg7q z5<{$(*q~e7*y{pW8fUMIxMJ)zyNXc6%&(46#HKeT*=xDsCEXMW5UX1Vb0+cHom9KPyP4om$8X=Haxi}Tw$bq0tL^+YYc_ASMsuHHrMVMw z>1=n<3je!Z+YQ8P;z)WYWZqQ00%mk6jA+al@Qtyhw&lU&RU|t6ocO(ee0rh)Vw&1>X-ue1w;OiYHXxo$R9Ow=^j~vtAwg-G*Ni#`-rOG4Pxv%Yo2hrPlB~c zH#}u7-CciLAsWAXw!JYF^oI8oiZM8JdbK#ldZpG0zv|k(&_+Ak-abydU~%^zq@t7k z!Gsfm;(J2U>Mv4}l2+${Fz4wZ(TJ$?G}g5GD+XL?Y4rmyrCv;=)hFXuB4^|GTduVF z1S-YcHH05pN; z5)9rkTDd{VOF*P~+bH=vVyCwFYWn!&ks%UZdtP$+BFPIXl3x5Cpc3WrBT4pSKK~43 z-f*K`&Np&7`4Xrqna}S`kt;h_Bv@|Dp%iv%)~O2o=f}SXA3q2pRR6q$A<0*tgkN>% zprUY#cU^4GL4dip4aG!>|KdIww#*wc-g4@dHE(3^DvBf;l{kebk-n7tQ^)6KD?U~x z_D0H@B2;j@y(U|zfY;cyt`N9Z56*B)Lco!@Qf;1PN_ zHQ|tfbUG0-c#w6QK2tjMbK7Z3h77J_ z+H0~|EU(GUV*g~VCc$DwQ#6a6ZlD`uwc#ZCL@@C(n&A>1cg@3dw%j)vFMoveV~@Ht zhKu>~Ksis3y7bU{vYh7{@od)nI_ts|*2{q!mG#aM0k4qy*Z}o;8u|`luccOut){z} zvZk19SKDi{nJ%x%&2-PPR+C`5qA419VY_6T%cqR(#(Y1VL^s{b>{@g*>2|?%H?uBG zVY(csl&0H0xd?^Dc{f33Z#50Hv7!9bQKMtQ9Ljl>BKMIg?o_ zI;DKnpcmaDXSb1I^2pikxMGnrb`=RvvF&dpJZ0`%WaLb8TBMtz{$h1Yj-2gMs_j;) zv8#w`j53d?*5~blD+H!4CUUkNv4s^ZLKPoCOULk8<7g~$WQn7JppA{A?I`w_YPD^R z*mpvZD>jBEb0x*k(pI;?`vP@V`upGL+MYW`4abmKT+U6^D}}j?S+s0@Oqp$CWih%@pzMrzmM$hSMag0sqQ%I9 z-f15rqc}pOxP1{JdqItWG!e4j8@Y6sA;GIcRW^1vOeXzORWQyCTaSz-e6=yoyd)`- zCX4QLzNRpYCzfn6u>gPXFDS-{iP498BGxJuj{Qy7Y{uobiQ4{tNt|ZElI=Z5+9o@N z2_J`z!CwZ$W|68g7{-xc{?N|^wo!j*tb<`o46K4Jv)el+E0I4j7xy(UJ?M8pw~q)b5~3a38(j6&?;97=kkO7_TykxNmzse z#OdXeVI!A58ze02s46*F)tMqUcdkgV7MPp9uzyid75LrzIK5%BY?!zmwilPv&1@qP zs=0B4hpz{5Kj{ngM-)u)E`%*M6+rCWg<_(ysm1CXJQXv>i51}?#+(YBsh_8EMG_i( zr#dcAtbginy^&wAHqy#@-cMOmaGu|^*JR^7c};Gd=MSybBn)HG6pizo89_MkK2(@V zPozWp3%e#A@t%iC%06N%HpU))Lpa_f{W`>(o}=GP_r;;x+s-sH-t_61^26Z@F)_)n zZN?3ppe`>2n0E@S?tBaQjJ*5&@8JlLg7F#3QP? zF6c5hj&uGMlH)uSSB&FiR}mtSc{>pz(OmANZgQ(ax~Z*PtZvC1=P^pPW0h*`Dxw;r zJR+*~dH+QFB_F%57>-jecJTyfiY=R!-2}H6G~1sW)rC&W5l@P-UyUy*M$ghYkaLY- z4mV6R=a2CC_NO#zt$Lo0cwK=`nc(;4TlG3Ugq9WeGyY6@r&6vKM>77jMzPtX^LQI0 z{v0}-x793H8Y>6twQ93iEsXe6uEwkvSk2c8lxoE9X*CB{ymA1_;wN_IvWil&e#9wIqVie(BMI*-V<>dxC$lMF`AB@cYL1;sR zfGQD06>8InKdX|f4z_ZGMMAtle@~>t_WXnEMZB(=Efj~zKByWz-I(#G(4&n5)J#I8 zT*wa7Sqm(Qr@cBnteMCV{sk>yke$q*~$ zAv(HZ<3Y#yy~D-fEP+y_v6$zUh&%l`(j9}tKdjVj4mVC)wTf;xi1TiiYSops`rxV& ze;!gY1t?{{peVLlvs5r5&wqj3_OmB?o3T>AnI;hm&HsYpl6 z-s;cGQ>ty*BAu>U$>s`$dXY^SxA=2VGP=A`tPJpJ?N)y#FM$=`pxg%*tJ_D2e)XsE z>4nBKnP$0KDAQnRX8A$3%#h}gl4NR4nq{fXLUEumasy3(+TChyh!CUORN8?0V+w{; zf!&{qoBX=ZTZ?7#6o|tok~kFNo&!njhUlA2;#i0YQ%Sr&g~ZxvBu;_Y)d@_e~^ThPdGf z64yaYT1a97#0QQfaSO!UMI>fJeC%ivcR|#bkf=etdJKuZ5Kk{9@dU&>`$${?@xt*W z{te>m%Se0$;;a=U&VcyAN)q3L*mEL@T@X7@Cb1pjfYl^kJB7si){uA)#Jf%X$$5-&nj&LdHVIR9-V&Vk6R zC$RzI*$YWL4e`(h5}${72_Gqc0phR>iFpwBZYHq@;(7|+dOIOLOD>LgAH+&@{4x?P zzXw)92l6r7;dYT>Hj!cWkYTovVRn#VHjrWcpJ9DZDXGgdtj{y7zbWNh+(AEQSRYe* z>e>wJ+YIa14C~Vj>(319%M9zs4C})T>%R=^yA12M4C}KD>#q#!s|@R>4C|u|>z@qk zn+)rh4C|8&>yHfUiwx_B4C{jo!#~5Y&oJCG4D$@bJHxQfFq|_C;|#+$!?4XTTr&*Q z48t?Su*|edi|JW@HlRu~*=Q=QENv?F_*2Aj)XEQjx>6s#25E^hi zZx4~5lLi-+Ln4CK3Pesqo7X~o9pW(v=B2EgMpsut*bqSiCqzEcHG5&ap=zSzBP@C* zi3{2+a2Y_$w?X_7;$;ZtvsHWO%7?Jwf&@;u+|e~$)Hra2M5UK#prrzhyV2e~5KE?$ z=!0N>>v=Qisvp9J1`;@-(LE~}tk+t@S+7=3GwbS^Bra&Pz~vgWd^^Oe5U)cpFMc7M z`qLq7xFCTOF5UYsJ#S*YI8@u7#)C1lNo>$=fz3r|{U(T~A)bR^`*lHms0fzrrf@ zouYPtM3Ah zA3$6*pTs5z#z0j;Ncj*ptdPJ7tL~jG%o|I~o>%VJwj#MDQb0ipKTE7nBTM*xYm<_i3Lmq}CF;x)Z{N5)$ke zD7C7c@9~Vh5+xuYQ2G>b_$7>iIg7PojgC3v?zPN9~^q z@qUQgAXp6csy@294#I{G66_!71aqyU=?HX!d=eeBT%dC++W#SlImeTj55eNnFX3v! z2_$UjAb}G)-SZLoF*)?)NE%L3&m?g{n*}Zhq2==+J_@l5f<@`SwT!NQ4q?Lu37l}* z-8DZ*G%=;~Y~+&2pw$AIKcMY@gt%roiR}>VsfBY_&{Yn?h71xoA=ACtMzk@t`y9z9 z(Lu`vI>Tsx3*r@s*C5!F96wq~SHFj_p@RfY=yY$L60K}iI~q|co5Tj~7TEk5t^W(e zO{++}2ZBA@a_@mH2q4HLi4IyW(0LN=e-`2$Cz03+ z!JhZI{$#rPID`!yByd8fdr?*SB!@f0AIc#SL2Csf_oK}ZL7a37iM0^yxu*kH)78-s zHbjuX36cA{I0tw5Y>NaYx^|=O0-qCsz#53JK|BhUVCT$1p7TA0ht^XFpTi22}4}v`(mp_%R{uaW94H7tE^X0DD&TzfF9f6=| zV8?ONNiIO*1uO(!w*!$6LmY;u2p2-IrwIQ8SJT#!u;GOS`x#!r(CHAbpa6*%un>41 z3Pct_e3D@U!Jf6e<}|vx4Z?;O5;)=Y*gmtb&f-I+kr|~(t@B$h$2 zXH&1kqpBZ;upx&8PRQ-Mk(t^ZFhL6nkaz(Lf!Ak&$b%58&LFWGf<3`|>6vtO4TKFZ zByhs(b6vAEyl_BFEPpDU9#u~<)5m3%7@_?Fqjv*^_d-m=v(2+0*t5+)$JHwkHjI$K z38U^k*Qhl#Un%D5ouZ^NOPqj#z-j7Pgv3mU+aN|D*puJ6v+3$42pdjF;DpoH_Khv^ zrm_Iy=+II{NX&qT!0bannU6LL$W zfPz439+gX$=6n*z zL$J3h*1wIe1|V$MAb}G$-P_A3Y}5qf=vPHEN_^0EflmtvTnF(Q#Ka3ouy;)^Sx;9r z2pc{~;Dk^2o*OZmsiu_9P*T|?R=`1EbtBODJBTS4l9&O(-o|+zS9>9BSRsKER^59h zP+^sRHj+av$SDy*>jgrSFCq-4Lwpe84hZ&^(jyz_>In!NLP+3*Q1_lYCWHz*(=2K- zy+i{o6=?hl?R^Pi0B>q-gJ5rJ{T5e~Hj=QRfdo!yjC60+FE(03X`Za5w;@Fai3i#$ z@HiMPJ`Cb+h&@bfrmG_|B-TOL@IZpUG9L8O9Ny`6XH0?&5)ZUh;ISSp-U#s|#Iq3W ztv!6skbS$*iU&S!=!8f2VjcK~V)|zrja(8L_7O++?wI!s0C*k(pBDA-`BDBBBaW+O zXVY4d!Qr(|$aHUC!OqBye3j5~O^VMfabidIa-8s?Ee{{#V&_hKIGdWiAzF>b2VJz9x9vR0O9u2w#sEKzUb zD2sV!S>l%i{ONR9LcZ3*Q3&)U?0l_K;cuYRff-ZJ75DF?*TdgC@^*Uhe>hjCBLoD& p%_~%ACTO>3sN3xA^cm%9zS1h-?f5~Qa4@}qV;#f^2z(}6`F~jSjGF)e diff --git a/docs/build/doctrees/cpl_discord.helper.doctree b/docs/build/doctrees/cpl_discord.helper.doctree index e661717e72b5189b3d434d2b4920dc1b258ce375..b62443a94307ee2673e88dd5177b56e33e01fdc9 100644 GIT binary patch literal 20682 zcmds9e~cZ+UH93(pSJJ(qe;{B>?|g!pN;P>b|Msx;wCsDb(|cfb{ZNd+U&iz?`GHg z-oEVaJKr_^k*Erd#Y8m9MpZ?MRN6E(6+(bS6wx-Q5H=$_TIZ(go!2J+nt@6?~nQZnwjs+`d%W&hVTeLJkG8Fre41!u_$XcOKF`HqtY&Sc|cCbU- zT3~+5UIel zJi+EJl})OJR+wc2ezvI-uBpSjLqn;q&{Es$bY2@`3XW^Vm?6#^hf$ndyvkE>6&oa2#3&J46lt& z{bd)CUz}qAA4@zdKQ{OPBA}8Q%EtIav+H>RNA?PF@?-1}aq#R2koz#vnGqXu?b*0h zg*p^?P9o^DRsyTTvQqVqU$zj!EgFmP0s`dXBa(_ow6PdZs-%j}brEp*=Pa*DfID`( z0UK_vA@IwB+TRBTa2xj=#2}WJsm^|s1Y%|#s`=xYnHRLp+L$MF`eci_2_vE#c?Vy|^P zr|v}YWl`ah6}0g<32v)^>zjn4uwq9sSELiN|B6ugtq>TH#8jDkqV=EH zA$R}Cwrz=&e>aixO$8Kel|PsSX|9(rd8{o0{~gIIA;JWj zf|D<6_Ks_rrR9lhu@oSK|H1&B)to4sEZ5jyv9IThvf?8AZib8QJ=BfBU>n~rLI!eW z&_FvNsmwSHetHYUJ#l<0a@Vl3aE=n3GIi=vBi);bl4u@a76YE`rl+DCddxXGccqet ze5BnIQoA-anRPAvh}ht5f@cJ|({0zIZqHO=WKqG#Qy%=<2H-or;8%0t2hzz;R6^;a zlafBSiMCoWZyIJyexRBq6I9HLMDqd*K3$DmX2~ZT5ywUgdH3B}s~n4H zA?(<7r|HxyLj)NO%(~A3ukNyYDNFyz1wE1%3S|62B^mC=@wsUF++-*vB-YC>tP(>1 z@)GlvN;uiML6%+ai)fa{Q0!Z|KuE%Q(^>S5O4K*UA{E2sne@F%NSkAlg0w|!k}e#^ zedOW72>-Ye`2pBeklEu}W{(#jjcm_*_`I(k01_L>{LEB>>0^HSD#e8I0R>_XRzvAy zM+%DJULif9nTIkXGl?0|P`7CO`&*I|m4pm3D!rCO32$Ca-ct$bDp!+pmBCy;AY(ngAQx5S8)OF}iQ!z6jKr*a0Y7k3kKjjnTRx#C7DDf9c@Mtb z#D0y8D(NvV4u7*_QEhVJEEYELOg6U&<5>j%3&rX`CNyham zm;9J#8ljj7`C~Z#4OU9`roci{gF-`)`@ZhC9hREc_}0hEwRBF>`&FF_Pc$4@Ge$y%_% z!_py;*&=55_W?6IHXSNSW^b$>e@`qdpP8qP-J769a%r6XE&E1(e*fxFi{R{A>=pJJ zKUlfIB{qVvCjJ&$YoVom_Xyb{xw`)y%Qb z;)X@CrtRJak>cZ+w+gfF{sO&<9h1!ac-xm7?w1Mrhs1K+Ec>onxXgpiYFUD;+`^Ds z8dzh>*H6$)*3)yM;-0m}dHaw%f|4*9Vp zXCl8Go{?q_AA-=QB(6RrJfLYDo;dInoQTdN;6PTqX-q%lW7 zw-`FJZoZ+D4rlB((jWsXviop?c9n@mCU$RI+3v5a?pn)&`)7o*obB~*lX6E?pLM@B z40ptCVlvLOYxGq#uG;j4Wp=+z0A}5nH>k=dh(mJHGv)c0XbZc;ENt8&H=^mR#eAfO zm$2KEFW4>|#ZFcb#b+JB?~6NeV(dnF(8sZO(i0ha6f}b zrHP5my1$z#qpkS5-3}8Wz}Aj>Pe_gPBaIx*$p0t{{l@#w zoIh@awr$*d=JZ`l=k79^KIJ9`w$ZS$$%rJ|sVQk7v=H&b8#humWss^Vp`$wmp*!ej zVE36ZE92nO|A4%W#4Q~b_O90Zr%?D3KvG^2mJ~eacAdJCKY|go_@}nO>8YwoF z&$OF<=0q8MLqE)zrLFJfW4jMEl(ZB8Dp=xHeroPFqUo-Sr^M5ClWruCl!`GYMCj-b-h`OQMcpSgC;Gyf0KaG z-bF9Q@_m^!#Z0H{Ka{C*U!%q{XdM+b3S;@5Lg#s_USmHQBs0ps+YOTqyP0Ll^I{{Lz`rbuPV%1kX z6<2+w@*Hv{x|G7Wd1ZItv$s~+smH>kN13Iem0k8VoU+R{MP*M*DLNEyT3|$^Z6*U= zE-lqbofmZ5t4`Td4yJPK-Vc1YM%hL8O4(b)2C3}7o^WJS%6@VqWj~olChlVdY1Um& z0G1D5nX*5SV!NubO_|hB*%f6_c1iE%l>L(cDV6;hdJ@Vmp86@fME4CUJ7yqTtn6Y= zvo)SwPJ@P2b~UHUdG-w_R9{L4yj)tUmHkEC_Uco1!Ht4v|19v`B4wxUm9oD~Y>>+S z`Gg~zQuY%YDf@|xvi~JPnsxs?0a!kKWy=1!6x*+9Y&TYRMH!S`(z`ij{|A7S%Kne^ zB$Qn|^;33ygr5nmc z5bBNwwFjJb&acm4uQtxrofRoDRI9Kg zKAs)nd+4qZ#O~%AHac1{N~Y-~eg_u|wCD1Z7)8%olh~#)32j^pS?zRY2YARH&m5I`Dnvl?ydmbG#yf;1DxpBwpu8e zi~^h{C!*q~__WjRbR!dI#e6#Ei8Bq|s5y7roHzzMoBwFqLEr}_!_KZ}<6Z@v;|d&{ zkmWOeH_G=iDtd|e!NQk97w)k!2=%n=H^o7x*uYRk0JGnN5doJ;5C=*U}S!;CwyZ zHGmPO-WnM4UAX;5zd}U!kyb%++A9!5&uKYPeBa(9e7a+IOgi%lU91a+;Vf_m@($cd zIrw!fiaO!q!UBpzC~pr(oKWDHM);g~@A+)X#%3Vu!p&3d7G zDoMM4m+BtMYLUoZw1auaj+z1n)P8|QEf2sZBWoF2)QDJoc7h*-Otws|o|=H<+Jnn{ zZ@7*Fj%y~v?!6~=@NqqkPolp&Y+*Ooe6$O_4#B7c;$6O)o?o{T)*h@goLH-4_@usp z%YubyeX-lYX&<^nNL&n**n!KC9>4BjS1mOR`^i+`%9uhur$xf+`Igj1y13_J44J`l zKm#hg4iuP;)5MqgHMm;Gx@g)svFw?+?g&>Y(Dgk}@qNjKMG#i6Db3ntzFYPnx)0HM zhuvPK3xW8AG%wI+h$fQ194Jd<%Hs$^koEydh*|_I3o&ZY^*AyglyLit>CcS7mi5&U6yvOC=K@N4d`(Vw4^8~$(l^PlwRb^Ph_Noq-(^5VK8 z(RPX5xg?q`i6%>;`cju2#@#)#-`(sEHZMBGH7pE?4P(jq3hfe-JDk#cDwy_j$}{8g znGo(aehO~MeU#8W#J~9FENb=1GaDdz3D@|L>L*tK(c`MP0Z1e@;dHjRg$5Do8hb+I za*C6flF1Jc&nc>K0}!Xy!(|$Q=8LE>5NocIL@vaJL|Bp_K{6zAfyCB^*c%jUel9Ik ziUk3eRxwGC~U+aZK^4^I3GLreBbmXM23^`w?$OJqG5Vc441vhQhgB&xox zP^fE9=6ak|P(`Etx&D*1lM#MRv9ILIHa-OhR`?t32e8XAlsX8d$g{w!4U z$@u*+#yA!WvkoN=VSWf8rA1AL>mh8nDo*1meF0jUwQ>DiyK!|gr3deoBC+)KZP>g zxH52?JPj`kjQWSYYGdvtqE!-rxeR4CWy5|okw|Tl4g=*e5I+9E9q(T{vvhZyT=Iqh zQQi9{dxP=%yo8Y^VPvKl?hE)>Q2umS7w^(ZW8%&Lx-cP#j8zJ-4aC0&;wnTT-rR{r z<8b}3QA^&9TV$37mab0?(Z%;4f4=_x$3K(nCePMaiIky4j delta 2432 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 QmQ&L>EyHFoXy57ke*-J-S^xk5 diff --git a/docs/build/doctrees/cpl_query.base.doctree b/docs/build/doctrees/cpl_query.base.doctree index 2d7ab57a1d7297cfafe9677c17990858aa6d824e..d40272213a53344b5498c4b229498dfcde07e508 100644 GIT binary patch literal 203207 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 bN*L8{?xQ3hkTAO@O;jC_qoBn%lTrH@Dn0jp literal 179814 zcmdsg37A|}m48Cg*~vm6Y@JXX;eX+>_IS0{*x6qm8EG^}D(%T|!ANs>Vyx2WOx`ki z)D4r@O!kEfTji_U&571?B|@? zNE`b!f4E+5x8X~;?rD_A_|<}uiE;hMPWOZ4!x4NXdx;m%2 zCfvHA+8nEFXz!>rHf)044A+|zBZHgq&&|WtR;4!7skMiz8@AUvgYD}2%1Em`+8G=H zis~R}Wdq3H-oWMF0Dl`g=x?>5kB6MM*ThhDF*lOd@^bk_ct}LI{Uepp@|NVtsckwzo~i%YPnhh)mGPnQ4fRvkAVOC;QymRZPj&5 zUH!aybv<-wK6GeS*i&naRCXGpgb$#^JB9PX=B*ktQ(riDyj*KdhKG+eM<(i(lS&cQ z2_49;g@^HW>*;3Id7Cp~B zm<#jMaBNic!7oekm%(-ooUk*|vgVfqBhv32C^d%yn4*qiqaUf4Flw9u(S_x#2lLAs zT6pO`Y0Z@Pfc|@{jb!iW3l~El){ny!hLVJPqhM?{2Cc;E^=u{sG529&LW}|PbSkZS4W?mZyew3Miw_MsFcksO7zZM=HxA>$ zs3vCbl!Fbf?EbzZxxeA;#$?$XG}y7XLC4<0l)f+P4YC`bXbg8I%8{@g&K^))2O?bW zqqvU8xqd)#RlYjN2d|;O*(JrV6yf&}#qa7kzfTE%ZB!YkQ?L zshEX}F{c=>4A(|$!;?3K3t|4}Gwo!!nw*Vr64*7sZ@mfa{0-2+S7Pz^y-DMtk{Dg3 zN4yDccx&v2MnIPhZ-Itl{t>QY+v^EFzzP9Md**hF!uB|&$HXrpH%0C3q~jE zb>=hGS76^qt80++d9y*1VYC<rFa5t-&%7@KAm-`{MFR9cl0@m+Zc z5($>ruL`lLm28Tp;ycz<`5bGVdgI=pAML}kZqKYUI7U&h{w>R!Csi*9`}k0eWtyU6 zJa1?H3XkMXqseBxrIl|Q!iMiGKIM#YPs=*v1Q&91UyNlOH+C1PXLW0Ma`c9!J~p+L zAoGk&gE3(s>pU*4O@H+MlSv8}+2@dqBRoFzRkzD8!rPKp6~l+c^kl?Hc|>l2ms zKV#1ygEH5X4h+eC@K$!)svdxARrpe2D;k+%Lvy~Mk>gYSZR`4Xw65Kq`3)D)YmoNr zMP`KVK`Iz{4bqh~1NR^m4D=w~C$3qc()gHNAlpV9{%~3nk8vB$fqKNQNS8$tmPuk5 z2R{VEIO@;fP>{@?Rkp}+F?&m-7Xx%J+y)a29J-PNHNxe2G#3wDMST1)9gJ1_rY@8a z#VC*GT!4Vh-WuuF6?C^K$0055G+PEZ6V5(Gjh|B@ zD!86x8_sUVK%(GUBQZhE>*H~3&VM}23vhHFt53o-^)(%KkS+EZ6rs;3^^Fe zDh<1j;mY>J_;|Ag%S&VBR_7%XO;+g{0W;g57D-1ZU-9IBGqjHqhi95P+-P*o%@ z959?vnCA+lafKzvg4J|aD1}8P0(UIP;tR*ovQWMdTnC1ic{?@npGNWs{vK`w<)q{nYIHngt2=WJu@fJ73hd}rR%77q$a5;R}Mw?{yJT?UEC=TCl}4zQ6^`PwV;e zlVxH|HeQRj=?(rK{-M^7!g*}bY#25b>7*Ksz$+8Efbv$jjV`$*{Kzuw%Fgk6ZMfEf zl`~v#ySm(J*o$bv%aB;Fl(F$-#kY+%>o~ZUWPi5w{tejnGlLL%F&ZiK6zz9C+HXy8 zAO6D@)q-pAlC7%+H^8Ozx3K*DvGIBZcaJfM8F#GkHOYa}Hmz6ynk$Vq;NbnTK-%X1 zS&UHG%JQ;_! zi#;5Xz;-bc$3{zh8e4O*A%B8G&{!wOKO9{O9x@Ho=j=g}o`J&=uD-=Mj(@0$@TlDZ#kU1CU1Su#b?>v>m4~ zV8wx?>Jz|<{eZ|Wev`q9BWVWiT23(V0xM3S8Mq5H!9c5Ofu%&9&~oR3D54wKWA_}I zy-}hhArys_-L9+wY;piI%d8cy+Zz3qZL!SKUK%V%g|Qh-?ptkD zV9RTxZKf$Fb~gt(?B`J{w2L-n{!E-g+bL5w{cIA9VOQN|(Z&yc4|8il)h{bkSOFX! zkQAL*{Q(=_#1LU+@gK$XJ~8Afi|y3?*v$YGw@c#o=fl=k+-y^B5A%JJr6z9iDGlu^ zsSR$Tj?7M|=78YMT$69~9y>Y*44%Ty@p9x=K@ZdF!f^3Wy*Ydp?1lie+wclL7ukK@ zpYN&>CCWBAi|JB+9&ezt+faT3_P;wKwf38Eh5MGl%^w&$s;kAl%EV{0`oOcQtmf2A>AfEG2jFez-$$3s433;1!}a!3XfJx}$u4T_erd zBNXaciwff-)q7ISPzGjLbkf`M1n-J}_~t8T%dfU5fjn!Qnl znpq&R(J|j*H&u#V!^~y-7irn#m?kS}+~Rni>$XOJWm~MewZjJIqQY>t3mOo4WwIFV zkvjYCqK!B8b@sdctRU-bmm##dgJ;6sim$Vu;Ssx3$<4MuM5~{m8`}+|=jZ(;~&i)0`({=VQ zBP{HRCtIEUGq_jIGUfL`n!QZ<98jg#*}`&IF{45~iw=Y8J1PA#iVit6pmyLln7(!P zf%9N+Olh5c7;-GS&ORd2jcx|;TDVuv0emcw7Bhg0sI$f3#flltoNdS>)v6Rtqzri- zq=-6O1`O~Om1fw4eH`H<>g*SSoV?C{5ni!6n_VT<*~%+zPSHtUKml@h6^N)#cG-kN zL~*p;+5p6nfQpiER7uFLViK~0x$%R}!Sew!U|Yq^v(5r{<6p6Zr~0^aDXngY&Cc@kB6j;`vCpd&g#U-{+Ircn@wO4UE^k>lOX3Btze6!)1Gt{FRLHIpKV`yod7eLfEKPO;s14EkhR-|o(A zWc~I#tA8%dz&%g}1FwPlBAS7Fpb7?hpz70ZD%6X)Kpl?YOY^vwEa9|UKuh8=cDp?7 zb~FfJoGp+~;R;6KdwXI@KJ9ib-3hn71Otbvq&6d~@*&NoD^)3$)GjQ4RVANudpq3; zN>!1GfOIo2FZduW3*`mg=iEL`@*vN-WpU_7Nj3@R+&F`b=iI(Sa>{egjf)Ynt}&X) zX zVae0{7P>2x!Xguadz#PU3r$)U$``z+`D;iX;B8PCcq}yg6*T%t^VhN7;14YoFacXgeupSAeHM~Wc~0s% zX7+$kM93K=q8`*}9jQz?xcrHTA@$T9KASkWoW|MSh5GNvgs+Y*F{O-5aG#6FVnb!w z7Hl7Zd&TNVV>qdE$?=WRUkB3c>s=oMD!yQgw&xq8kBUH9$y!qfjb|nT4t|CMiGnO~ zSxxLW_%SpU`wi~LOLpcs=R(ES@I0~k&u2#{^AiVftq)V49x+*yKLk}jhcW3Ea(`%K zQ>g49oT;3O9fC}{l=lnd=u+CI&|MClN`>@^r<^98;Va^RrH%ZbpdWl%9)i~_l!rT6 zo_)GN5=Ew`xeM*Ayy}%|FNsjulUhPdMpl$FMezSwipPu}WH+ky8+9^PL=N@0jhG** z`tHW^Da2gsEhyn_*f7_K`5`GIm#;x+OmQi1uhMrEysxV3rMdXKT)5zW*nRmcvM&jR z<+FguE>w~W%d=<(?z~$t@EYx#X$J0OS}@Rx(g%u|?fpxn3eDb(|He_M!Z*QUE?|I$ zfy@T+=xLdmD>4hXs~D~qovcPToR}%`2G?zk{>rwP61#@|G}r|D+MFrxo3LTX51bxM#A~?$c1DL1R&D)RC709mr0l=oi0=(P zB>GR-IlgK4K0)ts?y9cHtl{H>FG_oUyZP^C(3L!;FsWDIcvcG1k&s^ z;5|SUtpRl`Lp%VUB^3zE;ig?wD3#~M?Tu6qrSuD_#Nk*uG!)zEyJ`1n=#{zK%@|y} z>2U1AMQS*9voqDs;TGdfjlIX+4B+{2ubcyTKOik;0C%IB$dJeFw`k^ULmsLA*xiuV zK{c8~p|6M?u`*nMuc&IkCQRS7dork16d>b{lhL^<; zKNbUpoYyTBVw?y~MnxW)XLWy7{n-!1n|IpCWu!-xyv&gwzKiR>nqm+{!Owo!B+IX8i4W|4Z*_Q+`g^9Qb48{JH<-fpV#o8O z-GVo|Zfo?{1XEnYej0!&KPcLGQxB$m$Il89OmP`Pn>)Aw?zVftlq39NyTVoekAxit zv0NmEna_fDj`PhTaOI#>aV=Q17=lr6umJx_tjo-qz$m&e#O`sBrAN^3c97-3h@eIt z>;j3fsx2?MKR@qDQ%TOYh8IrctheA%czo}BpF zXMF6ZY<3hs;$&|~D*Pz&_tXFv-Sol}eiEUIIFcJrKvq;JiNI^$Ry?NnsJ71>uZ}?7 z)_7EJUQTIcrzn3`if}_|)LWOe5`#bCZ5WiMAwGK#tw^ryFKt;CFQH~o`fUPES@a&M za|-esaWYVEraAy_tWNEijwo7cfNQpTZ!%oj9Y2)pcmf8v8i;%`zzsA5HwGvec=_xp zGy}KK3I_D;Qpw5HD=f$j;e12zy z?w;FblWY>!xj2K2=X4$>IpsO0!^MbL*BHMN8^=@k2LgAPN%f?@ zTINu4p4npNPO+JN9&gURheP7>PkWC4PqK>%1MhJznb%v#e@-)SJAq)}HM0LeGjNY= z!N4`gGo5Ch;}`EuB?)GkwR`6H#0hIY2xiCQqt&{W^yh@#Ja}#jnCxiZE<_Kt76cU!DCR-cr3)x8J|9Bxi`+_;-n=nme|77 zXa<$B$*NzkgQ`Y$$cKz%@RJqeYVH2uINvhPod4yPe+o3@xI zmpg4o-?`DQs+V4fN2sY3SHg<&T$q9i@y(J$%_b-be7LWw0iHQbbKJ4nwVm<)Obh_` zL%wM^=SPZmW>`QYO~=YNb^7X;mkql3*e%b3nZ1*4?2@0md5xG6`gEf#>#)0pV<$C08M5 z(j9TzOfZO7A^HS~Jq=t;bLmQ5(uk8(U6M^*$+by^?g*tWoma9oXVTrgykQqD3*`;o zwaF_<9%OBj#j$TC*(B5^oI%FgSHhMy)oZwit$YefM8CP7}u`vizXCFw#Na@V9wAzJOh z_drPn6l-iIGsa0uD)H|io=0sz}^~%$(@1urA@KYQTy}^&YM~0E;|9}lkriK3! z^v*4Z@KV%eBbCuwqt>Z48-ol)xC_l>l{w^@!EZ%_@7>?4(7lv~?m6mmf?#`6}ow!B^pUpaG8_}F*(V33ttaz{VeCFDi z_Gk1mOBYWuUC<1Ek5s+E|9CVNyF{fo%c?E)9koUzS`|hjPcXteIMjtM;pG^?pocDF z@{7?1p_A6E*iR=Xb5OF1xi(??mcQ#jPQK;udc0y={@7J)Lmh({q&abyN8WRl8_SJd zQ-F~)cFjzT1m(_%k$^t4*6{4%P%0y{F%pzOVkB^_<{6l)dV@EUjzME2Z&0+;8Y58_ zP*Fdeo*2o!N}sN+Pzfuv?*k&c-cH6yK1nlh7m$L1S5^20nt{726by>RNWM!;Vw6Zp z)y8hbNWK-bSu#fQ8@eNIn+XQ~7|HDAzPUzrb*XGKZ>bhnS29MjAKej3U3RRc-ObAz zj-q9uyulkI`74qKiIHS+?6XKV2^a}ykP#!T zFm&J+F@gH5a38BN5(bG3HyfRDt&t9jWG7T@EJm)5cdB;f-J}@Rhd0ri@ASVYi`tXW@8SE+v%upic1~X1B12kUVUdah)9G79!2WONF zYP@3_Z~Tz5rvV#vdl5tEHW#=dcZXcs02qHut8i4Dw>7(+n`kr9k8hgKVc6xNAhgz^m|^pc%Le zKf$0_803|-Bt{jKR8Z_j806(Kne;CF;J1WulQj)M*ykwJ*3#h5oOnW$#}9ub~-a)c<@@0z@qER+>q63n)It*&sQD ze}I;rvO(%3FL$-M=59?KY=rr|Sj2W;S3#&yTOL0cnt76le?F+~>Psq}i58%=qTb^> zu}aO+65H)1z`>MOswND+jEe6KzC`Qa7(E6aJHR3!>%r#*{Y=ASe;ny|Ry_9CNKfOj zzm2f4VZCg4?62TnRH{PYu}=eOc0Bg8K$VWiih+Q5EGpC!k2R>CU{uB9u?MeYqx(So zCo6_%h_?#pDYYATEbob)RtP-SVDLTGe|uy^0bhZ~{-;M%foDpm^u}WkO2M1pxINWG z&nnO5dVfwAdPnT`G!MPU`WkS(#vs_JKE*~fIrjo~t1^1qeCgQjAjrwF+iiHouv>PO zgxx9;b7Qxs$kn=>;O#U0!CT2G8NL0->5JZK;nU#T^;Wc&bbW(tr}IFmITXOo=j5$t z3nYci^Ys_XFBk&**Q8U>2<#3;8_pb^YY29!txT>deHPF4v-zsLd7NA-SpI3N_jO7| z835H+1Cd?HChseI8_mF-stN{P<=Xpb2JUh}FwlVNJU(E#vf>rA{MlCCCu!D38t7R> zOE!6Hi2IpgB7xD3(s2#gQ@1(iOBe?spPO8_HF_u8BIKieE_fBHCl2`-d$Qw-j_lE9 zQ@~G)Rx@XkSIIy0(}t|0Tnf=@560nc#nw^#IcH{7NO7yMGNdgO>r+T=NZS6wCj8R& z+Kx)YbtEV=opP~Y`MxY2U5fu?O-EbUHU8A`#ezOxvBe*^G*FUASawJe%FYE{t6uEh)8#h8f%&BmiFT;jzel*VadrvDU>*CyQ+L z)dsj1mFN@o)hR%ly}nuqRMGlMb`z=!c8o_@9;+)N_+8cXcHgcvV-wpc%NU zE5SflS4BM87!FD;Y`YP^;j$Ib7BfD=VzO6l%fk!BC6)&@@m6_@EZY$>raArLnzJ zmFvExW(&3kLvDs&@TZxGC!Vxrc9nxtO~AoN(C)p#hrP{jEEC_$Mjq?wKMVSN$VIlN zlGqqVcgJ?V80ohGVR*fM?Qx{1mx;d>VPQLXHW=eExEJLY1dQ=RAk7YA+zV7u7(>T# z31ox@X}(S<7)lygxJXY{QvTq5*C2 zp6JPkfHn*Uk9aT;(8j|aO$D?eozffH&@p3GXvc`)7_P~qy3iy78%F>=HGol*G3f)Y zDPLei&bk0>sMu&5Bpui|8|37`#yNP!fDLw)1Z*e~a|0WvjKJfoYK`H%*hYqhU&$#M z-k8RVkXraOgk!>r(vmJ8$Z@SVaumZt7D&!AVCyf`OvMn9GU;42BC=J{PUi(=tqEqk z=?;qQR7%YNigbX;7Zmwhnt{7w6b!sTkx80?y9^WziUmd9MN4ATL`en4ZUjaCF=n%5 zP~>BDN8C0O4C1AjPNwX+;4?IruGG~vC=yp!GAQzGx+9dj?4X?hie&MIU(vEq-rx<2 zJWcW-L6Iz7S+YNw(vn@deJ|s&2Xi+y8xkFcyFkc^^wFUHTSTeW6#{})0B=~|?+iF@8f9a{`yJ(Ew;6L#nZ<~CJ z6MYl^SrZ7&!HCmR3^hk~nNl3H&ASlhFHN$ZA{_ibY3wQqOydI)IOPV@P7{kHgXO$%+VS4wykGN5 z2Gs7DzWaqt@zWr+%PdGuQ}zwk8Y7jR10~oD#Ew$ zqbhmMqj9s-6m2+@Or(*s#fIj&s`R;w*l+fs3uZE@-g*2!daEy+RWDcS$$)@e21LFH zSe0hrh6e-#F9d7{&A?qK3kDhi(<>u!2*+M2VQPC7&D5xMJqtm`BX5cKH_RT9Jj;F7 zf_FSQGRSfpOY=)yw>7#Z+hS?1-7L5mbrUbm`*X|~y1r25`5c^0?CIgYqK%Q|rFbAs zUbDU5PrtGHF>;Nx?<6GRr!&5$`|$3$I(y|qFZI!+2g`X{o{WG%hHI&6) zdc-~hdIusLivM^Qa{@;)gjoahlzxo@o6D`|3!=a_82lu~fXF};*gy1WDhd_pXwp$r z-<`7WW##%r1?LIr7BZ)Viqid~*7f;Z*XMSjYpmJM@z8awe*xEJtfq>hAfgzPvnUi} zDvH`BOE1Q@gPeS4Llv)BF~+WviZLZ(?qcj*oy-q5TZ8b*p)$OiE9Vi8)AH112HWHk z?Vg!XqFFsjtJc~H5!$#(yl{)XaMfSo;B|Z<&^!vVpVRuX>`3@kxhG4fZzO$_F7U2Z zwBZaj@Kn`$Z&I4dQ0v_aM837&yJ-gQT2CfbGX+nq=a&_yT!H zofoqiIjZHAGy}utp2K;Hs^z#6 zllPyn1;!@1I-kbp{DtIc)%e*~fRI~x22`y8)ZcHbJ+(t~~H zuj!R_F9Nx#yg=wzCdDol>nSk!F{r)Rq}V>F%LfU>Qnq!J8<{1+KNDlzCkft9Cc*4( zC4p{9_e=OyxnpnwTDmuQmbbx;6!)iWSTc!^74+^D_XcBkRd~?ZI6p{1<-y{Cl7W#^ zO|pEpg^d6Sr0Uv1=3?}8RX=#b_lOn ztYue8u~vzgJJz1X#*_)q9#!h|hDJ(b71+l-a@1rv;7!vX<(M3S@0z~&c)Sy7!T92M zFt*j+eOz81mx|YF@gJ0rv1t7=(!uCxy;ISKGtXW*1GnyT@ORk#sSMn2Qu=m+=0>V9 zy#n{GAU8D$M*_D?#d4%-|j_J;7+OM(h&X;+2zSKo`FwTD- z=&2!Q#Ch3s2-jR6zHwd}9SD`{>v8E9=YIim@;Lt_Ua>gOu9D)s5;1q2KV=lw!7JtA zYR*OQ3}^i%r{uUkjnDdP;nU*zIre-Z)tmW&hAfXatLp_?1|Gfj7s_K;)Sll9j+_WV z(NTMjqMgpC_q8UNHFUI|o{uzKqm=3l&F&4b2LX}qdiFY+fqNNAFz{N>9-tYx*Rur! zy`EjfBMr}|CGkjecH{c#^I|qjUO(MNcf@To!63eVnsj=ftH2x2Jh4RcaS{D)B9Pvav#Yi;gN=%LB>ZKK1g!Pb9$eP5wWf@ zq9vq?+eTIacPa&xZE@R(j)B2`C^W_x%_aCV72G5|$c12~#VnyjpVDI8 zB@^%tH~x}=(Fu5*6TIjf9^BU|VY;U)4g0Nb*@#r$5&Q%N>kWP+^#nTa0SO-nRMOrus*d|Tk^H)>poVkX8b&NPqirmdn8(nU|ree>yP(Kz*Pcf?0 zmFVS8b;4?C{0BWkO4yCwU`?jph|*Muh)e7T13l%)*s>H&>42`7#rpJbJ(>#qSPpFI7_?Mkm$meE5YRCZ`PGycfWCN5xe2dWP06m3YD%sO znDX-1l-pa)iSfaqUAw=gl$>T{O{s-Xt10d0$4R=We}0_gtfnmWh4OP&fmTT;rz_AA zMLV47L3e~wS0viI0iP`1 z@H<)-${V~Z(4I9^-bq%VS-P^4WRp;Vat0YI&_hX1c`8sYM#Q?th?Z3)R-jjd$*9Ct zw#5om$G~6*S{n0%pkW;K4R`bN<4z}4W!4-?bKKNFKkj6Z*+ao{2arq0+LFPQp!eNb z<*NijR{7k}tjaG7@Aj$km!5;kc3ZwiP-bS)uT_2)Y)8}f1{H4$V?`zEux)HGG8u;i zJ;>;&)U74LUM6B?guOm~3%*01ZL!^IZTz7dY4LY*@pp6~K2~{cpr-~4c3PBfvZqjm z@%~$IkgKQ^<(o7k5GpU$Bh0USy9MOr<=Z4)vGR>wC6#YV#N6fEiSTrn=qb&J6wQvMba6 zTHVj!$xwu1MXIAbX^hi zH?=i~+n7bIcMI+NMAm)f_F8l~iI>ax>i$u=V(@EZ)EoRt@RP6~4J(Q$`z|En8*!f0 z@}@=E1J5_abndMsT4=%N9Kr;jjsGO>Autm_BRvp;V|;xY1gD0J5np8=Ax!cc_{LXh zOdwQltjCyNd|d0w8LV}egLAO=QyHu; zQ|g{s!TJ)Ao0@$i!P=!_J&^_*;BLhR>t4z?Rov$0W^wzO!Vo@jyVn)BqbI`YM#^D> zYmjko@KV7)Qyf1IiFh2}spU_L2uyXXwY_M3p78eK+gm;Hti z&9&hh+oi#QPpyBAm<10vt`%%9Q>+>1Sef!BKG z?`Q_@6&%5!*!9eXCErpn36a>1>zO?uoNcq@^~}|DN8C0O4E)zKkDUuph zuCCL@Ab?w$%93k%iu_o(~^a%{mFH%w88U z@KX%^YFFSz7=(0dmB?{z4dHgvE5BYfS*-mp}750t@3p=^U_ME^L+=~LKi01@e52V?j6L>yQ zMV}L>k95FTV2|||0|8Gmph7*5Xc$x#MwNO*W2rqJ z*89Jq!h3^<@t>S}$HxYKDo|7BLrCmET2`!q&onTjS^VOAZIkAH?q87Az$>UQ}>c(NUv zxndbUdkQ{pm#?atRg!_c#sSxPQe!+U$Ul{Hu%PfK(lcn-_4kT4oGHrJ$m=4lS3Z5~ z*QrH+GT)}w!^q@>FaEMsx^gW!*|^cuWk3Wu%XQ`}yJw#w`M{OU<4}?ZiM9w%*{2IhAal| zRJI}8A{e3vWv~c^j)NfwCV?T+h2o{X69d_VxAzJvNyU8}sw@TrIhX0n??LlJbT8aR zj$ja1lmi19rx_R-eUh4r#6aSzNyb3_hL)UEjTZ*;dYXZ|22a$z69aiW%_6(@yTm}^ z`cJOEKS;|?=|6Q|k@dH0y3oYIuOY-0TYs-~#CTPLFTx)4Jq`aOf~!vn-p5Pu5?0_m z=<_-i_bHB)J7u}OQoU8$pFoA3;Oi(G0MoQli~(g7=)c9z@P0ii=-manb+TbavAcR5a%bF!0s5S}eHbX8+=l_z%5zvj&A4T%SxTQ7_F-%QB6|UBK$?5@K*ZQ*&H^$Uv5^JVLTb z*oVOxWZZ}Gb&^w_eHdJfh;@w-E#U-&9*zO-R2C@PBJ`lcUvM-E9fuwY--q#AQaL7` z;yMRx6Xi9ux1|K+so-Rr+fGsviawLij+<~wL6*)5>>+z1OB~2GcWdHcADGRG#epLGFrX#@K!LrlhQ|)Jn_)jOz59Sb2blXX>dmWT z+c1(FsKFB4jjHYq?xZztj28ps*%yW7AkVu5y&L42zPm6!73p`@T^OH7dU_Ye7b7g} z#r$l$Fg^?SqLLG07sfY%H2W@$JAf*E7ls%JxC;Xn>bVQUpn8B&6~7DPf8f3#)Nk+~ zuZ5fV=*CX{iiu|%&P=tCO6S}$6Xi)0zEa{QSY(723)T(U^Qwm@l+W(;{qb9a(LT(>4@x!ASd62F@RSLk!4p& zh^!JZHzIpVvo%s_P02$+C8uO;b{fBELJOY;(Ap0Lm2^2#TJK#h45>3u%`K3eC5ETJ zP*I!Vwl5%^i^gp)Qnb_gp`cn5%y!cqyuC^(H3N9N9f*9v+g&sRcUmkMc$J2)q#3wN z6TzTZ@b*o#Bt|}(RKM>=@b=c2&62^}_t713+e|QsBOOWL?fo>DuGG~vcpFz&a^?3W zx+9dj?4X@+h%SpaJVDDsd4o52``;uF61>gQmA{Z|62M!|AR~CY_YqXemj}G%VnnQK zjA#kSB6vFt{iG5`*%rZD9Rq_QR8Jhd-OUdLT}P_QOjncUxClmhlz-Nd7scrVnLQLN zK^B*ewIzddLGQ(aEcUBER008o0z+E3p&8P0fp7^Qq-FhP*x1-sn`-34LD?HXYK>C4 zJzQyw)Ee92sVIrXc1-4cpi0MN#6VytW0-{6?_8LKczKCIRbf=cV=}kF zePMLJ1^>y44H)9Rk%?y;&YUw1OosP_?!P!0V=x%gQUU zX#nXru&L5GGI-d7!IwFMPkA&=7>u-w2*6ARP7qM#O*UaVV7Br|37GARR}3&?S4n^w zAAEr6h#I1A zrvP^^PXlo}v$v7BtYj+d3)bT(fla~QgT<&1k6`1P^|4RT&on6R z%t*hpLUEgro`&Ksim)2nfZYLer{$0mT_q zr!lJHp}4Ezz97^D{*x7oGsJ5#@odAH6Q}{j@t){O$OT0TD9&JTvIheJ#hvKURG=Ty zDXHyIy8()O7izmVxC8(3R=R-V-ho7G0-+ihNrggjAH=)Ipg8$$H&EP1Gj&!#aUTXE z%A4a;Eh1(2c~A)`4z-!)i~@=i8b=1VdoU1C+*>@FCJaW}MFbQlLnjOgl|T_U?4V(=Os`1OT@6-Yucy4+Ib7-5 z36B{S-SjDU4h5O103hl~S?;)WtY^dEX_(%MEqC^HIi4zUxSd)0KU*l@r^MO&5`frxT~xIOV%CQT12kp-bPJ+mO8ab&Q?gMr9`UgXhK zWI=Km%9LEYud7fHS&;ND7!qo3wF%R+pu0duo(0{FS1b!+S4mkAS4B5j&`JD}qB)bG z49`*Ie3EmZY5XWZDSBE8bh$MX3&lpBuOgB3jIXMTB}Vh4P&_Y^f2t{&rA7Y=qbRw$ zqtl{KDcb4$ltrlpW*VIp?Vq4^9?0|~7ng~4(kepDdL7H-xr^UcigM;O?#DNL6Nr45 z{C-9=aIc3523|{kzo!|v7dZq2tt!1MoMCPL3s;Mdrbej=;Up!6$?JT|uz9zd&I93M zfseAOJ?ER!%Y_GAr1%=Me==Al+u|aH_Qc?;XsIdB+K=zrKvTa+ajeU3Mtu><+Fd%< zmJIF(y%(Fc+t1?@(->q?Y=ba2GfUb(A$-#(Y41O~*%~Y37UA-6Rqhj(FAXkrnx%4S zdu>OhQ5t3KWLBS*OvRXB3l5Cl;KknK!$=b!U_+Vp@iIa0UYFPnX@85$J)TK!k@k-v z(V9Sr4|7AI;OF&t_gLC5zwIXNe?_LwinRYmAd1a?h8M-{iCOuz9#kUjM{Rnh{X*l& zAn;%y(*ErpO-0%-hhe6)U-~Bu2{k$Ei396}^tAt@AR|xvKZaKX+Kv*H);Rr ze8w3ZD>ruK%>7UB2S5#G$pyeWr!NR<$)8pQ3_7X+uIGfLwA)f(u_Yd_2dwYZgw2YA zufZ70TNFI1Xu}z0u02y3{9I`(LuK$|Ao8sY{y;NuR|bNCS7k8&7;3B}>=_aa3aAVY zq}dyRXb)5d`+;z=*yyedxJK--kW?8w!R+r>8EAJ5et<(^$}592yEf3&R|coK>}Cw5 zNM+#Cv9@IJSF5 zFFj%+y&?0K5)}Vw0TVEOC2ce*S6?Dp3HSHa!afp>bre%Y%U^ z0CspZ6$OAChM5Wg>47jL)Eunm2fqT~Gaw@`0RA1XSOLJUk_rH>if#&kliJ|^^}L%O zvf%!VPjcEnopFC5dRoSRjy+>b#b(<1&<}-}K%Z|^FJ_v@jU*>#`KOwHSw8;+44J(7 z{C5@YvM?NAu4hAiz2Dg9etXrfe;*tgP=D!+EX>{-f zb!Y7yu8iYjFa}CjR{`EGi{DDMb_su9l-2sN?${K67D)2s=asv}$X?SVysb#8d zav`_L1zp%=A=u>H?rfr6nb-v(T@8$>rdgXX9S#jZPM!^2g;y*aVpmDokQz3*k7b|D zJ$vj;%27QxH6MvZQh#T}34C3l?q^l3p3_LWo zXVTTU5|hsuf0OPbr9?ZNnb~_JA9i_xCJtT-A{3hsuc0Sag&%UCWa;F!LJxa1HU0w% z(Hs1Zwuv$BjMVrVB;vb=f2;fA*gb5ej|W+)v2@=pkRz)hLp4$1Ay~AYiM{~;@jga% z{Tyh$CJ>@yy4(Zwp6RmerMdy6%X(B1shKo25UNSpCQMJw4hK1TYIX!(vDA!RC8cJ( zkKF)OC$_Jujpxk9`ZHu>z$G~WyL}obU`+5di0XWMYCx3^)*2&~odcy>qtopQ^jx%& ztdjU2%0*ZPbvo%EbOv>@q77$;8FbRL*w8UokKTG3`^|ja_dHH0RVx3qmHI-Z7-vS~ zUW(idM0Tc;{F=TB&A=Tb1p}|;hJ&o_6v%iRRRxclfOH2va9fO-8 zO_WPP!S9e%tT2F(ngffke~8@J)?&8DSNsp$i^@fb$5+hh&-3_-F9E~o<15&l3Kp+^ z1JYGtZhUeDYA`L|6;G}(sD8qzQlDJWV~u3-mmaYt=pBf#2LH*L>l?xx4D^(Kah!|S z_;9)PJmJdj#d9hQ20u(OATkiosrZ3MQvuUUN0W}~g6Ma{R_zP9(l5xQbg@(8TqIJ% z2b5muPK~X2_t;Ji`E55lHHI>ER_xRm1fsNIB??b5R`4+rTRf=5P7Ty%n(K+@R2U4- z@n9f!YCPAYX~JNnT|}JFl)(;$gvxVl!t?_84Im>gfd2unSOLtgk_uq1if#(vQ?a-j zgy$;fU6XiLwknvhN-l-}X?mB!Li)6N_~KZ4#5F7|rOj2@mepx8Regn<+1rOB<-U z!tA1_MW&!w?gg2t+$6Ga;?l9UWbkg#d$GmxDt9zc6*IRqtC;UXqeJ%ZQ!%e`RLtek zPNij+%xTS3tO(9Q+xG@%c@F`jX1Mmn3JX09S>V$B>xZfs90 z*=pudxED3RiJG|sq}d<&csfv#HM1}`*378Ew8UN1%m&qq8CAD6^XuR)Ai`_$pR6^r zAxy}Gu`Ogybw$Q8OD1F7sd@YUa%zO+}d^9c_wh<_A&Ry}>8&A8)0Ln)!Yt zS`!G>z_=;2X8t1HJytWzZ@a0PznZDDqGo;+h$y#>PoG#bf8K*i)Xb>OG}jX~v(Pv) z_=pDsQ8RzYqiMomq+LYR%re};kWlH4O_*LY&p%ey%nR^})y(WFsb=P?=%!}g*q#{6 zxn`VUZ#6JUu9I(@#&t5vomL@N?VJeo89BbJc1_5wT=H2fTT7>~ZMW7wzDpahKX(h1 z)$2;5^=29V8E%e^*DE{YJN4!;y^6Sv*D3*G#qwGhM9I?{T`aFrwBd}fkFJi7&8mG4 zI_UN0lDL5~Thv@)8AF$f9?w2HQRy>7Reb^w`Bv5E&2E;&vk>bi;M(v`Xt z%ef{?oSi(SEj^CPIjU|S6%68va%@WKr5PBu zPf}Bno08(HStr*pX0MAF_*hzUQZ-%?`c#^MdrnH!eGkh%BYilZW|3X{f=h8jGg<%J zXxY2he}iU_QUCKr+8?pN%V;LqEui=mXM^MrelsmSWrNg7UhW`s&E1+fH~?m|VnOlc z(E?Dx;XHOQDEVM9z5Br7D>hGz;nN6l2icBteWIdX6zup#)qKIdsNCM*9$Lr72r*Eb zgHSxaQS7~fJ|F0P)bT9e*&$j5LSircmwSc>Ko|y zBawa^`1gvKIP8}8#<8y;Jujy96IzvaSw;P|2n!o$&4z?O3iqPY5dsPS4v=O?!tVmA zC=#wa3S)t7Ark`u;c!%F8YU;;aD(b0MwJSOFSW;mjGED}mHvZ2!hJ!gKj1&!SgqK{ zV~F>^Og!6gW^!c!L37egTaFy3Sr+ii3=gVX`xPx4hQP^pGVuTBx2E*D1cbG~G+@my?3&Fz!|3kS53k{c( z{y~GSmnqumd~nAwgGO6phjXeLNR9oL`QXk=lwvZVrei?li<(|XGjQjlf`L~}_G+4e zyCx6}G-}G~V3wPB)yQw7nHm}3RMg0CVfKhbT=&5p-f?@%HiNT-Xb{e+xo&H8O}0fi zM>|+hMcu^VoZWnI=iiIA$Q0~F`d2>%%d*R*V{OUcBDh`6-i&3RkT`3252H-9r!bbcjYp!nya{?2_wvaiE8#NY}Th9|jjb$+S3+R(F zATkg&)}K6@in>EOnsijxp1<92aHqzVzCDxD#U`W?Bw7;))qqY4-Gp>C-W@zLc*s0p zC%^4x6Vl5vbyjRb+66>uR=1~5EIcPXsKh2D)MlFNiA_jC(9n#DqOR|(%4->5u@mB*ihv6LKA=<@gxMLV4j?ijjYrkSc5`3Fin8EWM3 z0FiHv{41J)yG9laylUj9X$I~ZSun_5BQHOm8jxnTG8HxQ5|Abq+T1lV?|5=JkaaKC z$p692oScZswpb%;FAE+=gG_miJW#Ynrl3ZCw##ltMJE(2Yh;&>wIzd3f!>R)k?r$3 zdWw>TGPg7YZ|QQ1 zpK)<@q_Y`H$c=6P&sHj55BG{qOvV5wO6Au8Y4%e2a-bqhWnpeCl~IFf z`MOx3G^pB)s@qceZnz7Ga3}tgwNy5Qc^4DLwvZWoj8d7)t)~m3R5loldoU2C@|Z_c zQJqLfo8nUWKTzAf!8h?AZ>5V;`RhouCJ?HDaZ_li{1d!;tW=iYc2g=pnW?j)RQ?$d zQEnTbKCzPhkq4D1l~J2%t|v-mp>bsJ6%PiYRQ{4j(}clDyND>2Ww?VOq0$|jFuhbh z^aNQduf;1?DzmGkQkkown^JiIp4;BayI8!z|M?b-O>&9+w&{CjM@XJl9=EJbTU@JI zPmXl^G{_zyE05&jFO?Lry7^=nSjkfzT{mx3wBZb~m#&$o=P91eN~0NS?F)g(x7IGx z4BWN0VBl42H)#g$T3ayCwRRDwcy6F2F>}m?t;*;~bF5rzOjduSQ_9_Viszb`&62mg z-%5AHZ8O0jzMQXjTEkas4 z00!rx&{Ga+?fYyhdYg5gC&)Mjkk)dL*+an+(sJooTQYbi=)G7-YoB=HruN%&D>EqQ z1Tji|;H-l-SL&7Fj(l2cX=qmoH=5&%lH|e$)kICy!AWTE-rz)Uvm15T@oa=L*`F=w z^TAkqZU_Fwk$xM9me&saE0CTi!%1QA$_NV^Imw1?T@Lr6Mmm9QRe@9|B4H1EC@v45 zm7U}D+HkEic@t}Jb-C4;yeW7;te^+S1635;(jA4dz;@t^fq(!PDm1Oi766w)bpfMF z1-PPH?SX~j8+{QA@`iZVGx2Q0nNy(wdGVg;>4bp13~${?L`iXpELqPBa3`|uxcr3=XG9wb^52-UzyDireiG~PW1dC70PfxI5c)L8*} zJq$#YH^--1M5G?{pc0T5YBS9l1>_|(jtt)G!9YM>cX~8U7>u-w2*^u@L>Lk(9kL12 zA+JAzjC^;ViMkk9M&JHe>=N4zV!Lv+4=SOfx3UZchC_7;cjD@L*xY#tpaP5Kp=v;TF!C*ze}}6< zfGf;9w<~b(#&G2dc4skLW2;%NRArt~WRk)a5_*cC498{&e*LJ3@V>WcArcDzRaL21P@yM30-o8$Fd)oFI`=*I>j)Jsztl zm>xG+dR&vFMIr*BDnk?7;eJao^8{T%i&mvP z2Hz~~w93O3?9}9|!lkvw_(W$ACY0s~w3-YTPIN}sZ(QH5!F8|w<6x!Lf){?m%U(z7 zl@{n3MIG);hRd209s4dl>@Jhx>c}sVTLcp@zFG!J-E034Ar6;gAKIX(DyXOq zeVPpSu9q9zC(7F^pz#s-d#_4kGF;iJ3^!XN@TSsn7$3l<#uPhmxY-zmZh}T?BZK1r zF4o|!9P`4Z<%v#nP=6KfRf9pb_sGQ9_@Ekipjh?=>`d-lG&{cQ^Oxl$ewgC&{-A2IVi(BQZ)t@j#SD;tH$Z2ecfmpAN zLCtc(@*~5ga-h7Is_yMKIFr`l}vH(T2` zOosbmOC|uc9PCu!!DZlali>pRe*NLc9uN9l+8P~>+#bKtw?9JO9-Os|L-wjltG`z1 zj4~eJ_8Y35u{tn=&4xqZMI)W+Tv^m0-+_4OK?K zg?E7n)k+1c%Ke6+)m4KPz{Bf<<&lwAg-sZ*3RmEr(d2NndX!IVH-$_19oX&LKs~3@ z*f9xNRk(mpFW}EGG~s<7HE@>BUhP#cbKjxuJjj-?MQo?}oH1xC1{{Vw2_g zu^vB;#*cIG>?Koz}uYVENmxE0nF9|yUrYr@wQzbYzT zvJ9J}$A(7A;A{ghpm6$aY{w@=*ul8pZVitvL^ugL356phOM}%a*Yq){_~+xt10cA} zI3s;#4ZONNS$wx))`sb4geMv}f2H+2Mj$#LU|)IvgBM|sx8ld|5si5oKc3kG9~<$5 zjl32P#GCPh(hN56(#%_@Kr@&qXVwlcA^7<+?6c6&+py<%;Kx%7;A7T8__$yZd~C)K z=8;%5u?mUQ5SCD08VZZokX3=DX~t?S#|$eBna>1|VRyfcAK%*>K7NEBH!p*aH{i#{ z74UH?evGe#j~)1N&%W^SA^dpZD)`unA159FAE)8R&I94&TKxF&LGbY;ezXpTkDd7O zXZ)Dc3m;dmhK~{axMK}`+=U+-4uOvo@Z)3n@gRQu`cU}zJ$~%-4EQ(zKh8ZIJ}$zK z!;XZHqw(YEKKPh>6nxx|AD_aH&mIjQkK)JU$H2#T@dMwr8{qqR*_+nb8}Ha-xI@G7fP;-XdmnTkWIHbn7;29y_fi9R=5Zf z#Np-yCUF4x4maz#bN~?&iiG)RitlfMkobzpOCZ@9FSj6Vf*{$3@Qw`oAl@u(?`lJC zB)^WuoxZ?&l*fUWHXwBbF7WUi5#mcMd+3*|6GRJDyt3^ii#BGc@%dTQ-e5iuLHJk* zNp=l-U9JxfK~i*;A$GX(B1nuNC|6pG*318-aL(Usu?}J!k|ANajrsr-p9=&a)>ANn zn^kM9!0ZvF)7)?_rVCKGY(DFB*AnmbWitRCo9n5NvE0_{(dpP|;zEdm!h6 z?P2;!+#XZyCv#4eBf?{uK&E1|fG8T@yY!P4?3Ui~1SJ5wTnGhWH-3WjEa>j6&d#!rymVyg=CR8c9Cpd+C*R3t59D01Jxo7|+heNz z0N&E`F)h1V3R%ICu>0;nemlFm=bM# zC8wVpo6R1`xnO&keiFCGRQt(!dF=5#hdsLVlNV>R3rYZXX~9xVH-3WjEay)d4; z@e`zX`N==;r~Cw)>;XUdw>)-v$YGb9e)6?!_CU@B+r#vexIL!YPySyXd;G#-k1qY> z&)MvP5`bM^49oc4_zBXx{AA1i%1^M#9`KU`PLdL2z#;boq9_iT(@&0IxAM+|k#oWJ zF#RNMkE!;PGxFHuREIsf^pgv-*##v4yPR}DcYcEOE>7{}e@TS)Kn zk7Ey3{((*QfPXAKSxS&0-&zbr1?5}4>{j0S7IFrAbU<(2*aPWZ_PAf$1Dostd;C=% zdmQhuN0)KrtZa5c3BWFY>C!Gp@3PAiy>gT?7JI-h+pvRK_uFk{N-P8qZm?T<`w4Oe zdu)R(+uisH(!1<21RKCb{)0Nf&1V>YZU9ia>u*=+2qy!oAt=T|SP`mW*_L%B= zWPKic99^6}PReEv+KA_JDs}md75O9royQ-Wthf7nA_( zvM(HX>&7lf@3PCg4pVl)CVRjx*X6Ox%N%yeiKDzan>~UwCd*@v!0odgTI4s?bpCG-sL!c*=3v?17vMwuk8_aeGX)pPZk^9?vh%9+zjc2XY2`%z_68bmJdL@A8jx z;Cta8*klj*$3z}`w2HIG%d^=7IfFeO=+YiY@3O~b@K^|84{Wjr>~VV@d%UGMd%QQB zJ&-fl{@o;hW_**aPWZ_E-y# zND=nHCVRjhzsh5eCmr_K`;u}Eo;WBT4Y{>1Ynmt;gMwB%wI_F@{{LmP=10<_JE%}kjE|`bJ!)PpL{NxJ&<$3 z_Avb zEdio}@~+kFR^E9RaxT~&rk}*^G1Y#uF^@e?aM+_uKRG*_T~GqB%O%h3&QFluY{>1Yj3@ zi*Yx37t*`@M88yAzNLGrpSk(ZdF=85hh1{|$)~c}134FL57STL_Lyov`F0+AJnpbZ zmwxiIY<58jz%Kaeqi*~J>0N%J-$W)~?KRbY(sKrMFzepzy@05oylW-9m3Q8SoC~&x z=_he}fS**tebfs<%yWDd}oPxy$9-eVyOTB E19hn_(*OVf diff --git a/docs/build/doctrees/cpl_query.doctree b/docs/build/doctrees/cpl_query.doctree index 3f98dae19defa8aa2106cd9149e5c16204f99101..00f7a9a1ac6615c4073f329ec766ec74b03e4c8b 100644 GIT binary patch delta 32 ocmew@xmt|1fpw|^_eR!bOibP^lQ%G}X7t+}%iPXBc>|9(0ILZKNdN!< delta 438 zcmaKoze)o^5XSK?mv|vs9>o0dDp3qRfM8)2^x!}d#6rSe95ca9?%2HzrU)^G*lc&} zE7$}P&c-;Bf?0Fkq9Toa$&C>Q*cH12pDa5!HvVv zlDC;+U0M`+K$U06Ox%yOA-BJ|>u>pWB{S)F(n*$wg6S}A(;1ICqwsSz*0Aas KdUf)U_r3w8x}yI8 diff --git a/docs/build/doctrees/cpl_query.enumerable.doctree b/docs/build/doctrees/cpl_query.enumerable.doctree index 4af22b0d00ced14f12e03ae0f48307e1e59b44f6..9cf715f85bc0dc16820a5955542fca5063a65949 100644 GIT binary patch literal 29104 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 N7pfdK!m712_kUp)kK6zN delta 4229 zcmbVPdrVu`8PB=4!R8SNHm_hClbFQ3Txc37X##nQhpls~3@-?{hN zCN`uR629kt=R3dealYSo&Yk}`yYU&@)3&etbI-i(^CPZ_>FDVAsiZn{CaBIP)L49S zDwg7fV=3;?tivcuK}sX74LMrRrsh&lrUKk1=W|fL%Nz{;qLi>&=&{t6>Y!CxEnz{q zy|N^g0gx&z1wBd+D}+VM*KB*an+M?@>p8Y>;m}>+upKi*QQLwg5>8NvTveFuQ~nls%gJtT3Y?8;~92M+UqKE+TK8&AHhJ;KK2Kc-QifF_hf`W4)2t2 zRrtFQuBfYfCd{{CIs^FMJeDHMgPvlxVS{F$KC^2g8ji

      lz4zn)Z*m-wIWS`Ovx9_Iy++7zXk!l>Mhy?Vvazyc z5Pi!^n4e9oyVzUS&Ej%#vg~gADPuA2w&#Gcqd!En@1rZPH<^Xma5@}Ks_|XEf$0Pm zb~rk6e?pxJWBrWz_W1gzVyZ050B%KPd5}Fv4tVp%D9)lmxhqeX``HUpF>lgLMXCWm zyF`ln^X9`;Tuysik?W=5-VK=C)WlvVFmsp7t+cg;GwO-NnQ1j83ZT?k1J{fF4PuQ= z7q6KiP+|Rcoe&Jg8*rhb+KI`^FqIc@xA^Pr{P0Mwv^hP#+qyy}_;13i$)C;F7_c4A z_4h=kTCpi`#p`KUFV|uSGXUX@e#J@3Zbgj4ODMhD+(m`0MZgNbLo?EC2 z%!jr^bIn$E8v1K?ZyG{*R;%C_;f0z`g?|9O)&(0b7*#NqE#6Pla<9)a7Kz=%(WDluPd?4YT51J=|;)Bw4+^;-@GJ zQ&SCyPvB7WO4O$&-2`lP3yRgLoSij2*c~ zLw!dchAXX3HUjOwx16OGUCh0Dg@_9ZEO+$4^n z%A=0e(PC7`a>kb;!zlJnhgKYkPE9<9H;Ji)3cg(~__cr9{vc_%MZXDIepnaWPY

    zrTRWnJ(yA5udDW^CH6hKqzHbuz0LU$h3^*THpm()59~gC4wbaRsff^9_Sfmveq4=D zWW5*0rY2*@)!Ecps;;nPw80a~1$l#Q!eq-Y11Ae4Td)EThoN_CCoDFX<)h89raO@~ z^G$cNA7Fw!zV%tNgpp$TItN?(eo|c zYx8JD=JQq_<+GJ(lj2ph|1o%EH+ck4v~I2=!sw1u2NhS0a4?7rVVdAytrse8rXw{; zBMD#u*4bJljLvpblEs;;n@zA=7GRNm%BaW7GKJEUk20S0;Lxmiz5R&;xuW}WMA%Q@ z-i{XgPOGfK9pq`9Fi6!-La#6^;*Ca(!5bZWx38kt0aD7L7fIny!Tsz$LUfq1hakLT zt8;ZEM3;Rew;QBtUqBs$Qig5PX_Gnzo0{c|L8Om}NG^j&=Jv=}r@9{0uZ zffs9EVloj`gXwR)wKdY;eDWsQ33I)4qb+mD`f-aLHh5sXp}TBQO(bVx@uD{U&jikq zuZFwVMxDOKJcke3bOO*ro+Ee{gVskJPgymq?6_LNQ0U>%U?`;(#HW%o6L^iL4y#$C zllW!OXT=UII&={87?VJVSC6w1aVJi$rf5LiK384;U$P=*vWAUhjiYsRB9!HXmXjg* uEnk%@U!A$>yqO~dvRTkAmNK{B%$yj-sZ7?0()qGxb~6d0XAOQ9?*AXF!6p>| diff --git a/docs/build/doctrees/cpl_query.iterable.doctree b/docs/build/doctrees/cpl_query.iterable.doctree index 56087112b67c9e5b4c4d6795f19ee3494d79d7e4..dfb9aeb6aace5418a1ad4e109ca22284504696ad 100644 GIT binary patch literal 43162 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%0A4XYz^>Bt z0LOTRdH@2LW2^^QNOWxc0Uk*8s0UO?X8HqNL$XK2oF~hSTMv9r^*#Rd0OLl?A2xgK~Lub3WSS7~~HW848OPM^?LGKvK(RkldS(5U9R?n3vENel<@iebpE zIxu8e(2iYbs<#L6i{xx48aEG_Od{Gw1B@AR__-T}R?bZ}i>1TGdCwpP zTg7(HbGnsH51eGqLK3zo4V0vd9qi3C+ATOb$)Cja)HXXx;}SBI^k5LPwZlwlte zHi2qQxY@wLz#d!uFx-xa+jgr8cTj^|D$D{W@K*rW4|uhfBD!U+(Fp5}&@+BK&__20 zUMU2(zpw~fCbbBjjA6*wER-5G{4hlTLq3~75ud6E3P&oTUno_JK>#QNMA1P#7;SmY zMk_2-y#=ot9au|8{9;wz_S4PYBJ70&HDNoDjrwVS*_&<8!+2vyimf{E3R<+hVhx@Q zhpl4CL!zQP=~$)SY==;HUTTz~RYZr|;oRg4CW8uGPuM>eyjH8xD)_~Ex$3oWQw?Y< zg%KTZv_pH8el|)(Pmlc)8-iR0tB#KGaWxLI_k{gJtTWw&Gz7pXA6Qfcnj*TfTCC5v zL2QBJu$4;Jdi98&)bdJ=R=H62@Q8E(g9~tm4nTFr9FPedsgw(1x6mJ;W5qUx7L?!tW7z}T7H`#yRUB}fJpu041Dt;Ss2OofepQTe+4$1}LPts8!CV(YS#P4^&pc{c+B&IM|sRD7Jcedgc z012Sd7uvuK<7j1=@(r!x5p@e9x*1m$NKSno1hHDFRl?}1O}pq=(`)L3&5)Q;e1czK zE8yaw+x#$W2Ge`@!s7r+F|bTvs?nO?8_`p+B|`vO7T}{HFg+nm#}GW9JnP)w0e+6P z=1Q^Q@rfS(Y&kqE)*_1RVXrk+@xnO<1D5?>Kde;&*l<{!g;i7z{pi3DJso7SR#3}R zoy=AUKvj9sU362hR1b@b1s^H^s;mltuCF#w^hbjl>`4ixkFPi2GGih1KHP2sh%vy99}LI!z+E6cjZy`6=Coqif~q2D&&JwSYAC$b zMv)%s?ig3`=+kQ1Cr31R$rBpw;1mSA!kd0(_&ZCVVd? zh;9Z2Xg$R$P4*Z@n^QLfxB*{g&j;}#zs{2#Xlf_mAOBMSV)A+XGQz|7&k?Y2B*cH7 zg)L6Tf5!2jQTV4#hj9$t=*JQHC^P=0Gi-nv)_I0?oMD}2+Wt;##^8+l7yDBTh<~~7 zLtWAqa;*dt#4OuFFhxW#-Xa(zw&_Mw$FfDf zu~Y#~jamX0K7WFyRJP;V#C*crfsO&4T$^oFmD*-aPmVoQt%t1&0 zr^Lq+zpSAnVCYMYHX392W^<`gt#a)N&fef9;`zOxaPEk%0i)F{w!r*>vI{^>BS0)w z9}AWOuyOKnhf;~1%zN5(m9XmN+Te<`&~CtcAPuMh10QcnMux5?Dp$;Q+rN%_C^h*X z51d$nXo7qNIzi5L7~CbcjH-oMFmHzq#Mw7jd0nkp6ghHB=YJAs{7P%a9ySU8%&@t2?dv}I=OE;x3jb}mlyZB z^Tlg?Tj@nT4Do~8-c|a+ZTDHj*qr@uq^4Klcp5r6)=k;uVk4SPHK48at0}Q7*DvGHmH?P>-22vY}EhRoi8BhUU=^flsx87cU%MZsVr@ EAHe9aE&u=k literal 35914 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 diff --git a/docs/build/doctrees/cpl_translation.doctree b/docs/build/doctrees/cpl_translation.doctree index c70dfd3f21c0a91043d68d5acb5ddef94e0347ca..dd408802392225a6152470d760518f72bcf7b065 100644 GIT binary patch delta 1200 zcmZ8hOKcNY6wSOiHulWeK{1Y~Khz1ef-8_i0&1;-iBzN((*y!yK?x**G2>Bif`{%AoKV&1df6N5t7% z5pP;r*lQ7<)qW;O+;St}bCBl*_t+#H{VF-m3YvSP?E`L>|i4JVQ_z6Pa+ZQJ`mlX?ABG&mt8!o zIb-0oMbVb|XwKpl9hrr$lX|5eZD4k~*xYo!KJvJ=Zu;?rtNG|ESIdK0=9|XD5rw5C z2&a}~$2qSd!#QvcJK3Ow8>hCg)3o_d**OWft!qr$9-*pA`wH7fy;3EyfhSJm_^4lA z;5bfE9$NB}qg0>Q=9ETTgpB!~aD8-*{C?$SKicY-4dv?P=>>Ncxw9GB&BkSSdAR0h zT-+n=hN#gE(FTJwy{qTDQqP6<$_=M zoI>ZBKB2S1N)hAFF~1NY1{u5|@1ojtp!QU+qOPE~waVNdxK zfsp)kQNwNZF0icI@e}WEb}3oX%1g=0IGp14$jL+_u7l5OLDb1&Al0` z5|8)CQMz1LTzlnFwQ-856R=%v2wfrd5*MkAIYtlp$bgcdk3b_*yS9lRpsU(NXs3BC?H3ZWiF{Ly%wb^*S3VelJl!_~_ivnKV4F3mIy@A01 delta 1261 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 literal 543088 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 GV*dvSA*vk! diff --git a/docs/build/doctrees/introduction.doctree b/docs/build/doctrees/introduction.doctree index 409c498baf3daf09815b44199c2ecbf2ad93f415..4a611cdc6ae427699d0fd3aadabf99af7cbb4342 100644 GIT binary patch delta 52 zcmbQ$%($qTk)?rk>hz5)Z;VA1qn&*`6@pUJQj1dal2cFZC=9}$_N0sY%{O` delta 139 zcmew-+9<}-z&iEYM3zoT=H!B$DH-gsQ!+SvSVB@ON~TPn(gPCQxFMBMm_I$Wq$D#h zJ-)akv8W_9WlGzW$-+#zOc`F28<>s@gEc2+CJm-Pd)Omap- haSvx+Vs2_lWkG83l-em7$$rHdiaQNK diff --git a/docs/build/doctrees/setup.doctree b/docs/build/doctrees/setup.doctree index 68420c76ff639b5284e94de6aeb0b8ff0e1046a0..876ecf920eb06d982959cd9ae7ac5a77cf5a4fe9 100644 GIT binary patch delta 66 zcmeygfU#*IBTED8)bfoiJM9@gC-1YjWG={w-~7#9osm@_8OWS0=XjSfWAY!zSg=Hd Q({)BxZji)g0~aSA06qv8`2YX_ delta 58 zcmV-A0LA};p#k!s0R(^rm1nU8xjz9#lMz5EljlDWv->|L0Raq?CPCc+WRrG6JCi>` QBC};e)&T(rvp_^b3~Epl-2eap diff --git a/docs/build/html/_sources/cli.add.md.txt b/docs/build/html/_sources/cpl_cli.add.md.txt similarity index 99% rename from docs/build/html/_sources/cli.add.md.txt rename to docs/build/html/_sources/cpl_cli.add.md.txt index 46b3c5b0..119359fa 100644 --- a/docs/build/html/_sources/cli.add.md.txt +++ b/docs/build/html/_sources/cpl_cli.add.md.txt @@ -29,4 +29,4 @@ If you call the command in a CPL workspace, you can use the project names. Other | Argument | Description | |------------------|:------------------------------------------:| -| ```--simulate``` | Specifies whether the command is simulated | +| ```--simulate``` | Specifies whether the command is simulated | \ No newline at end of file diff --git a/docs/build/html/_sources/cli.build.md.txt b/docs/build/html/_sources/cpl_cli.build.md.txt similarity index 100% rename from docs/build/html/_sources/cli.build.md.txt rename to docs/build/html/_sources/cpl_cli.build.md.txt diff --git a/docs/build/html/_sources/cli.generate.md.txt b/docs/build/html/_sources/cpl_cli.generate.md.txt similarity index 100% rename from docs/build/html/_sources/cli.generate.md.txt rename to docs/build/html/_sources/cpl_cli.generate.md.txt diff --git a/docs/build/html/_sources/cli.help.md.txt b/docs/build/html/_sources/cpl_cli.help.md.txt similarity index 100% rename from docs/build/html/_sources/cli.help.md.txt rename to docs/build/html/_sources/cpl_cli.help.md.txt diff --git a/docs/build/html/_sources/cli.install.md.txt b/docs/build/html/_sources/cpl_cli.install.md.txt similarity index 100% rename from docs/build/html/_sources/cli.install.md.txt rename to docs/build/html/_sources/cpl_cli.install.md.txt diff --git a/docs/build/html/_sources/cli.new.md.txt b/docs/build/html/_sources/cpl_cli.new.md.txt similarity index 100% rename from docs/build/html/_sources/cli.new.md.txt rename to docs/build/html/_sources/cpl_cli.new.md.txt diff --git a/docs/build/html/_sources/cli.overview.md.txt b/docs/build/html/_sources/cpl_cli.overview.md.txt similarity index 51% rename from docs/build/html/_sources/cli.overview.md.txt rename to docs/build/html/_sources/cpl_cli.overview.md.txt index 5cd12eca..1116b4ba 100644 --- a/docs/build/html/_sources/cli.overview.md.txt +++ b/docs/build/html/_sources/cpl_cli.overview.md.txt @@ -39,15 +39,15 @@ The cpl generate command takes as an argument the artifact to be generated. In | Command | Alias | Description | | ----------------------------- |:-------------:|:----------------:| -| [add](cli.add) | a or a | Adds a project reference to given project. -| [build](cli.build) | b or B | Prepares files for publish into an output directory named dist/ at the given output path. Must be executed from within a workspace directory. -| [generate](cli.generate) | g or G | Generate a new file. -| [help](cli.help) | h or H | Lists available command and their short descriptions. -| [install](cli.install) | i or I | With argument installs packages to project, without argument installs project dependencies. -| [new](cli.new) | n or N | Creates new CPL project. -| [publish](cli.publish) | p or P | Prepares files for publish into an output directory named dist/ at the given output path and executes ```setup.py```. Must be executed from within a library workspace directory. -| [remove](cli.remove) | r or R | Removes a project from workspace. -| [start](cli.start) | s or S | Starts CPL project, restarting on file changes. -| [uninstall](cli.uninstall) | ui or UI | Uninstalls packages from project. -| [update](cli.update) | u or U | Update CPL and project dependencies. -| [version](cli.version) | v or V | Outputs CPL CLI version. +| [add](cpl_cli.add) | a or a | Adds a project reference to given project. +| [build](cpl_cli.build) | b or B | Prepares files for publish into an output directory named dist/ at the given output path. Must be executed from within a workspace directory. +| [generate](cpl_cli.generate) | g or G | Generate a new file. +| [help](cpl_cli.help) | h or H | Lists available command and their short descriptions. +| [install](cpl_cli.install) | i or I | With argument installs packages to project, without argument installs project dependencies. +| [new](cpl_cli.new) | n or N | Creates new CPL project. +| [publish](cpl_cli.publish) | p or P | Prepares files for publish into an output directory named dist/ at the given output path and executes ```setup.py```. Must be executed from within a library workspace directory. +| [remove](cpl_cli.remove) | r or R | Removes a project from workspace. +| [start](cpl_cli.start) | s or S | Starts CPL project, restarting on file changes. +| [uninstall](cpl_cli.uninstall) | ui or UI | Uninstalls packages from project. +| [update](cpl_cli.update) | u or U | Update CPL and project dependencies. +| [version](cpl_cli.version) | v or V | Outputs CPL CLI version. diff --git a/docs/build/html/_sources/cli.publish.md.txt b/docs/build/html/_sources/cpl_cli.publish.md.txt similarity index 100% rename from docs/build/html/_sources/cli.publish.md.txt rename to docs/build/html/_sources/cpl_cli.publish.md.txt diff --git a/docs/build/html/_sources/cli.remove.md.txt b/docs/build/html/_sources/cpl_cli.remove.md.txt similarity index 100% rename from docs/build/html/_sources/cli.remove.md.txt rename to docs/build/html/_sources/cpl_cli.remove.md.txt diff --git a/docs/build/html/_sources/cpl_cli.rst.txt b/docs/build/html/_sources/cpl_cli.rst.txt index cec12291..e0ca1832 100644 --- a/docs/build/html/_sources/cpl_cli.rst.txt +++ b/docs/build/html/_sources/cpl_cli.rst.txt @@ -4,16 +4,17 @@ CLI reference .. toctree:: :maxdepth: 4 - cli.overview - cli.add - cli.build - cli.generate - cli.help - cli.install - cli.new - cli.publish - cli.remove - cli.start - cli.uninstall - cli.update - cli.version \ No newline at end of file + cpl_cli.overview + cpl_cli.add + cpl_cli.build + cpl_cli.generate + cpl_cli.help + cpl_cli.install + cpl_cli.new + cpl_cli.publish + cpl_cli.remove + cpl_cli.run + cpl_cli.start + cpl_cli.uninstall + cpl_cli.update + cpl_cli.version \ No newline at end of file diff --git a/docs/build/html/_sources/cli.run.md.txt b/docs/build/html/_sources/cpl_cli.run.md.txt similarity index 100% rename from docs/build/html/_sources/cli.run.md.txt rename to docs/build/html/_sources/cpl_cli.run.md.txt diff --git a/docs/build/html/_sources/cli.start.md.txt b/docs/build/html/_sources/cpl_cli.start.md.txt similarity index 100% rename from docs/build/html/_sources/cli.start.md.txt rename to docs/build/html/_sources/cpl_cli.start.md.txt diff --git a/docs/build/html/_sources/cli.uninstall.md.txt b/docs/build/html/_sources/cpl_cli.uninstall.md.txt similarity index 100% rename from docs/build/html/_sources/cli.uninstall.md.txt rename to docs/build/html/_sources/cpl_cli.uninstall.md.txt diff --git a/docs/build/html/_sources/cli.update.md.txt b/docs/build/html/_sources/cpl_cli.update.md.txt similarity index 100% rename from docs/build/html/_sources/cli.update.md.txt rename to docs/build/html/_sources/cpl_cli.update.md.txt diff --git a/docs/build/html/_sources/cli.version.md.txt b/docs/build/html/_sources/cpl_cli.version.md.txt similarity index 100% rename from docs/build/html/_sources/cli.version.md.txt rename to docs/build/html/_sources/cpl_cli.version.md.txt diff --git a/docs/build/html/_sources/cpl_core.application.rst.txt b/docs/build/html/_sources/cpl_core.application.rst.txt index 140534a8..bcdcbc20 100644 --- a/docs/build/html/_sources/cpl_core.application.rst.txt +++ b/docs/build/html/_sources/cpl_core.application.rst.txt @@ -1,34 +1,61 @@ -cpl_core.application -======================= +cpl\_core.application package +============================= -cpl_core.application.application\_abc ---------------------------------------- +Submodules +---------- + +cpl\_core.application.application\_abc module +--------------------------------------------- .. automodule:: cpl_core.application.application_abc :members: :undoc-members: :show-inheritance: -cpl_core.application.application\_builder -------------------------------------------- +cpl\_core.application.application\_builder module +------------------------------------------------- .. automodule:: cpl_core.application.application_builder :members: :undoc-members: :show-inheritance: -cpl_core.application.application\_builder\_abc ------------------------------------------------- +cpl\_core.application.application\_builder\_abc module +------------------------------------------------------ .. automodule:: cpl_core.application.application_builder_abc :members: :undoc-members: :show-inheritance: -cpl_core.application.startup\_abc ------------------------------------ +cpl\_core.application.application\_extension\_abc module +-------------------------------------------------------- + +.. automodule:: cpl_core.application.application_extension_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.application.startup\_abc module +----------------------------------------- .. automodule:: cpl_core.application.startup_abc :members: :undoc-members: :show-inheritance: + +cpl\_core.application.startup\_extension\_abc module +---------------------------------------------------- + +.. automodule:: cpl_core.application.startup_extension_abc + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.application + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.configuration.rst.txt b/docs/build/html/_sources/cpl_core.configuration.rst.txt index 6b2c210e..708c4ea6 100644 --- a/docs/build/html/_sources/cpl_core.configuration.rst.txt +++ b/docs/build/html/_sources/cpl_core.configuration.rst.txt @@ -1,42 +1,109 @@ -cpl_core.configuration -========================= +cpl\_core.configuration package +=============================== -cpl_core.configuration.configuration --------------------------------------- +Submodules +---------- + +cpl\_core.configuration.argument\_abc module +-------------------------------------------- + +.. automodule:: cpl_core.configuration.argument_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.configuration.argument\_builder module +------------------------------------------------ + +.. automodule:: cpl_core.configuration.argument_builder + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.configuration.argument\_executable\_abc module +-------------------------------------------------------- + +.. automodule:: cpl_core.configuration.argument_executable_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.configuration.argument\_type\_enum module +--------------------------------------------------- + +.. automodule:: cpl_core.configuration.argument_type_enum + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.configuration.configuration module +-------------------------------------------- .. automodule:: cpl_core.configuration.configuration :members: :undoc-members: :show-inheritance: -cpl_core.configuration.configuration\_abc -------------------------------------------- +cpl\_core.configuration.configuration\_abc module +------------------------------------------------- .. automodule:: cpl_core.configuration.configuration_abc :members: :undoc-members: :show-inheritance: -cpl_core.configuration.configuration\_model\_abc --------------------------------------------------- +cpl\_core.configuration.configuration\_model\_abc module +-------------------------------------------------------- .. automodule:: cpl_core.configuration.configuration_model_abc :members: :undoc-members: :show-inheritance: -cpl_core.configuration.configuration\_variable\_name\_enum ------------------------------------------------------------- +cpl\_core.configuration.configuration\_variable\_name\_enum module +------------------------------------------------------------------ .. automodule:: cpl_core.configuration.configuration_variable_name_enum :members: :undoc-members: :show-inheritance: -cpl_core.configuration.console\_argument ------------------------------------------- +cpl\_core.configuration.executable\_argument module +--------------------------------------------------- -.. automodule:: cpl_core.configuration.console_argument +.. automodule:: cpl_core.configuration.executable_argument + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.configuration.flag\_argument module +--------------------------------------------- + +.. automodule:: cpl_core.configuration.flag_argument + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.configuration.validator\_abc module +--------------------------------------------- + +.. automodule:: cpl_core.configuration.validator_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.configuration.variable\_argument module +------------------------------------------------- + +.. automodule:: cpl_core.configuration.variable_argument + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.configuration :members: :undoc-members: :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.console.rst.txt b/docs/build/html/_sources/cpl_core.console.rst.txt index 21ce79e3..b14cc8c8 100644 --- a/docs/build/html/_sources/cpl_core.console.rst.txt +++ b/docs/build/html/_sources/cpl_core.console.rst.txt @@ -1,42 +1,53 @@ -cpl_core.console -=================== +cpl\_core.console package +========================= -cpl_core.console.background\_color\_enum ------------------------------------------- +Submodules +---------- + +cpl\_core.console.background\_color\_enum module +------------------------------------------------ .. automodule:: cpl_core.console.background_color_enum :members: :undoc-members: :show-inheritance: -cpl_core.console.console --------------------------- +cpl\_core.console.console module +-------------------------------- .. automodule:: cpl_core.console.console :members: :undoc-members: :show-inheritance: -cpl_core.console.console\_call --------------------------------- +cpl\_core.console.console\_call module +-------------------------------------- .. automodule:: cpl_core.console.console_call :members: :undoc-members: :show-inheritance: -cpl_core.console.foreground\_color\_enum ------------------------------------------- +cpl\_core.console.foreground\_color\_enum module +------------------------------------------------ .. automodule:: cpl_core.console.foreground_color_enum :members: :undoc-members: :show-inheritance: -cpl_core.console.spinner\_thread ----------------------------------- +cpl\_core.console.spinner\_thread module +---------------------------------------- .. automodule:: cpl_core.console.spinner_thread :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.console + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.database.connection.rst.txt b/docs/build/html/_sources/cpl_core.database.connection.rst.txt index e7324f18..86ec3966 100644 --- a/docs/build/html/_sources/cpl_core.database.connection.rst.txt +++ b/docs/build/html/_sources/cpl_core.database.connection.rst.txt @@ -1,18 +1,29 @@ -cpl_core.database.connection -=============================== +cpl\_core.database.connection package +===================================== -cpl_core.database.connection.database\_connection ---------------------------------------------------- +Submodules +---------- + +cpl\_core.database.connection.database\_connection module +--------------------------------------------------------- .. automodule:: cpl_core.database.connection.database_connection :members: :undoc-members: :show-inheritance: -cpl_core.database.connection.database\_connection\_abc --------------------------------------------------------- +cpl\_core.database.connection.database\_connection\_abc module +-------------------------------------------------------------- .. automodule:: cpl_core.database.connection.database_connection_abc :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.database.connection + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.database.context.rst.txt b/docs/build/html/_sources/cpl_core.database.context.rst.txt index ec368871..a17353d7 100644 --- a/docs/build/html/_sources/cpl_core.database.context.rst.txt +++ b/docs/build/html/_sources/cpl_core.database.context.rst.txt @@ -1,18 +1,29 @@ -cpl_core.database.context -============================ +cpl\_core.database.context package +================================== -cpl_core.database.context.database\_context ---------------------------------------------- +Submodules +---------- + +cpl\_core.database.context.database\_context module +--------------------------------------------------- .. automodule:: cpl_core.database.context.database_context :members: :undoc-members: :show-inheritance: -cpl_core.database.context.database\_context\_abc --------------------------------------------------- +cpl\_core.database.context.database\_context\_abc module +-------------------------------------------------------- .. automodule:: cpl_core.database.context.database_context_abc :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.database.context + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.database.rst.txt b/docs/build/html/_sources/cpl_core.database.rst.txt index cdcb0ce8..c5fbcffb 100644 --- a/docs/build/html/_sources/cpl_core.database.rst.txt +++ b/docs/build/html/_sources/cpl_core.database.rst.txt @@ -1,5 +1,8 @@ -cpl_core.database -==================== +cpl\_core.database package +========================== + +Subpackages +----------- .. toctree:: :maxdepth: 4 @@ -7,28 +10,37 @@ cpl_core.database cpl_core.database.connection cpl_core.database.context +Submodules +---------- - -cpl_core.database.database\_model ------------------------------------ - -.. automodule:: cpl_core.database.database_model - :members: - :undoc-members: - :show-inheritance: - -cpl_core.database.database\_settings --------------------------------------- +cpl\_core.database.database\_settings module +-------------------------------------------- .. automodule:: cpl_core.database.database_settings :members: :undoc-members: :show-inheritance: -cpl_core.database.database\_settings\_name\_enum --------------------------------------------------- +cpl\_core.database.database\_settings\_name\_enum module +-------------------------------------------------------- .. automodule:: cpl_core.database.database_settings_name_enum :members: :undoc-members: :show-inheritance: + +cpl\_core.database.table\_abc module +------------------------------------ + +.. automodule:: cpl_core.database.table_abc + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.database + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.dependency_injection.rst.txt b/docs/build/html/_sources/cpl_core.dependency_injection.rst.txt index 4f27f5fc..4e951d6e 100644 --- a/docs/build/html/_sources/cpl_core.dependency_injection.rst.txt +++ b/docs/build/html/_sources/cpl_core.dependency_injection.rst.txt @@ -1,50 +1,85 @@ -cpl_core.dependency\_injection -================================= +cpl\_core.dependency\_injection package +======================================= -cpl_core.dependency\_injection.service\_collection ----------------------------------------------------- +Submodules +---------- + +cpl\_core.dependency\_injection.scope module +-------------------------------------------- + +.. automodule:: cpl_core.dependency_injection.scope + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.dependency\_injection.scope\_abc module +------------------------------------------------- + +.. automodule:: cpl_core.dependency_injection.scope_abc + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.dependency\_injection.scope\_builder module +----------------------------------------------------- + +.. automodule:: cpl_core.dependency_injection.scope_builder + :members: + :undoc-members: + :show-inheritance: + +cpl\_core.dependency\_injection.service\_collection module +---------------------------------------------------------- .. automodule:: cpl_core.dependency_injection.service_collection :members: :undoc-members: :show-inheritance: -cpl_core.dependency\_injection.service\_collection\_abc ---------------------------------------------------------- +cpl\_core.dependency\_injection.service\_collection\_abc module +--------------------------------------------------------------- .. automodule:: cpl_core.dependency_injection.service_collection_abc :members: :undoc-members: :show-inheritance: -cpl_core.dependency\_injection.service\_descriptor ----------------------------------------------------- +cpl\_core.dependency\_injection.service\_descriptor module +---------------------------------------------------------- .. automodule:: cpl_core.dependency_injection.service_descriptor :members: :undoc-members: :show-inheritance: -cpl_core.dependency\_injection.service\_lifetime\_enum --------------------------------------------------------- +cpl\_core.dependency\_injection.service\_lifetime\_enum module +-------------------------------------------------------------- .. automodule:: cpl_core.dependency_injection.service_lifetime_enum :members: :undoc-members: :show-inheritance: -cpl_core.dependency\_injection.service\_provider --------------------------------------------------- +cpl\_core.dependency\_injection.service\_provider module +-------------------------------------------------------- .. automodule:: cpl_core.dependency_injection.service_provider :members: :undoc-members: :show-inheritance: -cpl_core.dependency\_injection.service\_provider\_abc -------------------------------------------------------- +cpl\_core.dependency\_injection.service\_provider\_abc module +------------------------------------------------------------- .. automodule:: cpl_core.dependency_injection.service_provider_abc :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.dependency_injection + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.environment.rst.txt b/docs/build/html/_sources/cpl_core.environment.rst.txt index 04c1b930..84eaedde 100644 --- a/docs/build/html/_sources/cpl_core.environment.rst.txt +++ b/docs/build/html/_sources/cpl_core.environment.rst.txt @@ -1,26 +1,37 @@ -cpl_core.environment -======================= +cpl\_core.environment package +============================= -cpl_core.environment.application\_environment ------------------------------------------------ +Submodules +---------- + +cpl\_core.environment.application\_environment module +----------------------------------------------------- .. automodule:: cpl_core.environment.application_environment :members: :undoc-members: :show-inheritance: -cpl_core.environment.application\_environment\_abc ----------------------------------------------------- +cpl\_core.environment.application\_environment\_abc module +---------------------------------------------------------- .. automodule:: cpl_core.environment.application_environment_abc :members: :undoc-members: :show-inheritance: -cpl_core.environment.environment\_name\_enum ----------------------------------------------- +cpl\_core.environment.environment\_name\_enum module +---------------------------------------------------- .. automodule:: cpl_core.environment.environment_name_enum :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.environment + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.logging.rst.txt b/docs/build/html/_sources/cpl_core.logging.rst.txt index f34f815d..6f36754d 100644 --- a/docs/build/html/_sources/cpl_core.logging.rst.txt +++ b/docs/build/html/_sources/cpl_core.logging.rst.txt @@ -1,42 +1,53 @@ -cpl_core.logging -=================== +cpl\_core.logging package +========================= -cpl_core.logging.logger\_abc ------------------------------- +Submodules +---------- + +cpl\_core.logging.logger\_abc module +------------------------------------ .. automodule:: cpl_core.logging.logger_abc :members: :undoc-members: :show-inheritance: -cpl_core.logging.logger\_service ----------------------------------- +cpl\_core.logging.logger\_service module +---------------------------------------- .. automodule:: cpl_core.logging.logger_service :members: :undoc-members: :show-inheritance: -cpl_core.logging.logging\_level\_enum ---------------------------------------- +cpl\_core.logging.logging\_level\_enum module +--------------------------------------------- .. automodule:: cpl_core.logging.logging_level_enum :members: :undoc-members: :show-inheritance: -cpl_core.logging.logging\_settings ------------------------------------- +cpl\_core.logging.logging\_settings module +------------------------------------------ .. automodule:: cpl_core.logging.logging_settings :members: :undoc-members: :show-inheritance: -cpl_core.logging.logging\_settings\_name\_enum ------------------------------------------------- +cpl\_core.logging.logging\_settings\_name\_enum module +------------------------------------------------------ .. automodule:: cpl_core.logging.logging_settings_name_enum :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.logging + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.mailing.rst.txt b/docs/build/html/_sources/cpl_core.mailing.rst.txt index 8074d736..323e167c 100644 --- a/docs/build/html/_sources/cpl_core.mailing.rst.txt +++ b/docs/build/html/_sources/cpl_core.mailing.rst.txt @@ -1,42 +1,53 @@ -cpl_core.mailing -=================== +cpl\_core.mailing package +========================= -cpl_core.mailing.email ------------------------- +Submodules +---------- + +cpl\_core.mailing.email module +------------------------------ .. automodule:: cpl_core.mailing.email :members: :undoc-members: :show-inheritance: -cpl_core.mailing.email\_client\_abc -------------------------------------- +cpl\_core.mailing.email\_client\_abc module +------------------------------------------- .. automodule:: cpl_core.mailing.email_client_abc :members: :undoc-members: :show-inheritance: -cpl_core.mailing.email\_client\_service ------------------------------------------ +cpl\_core.mailing.email\_client\_service module +----------------------------------------------- .. automodule:: cpl_core.mailing.email_client_service :members: :undoc-members: :show-inheritance: -cpl_core.mailing.email\_client\_settings ------------------------------------------- +cpl\_core.mailing.email\_client\_settings module +------------------------------------------------ .. automodule:: cpl_core.mailing.email_client_settings :members: :undoc-members: :show-inheritance: -cpl_core.mailing.email\_client\_settings\_name\_enum ------------------------------------------------------- +cpl\_core.mailing.email\_client\_settings\_name\_enum module +------------------------------------------------------------ .. automodule:: cpl_core.mailing.email_client_settings_name_enum :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.mailing + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.pipes.rst.txt b/docs/build/html/_sources/cpl_core.pipes.rst.txt index 0a8bba4d..cc061b15 100644 --- a/docs/build/html/_sources/cpl_core.pipes.rst.txt +++ b/docs/build/html/_sources/cpl_core.pipes.rst.txt @@ -1,9 +1,10 @@ -cpl\_core.pipes +cpl\_core.pipes package ======================= +Submodules +---------- - -cpl\_core.pipes.bool\_pipe +cpl\_core.pipes.bool\_pipe module --------------------------------- .. automodule:: cpl_core.pipes.bool_pipe @@ -11,7 +12,7 @@ cpl\_core.pipes.bool\_pipe :undoc-members: :show-inheritance: -cpl\_core.pipes.first\_char\_to\_lower\_pipe +cpl\_core.pipes.first\_char\_to\_lower\_pipe module --------------------------------------------------- .. automodule:: cpl_core.pipes.first_char_to_lower_pipe @@ -19,7 +20,7 @@ cpl\_core.pipes.first\_char\_to\_lower\_pipe :undoc-members: :show-inheritance: -cpl\_core.pipes.first\_to\_upper\_pipe +cpl\_core.pipes.first\_to\_upper\_pipe module --------------------------------------------- .. automodule:: cpl_core.pipes.first_to_upper_pipe @@ -27,7 +28,7 @@ cpl\_core.pipes.first\_to\_upper\_pipe :undoc-members: :show-inheritance: -cpl\_core.pipes.ip\_address\_pipe +cpl\_core.pipes.ip\_address\_pipe module ---------------------------------------- .. automodule:: cpl_core.pipes.ip_address_pipe @@ -35,7 +36,7 @@ cpl\_core.pipes.ip\_address\_pipe :undoc-members: :show-inheritance: -cpl\_core.pipes.pipe\_abc +cpl\_core.pipes.pipe\_abc module -------------------------------- .. automodule:: cpl_core.pipes.pipe_abc @@ -43,7 +44,7 @@ cpl\_core.pipes.pipe\_abc :undoc-members: :show-inheritance: -cpl\_core.pipes.to\_camel\_case\_pipe +cpl\_core.pipes.to\_camel\_case\_pipe module -------------------------------------------- .. automodule:: cpl_core.pipes.to_camel_case_pipe @@ -51,7 +52,7 @@ cpl\_core.pipes.to\_camel\_case\_pipe :undoc-members: :show-inheritance: -cpl\_core.pipes.to\_snake\_case\_pipe +cpl\_core.pipes.to\_snake\_case\_pipe module -------------------------------------------- .. automodule:: cpl_core.pipes.to_snake_case_pipe @@ -59,10 +60,18 @@ cpl\_core.pipes.to\_snake\_case\_pipe :undoc-members: :show-inheritance: -cpl\_core.pipes.version\_pipe +cpl\_core.pipes.version\_pipe module ------------------------------------ .. automodule:: cpl_core.pipes.version_pipe :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.pipes + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.rst.txt b/docs/build/html/_sources/cpl_core.rst.txt index e1e9b11a..f238136a 100644 --- a/docs/build/html/_sources/cpl_core.rst.txt +++ b/docs/build/html/_sources/cpl_core.rst.txt @@ -1,5 +1,5 @@ API reference -=========== +============= .. toctree:: :maxdepth: 4 @@ -15,3 +15,4 @@ API reference cpl_core.pipes cpl_core.time cpl_core.utils + diff --git a/docs/build/html/_sources/cpl_core.time.rst.txt b/docs/build/html/_sources/cpl_core.time.rst.txt index 7bbec704..4ecce6ec 100644 --- a/docs/build/html/_sources/cpl_core.time.rst.txt +++ b/docs/build/html/_sources/cpl_core.time.rst.txt @@ -1,18 +1,29 @@ -cpl_core.time -================ +cpl\_core.time package +====================== -cpl_core.time.time\_format\_settings --------------------------------------- +Submodules +---------- + +cpl\_core.time.time\_format\_settings module +-------------------------------------------- .. automodule:: cpl_core.time.time_format_settings :members: :undoc-members: :show-inheritance: -cpl_core.time.time\_format\_settings\_names\_enum ---------------------------------------------------- +cpl\_core.time.time\_format\_settings\_names\_enum module +--------------------------------------------------------- .. automodule:: cpl_core.time.time_format_settings_names_enum :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.time + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_core.utils.rst.txt b/docs/build/html/_sources/cpl_core.utils.rst.txt index 846071cb..6318a1de 100644 --- a/docs/build/html/_sources/cpl_core.utils.rst.txt +++ b/docs/build/html/_sources/cpl_core.utils.rst.txt @@ -1,26 +1,37 @@ -cpl_core.utils -================= +cpl\_core.utils package +======================= -cpl_core.utils.credential\_manager ------------------------------------- +Submodules +---------- + +cpl\_core.utils.credential\_manager module +------------------------------------------ .. automodule:: cpl_core.utils.credential_manager :members: :undoc-members: :show-inheritance: -cpl_core.utils.pip --------------------- +cpl\_core.utils.pip module +-------------------------- .. automodule:: cpl_core.utils.pip :members: :undoc-members: :show-inheritance: -cpl_core.utils.string ------------------------ +cpl\_core.utils.string module +----------------------------- .. automodule:: cpl_core.utils.string :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_core.utils + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.application.rst.txt b/docs/build/html/_sources/cpl_discord.application.rst.txt index ef077d22..3ce2c948 100644 --- a/docs/build/html/_sources/cpl_discord.application.rst.txt +++ b/docs/build/html/_sources/cpl_discord.application.rst.txt @@ -1,12 +1,21 @@ -cpl\_discord.application +cpl\_discord.application package ================================ +Submodules +---------- - -cpl\_discord.application.discord\_bot\_application\_abc +cpl\_discord.application.discord\_bot\_application\_abc module -------------------------------------------------------------- .. automodule:: cpl_discord.application.discord_bot_application_abc :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord.application + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.command.rst.txt b/docs/build/html/_sources/cpl_discord.command.rst.txt index 5f495733..ca0bb5a5 100644 --- a/docs/build/html/_sources/cpl_discord.command.rst.txt +++ b/docs/build/html/_sources/cpl_discord.command.rst.txt @@ -1,9 +1,10 @@ -cpl\_discord.command +cpl\_discord.command package ============================ +Submodules +---------- - -cpl\_discord.command.discord\_command\_abc +cpl\_discord.command.discord\_command\_abc module ------------------------------------------------- .. automodule:: cpl_discord.command.discord_command_abc @@ -11,10 +12,18 @@ cpl\_discord.command.discord\_command\_abc :undoc-members: :show-inheritance: -cpl\_discord.command.discord\_commands\_meta +cpl\_discord.command.discord\_commands\_meta module --------------------------------------------------- .. automodule:: cpl_discord.command.discord_commands_meta :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord.command + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.configuration.rst.txt b/docs/build/html/_sources/cpl_discord.configuration.rst.txt index eb855d14..47cda9ed 100644 --- a/docs/build/html/_sources/cpl_discord.configuration.rst.txt +++ b/docs/build/html/_sources/cpl_discord.configuration.rst.txt @@ -1,12 +1,21 @@ -cpl\_discord.configuration +cpl\_discord.configuration package ================================== +Submodules +---------- - -cpl\_discord.configuration.discord\_bot\_settings +cpl\_discord.configuration.discord\_bot\_settings module -------------------------------------------------------- .. automodule:: cpl_discord.configuration.discord_bot_settings :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord.configuration + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.container.rst.txt b/docs/build/html/_sources/cpl_discord.container.rst.txt index a47f50b1..44b70a52 100644 --- a/docs/build/html/_sources/cpl_discord.container.rst.txt +++ b/docs/build/html/_sources/cpl_discord.container.rst.txt @@ -1,9 +1,10 @@ -cpl\_discord.container +cpl\_discord.container package ============================== +Submodules +---------- - -cpl\_discord.container.category\_channel +cpl\_discord.container.category\_channel module ----------------------------------------------- .. automodule:: cpl_discord.container.category_channel @@ -11,7 +12,7 @@ cpl\_discord.container.category\_channel :undoc-members: :show-inheritance: -cpl\_discord.container.container +cpl\_discord.container.container module --------------------------------------- .. automodule:: cpl_discord.container.container @@ -19,7 +20,7 @@ cpl\_discord.container.container :undoc-members: :show-inheritance: -cpl\_discord.container.guild +cpl\_discord.container.guild module ----------------------------------- .. automodule:: cpl_discord.container.guild @@ -27,7 +28,7 @@ cpl\_discord.container.guild :undoc-members: :show-inheritance: -cpl\_discord.container.member +cpl\_discord.container.member module ------------------------------------ .. automodule:: cpl_discord.container.member @@ -35,7 +36,7 @@ cpl\_discord.container.member :undoc-members: :show-inheritance: -cpl\_discord.container.role +cpl\_discord.container.role module ---------------------------------- .. automodule:: cpl_discord.container.role @@ -43,7 +44,7 @@ cpl\_discord.container.role :undoc-members: :show-inheritance: -cpl\_discord.container.text\_channel +cpl\_discord.container.text\_channel module ------------------------------------------- .. automodule:: cpl_discord.container.text_channel @@ -51,7 +52,7 @@ cpl\_discord.container.text\_channel :undoc-members: :show-inheritance: -cpl\_discord.container.thread +cpl\_discord.container.thread module ------------------------------------ .. automodule:: cpl_discord.container.thread @@ -59,10 +60,18 @@ cpl\_discord.container.thread :undoc-members: :show-inheritance: -cpl\_discord.container.voice\_channel +cpl\_discord.container.voice\_channel module -------------------------------------------- .. automodule:: cpl_discord.container.voice_channel :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord.container + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.events.rst.txt b/docs/build/html/_sources/cpl_discord.events.rst.txt index d26aa744..290111c1 100644 --- a/docs/build/html/_sources/cpl_discord.events.rst.txt +++ b/docs/build/html/_sources/cpl_discord.events.rst.txt @@ -1,9 +1,10 @@ -cpl\_discord.events +cpl\_discord.events package =========================== +Submodules +---------- - -cpl\_discord.events.on\_bulk\_message\_delete\_abc +cpl\_discord.events.on\_bulk\_message\_delete\_abc module --------------------------------------------------------- .. automodule:: cpl_discord.events.on_bulk_message_delete_abc @@ -11,7 +12,7 @@ cpl\_discord.events.on\_bulk\_message\_delete\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_command\_abc +cpl\_discord.events.on\_command\_abc module ------------------------------------------- .. automodule:: cpl_discord.events.on_command_abc @@ -19,7 +20,7 @@ cpl\_discord.events.on\_command\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_command\_completion\_abc +cpl\_discord.events.on\_command\_completion\_abc module ------------------------------------------------------- .. automodule:: cpl_discord.events.on_command_completion_abc @@ -27,7 +28,7 @@ cpl\_discord.events.on\_command\_completion\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_command\_error\_abc +cpl\_discord.events.on\_command\_error\_abc module -------------------------------------------------- .. automodule:: cpl_discord.events.on_command_error_abc @@ -35,7 +36,7 @@ cpl\_discord.events.on\_command\_error\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_connect\_abc +cpl\_discord.events.on\_connect\_abc module ------------------------------------------- .. automodule:: cpl_discord.events.on_connect_abc @@ -43,7 +44,7 @@ cpl\_discord.events.on\_connect\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_disconnect\_abc +cpl\_discord.events.on\_disconnect\_abc module ---------------------------------------------- .. automodule:: cpl_discord.events.on_disconnect_abc @@ -51,7 +52,7 @@ cpl\_discord.events.on\_disconnect\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_error\_abc +cpl\_discord.events.on\_error\_abc module ----------------------------------------- .. automodule:: cpl_discord.events.on_error_abc @@ -59,7 +60,7 @@ cpl\_discord.events.on\_error\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_group\_join\_abc +cpl\_discord.events.on\_group\_join\_abc module ----------------------------------------------- .. automodule:: cpl_discord.events.on_group_join_abc @@ -67,7 +68,7 @@ cpl\_discord.events.on\_group\_join\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_group\_remove\_abc +cpl\_discord.events.on\_group\_remove\_abc module ------------------------------------------------- .. automodule:: cpl_discord.events.on_group_remove_abc @@ -75,7 +76,7 @@ cpl\_discord.events.on\_group\_remove\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_available\_abc +cpl\_discord.events.on\_guild\_available\_abc module ---------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_available_abc @@ -83,7 +84,7 @@ cpl\_discord.events.on\_guild\_available\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_channel\_create\_abc +cpl\_discord.events.on\_guild\_channel\_create\_abc module ---------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_channel_create_abc @@ -91,7 +92,7 @@ cpl\_discord.events.on\_guild\_channel\_create\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_channel\_delete\_abc +cpl\_discord.events.on\_guild\_channel\_delete\_abc module ---------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_channel_delete_abc @@ -99,7 +100,7 @@ cpl\_discord.events.on\_guild\_channel\_delete\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_channel\_pins\_update\_abc +cpl\_discord.events.on\_guild\_channel\_pins\_update\_abc module ---------------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_channel_pins_update_abc @@ -107,7 +108,7 @@ cpl\_discord.events.on\_guild\_channel\_pins\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_channel\_update\_abc +cpl\_discord.events.on\_guild\_channel\_update\_abc module ---------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_channel_update_abc @@ -115,7 +116,7 @@ cpl\_discord.events.on\_guild\_channel\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_emojis\_update\_abc +cpl\_discord.events.on\_guild\_emojis\_update\_abc module --------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_emojis_update_abc @@ -123,7 +124,7 @@ cpl\_discord.events.on\_guild\_emojis\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_integrations\_update\_abc +cpl\_discord.events.on\_guild\_integrations\_update\_abc module --------------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_integrations_update_abc @@ -131,7 +132,7 @@ cpl\_discord.events.on\_guild\_integrations\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_join\_abc +cpl\_discord.events.on\_guild\_join\_abc module ----------------------------------------------- .. automodule:: cpl_discord.events.on_guild_join_abc @@ -139,7 +140,7 @@ cpl\_discord.events.on\_guild\_join\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_remove\_abc +cpl\_discord.events.on\_guild\_remove\_abc module ------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_remove_abc @@ -147,7 +148,7 @@ cpl\_discord.events.on\_guild\_remove\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_role\_create\_abc +cpl\_discord.events.on\_guild\_role\_create\_abc module ------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_role_create_abc @@ -155,7 +156,7 @@ cpl\_discord.events.on\_guild\_role\_create\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_role\_delete\_abc +cpl\_discord.events.on\_guild\_role\_delete\_abc module ------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_role_delete_abc @@ -163,7 +164,7 @@ cpl\_discord.events.on\_guild\_role\_delete\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_role\_update\_abc +cpl\_discord.events.on\_guild\_role\_update\_abc module ------------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_role_update_abc @@ -171,7 +172,7 @@ cpl\_discord.events.on\_guild\_role\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_unavailable\_abc +cpl\_discord.events.on\_guild\_unavailable\_abc module ------------------------------------------------------ .. automodule:: cpl_discord.events.on_guild_unavailable_abc @@ -179,7 +180,7 @@ cpl\_discord.events.on\_guild\_unavailable\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_guild\_update\_abc +cpl\_discord.events.on\_guild\_update\_abc module ------------------------------------------------- .. automodule:: cpl_discord.events.on_guild_update_abc @@ -187,7 +188,7 @@ cpl\_discord.events.on\_guild\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_invite\_create\_abc +cpl\_discord.events.on\_invite\_create\_abc module -------------------------------------------------- .. automodule:: cpl_discord.events.on_invite_create_abc @@ -195,7 +196,7 @@ cpl\_discord.events.on\_invite\_create\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_invite\_delete\_abc +cpl\_discord.events.on\_invite\_delete\_abc module -------------------------------------------------- .. automodule:: cpl_discord.events.on_invite_delete_abc @@ -203,7 +204,7 @@ cpl\_discord.events.on\_invite\_delete\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_member\_ban\_abc +cpl\_discord.events.on\_member\_ban\_abc module ----------------------------------------------- .. automodule:: cpl_discord.events.on_member_ban_abc @@ -211,7 +212,7 @@ cpl\_discord.events.on\_member\_ban\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_member\_join\_abc +cpl\_discord.events.on\_member\_join\_abc module ------------------------------------------------ .. automodule:: cpl_discord.events.on_member_join_abc @@ -219,7 +220,7 @@ cpl\_discord.events.on\_member\_join\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_member\_remove\_abc +cpl\_discord.events.on\_member\_remove\_abc module -------------------------------------------------- .. automodule:: cpl_discord.events.on_member_remove_abc @@ -227,7 +228,7 @@ cpl\_discord.events.on\_member\_remove\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_member\_unban\_abc +cpl\_discord.events.on\_member\_unban\_abc module ------------------------------------------------- .. automodule:: cpl_discord.events.on_member_unban_abc @@ -235,7 +236,7 @@ cpl\_discord.events.on\_member\_unban\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_member\_update\_abc +cpl\_discord.events.on\_member\_update\_abc module -------------------------------------------------- .. automodule:: cpl_discord.events.on_member_update_abc @@ -243,7 +244,7 @@ cpl\_discord.events.on\_member\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_message\_abc +cpl\_discord.events.on\_message\_abc module ------------------------------------------- .. automodule:: cpl_discord.events.on_message_abc @@ -251,7 +252,7 @@ cpl\_discord.events.on\_message\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_message\_delete\_abc +cpl\_discord.events.on\_message\_delete\_abc module --------------------------------------------------- .. automodule:: cpl_discord.events.on_message_delete_abc @@ -259,7 +260,7 @@ cpl\_discord.events.on\_message\_delete\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_message\_edit\_abc +cpl\_discord.events.on\_message\_edit\_abc module ------------------------------------------------- .. automodule:: cpl_discord.events.on_message_edit_abc @@ -267,7 +268,7 @@ cpl\_discord.events.on\_message\_edit\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_private\_channel\_create\_abc +cpl\_discord.events.on\_private\_channel\_create\_abc module ------------------------------------------------------------ .. automodule:: cpl_discord.events.on_private_channel_create_abc @@ -275,7 +276,7 @@ cpl\_discord.events.on\_private\_channel\_create\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_private\_channel\_delete\_abc +cpl\_discord.events.on\_private\_channel\_delete\_abc module ------------------------------------------------------------ .. automodule:: cpl_discord.events.on_private_channel_delete_abc @@ -283,7 +284,7 @@ cpl\_discord.events.on\_private\_channel\_delete\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_private\_channel\_pins\_update\_abc +cpl\_discord.events.on\_private\_channel\_pins\_update\_abc module ------------------------------------------------------------------ .. automodule:: cpl_discord.events.on_private_channel_pins_update_abc @@ -291,7 +292,7 @@ cpl\_discord.events.on\_private\_channel\_pins\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_private\_channel\_update\_abc +cpl\_discord.events.on\_private\_channel\_update\_abc module ------------------------------------------------------------ .. automodule:: cpl_discord.events.on_private_channel_update_abc @@ -299,7 +300,7 @@ cpl\_discord.events.on\_private\_channel\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_raw\_reaction\_add\_abc +cpl\_discord.events.on\_raw\_reaction\_add\_abc module ------------------------------------------------------ .. automodule:: cpl_discord.events.on_raw_reaction_add_abc @@ -307,7 +308,7 @@ cpl\_discord.events.on\_raw\_reaction\_add\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_raw\_reaction\_clear\_abc +cpl\_discord.events.on\_raw\_reaction\_clear\_abc module -------------------------------------------------------- .. automodule:: cpl_discord.events.on_raw_reaction_clear_abc @@ -315,7 +316,7 @@ cpl\_discord.events.on\_raw\_reaction\_clear\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_raw\_reaction\_clear\_emoji\_abc +cpl\_discord.events.on\_raw\_reaction\_clear\_emoji\_abc module --------------------------------------------------------------- .. automodule:: cpl_discord.events.on_raw_reaction_clear_emoji_abc @@ -323,7 +324,7 @@ cpl\_discord.events.on\_raw\_reaction\_clear\_emoji\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_raw\_reaction\_remove\_abc +cpl\_discord.events.on\_raw\_reaction\_remove\_abc module --------------------------------------------------------- .. automodule:: cpl_discord.events.on_raw_reaction_remove_abc @@ -331,7 +332,7 @@ cpl\_discord.events.on\_raw\_reaction\_remove\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_reaction\_add\_abc +cpl\_discord.events.on\_reaction\_add\_abc module ------------------------------------------------- .. automodule:: cpl_discord.events.on_reaction_add_abc @@ -339,7 +340,7 @@ cpl\_discord.events.on\_reaction\_add\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_reaction\_clear\_abc +cpl\_discord.events.on\_reaction\_clear\_abc module --------------------------------------------------- .. automodule:: cpl_discord.events.on_reaction_clear_abc @@ -347,7 +348,7 @@ cpl\_discord.events.on\_reaction\_clear\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_reaction\_clear\_emoji\_abc +cpl\_discord.events.on\_reaction\_clear\_emoji\_abc module ---------------------------------------------------------- .. automodule:: cpl_discord.events.on_reaction_clear_emoji_abc @@ -355,7 +356,7 @@ cpl\_discord.events.on\_reaction\_clear\_emoji\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_reaction\_remove\_abc +cpl\_discord.events.on\_reaction\_remove\_abc module ---------------------------------------------------- .. automodule:: cpl_discord.events.on_reaction_remove_abc @@ -363,7 +364,7 @@ cpl\_discord.events.on\_reaction\_remove\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_ready\_abc +cpl\_discord.events.on\_ready\_abc module ----------------------------------------- .. automodule:: cpl_discord.events.on_ready_abc @@ -371,7 +372,7 @@ cpl\_discord.events.on\_ready\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_resume\_abc +cpl\_discord.events.on\_resume\_abc module ------------------------------------------ .. automodule:: cpl_discord.events.on_resume_abc @@ -379,7 +380,7 @@ cpl\_discord.events.on\_resume\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_typing\_abc +cpl\_discord.events.on\_typing\_abc module ------------------------------------------ .. automodule:: cpl_discord.events.on_typing_abc @@ -387,7 +388,7 @@ cpl\_discord.events.on\_typing\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_user\_update\_abc +cpl\_discord.events.on\_user\_update\_abc module ------------------------------------------------ .. automodule:: cpl_discord.events.on_user_update_abc @@ -395,7 +396,7 @@ cpl\_discord.events.on\_user\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_voice\_state\_update\_abc +cpl\_discord.events.on\_voice\_state\_update\_abc module -------------------------------------------------------- .. automodule:: cpl_discord.events.on_voice_state_update_abc @@ -403,10 +404,18 @@ cpl\_discord.events.on\_voice\_state\_update\_abc :undoc-members: :show-inheritance: -cpl\_discord.events.on\_webhooks\_update\_abc +cpl\_discord.events.on\_webhooks\_update\_abc module ---------------------------------------------------- .. automodule:: cpl_discord.events.on_webhooks_update_abc :members: :undoc-members: - :show-inheritance: \ No newline at end of file + :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord.events + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.helper.rst.txt b/docs/build/html/_sources/cpl_discord.helper.rst.txt index 396b4c89..fab914ae 100644 --- a/docs/build/html/_sources/cpl_discord.helper.rst.txt +++ b/docs/build/html/_sources/cpl_discord.helper.rst.txt @@ -1,12 +1,21 @@ -cpl\_discord.helper +cpl\_discord.helper package =========================== +Submodules +---------- - -cpl\_discord.helper.to\_containers\_converter +cpl\_discord.helper.to\_containers\_converter module ---------------------------------------------------- .. automodule:: cpl_discord.helper.to_containers_converter :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord.helper + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.rst.txt b/docs/build/html/_sources/cpl_discord.rst.txt index 5d10fb20..d777438b 100644 --- a/docs/build/html/_sources/cpl_discord.rst.txt +++ b/docs/build/html/_sources/cpl_discord.rst.txt @@ -1,6 +1,9 @@ -Discord reference +cpl\_discord package ==================== +Subpackages +----------- + .. toctree:: :maxdepth: 4 @@ -11,3 +14,22 @@ Discord reference cpl_discord.events cpl_discord.helper cpl_discord.service + +Submodules +---------- + +cpl\_discord.discord\_event\_types\_enum module +----------------------------------------------- + +.. automodule:: cpl_discord.discord_event_types_enum + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_discord.service.rst.txt b/docs/build/html/_sources/cpl_discord.service.rst.txt index a6898292..13527b5b 100644 --- a/docs/build/html/_sources/cpl_discord.service.rst.txt +++ b/docs/build/html/_sources/cpl_discord.service.rst.txt @@ -1,9 +1,10 @@ -cpl\_discord.service +cpl\_discord.service package ============================ +Submodules +---------- - -cpl\_discord.service.command\_error\_handler\_service +cpl\_discord.service.command\_error\_handler\_service module ------------------------------------------------------------ .. automodule:: cpl_discord.service.command_error_handler_service @@ -11,7 +12,7 @@ cpl\_discord.service.command\_error\_handler\_service :undoc-members: :show-inheritance: -cpl\_discord.service.discord\_bot\_service +cpl\_discord.service.discord\_bot\_service module ------------------------------------------------- .. automodule:: cpl_discord.service.discord_bot_service @@ -19,7 +20,7 @@ cpl\_discord.service.discord\_bot\_service :undoc-members: :show-inheritance: -cpl\_discord.service.discord\_bot\_service\_abc +cpl\_discord.service.discord\_bot\_service\_abc module ------------------------------------------------------ .. automodule:: cpl_discord.service.discord_bot_service_abc @@ -27,7 +28,7 @@ cpl\_discord.service.discord\_bot\_service\_abc :undoc-members: :show-inheritance: -cpl\_discord.service.discord\_collection +cpl\_discord.service.discord\_collection module ----------------------------------------------- .. automodule:: cpl_discord.service.discord_collection @@ -35,7 +36,7 @@ cpl\_discord.service.discord\_collection :undoc-members: :show-inheritance: -cpl\_discord.service.discord\_collection\_abc +cpl\_discord.service.discord\_collection\_abc module ---------------------------------------------------- .. automodule:: cpl_discord.service.discord_collection_abc @@ -43,7 +44,7 @@ cpl\_discord.service.discord\_collection\_abc :undoc-members: :show-inheritance: -cpl\_discord.service.discord\_service +cpl\_discord.service.discord\_service module -------------------------------------------- .. automodule:: cpl_discord.service.discord_service @@ -51,10 +52,18 @@ cpl\_discord.service.discord\_service :undoc-members: :show-inheritance: -cpl\_discord.service.discord\_service\_abc +cpl\_discord.service.discord\_service\_abc module ------------------------------------------------- .. automodule:: cpl_discord.service.discord_service_abc :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_discord.service + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.base.rst.txt b/docs/build/html/_sources/cpl_query.base.rst.txt index 156985e5..34fc9962 100644 --- a/docs/build/html/_sources/cpl_query.base.rst.txt +++ b/docs/build/html/_sources/cpl_query.base.rst.txt @@ -1,9 +1,10 @@ -cpl\_query.base +cpl\_query.base package ======================= +Submodules +---------- - -cpl\_query.base.default\_lambda +cpl\_query.base.default\_lambda module -------------------------------------- .. automodule:: cpl_query.base.default_lambda @@ -11,7 +12,7 @@ cpl\_query.base.default\_lambda :undoc-members: :show-inheritance: -cpl\_query.base.ordered\_queryable +cpl\_query.base.ordered\_queryable module ----------------------------------------- .. automodule:: cpl_query.base.ordered_queryable @@ -19,7 +20,7 @@ cpl\_query.base.ordered\_queryable :undoc-members: :show-inheritance: -cpl\_query.base.ordered\_queryable\_abc +cpl\_query.base.ordered\_queryable\_abc module ---------------------------------------------- .. automodule:: cpl_query.base.ordered_queryable_abc @@ -27,7 +28,7 @@ cpl\_query.base.ordered\_queryable\_abc :undoc-members: :show-inheritance: -cpl\_query.base.queryable\_abc +cpl\_query.base.queryable\_abc module ------------------------------------- .. automodule:: cpl_query.base.queryable_abc @@ -35,18 +36,18 @@ cpl\_query.base.queryable\_abc :undoc-members: :show-inheritance: -cpl\_query.base.sequence\_abc ------------------------------------- +cpl\_query.base.sequence module +------------------------------- -.. automodule:: cpl_query.base.sequence_abc +.. automodule:: cpl_query.base.sequence :members: :undoc-members: :show-inheritance: -cpl\_query.base.sequence\_values ---------------------------------------- +Module contents +--------------- -.. automodule:: cpl_query.base.sequence_values +.. automodule:: cpl_query.base :members: :undoc-members: :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.enumerable.rst.txt b/docs/build/html/_sources/cpl_query.enumerable.rst.txt index 37e58add..6c4d6a18 100644 --- a/docs/build/html/_sources/cpl_query.enumerable.rst.txt +++ b/docs/build/html/_sources/cpl_query.enumerable.rst.txt @@ -1,9 +1,10 @@ -cpl\_query.enumerable +cpl\_query.enumerable package ============================= +Submodules +---------- - -cpl\_query.enumerable.enumerable +cpl\_query.enumerable.enumerable module --------------------------------------- .. automodule:: cpl_query.enumerable.enumerable @@ -11,10 +12,18 @@ cpl\_query.enumerable.enumerable :undoc-members: :show-inheritance: -cpl\_query.enumerable.enumerable\_abc +cpl\_query.enumerable.enumerable\_abc module -------------------------------------------- .. automodule:: cpl_query.enumerable.enumerable_abc :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_query.enumerable + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.extension.rst.txt b/docs/build/html/_sources/cpl_query.extension.rst.txt index a0bba3e0..4579c6e1 100644 --- a/docs/build/html/_sources/cpl_query.extension.rst.txt +++ b/docs/build/html/_sources/cpl_query.extension.rst.txt @@ -1,12 +1,21 @@ -cpl\_query.extension +cpl\_query.extension package ============================ +Submodules +---------- - -cpl\_query.extension.list +cpl\_query.extension.list module -------------------------------- .. automodule:: cpl_query.extension.list :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_query.extension + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.iterable.rst.txt b/docs/build/html/_sources/cpl_query.iterable.rst.txt index 8a7bc919..07ea0c19 100644 --- a/docs/build/html/_sources/cpl_query.iterable.rst.txt +++ b/docs/build/html/_sources/cpl_query.iterable.rst.txt @@ -1,9 +1,10 @@ -cpl\_query.iterable +cpl\_query.iterable package =========================== +Submodules +---------- - -cpl\_query.iterable.iterable +cpl\_query.iterable.iterable module ----------------------------------- .. automodule:: cpl_query.iterable.iterable @@ -11,10 +12,18 @@ cpl\_query.iterable.iterable :undoc-members: :show-inheritance: -cpl\_query.iterable.iterable\_abc +cpl\_query.iterable.iterable\_abc module ---------------------------------------- .. automodule:: cpl_query.iterable.iterable_abc :members: :undoc-members: :show-inheritance: + +Module contents +--------------- + +.. automodule:: cpl_query.iterable + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/build/html/_sources/cpl_query.rst.txt b/docs/build/html/_sources/cpl_query.rst.txt index 5a362b26..5812cc73 100644 --- a/docs/build/html/_sources/cpl_query.rst.txt +++ b/docs/build/html/_sources/cpl_query.rst.txt @@ -1,10 +1,10 @@ Query reference -=========== +=============== .. toctree:: :maxdepth: 4 - cpl_query.base - cpl_query.enumerable - cpl_query.extension - cpl_query.iterable + cpl_query.base + cpl_query.enumerable + cpl_query.extension + cpl_query.iterable diff --git a/docs/build/html/_sources/introduction.md.txt b/docs/build/html/_sources/introduction.md.txt index fc9721da..33d31430 100644 --- a/docs/build/html/_sources/introduction.md.txt +++ b/docs/build/html/_sources/introduction.md.txt @@ -56,5 +56,5 @@ This CPL docs help you learn, understand and use the package. From your first ap - [Getting started](quickstart) - [Setup](setup) - [API Reference](cpl_core) -- [CLI Reference](cli.overview) +- [CLI Reference](cpl_cli.overview) - [Query Reference](cpl_query) diff --git a/docs/build/html/_sources/modules.rst.txt b/docs/build/html/_sources/modules.rst.txt index 5a411fa4..49bd8182 100644 --- a/docs/build/html/_sources/modules.rst.txt +++ b/docs/build/html/_sources/modules.rst.txt @@ -1,10 +1,9 @@ -cpl -=== +Packages +======== .. toctree:: :maxdepth: 4 - getting_started cpl_cli cpl_core cpl_discord diff --git a/docs/build/html/_sources/setup.md.txt b/docs/build/html/_sources/setup.md.txt index be16fa9b..1a953c69 100644 --- a/docs/build/html/_sources/setup.md.txt +++ b/docs/build/html/_sources/setup.md.txt @@ -104,8 +104,8 @@ Hello World ## What's next -- To learn more about the CPL CLI, see the [CLI Overview](cli.overview) -- Fore more informations about the Pyhton files generated by ```cpl new```, see [New Command](cli.new) +- To learn more about the CPL CLI, see the [CLI Overview](cpl_cli.overview) +- Fore more informations about the Pyhton files generated by ```cpl new```, see [New Command](cpl_cli.new) [pip-url]: https://pip.sh-edraft.de diff --git a/docs/build/html/contributing.html b/docs/build/html/contributing.html index 05c75b17..c74eb795 100644 --- a/docs/build/html/contributing.html +++ b/docs/build/html/contributing.html @@ -59,7 +59,7 @@

  • CLI reference
  • API reference
  • -
  • Discord reference
  • +
  • cpl_discord package
  • Query reference
  • Translation reference
  • @@ -127,7 +127,7 @@
  • Be sure that an issue describes the problem you’re fixing, or documents the design for the feature you’d like to add. Discussing the design upfront helps to ensure that we’re ready to accept your work.

  • Fork the sh-edraft.de/cpl repo.

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

    -
    git checkout -b my-fix-branch master
    +
    git checkout -b my-fix-branch master
     
  • @@ -136,13 +136,13 @@
    1. Commit your changes.

      -
      git commit --all
      +
      git commit --all
       

      Note: the optional commit -a command line option will automatically “add” and “rm” edited files.

    2. Push your branch to the repository:

      -
      git push origin my-fix-branch
      +
      git push origin my-fix-branch
       
    3. @@ -158,8 +158,8 @@
      1. Make the required updates to the code.

      2. Create a fixup commit and push to your repository (this will update your Pull Request):

        -
        git commit --all --fixup HEAD
        -git push
        +
        git commit --all --fixup HEAD
        +git push
         
      3. diff --git a/docs/build/html/cli.add.html b/docs/build/html/cpl_cli.add.html similarity index 79% rename from docs/build/html/cli.add.html rename to docs/build/html/cpl_cli.add.html index 54bff940..1d45e0f8 100644 --- a/docs/build/html/cli.add.html +++ b/docs/build/html/cpl_cli.add.html @@ -19,8 +19,8 @@ - - + + @@ -43,7 +43,7 @@
      4. Getting started
      5. Contributing to CPL
      6. CLI reference
      7. API reference
      8. -
      9. Discord reference
      10. +
      11. cpl_discord package
      12. Query reference
      13. Translation reference
      14. @@ -87,7 +88,7 @@
      15. CLI reference »
      16. cpl add
      17. - View page source + View page source

      18. @@ -156,8 +157,8 @@ cpl A <source-project> <target-project>

    add

    add

    a or a

    Adds a project reference to given project.

    build

    build

    b or B

    Prepares files for publish into an output directory named dist/ at the given output path. Must be executed from within a workspace directory.

    generate

    generate

    g or G

    Generate a new file.

    help

    help

    h or H

    Lists available command and their short descriptions.

    install

    install

    i or I

    With argument installs packages to project, without argument installs project dependencies.

    new

    new

    n or N

    Creates new CPL project.

    publish

    publish

    p or P

    Prepares files for publish into an output directory named dist/ at the given output path and executes setup.py. Must be executed from within a library workspace directory.

    remove

    remove

    r or R

    Removes a project from workspace.

    start

    start

    s or S

    Starts CPL project, restarting on file changes.

    uninstall

    uninstall

    ui or UI

    Uninstalls packages from project.

    update

    update

    u or U

    Update CPL and project dependencies.

    version

    version

    v or V

    Outputs CPL CLI version.

    bYrAlfV^5f2^aL`5bn<`VuhLKb-rj*z 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

    s}R&Kb1iw|~o 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 z zMUBsqz%p%oGQ_2l6ODVepv`|^QeC<^|E*r!-ZMTI?V&WMX2)ls9dG2Y;B)tnYM@MQ zEkHK(>J7?J1chbq)(a zg0vOoPTZ3v1A#-tNebGDGEKW1ff zTdRdcJun&)HC~Js5cM~hbyRw$0#!Vs*zZzGPwWRd;-UTu$}21$>eG;!eLPf>5sHUO zazpV@XG&h`(NJGDakQmUl0s%tZtU!Y><3|_(}`>eL?!>5iDwz`kkC|DZ=+so)%$vC z#uY@my{c?)3~#SDS~~$)ElJT+0kG-}OE6+AUeTBq$d0iNP*x*aUf@`a$5JZuNbt@B zqAE33AzR3GdP-&qTFS;>hP2vsr4-0@f=;XdhKZv@j1rj)L*_)}mYI_10|rIb>h*7r ztlXi9f!*H4NJ4)wyiiNrDR$A$TT}XzsLg1rZ+jvtSTI z75R1P%Erk_=ASt^ zOY$3?(^ns?x9UCe@S18C>=Fe#OS62?$qFeG?;I519bRN2)Mw3gkRC!z$EO}V-$@lWWq`VUS-*ca<40ZfYT%-<*WV$_cid&cnJZ*)eKiT@0I_kN8e1Qm

    >U8#0S;7I06s}oI^fe!jXu(Ws(e_l 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

    P90Zgy*$A`vD)d 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

    }H=lDeDsc)GH^eQDK*b1g3RQkA_x25YK{d|) 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

    LWOAh&7bLD77v3wxcc9 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

    5zN^>(h;=!`=Rr{mj&GN9eq39L?js_HlR;&14E2 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

    3{<`85%O<@y7JHj7UHeV+=BJOA>uaXh%gf94 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 z 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 literal 675162 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 diff --git a/docs/build/doctrees/getting_started.doctree b/docs/build/doctrees/getting_started.doctree index 23692bd81428483baf88603ec6dd462576bf9b0f..6d3d3b887a7115681c95c69fcc01e1ed59e03500 100644 GIT binary patch delta 27 jcmZn=dn3xyz&iEeM3zGvPg!wH7UAq??A*MBGlmfWmP`sU delta 46 zcmaDO+91Z#z&iEoM3zG=8LSz?8;@CW@baYQCZ(ptXXYlRrxs8C%Q1=3Z}SAs7)Ah# C4-m8f diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree index 60583e3cc601446aab58d974793a7da5f7627263..90284558f8f48222d22b5a84536801a661c20925 100644 GIT binary patch delta 975 zcmYk4Ye-XJ7{@*5IOkN7h0gnBDQL7yPA3*7DH^2ZY#>P`IrYS8O`V(4#S2<2GQ@1p zx)5PXs7PguHiu;1ENSwaG;n?3VgkOEq~fpAC!^x2OL@n-~I1@+kN&Pa{9VN&|7@RoF~4 zK!>tme~5pDP4r0eN{@7Kcc-V#lP<}mKE}%K?ISLaFI7qXv>?&#{6gDKv3P8xxNU9;bBIf1uN=01d|VXcR3Nx_@E%=JWQvIq2XZ$d6t^U zBP~$U(03}+ULmjg((rU%z!#>%w4N0z+cOJl%?P~HJVM)wwh<<@PSl-D*XdlS?=qdC zcafKRGcEkp|9q+8GNJ&T*+vM@d_z8Eu5qwn9477A>l`%ZJi+ueO-bdxc!6}}>NqTu zAoG{oIN(AyQqCgYJTP@HV8CpI^|CS4B}^|L8z+5cpcm~! zgMBD_`8D`m{u!-#Hj{LG81)L(L{>4#gZIQFuFnakMd0zt83fZ`IJHH*l@au6Bh=Br zuhUa7Q?(WvQY+dWVvVIqtc4*<4{u#18P)d$PEX#7k^qHgTgw%SfBeB_1hCMA+TDM4~HG$T-rNBBm6mAsS OM7VC-%k{#9t>O>R@mfRx delta 1415 zcmX|>U2GIp6vuaFc6PV8ngDHWx6*dI1_4OACFh1DyVdYIL_`mnqzD&;j{r>0P zGk21in9%5F&D?8#>}g7w5q<7rVG7rWuHAJliMQYB7v46zQWu)r6s00t6w}vvOYHkb zmjtT;Dga9CKrc`>qqM-Do{P>9P`fYwjv)iRS2HfO?|2Pye$?Q59F~o0IsWSapqC1 zf5Lh~jWL~h1nWtxr__2Z>)0IA(lv)eWLr*3`@(c2yAvpvQJz9;p6&yBo>7TJ_ER}t z9jt}fZm2my^)T<8?7GYB&TQ9sz5q@$ekh}qEJ$J_ zkB*IgEBF$&040X>Q-wcFduvY2 z__$ctQ0Jf?EuGZxMq5$hvNluKiZBJj&9IF!*&Cjc$syF#vEmYvH#qqXk|FxY^w>LJ zc*a1)VItmHzD&joP}5N4I%X(EiH*aid}sU2O253nR)$F$iG=B&m)ns$$mkH~F1-@h zvCmDp&-AKc_&eGn~y{r!A>wc=~6d; zFWQBc5iqJu*_aT7MAi7iRYqv**9sE(gkYqvvq!8s4D(6&G(<({{C3pnLFB#eMf@V5FtaY^yhe Q{6+b63%{8jdSq?=5Ae61e*gdg diff --git a/docs/build/doctrees/introduction.doctree b/docs/build/doctrees/introduction.doctree index 4a611cdc6ae427699d0fd3aadabf99af7cbb4342..ae560060b87278403e7d830bc25bf6c22eb644ea 100644 GIT binary patch delta 1227 zcmbV~TS${(9LD!Kr*qCcmWS!)=V9rz%`wfgbOu3?BAp~bQs!KK`<%Mmx6DE-Gf)_% z{uh`R9VDU~&GD5e1WE@8LGVV&1XBpfE(Ssu1sVO{*F!^q1V2};Ll57&aHtNj=-9hf9+#fs$ zMe=#n6I7Rmc#!8PhbbP3K1C)2i=pqNDqaiAp+;CxK1D7hERKhzFz{(lFB$^fd=}mT z`iQrv2dUOYwj+;IUW#mony4{QN56u_=-24)?MpI>A7Yf)mOq3HiThq4mJ(YYn@#K{ zVmsm{zz{!*a)8LBgib^s!TE$vu&AcMkT@l-Cu+%!cwkv0RH|E$4^UQUJ|Z8doS6Iz z)NDWMYgGH$pWshq0!s1D-k%8;`pP-Qo%laf3NsSRJ zGfWKhWj;i+e#->A4&N}}v8@eRWXk<5EiPw$CvkJc=!=SgF#R+v>V>qBX4}QurUr|> z(Oc#rLa;Q~*#xggamj7B*1J#&aLSON3MPB4PMeo!WDtOe6>4{^Ah$Xl)z+qF+iqJFY_>SP(PA<+5bm1f0c9Ia-k1il zNf&K$n>11W-2_&0lTEvLcxcHp0VXMqY=*aQqz&gi#Ha~x9(@6EdMHT(;BKUrq*OY_rYStW7>7q=&*(b8Zef1k_S=FQ;A s>27+mo1W@+b1d=608UA7b0z$Wc%rz1iSj5KT3tf5%i*pgx7{`R-^4ScaR2}S delta 1593 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 delta 4314 zcmb_feQXVNba8@Ea7B(`HWO`0`cKdpA_k}OWws%=UOjhkG1zBXU} zpqZL5##EMpVWf|%4hCJbQJ4T}bk?ddgrICy1qlk#7y`jG##Ep~MVlt7!8*qC-aU7@ zM8Kk!e_r2n@ALkCzxVlg{od&pxPQIKSw3qylQ=kOdDSdgq}+?YY2!@zn=Rt+;qvf7 zS}tvZH_L)>%G67C1gg<4GrtHw%nveWxMAJ~_D(N!St<`Eqw%9+GLtT>9gd4}aU>N> z#FAnnlg^8aN0JW?iy3J=ZN=yQp@C>@FcV4VqaltCACL9Ll9>s`??f~{n3+gPeo2DCM3e9fBlHC@h+slG?tw7)^?S zq$CE0<3qC8hazuZlZ`Z;W16g*^(0)hHNd637<|niB!$0TsPI)yVc#N!g_^=>U_cy9 z-HEt-5;v=e)2taqT!*zEuIy-3#mRXvXI*JhqvtfqW)8wmKju;BU8F9*_JkBoCIW-v z=pDt)u1b@0VA$cek|lkZy=ZHrdXu-qNKpV>b~_h_I{TkV=`MV`*6N_;VdyA0O*4Zy z;{~Cx-f^7E$-#PAMotpruxXaa!Ca#c&J_yWVVtOipBEN8dKaz;!(R&@A=uLh8!8Gj zhZT}3by$w#BRCM^%LQe;JOCdQ`N{P=Oo3Y-LkD>r2P|Bfw3LySZy{w1|BR|()*BW)>`Aj;QSfYIs*FsUbfNv|xkC5+4d>i6N6+-Jul9GZEmj|2`E^<1}mReWQ?BgI;r1Bfs z`7AA$pXPIb>vBWyMmrR_+>Y}+Rwz3l-JLZ!{W$!@R|~x^2gg7!5#Wy)ptFtuUt&wt zqMm}G%GY%4>3Qtxgp`q=M@Kn}1FL8QQ3Dda1ZS2XCHUVdTWwk)lpCROo%i9)cm|bc z=iFm_cG^9`>s;5D$kn89shbjDwpvg&=7A5ZPZB#1YwOm+_i6<0BY2_aRC9$XCns&| ziw^e3`tit5poBE%%gELEKEZb4#0L!51`3D6#0tTxnIBOE1#5^L)bzYxt8KTH5n4CV zY%_d)^>(fl-dw$zTLr5;uBIBqm)qG;i^F(E_ORy%a4^zuq4nDodYfi8n^^H-1_hl# z<^Q`UL>oSg{2}fT9INZ2H^VSj7qTBh20gE3^{slWKV#BsrsjX;^&X7%p?Ur=DJ1^- z2Z`-0j5LhX^Ax<>5O6%jnBAT2wBRfRz2&;|eclk4fzNr{F-SAsEf^%buSyNlk6B=h zLAtsqNS%cE12ssRnVA=yGg}A;Fpap+)cQ=(WRW+4S~l5wJS@^P+ZVt zdw?7rW_F-hHIuFIz>eU?3f0?ZRud&vMI?6w|69((+296(YGzRWVwqyPn;?C#Y)uWh z_{`AmZE|W;^#q4NQ`xaK7v`I+!>lFVQT5-Nc@HMN9;Vj&;Tz3@vN;b-H+K_NpRzHC zvlAvqq2dpJ^WRJJj!-yE?{b&GWd%aAkkaqFvc}X#&EX ztGD0&N6j<|_^yThA=)(aS&MQz(##8J(#^I0{z+2x)c}2l2g^_(LxtC#bpPPFHzQ1p!KK~lczrC*-=j}bMl|MzY zbn%Iycz@qeYA_iXhz+LLwMqUJ9O&^q)Qi*dC)u!>{h4lH!)|sl+{uPNvVZV5*pR}q zmE&yaVa|JSNTscV(E*Wt_On}9gUqlZ3Qk19h$!nL%G!vsE|QX}nI|KZ?8xTD-%gc_ ceT=DGdl|LDb&XLoE_pN?*uR^@FSX#m0ryKD3jhEB diff --git a/docs/build/doctrees/setup.doctree b/docs/build/doctrees/setup.doctree index 876ecf920eb06d982959cd9ae7ac5a77cf5a4fe9..b04a5e7b8c2300927db8ddb7ca6e5cad92df3b1e 100644 GIT binary patch delta 3739 zcmb7{e{37&8OL*XwsUsQ)K2U)jT1Lb$uIv%;-n#UXwo!k3&Tx9)Rk_dQR{?*^EFLV z{}`>b3evR$Baamxqe(;Sk5!tc4d@`+3S|Q-!7?_DCTy)5u`!A9LqkGHQv_SL!Jg;6 zJL8~O_5R44d!Kvm`F@_~ecpS|$Ify~Pjco5%}@M&=rQx>vm)2S2_B^#76PqsKmQwE zvA~evg@eKXT-xr1efH8_8FNBTrlzwQYh1qfo`VOXv8n8ErW7a1BhzwL*~e}qqw)LX zWHw`;j>~cRP%4&)CFMjmQ-*%>;pxfPL@b$oIHmZNVa21|0bFYg(AhCIWaU>P6V0N!wS^q)Ow_221C4ixi!i>8a zj#&;64Od!+G{3w7&8$IlXOT3kVpEA^baFD7ROH~qWUNqS&NH%7o$M(_wnIEbWD8m@goJ6L*1mYd}bHDxJLnV3G;YEzI%P~%A7(0r@u-&gjlZoJzd>Hrd z$_ziy7$lwH`;1}sn$y9d`k(1$0BR~EZV_54K0wol%-`zJ{TE@>^|;_sEihWu0uHAc zs@(NX6JJuIcq8SyQwfi2-3Vu#CYxdUFVo3QuhX<1uDG3!e{##7U4&2E-$nr+I6Wb^ z%aA3f8bwHrtN-HQvCRQ^!d1zuX0WaHqw@gL_`EKpP~AA-i$>LvD)j(;IV5;ywaDK} zQ=iSayO9THxa#px8LX;ub7p9$YQU%y6qR$qx2kd(uGYit&4sfWradeq*w=_WhMVuG z_o~eV)S?6Fc^Z<7uzSt3DDpj6R~v%U{yN?~@hg z*NV~{MbS$76ui6kNzz)%({k4S8fWTDI8Z(FM4Qla4zAQai|w&WU>$RDoy1A7aI*`> zs-H%4Et%Wlm3mQPOHWqpU9sP*lX}4UZUH4N2~7-*xDHjp0)SJ z4rdjMdKu^HJPveR_T>>%zAmu%&tt@wwTK`2MQ#v2@h_n18kqv{?|{Tz(JS-5=GE3J zqKRv~3m$D9b9vP3da_FGu;LxYEp-TlwqC3S57CZ5u2S3dN?pfFHNsEZYS804oNfxi zXKkYNX@14Z+gZh`O?k^&uwu7i#XkL_VsE#L{1U6!bD?ig<8~rNm~S_+9U9Rg(4(kg z8PHS$7i{W$9RrSFz!3Cqpek(NZ~-j}T7s;ZM)deH^mUQ%H<|C|TSQKV+iyvtsHVIm**E8xjYTiG0d}*$NUPOfkq8_plcg@am?qI_$S-GbRN7xb)k=YZ)6G+ z>zTc}%_MLYvv1w52(WXBde6+ z&yh;H(&~i)qPYMwL+iK^I5*T~8b%uh;MINbk0IX!A0dePAq`jQ4gE(N(sV+8hlW>a zxI}{$UyQ1ShJG4)X?T-{%QTE*gR6UK=%!E`Xn2o?cW_8$tW(hgGW{4!&_b%DnPz(F z2bfrz38k4xnhB&?@H7jYW|U^=C&qYy-_NDNmAYOITd&R8=9%vkAbKx3uzT4Nog nE5>?7C@I%rX@@dcT#CTRPOdy-J8&eC+?$w8-AB-=@z(zV<_(Ku delta 4148 zcmbuCdu&_P9mjiL@x8W_x~c8B#IchmY17zFnxtuy&^(#|1)I8zsDRXV=}mImYu9f4&N-EJ6Euw;-DH=orwlPhkPdpR^?HGTdNn@qjs#c(_iR&Cit8PNucAb|9C?B(hp2KVwU4d$W&D zYI$9qQONh`#F&~G&&OvRq@qntrV=BGZ2lMQ)hY#b3f|Ul)QrK|uV%9$kfL!NVOz9A$Zm>6k!nI48RAUJ6GEavU)^6tm?pX=wm| z$rv}h`ARG; zB^ewDeb9n7Te2`+b{zh&IgD&)ir7wCY(vFtj@pB|n$1MUwJCB0efL~&BG|7?FmSnK z?qyO774CAmIN4b5e{itJw_Yj3(ev=sioYT7S8&nZ0w>F5ZXRAMe;Oxvd3ev>07H@l zQ!7`y-2Ad-iU2hTvMiq!vkv%*MC+~O-Ex%7Jx7cft`3h4gyjt08uK!IYVXrM30IgLoBf=M~ z-(7F@TWfJ1f`R8PB2hphSJk`J=|7^=3((dQv@75UnobAdtzakb7ry3nL|`lb&uZD} z7Z#}TH7{6dcP_5hOw|1FubOwzk%t7D=r zBlYBUQqV_9&jNakNBO!l=;TGiYOfWK|E;@(T{l@6?OU+x#@9png|T|gVVS!@!dUPb z$BbPxR#LAbuc0{E$H?{hu%nJ1%~u)v}_k)vc4XE7V+aKJM8Uhahu&XG)PRH zhmxk-acvYAO~kDvt~NNmF$C{6$)ZRsv9NyCwA~ErfXH(2(0ZBg6T#(eRAPuFLQhBY z;-NJ$F+OWsevk1RVwRO{X8a)1I)`0TB0Gw=V^dAc5ri>A664jNQ9ywdRt z%u7-FMqZ9|wjj7uqI=y;OcnV>2`+a&i9<+bUsnfbnEg%HpRl=3qWR+N} z-Ez5AS~OWTdI-Rd%|A!e+az|5g}dd_D8ic;)bw@y;e;4Ha z$tB=uPnbSG$))w%p6VsMH}|7|DwOqypto1%zc10<;xs#U5<+&fzSuj55kK+Gi0|)< zAn8w8#Ld$+h2~Gd)jsnSI6-_H#L%x}GCHQq)xU9d82j&xu^~?ND>D%vh z)8{D6_1`{@KB6mJ4QmIM7vGE5X&C4~VIVe6RybN191sPrzVOIBx=`xW#)h@gp~RTF zPs_lC`@l+=(Gp_L3;Ux%ZWw+X4R9my>uAvG&KljHL~BTQNvxeyVROvKWnf3F@$fAo znfxy;KBYIo$F%qfy{k{q;?K0WM2l7Ao=JLX@c=Eh(c&XoT%$#r>uQ8ICifab_@{(`%>+N~}8> xt{yR1>5I@{ou$Bx^$PuBtn}4juny8M#(G0oR*tZAGcs5b^yBvra^zjv^ndHK?Q;MC diff --git a/docs/build/doctrees/tutorials.appsettings.doctree b/docs/build/doctrees/tutorials.appsettings.doctree index 6d64d6313364b9a6a8e8f4d02d03dd7e7df70b78..e58c0b9890d9526a517d31c21c7c4d31e76b3d93 100644 GIT binary patch delta 146 zcmX>hzEzy1fpzMti7Xd3-mqodEXh>JHhC6D4{L^W#`@yP2AoE+YcpgsbV`$Y1k3Y_ zQj+sa^GbAcGxJJIQj4c#teafVDFafwAEZ`f@=i_##Y(wur~7m delta 183 zcmdlgenOn3fpzNMi7XdbGFUU%HeRu1WCqfk1(=H1czIHDlTuUSGjkKuQ;R3pbM$j* zfD~m&XKW~)EX---ye>mFL#H&UN3cAX$U^>F1@7MH{q=ai-wPpO?!nxqE+o2M?? delta 166 zcmX>seodUEfpzNXi7Z!GGFUU%Hr{Y%WCqfkrI^atczIHDlTuUSGjkKuQ;R3}a`ba* zfD~m&XKa`($SgA1gi~I2U50FiPH9q)V0nH~N^*W_UWsmQW?pGYYVnke^^*%YW#D=a ofb}flRAgK?`532>_*$%b_D|;La$xbxaQ53A%oWGTT$-c@0Q(ji7agSCgzU`hsi?34^K5UX_xNEoPPfAQp^kSf<(j+|qy2LP( delta 145 zcmX>pen*_8fpzM|i7aszCoO&fpzNAi7aO}UU6XDEWwn^HhC&X4{L^W#`@yP3phn4+jGh>uALmmDb2WU zauufxNM=7s#snyOmD5OkO^;xCeo;zteraBbZf<5?X-R7Fl#G3o<+vPJIy0O*Hz#q$ ZF$(o?YPT5YbQr>N-M3?Y@AX% zMI(c?htXh427Bz33^5R^bqYursCa+ztYozkSqA2>yo z)@e3Qshy&c!P>)UFeQUMc1ngAh}Aj;Bn;HDzj$&7rwQZQ$$L4C7}tQbFz%bo#^u1$ fnc>{I*^4WVQK*M2x3ah-zBs2ey%?yeG)WHtWH&Gr delta 151 zcmbOszFM56fpzMFi7W?LGFUU%HXd4CK!w4Y4uCaP maw-Bf&E_;>Tsv8xQ2!{HaVH2hc!bwV}0@DpBzSvYbWb)N;9sT?7=Am z65U@sIgir>D7u)_h;hy2Motl?jD3^ea5}JbW;l0lHsFe56zbv1tt>8yFU~1VFP>66 Ir8G$o0N++6_y7O^ delta 138 zcmew-Hc_0Vfpu!zM3x;a8LSy>8~2zoG6U(&9~q@(k#Y{o}Tla z=Xu`eeZDu}Id_>^`iN02s4iR_JFoij>P8=#-@Fe3>)$tzOX`}%2%Bxbx(ewI&$(!4hniHFj$NL^nGlCOTXPBl+#M1dup5L3TO zUH-17iLBhmW#NCgoaJBhCX#akA4z*@v~^uxkz8stI@NN;rBCw<+WSp<6JS*wN9?2v zW7~w6xJi6-2d;BZD6N8;fmL5;o1kPG8i-@0QHI@-gg$h-VNR=IHsOSJ1;HK)?t&nz zQe@GYDS^0{t7nR2)WkZcJJkspmnHO&MATRpg9sSxoz)0N|d@TkB z#j~~ThV=s|ex}-#QEoR2>-wpkc}ER z!2|(2-Fy?I>{%2yvGAp(TkEd^!y(5KI_h9+Mo!`MBKc7)($!U-i-R(^3@=6L-!^d_ zQV~-bsE~DWh`%m;=PWWbuVGv)=hf!8g<%Na;{{J7VOwZVBC^yFw79OJ$B9~x>#nEK zW0-oZ%*Xccy*ZKZvyDI9?Q)z;von9Wi z%To2f?p3dw?PV!j#o<3$=BdKg2!11yfpb(MtDwWu!?uDe=+w^R6D^nt!=<2!6;44Y z=%lcBE3iw!c4i)~2M;LUz_k+WEEvW*vQ~T+c2k87a$9iHxwFwr1G*IM(z{lQ(BmbO z=Vn83zVx}kvs9qmMY6Fd(H14jq6A;ekah}?beqU+;*~_nW=YXSWvL=g&b6^4j4`i` SpG>8vQZt!o3Qy@wc>h0yk9i#c delta 2345 zcmbtVUrbwN6zBH;ZEtBikbk9R9Te)ISfWDfoQs0iFn3EtAB++x<-*q+%2;WmMkk%F z%QT&-p39QGOry)=P-gCPGt1`H(4|WsEuFl5zAM!LK~O)) zkyfH79@0a+`)lB`$q!5V))zAI^o)>^3bpO?X(25f$|e_*8DT*xnA5^^=H+=oBJl!C ze@`7u#glUqU$D_XgqP-LlZj+TIOpv%h{9_X7qMv)mBpGIuHgRl=-cE5=5uzz>Xiv<~24{ph zAsx>M!G%OBo=GPDmvR#-e_d0~YLP{_YCPpE*hkU_MIn*dDLb-r>;0kxJ7$h6;Gy8=_1?gtsNVo@`sx)Nn+GQI?Oc z2cMl3ZE(T%EHXVRGxZ{q1DUjn>?CO@FuhV`1t$GMdUrtKZot54hgSe?2Xm7dx?OrZ2!t)D@P{B|SWb?iZk6O{sYpb>enJIAY6 z=bT+w{a&TOay9bZ*~WZ@jd}37-a@E6eC&$Q0siV*!MU!;a}BZgpr}CU+77#s)5h^5 zWufmA4-^OMAkgG?{vgw;FPcU=t^kZSoyH#4wmV>K9zf#XDjn!YvNd?Mc?c8MsIop* zy9vOp=8Jg4K`tD$JLs~8v5ticgY~6GcZk6zT6A!TYsLH)5L*{-Uwq;UfyZNElp=V@ za|Y#xblW!f4^I&5!aBI@=+RbcFY<<9+}ns5AstZUdhLouH2MTwDt+a>$doM{p*Luu zt;;+mOvkgc8A)8FZi!dvLEnjDg{%9htE$wEoy#b7V!PB8-yjMho1_k-)CqWOR}M2K zRH@q4CaKo;Uz}yBx!Y3fJ=Fw0g#znJ`yV*34WL*#fFgAEKZDYX+oiwVzZZqQze)OQ zD7^@_fhVe$3j>d1`R7XcefZp$%aQTU4+a%V$Hr>Os?$%0yK#5Eqq`QtRk;*CfYB>7 z+6S?Sh1=v^BEnkB-d+DM-W^5nq6mCb0e*OB3-HL$EnOMdpfB%F^`V@VflD7mZ|az6 z>C`aM+c_aMDNKzgQ}G#L0scM!Wx!)9U_G4U+nA&9J?~}mu+F!Y6HaOg{+N#@L}L#! zZ@}SL6SD*-W4jl9^jh@NgWMqNqF>(QUGia~4v2dBXqGb?=#ee3bMcg*{zs)Rc~P$A s$qim9 + Wrong: ```dict[str, str]``` +
    + Correct: ```dict``` +
    +
    + Incorrect: ```list[str]``` +
    + Correct: ```list``` + +- The arguments must be optional, i.e. created as kwargs +
    + Incorrect: ```def __init__(self, x: int, y: int)``` +
    + Correct: ```def __init__(self, x: int = None, y: int = None)``` \ No newline at end of file diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt index 921b7964..9b6e6056 100644 --- a/docs/build/html/_sources/index.rst.txt +++ b/docs/build/html/_sources/index.rst.txt @@ -14,7 +14,7 @@ This CPL docs help you learn, understand and use the package. From your first ap Features -------- - cpl-core - - Expandle + - Expandable - Application base - Standardized application classes - Application object builder @@ -87,6 +87,7 @@ These pages go into great detail about everything the Library can do. introduction getting_started contributing + deprecated cpl_cli cpl_core cpl_discord diff --git a/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js index 8549469d..81415803 100644 --- a/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +++ b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js @@ -1,20 +1,9 @@ -/* - * _sphinx_javascript_frameworks_compat.js - * ~~~~~~~~~~ - * - * Compatability shim for jQuery and underscores.js. - * - * WILL BE REMOVED IN Sphinx 6.0 - * xref RemovedInSphinx60Warning +/* Compatability shim for jQuery and underscores.js. * + * Copyright Sphinx contributors + * Released under the two clause BSD licence */ -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - - /** * small helper function to urldecode strings * diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css index 7d5974c3..7577acb1 100644 --- a/docs/build/html/_static/basic.css +++ b/docs/build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -236,16 +236,6 @@ div.body p, div.body dd, div.body li, div.body blockquote { a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, @@ -334,11 +324,17 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } + +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; padding: 7px; @@ -377,6 +373,8 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -384,6 +382,8 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { @@ -609,25 +609,6 @@ ul.simple p { margin-bottom: 0; } -/* Docutils 0.17 and older (footnotes & citations) */ -dl.footnote > dt, -dl.citation > dt { - float: left; - margin-right: 0.5em; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd:after { - content: ""; - clear: both; -} - -/* Docutils 0.18+ (footnotes & citations) */ aside.footnote > span, div.citation > span { float: left; @@ -652,8 +633,6 @@ div.citation > p:last-of-type:after { clear: both; } -/* Footnotes & citations ends */ - dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; @@ -666,10 +645,6 @@ dl.field-list > dt { padding-right: 5px; } -dl.field-list > dt:after { - content: ":"; -} - dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; diff --git a/docs/build/html/_static/css/badge_only.css b/docs/build/html/_static/css/badge_only.css index e380325b..c718cee4 100644 --- a/docs/build/html/_static/css/badge_only.css +++ b/docs/build/html/_static/css/badge_only.css @@ -1 +1 @@ -.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/docs/build/html/_static/css/theme.css b/docs/build/html/_static/css/theme.css index 0d9ae7e1..c03c88f0 100644 --- a/docs/build/html/_static/css/theme.css +++ b/docs/build/html/_static/css/theme.css @@ -1,4 +1,4 @@ -html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,.wy-nav-top a,.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.rst-content .wy-breadcrumbs li tt,.wy-breadcrumbs li .rst-content tt,.wy-breadcrumbs li code{padding:5px;border:none;background:none}.rst-content .wy-breadcrumbs li tt.literal,.wy-breadcrumbs li .rst-content tt.literal,.wy-breadcrumbs li code.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.field-list>dt:after,html.writer-html5 .rst-content dl.footnote>dt:after{content:":"}html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.footnote>dt>span.brackets{margin-right:.5rem}html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{font-style:italic}html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.footnote>dd p,html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{font-size:inherit;line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.field-list)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.field-list)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dl:not(.field-list)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js index c3db08d1..d06a71d7 100644 --- a/docs/build/html/_static/doctools.js +++ b/docs/build/html/_static/doctools.js @@ -4,12 +4,19 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ "use strict"; +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + const _ready = (callback) => { if (document.readyState !== "loading") { callback(); @@ -18,73 +25,11 @@ const _ready = (callback) => { } }; -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - parent.insertBefore( - span, - parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - /** * Small JavaScript module for the documentation. */ const Documentation = { init: () => { - Documentation.highlightSearchWords(); Documentation.initDomainIndexTable(); Documentation.initOnKeyListeners(); }, @@ -126,51 +71,6 @@ const Documentation = { Documentation.LOCALE = catalog.locale; }, - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords: () => { - const highlight = - new URLSearchParams(window.location.search).get("highlight") || ""; - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '

    " - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - const url = new URL(window.location); - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - }, - /** * helper function to focus on search bar */ @@ -210,15 +110,11 @@ const Documentation = { ) return; - const blacklistedElements = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", - ]); document.addEventListener("keydown", (event) => { - if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements - if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; if (!event.shiftKey) { switch (event.key) { @@ -240,10 +136,6 @@ const Documentation = { event.preventDefault(); } break; - case "Escape": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.hideSearchWords(); - event.preventDefault(); } } diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index a750e4d5..b57ae3b8 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: false, + ENABLE_SEARCH_SHORTCUTS: true, }; \ No newline at end of file diff --git a/docs/build/html/_static/jquery-3.6.0.js b/docs/build/html/_static/jquery-3.6.0.js deleted file mode 100644 index fc6c299b..00000000 --- a/docs/build/html/_static/jquery-3.6.0.js +++ /dev/null @@ -1,10881 +0,0 @@ -/*! - * jQuery JavaScript Library v3.6.0 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright OpenJS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2021-03-02T17:08Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 - // Plus for old WebKit, typeof returns "function" for HTML collections - // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) - return typeof obj === "function" && typeof obj.nodeType !== "number" && - typeof obj.item !== "function"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - -var document = window.document; - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.6.0", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return flat( ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), - function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); - } ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.6 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2021-02-16 - */ -( function( window ) { -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ( {} ).hasOwnProperty, - arr = [], - pop = arr.pop, - pushNative = arr.push, - push = arr.push, - slice = arr.slice, - - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), - preferredDoc.childNodes - ); - - // Support: Android<4.0 - // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - pushNative.apply( target, slice.call( els ) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - setDocument( context ); - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { - - // ID selector - if ( ( m = match[ 1 ] ) ) { - - // Document context - if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[ 2 ] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { - - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); - } - newSelector = groups.join( "," ); - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return ( cache[ key + " " ] = value ); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement( "fieldset" ); - - try { - return !!fn( el ); - } catch ( e ) { - return false; - } finally { - - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { - argument = +argument; - return markFunction( function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); - } - } - } ); - } ); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem && elem.namespaceURI, - docElem = elem && ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9 - 11+, Edge 12 - 18+ - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert( function( el ) { - el.className = "i"; - return !el.getAttribute( "className" ); - } ); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); - - // ID filter and find - if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute( "id" ) === attrId; - }; - }; - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); - } - - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: Opera 10 - 11 only - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); - } - - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { - - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - } ); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); - } : - function( a, b ) { - if ( b ) { - while ( ( b = b.parentNode ) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { - - // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { - return -1; - } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( ( cur = cur.parentNode ) ) { - ap.unshift( cur ); - } - cur = b; - while ( ( cur = cur.parentNode ) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { - i++; - } - - return i ? - - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : - - // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); - - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - - // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[ 6 ] && match[ 2 ]; - - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - - // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { - - // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { - return true; - } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - /* eslint-disable max-len */ - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - /* eslint-enable max-len */ - - }; - }, - - "CHILD": function( type, what, _argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, _context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( ( node = node[ dir ] ) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( ( node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - - // Use previously-cached element index if available - if ( useCache ) { - - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); - } - } ) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - - // Potentially complex pseudos - "not": markFunction( function( selector ) { - - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); - } - } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; - matcher( input, null, xml, results ); - - // Don't keep the element (issue #299) - input[ 0 ] = null; - return !results.pop(); - }; - } ), - - "has": markFunction( function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - } ), - - "contains": markFunction( function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - } ), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( ( elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); - return false; - }; - } ), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); - }, - - "selected": function( elem ) { - - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo( function() { - return [ 0 ]; - } ), - - "last": createPositionalPseudo( function( _matchIndexes, length ) { - return [ length - 1 ]; - } ), - - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - } ), - - "even": createPositionalPseudo( function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "odd": createPositionalPseudo( function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ) - } -}; - -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { - if ( match ) { - - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; - } - groups.push( ( tokens = [] ) ); - } - - matched = false; - - // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[ i ].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); - } else { - - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[ 0 ]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction( function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - - // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); - } - } - postFinder( null, ( matcherOut = [] ), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - - seed[ temp ] = !( results[ temp ] = elem ); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - } ); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; - } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), - len = elems.length; - - if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[ i ]; - - // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { - break; - } - if ( ( find = Expr.find[ type ] ) ) { - - // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - } ); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - } ); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; - } - } ); -} - -return Sizzle; - -} )( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -} -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, _i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, _i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, _i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { - - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the primary Deferred - primary = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - primary.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( primary.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return primary.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); - } - - return primary.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, _key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting

    5e3<#KIm+u`UuUWY(~|v34z7yT0`ZU*O;e~6 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 j7LCNDm{pDvmF7k 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

    ", "
    " ], - col: [ 2, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - _default: [ 0, "", "" ] -}; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - - // Support: Chrome 86+ - // In Chrome, if an element having a focusout handler is blurred by - // clicking outside of it, it invokes the handler synchronously. If - // that handler calls `.remove()` on the element, the data is cleared, - // leaving `result` undefined. We need to guard against this. - return result && result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - which: true -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - // Suppress native focus or blur as it's already being fired - // in leverageNative. - _default: function() { - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); - events = pdataOld.events; - - if ( events ) { - dataPriv.remove( dest, "handle events" ); - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = flat( args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html; - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - // - // Support: Firefox 70+ - // Only Firefox includes border widths - // in computed dimensions. (gh-4529) - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; - tr.style.cssText = "border:1px solid"; - - // Support: Chrome 86+ - // Height set through cssText does not get applied. - // Computed height then comes back as 0. - tr.style.height = "1px"; - trChild.style.height = "9px"; - - // Support: Android 8 Chrome 86+ - // In our bodyBackground.html iframe, - // display for all div elements is set to "inline", - // which causes a problem only in Android 8 Chrome 86. - // Ensuring the div is display: block - // gets around this issue. - trChild.style.display = "block"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + - parseInt( trStyle.borderTopWidth, 10 ) + - parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( _i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = { guid: Date.now() }; - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml, parserErrorElem; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) {} - - parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; - if ( !xml || parserErrorElem ) { - jQuery.error( "Invalid XML: " + ( - parserErrorElem ? - jQuery.map( parserErrorElem.childNodes, function( el ) { - return el.textContent; - } ).join( "\n" ) : - data - ) ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ).filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ).map( function( _i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - -originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Use a noop converter for missing script but not if jsonp - if ( !isSuccess && - jQuery.inArray( "script", s.dataTypes ) > -1 && - jQuery.inArray( "json", s.dataTypes ) < 0 ) { - s.converters[ "text script" ] = function() {}; - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( _i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - - -jQuery._evalUrl = function( url, options, doc ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " - - + + - + @@ -28,11 +28,15 @@
  • +
  • Deprecated
  • CLI reference
  • API reference
  • Discord Reference
  • @@ -77,8 +82,8 @@
      -
    • »
    • -
    • Contributing to CPL
    • +
    • +
    • View page source
    • @@ -92,22 +97,22 @@

      Contributing to CPL

      We would love for you to contribute to CPL and help make it even better than it is today! As a contributor, here are the guidelines we would like you to follow:

      Found a Bug?

      -

      If you find a bug in the source code, you can help us by submitting an issue to our Gitea Repository. Even better, you can submit a Pull Request with a fix.

      +

      If you find a bug in the source code, you can help us by submitting an issue to our Gitea Repository. Even better, you can submit a Pull Request with a fix.

      Feature Request

      You can request a new feature by submitting an issue to our Gitea Repository. If you would like to implement a new feature, please consider the size of the change in order to determine the right steps to proceed:

      For a Major Feature, first open an issue and outline your proposal so that it can be discussed. This process allows us to better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.

      Note: Adding a new topic to the documentation, or significantly re-writing a topic, counts as a major feature.

      -

      Small Features can be crafted and directly submitted as a Pull Request.

      +

      Small Features can be crafted and directly submitted as a Pull Request.

      Submission Guidelines

      @@ -151,7 +156,7 @@

      Reviewing a Pull Request

      -

      The sh-edraft.de team reserves the right not to accept pull requests from community members who haven’t been good citizens of the community. Such behavior includes not following the CPL coding rules and applies within or outside of CPL managed channels.

      +

      The sh-edraft.de team reserves the right not to accept pull requests from community members who haven’t been good citizens of the community. Such behavior includes not following the CPL coding rules and applies within or outside of CPL managed channels.

      Addressing review feedback

      If we ask for changes via code reviews then:

      @@ -190,7 +195,7 @@ See - +

    diff --git a/docs/build/html/cpl_cli.add.html b/docs/build/html/cpl_cli.add.html index 0f80c69f..fa7f0700 100644 --- a/docs/build/html/cpl_cli.add.html +++ b/docs/build/html/cpl_cli.add.html @@ -1,7 +1,7 @@ - + cpl add — Common Python Library documentation @@ -11,11 +11,11 @@ - - + + @@ -28,11 +28,15 @@