Compare commits
29 Commits
75fde0f444
...
experiment
| Author | SHA1 | Date | |
|---|---|---|---|
| ed2377c288 | |||
| b819eb439c | |||
| b3ed7101fc | |||
| a3504af376 | |||
| 81c2f1cba9 | |||
| bea5b22251 | |||
| e04d0beb68 | |||
| 08ba097aaa | |||
| ea968d94e4 | |||
| 8e12c72b07 | |||
| 8dee4d8f70 | |||
| 315b8e631a | |||
| cbb1860f25 | |||
| 9839bcaa14 | |||
| da54337221 | |||
| a6a1e764d1 | |||
| eb6aa08c10 | |||
| 14a190a67f | |||
| cf5ae89884 | |||
| 558dfb8ced | |||
| 2ec8fc22b3 | |||
| c94700495b | |||
| 69a3bc5e31 | |||
| d189f49418 | |||
| 60fb416b67 | |||
| 792429d19d | |||
| 106975015e | |||
| 1117735f2e | |||
| 0378f8944a |
@@ -87,7 +87,7 @@
|
|||||||
|
|
||||||
Install the CPL package
|
Install the CPL package
|
||||||
```sh
|
```sh
|
||||||
pip install cpl --extra-index-url https://pip.sh-edraft.de
|
pip install cpl-core --extra-index-url https://pip.sh-edraft.de
|
||||||
```
|
```
|
||||||
|
|
||||||
Install the CPL CLI
|
Install the CPL CLI
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -28,4 +28,4 @@ from .main import main
|
|||||||
from .startup import Startup
|
from .startup import Startup
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli._templates"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli._templates.build"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli._templates.publish"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.abc"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports
|
# imports
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
import traceback
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
||||||
from cpl_core.console.console import Console
|
|
||||||
from cpl_cli.cli_settings_name_enum import CLISettingsNameEnum
|
|
||||||
|
|
||||||
|
|
||||||
class CLISettings(ConfigurationModelABC):
|
class CLISettings(ConfigurationModelABC):
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.command"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -29,4 +29,4 @@ from .publish_service import PublishService
|
|||||||
from .version_service import VersionService
|
from .version_service import VersionService
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -154,6 +154,24 @@ class UpdateService(CommandABC):
|
|||||||
Console.write_line(f"\tUpdate with {Pip.get_executable()} -m pip install --upgrade <package>")
|
Console.write_line(f"\tUpdate with {Pip.get_executable()} -m pip install --upgrade <package>")
|
||||||
Console.set_foreground_color(ForegroundColorEnum.default)
|
Console.set_foreground_color(ForegroundColorEnum.default)
|
||||||
|
|
||||||
|
def _save_formatted_package_name_to_deps_collection(self, deps: [str], old_package: str, new_package: str):
|
||||||
|
if old_package not in deps:
|
||||||
|
return
|
||||||
|
|
||||||
|
initial_package = new_package
|
||||||
|
|
||||||
|
if "/" in new_package:
|
||||||
|
new_package = new_package.split("/")[0]
|
||||||
|
|
||||||
|
if "\r" in new_package:
|
||||||
|
new_package = new_package.replace("\r", "")
|
||||||
|
|
||||||
|
if new_package == old_package:
|
||||||
|
return
|
||||||
|
|
||||||
|
index = deps.index(old_package)
|
||||||
|
deps[index] = new_package
|
||||||
|
|
||||||
def _project_json_update_dependency(self, old_package: str, new_package: str):
|
def _project_json_update_dependency(self, old_package: str, new_package: str):
|
||||||
"""
|
"""
|
||||||
Writes new package version to project.json
|
Writes new package version to project.json
|
||||||
@@ -164,15 +182,12 @@ class UpdateService(CommandABC):
|
|||||||
if self._is_simulation:
|
if self._is_simulation:
|
||||||
return
|
return
|
||||||
|
|
||||||
if old_package in self._project_settings.dependencies:
|
self._save_formatted_package_name_to_deps_collection(
|
||||||
index = self._project_settings.dependencies.index(old_package)
|
self._project_settings.dependencies, old_package, new_package
|
||||||
if "/" in new_package:
|
)
|
||||||
new_package = new_package.split("/")[0]
|
self._save_formatted_package_name_to_deps_collection(
|
||||||
|
self._project_settings.dev_dependencies, old_package, new_package
|
||||||
if "\r" in new_package:
|
)
|
||||||
new_package = new_package.replace("\r", "")
|
|
||||||
|
|
||||||
self._project_settings.dependencies[index] = new_package
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
ProjectSettings.__name__: SettingsHelper.get_project_settings_dict(self._project_settings),
|
ProjectSettings.__name__: SettingsHelper.get_project_settings_dict(self._project_settings),
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.configuration"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -31,4 +31,4 @@ from .workspace_settings import WorkspaceSettings
|
|||||||
from .workspace_settings_name_enum import WorkspaceSettingsNameEnum
|
from .workspace_settings_name_enum import WorkspaceSettingsNameEnum
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ class BuildSettings(ConfigurationModelABC):
|
|||||||
main: str = None,
|
main: str = None,
|
||||||
entry_point: str = None,
|
entry_point: str = None,
|
||||||
include_package_data: bool = None,
|
include_package_data: bool = None,
|
||||||
included: list[str] = None,
|
included: list = None,
|
||||||
excluded: list[str] = None,
|
excluded: list = None,
|
||||||
package_data: dict[str, list[str]] = None,
|
package_data: dict = None,
|
||||||
project_references: list[str] = None,
|
project_references: list = None,
|
||||||
):
|
):
|
||||||
ConfigurationModelABC.__init__(self)
|
ConfigurationModelABC.__init__(self)
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class ProjectSettings(ConfigurationModelABC):
|
|||||||
self._python_executable: Optional[str] = python_executable
|
self._python_executable: Optional[str] = python_executable
|
||||||
self._classifiers: Optional[list[str]] = [] if classifiers is None else classifiers
|
self._classifiers: Optional[list[str]] = [] if classifiers is None else classifiers
|
||||||
|
|
||||||
if python_path is not None:
|
if python_path is not None and sys.platform in python_path:
|
||||||
path = f"{python_path[sys.platform]}"
|
path = f"{python_path[sys.platform]}"
|
||||||
|
|
||||||
if path == "" or path is None:
|
if path == "" or path is None:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"Version": {
|
"Version": {
|
||||||
"Major": "2023",
|
"Major": "2023",
|
||||||
"Minor": "4",
|
"Minor": "4",
|
||||||
"Micro": "0"
|
"Micro": "0.post3"
|
||||||
},
|
},
|
||||||
"Author": "Sven Heidemann",
|
"Author": "Sven Heidemann",
|
||||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.helper"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.live_server"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.migrations"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports
|
# imports
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.migrations.base"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.migrations.service"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.publish"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ from .publisher_abc import PublisherABC
|
|||||||
from .publisher_service import PublisherService
|
from .publisher_service import PublisherService
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.source_creator"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_cli.validators"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.application"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -29,4 +29,4 @@ from .startup_abc import StartupABC
|
|||||||
from .startup_extension_abc import StartupExtensionABC
|
from .startup_extension_abc import StartupExtensionABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.configuration"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -35,4 +35,4 @@ from .validator_abc import ValidatorABC
|
|||||||
from .variable_argument import VariableArgument
|
from .variable_argument import VariableArgument
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ class Configuration(ConfigurationABC):
|
|||||||
|
|
||||||
self.add_configuration(sub, configuration)
|
self.add_configuration(sub, configuration)
|
||||||
|
|
||||||
def add_configuration(self, key_type: T, value: any):
|
def add_configuration(self, key_type: Type[T], value: any):
|
||||||
self._config[key_type] = value
|
self._config[key_type] = value
|
||||||
|
|
||||||
def create_console_argument(
|
def create_console_argument(
|
||||||
@@ -314,7 +314,7 @@ class Configuration(ConfigurationABC):
|
|||||||
for arg in self._argument_types:
|
for arg in self._argument_types:
|
||||||
call(arg)
|
call(arg)
|
||||||
|
|
||||||
def get_configuration(self, search_type: Type[T]) -> Optional[T]:
|
def get_configuration(self, search_type: T) -> Optional[T]:
|
||||||
if type(search_type) is str:
|
if type(search_type) is str:
|
||||||
if search_type == ConfigurationVariableNameEnum.environment.value:
|
if search_type == ConfigurationVariableNameEnum.environment.value:
|
||||||
return self._application_environment.environment_name
|
return self._application_environment.environment_name
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ class ConfigurationABC(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def add_configuration(self, key_type: T, value: any):
|
def add_configuration(self, key_type: Type[T], value: any):
|
||||||
r"""Add configuration object
|
r"""Add configuration object
|
||||||
|
|
||||||
Parameter:
|
Parameter:
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.console"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -28,4 +28,4 @@ from .foreground_color_enum import ForegroundColorEnum
|
|||||||
from .spinner_thread import SpinnerThread
|
from .spinner_thread import SpinnerThread
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"Version": {
|
"Version": {
|
||||||
"Major": "2023",
|
"Major": "2023",
|
||||||
"Minor": "4",
|
"Minor": "4",
|
||||||
"Micro": "0"
|
"Micro": "0.post2"
|
||||||
},
|
},
|
||||||
"Author": "Sven Heidemann",
|
"Author": "Sven Heidemann",
|
||||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||||
@@ -16,17 +16,17 @@
|
|||||||
"LicenseName": "MIT",
|
"LicenseName": "MIT",
|
||||||
"LicenseDescription": "MIT, see LICENSE for more details.",
|
"LicenseDescription": "MIT, see LICENSE for more details.",
|
||||||
"Dependencies": [
|
"Dependencies": [
|
||||||
"art==5.9",
|
"art>=5.9",
|
||||||
"colorama==0.4.6",
|
"colorama>=0.4.6",
|
||||||
"mysql-connector==2.2.9",
|
"mysql-connector>=2.2.9",
|
||||||
"psutil==5.9.4",
|
"psutil>=5.9.4",
|
||||||
"packaging==23.0",
|
"packaging>=23.0",
|
||||||
"pynput==1.7.6",
|
"pynput>=1.7.6",
|
||||||
"setuptools==67.6.1",
|
"setuptools>=67.6.1",
|
||||||
"tabulate==0.9.0",
|
"tabulate>=0.9.0",
|
||||||
"termcolor==2.2.0",
|
"termcolor>=2.2.0",
|
||||||
"watchdog==3.0.0",
|
"watchdog>=3.0.0",
|
||||||
"wheel==0.40.0"
|
"wheel>=0.40.0"
|
||||||
],
|
],
|
||||||
"DevDependencies": [
|
"DevDependencies": [
|
||||||
"Sphinx==5.0.2",
|
"Sphinx==5.0.2",
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"sphinx-markdown-builder==0.5.5",
|
"sphinx-markdown-builder==0.5.5",
|
||||||
"pygount==1.5.1"
|
"pygount==1.5.1"
|
||||||
],
|
],
|
||||||
"PythonVersion": ">=3.11",
|
"PythonVersion": ">=3.10",
|
||||||
"PythonPath": {},
|
"PythonPath": {},
|
||||||
"Classifiers": []
|
"Classifiers": []
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.database"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -26,4 +26,4 @@ from .database_settings import DatabaseSettings
|
|||||||
from .table_abc import TableABC
|
from .table_abc import TableABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.database.connection"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ from .database_connection import DatabaseConnection
|
|||||||
from .database_connection_abc import DatabaseConnectionABC
|
from .database_connection_abc import DatabaseConnectionABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.database.context"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ from .database_context import DatabaseContext
|
|||||||
from .database_context_abc import DatabaseContextABC
|
from .database_context_abc import DatabaseContextABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -9,14 +9,14 @@ class DatabaseSettings(ConfigurationModelABC):
|
|||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
host: str = None,
|
host: str = None,
|
||||||
port: int = None,
|
port: int = 3306,
|
||||||
user: str = None,
|
user: str = None,
|
||||||
password: str = None,
|
password: str = None,
|
||||||
databse: str = None,
|
database: str = None,
|
||||||
charset: str = None,
|
charset: str = None,
|
||||||
use_unicode: bool = None,
|
use_unicode: bool = None,
|
||||||
buffered: bool = None,
|
buffered: bool = None,
|
||||||
auth_plugin: bool = None,
|
auth_plugin: str = None,
|
||||||
):
|
):
|
||||||
ConfigurationModelABC.__init__(self)
|
ConfigurationModelABC.__init__(self)
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ class DatabaseSettings(ConfigurationModelABC):
|
|||||||
self._port: Optional[int] = port
|
self._port: Optional[int] = port
|
||||||
self._user: Optional[str] = user
|
self._user: Optional[str] = user
|
||||||
self._password: Optional[str] = password
|
self._password: Optional[str] = password
|
||||||
self._databse: Optional[str] = databse
|
self._databse: Optional[str] = database
|
||||||
self._charset: Optional[str] = charset
|
self._charset: Optional[str] = charset
|
||||||
self._use_unicode: Optional[bool] = use_unicode
|
self._use_unicode: Optional[bool] = use_unicode
|
||||||
self._buffered: Optional[bool] = buffered
|
self._buffered: Optional[bool] = buffered
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.dependency_injection"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -31,4 +31,4 @@ from .service_provider import ServiceProvider
|
|||||||
from .service_provider_abc import ServiceProviderABC
|
from .service_provider_abc import ServiceProviderABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -61,15 +61,15 @@ class ServiceCollection(ServiceCollectionABC):
|
|||||||
self.add_transient(PipeABC, pipe)
|
self.add_transient(PipeABC, pipe)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def add_singleton(self, service_type: T, service: T = None):
|
def add_singleton(self, service_type: Type[T], service: T = None):
|
||||||
self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.singleton, service)
|
self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.singleton, service)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def add_scoped(self, service_type: T, service: Callable = None):
|
def add_scoped(self, service_type: Type[T], service: Callable = None):
|
||||||
self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.scoped, service)
|
self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.scoped, service)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def add_transient(self, service_type: T, service: T = None):
|
def add_transient(self, service_type: Type[T], service: T = None):
|
||||||
self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.transient, service)
|
self._add_descriptor_by_lifetime(service_type, ServiceLifetimeEnum.transient, service)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class ServiceCollectionABC(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def add_transient(self, service_type: T, service: T = None) -> "ServiceCollectionABC":
|
def add_transient(self, service_type: Type[T], service: T = None) -> "ServiceCollectionABC":
|
||||||
r"""Adds a service with transient lifetime
|
r"""Adds a service with transient lifetime
|
||||||
|
|
||||||
Parameter:
|
Parameter:
|
||||||
@@ -61,7 +61,7 @@ class ServiceCollectionABC(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def add_scoped(self, service_type: T, service: T = None) -> "ServiceCollectionABC":
|
def add_scoped(self, service_type: Type[T], service: T = None) -> "ServiceCollectionABC":
|
||||||
r"""Adds a service with scoped lifetime
|
r"""Adds a service with scoped lifetime
|
||||||
|
|
||||||
Parameter:
|
Parameter:
|
||||||
@@ -76,7 +76,7 @@ class ServiceCollectionABC(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def add_singleton(self, service_type: T, service: T = None) -> "ServiceCollectionABC":
|
def add_singleton(self, service_type: Type[T], service: T = None) -> "ServiceCollectionABC":
|
||||||
r"""Adds a service with singleton lifetime
|
r"""Adds a service with singleton lifetime
|
||||||
|
|
||||||
Parameter:
|
Parameter:
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class ServiceProvider(ServiceProviderABC):
|
|||||||
sb = ScopeBuilder(ServiceProvider(descriptors, self._configuration, self._database_context))
|
sb = ScopeBuilder(ServiceProvider(descriptors, self._configuration, self._database_context))
|
||||||
return sb.build()
|
return sb.build()
|
||||||
|
|
||||||
def get_service(self, service_type: T, *args, **kwargs) -> Optional[T]:
|
def get_service(self, service_type: typing.Type[T], *args, **kwargs) -> Optional[T]:
|
||||||
result = self._find_service(service_type)
|
result = self._find_service(service_type)
|
||||||
|
|
||||||
if result is None:
|
if result is None:
|
||||||
@@ -157,7 +157,7 @@ class ServiceProvider(ServiceProviderABC):
|
|||||||
|
|
||||||
return implementation
|
return implementation
|
||||||
|
|
||||||
def get_services(self, service_type: T, *args, **kwargs) -> list[Optional[T]]:
|
def get_services(self, service_type: typing.Type[T], *args, **kwargs) -> list[Optional[T]]:
|
||||||
implementations = []
|
implementations = []
|
||||||
|
|
||||||
if typing.get_origin(service_type) != list:
|
if typing.get_origin(service_type) != list:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import functools
|
import functools
|
||||||
from abc import abstractmethod, ABC
|
from abc import abstractmethod, ABC
|
||||||
from inspect import Signature, signature
|
from inspect import Signature, signature
|
||||||
from typing import Type, Optional
|
from typing import Optional, Type
|
||||||
|
|
||||||
from cpl_core.dependency_injection.scope_abc import ScopeABC
|
from cpl_core.dependency_injection.scope_abc import ScopeABC
|
||||||
from cpl_core.type import T
|
from cpl_core.type import T
|
||||||
@@ -61,7 +61,7 @@ class ServiceProviderABC(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_service(self, instance_type: T, *args, **kwargs) -> Optional[T]:
|
def get_service(self, instance_type: Type[T], *args, **kwargs) -> Optional[T]:
|
||||||
r"""Returns instance of given type
|
r"""Returns instance of given type
|
||||||
|
|
||||||
Parameter
|
Parameter
|
||||||
@@ -76,7 +76,7 @@ class ServiceProviderABC(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_services(self, service_type: T, *args, **kwargs) -> list[Optional[T]]:
|
def get_services(self, service_type: Type[T], *args, **kwargs) -> list[Optional[T]]:
|
||||||
r"""Returns instance of given type
|
r"""Returns instance of given type
|
||||||
|
|
||||||
Parameter
|
Parameter
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.environment"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -26,4 +26,4 @@ from .environment_name_enum import EnvironmentNameEnum
|
|||||||
from .application_environment import ApplicationEnvironment
|
from .application_environment import ApplicationEnvironment
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.logging"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -28,4 +28,4 @@ from .logging_settings import LoggingSettings
|
|||||||
from .logging_settings_name_enum import LoggingSettingsNameEnum
|
from .logging_settings_name_enum import LoggingSettingsNameEnum
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.mailing"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -28,4 +28,4 @@ from .email_client_settings import EMailClientSettings
|
|||||||
from .email_client_settings_name_enum import EMailClientSettingsNameEnum
|
from .email_client_settings_name_enum import EMailClientSettingsNameEnum
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,14 +15,15 @@ __title__ = "cpl_core.pipes"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
# imports:
|
||||||
from .bool_pipe import BoolPipe
|
from .bool_pipe import BoolPipe
|
||||||
from .ip_address_pipe import IPAddressPipe
|
from .ip_address_pipe import IPAddressPipe
|
||||||
from .pipe_abc import PipeABC
|
from .pipe_abc import PipeABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.time"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ from .time_format_settings import TimeFormatSettings
|
|||||||
from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum
|
from .time_format_settings_names_enum import TimeFormatSettingsNamesEnum
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_core.utils"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2020 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post2"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -26,4 +26,4 @@ from .string import String
|
|||||||
from .pip import Pip
|
from .pip import Pip
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post2")
|
||||||
|
|||||||
@@ -17,12 +17,14 @@ class JSONProcessor:
|
|||||||
|
|
||||||
name = String.first_to_upper(String.convert_to_camel_case(parameter.name))
|
name = String.first_to_upper(String.convert_to_camel_case(parameter.name))
|
||||||
name_first_lower = String.first_to_lower(name)
|
name_first_lower = String.first_to_lower(name)
|
||||||
if name in values or name_first_lower in values:
|
if name in values or name_first_lower in values or name.upper() in values:
|
||||||
value = ""
|
value = ""
|
||||||
if name in values:
|
if name in values:
|
||||||
value = values[name]
|
value = values[name]
|
||||||
else:
|
elif name_first_lower in values:
|
||||||
value = values[name_first_lower]
|
value = values[name_first_lower]
|
||||||
|
else:
|
||||||
|
value = values[name.upper()]
|
||||||
|
|
||||||
if isinstance(value, dict) and not issubclass(parameter.annotation, dict):
|
if isinstance(value, dict) and not issubclass(parameter.annotation, dict):
|
||||||
value = JSONProcessor.process(parameter.annotation, value)
|
value = JSONProcessor.process(parameter.annotation, value)
|
||||||
@@ -30,6 +32,9 @@ class JSONProcessor:
|
|||||||
if issubclass(parameter.annotation, enum.Enum):
|
if issubclass(parameter.annotation, enum.Enum):
|
||||||
value = parameter.annotation[value]
|
value = parameter.annotation[value]
|
||||||
|
|
||||||
|
if type(value) != parameter.annotation:
|
||||||
|
value = parameter.annotation(value)
|
||||||
|
|
||||||
args.append(value)
|
args.append(value)
|
||||||
|
|
||||||
elif parameter.default != Parameter.empty:
|
elif parameter.default != Parameter.empty:
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -59,4 +59,4 @@ def get_discord_collection(services: "ServiceCollectionABC") -> "DiscordCollecti
|
|||||||
# build-ignore-end
|
# build-ignore-end
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord.application"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -24,4 +24,4 @@ from collections import namedtuple
|
|||||||
from .discord_bot_application_abc import DiscordBotApplicationABC
|
from .discord_bot_application_abc import DiscordBotApplicationABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord.command"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ from .discord_command_abc import DiscordCommandABC
|
|||||||
from .discord_commands_meta import DiscordCogMeta
|
from .discord_commands_meta import DiscordCogMeta
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord.configuration"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -24,4 +24,4 @@ from collections import namedtuple
|
|||||||
from .discord_bot_settings import DiscordBotSettings
|
from .discord_bot_settings import DiscordBotSettings
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord.container"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -31,4 +31,4 @@ from .thread import Thread
|
|||||||
from .voice_channel import VoiceChannel
|
from .voice_channel import VoiceChannel
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from cpl_discord.container.container import Container
|
|||||||
from cpl_discord.container.text_channel import TextChannel
|
from cpl_discord.container.text_channel import TextChannel
|
||||||
from cpl_discord.container.voice_channel import VoiceChannel
|
from cpl_discord.container.voice_channel import VoiceChannel
|
||||||
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension.list import List
|
||||||
|
|
||||||
|
|
||||||
class CategoryChannel(discord.CategoryChannel, Container):
|
class CategoryChannel(discord.CategoryChannel, Container):
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from cpl_discord.container.role import Role
|
|||||||
from cpl_discord.container.text_channel import TextChannel
|
from cpl_discord.container.text_channel import TextChannel
|
||||||
from cpl_discord.container.voice_channel import VoiceChannel
|
from cpl_discord.container.voice_channel import VoiceChannel
|
||||||
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension.list import List
|
||||||
|
|
||||||
|
|
||||||
class Guild(Container, discord.Guild):
|
class Guild(Container, discord.Guild):
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from cpl_discord.container.container import Container
|
|||||||
from cpl_discord.container.member import Member
|
from cpl_discord.container.member import Member
|
||||||
from cpl_discord.container.thread import Thread
|
from cpl_discord.container.thread import Thread
|
||||||
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension.list import List
|
||||||
|
|
||||||
|
|
||||||
class TextChannel(discord.TextChannel, Container):
|
class TextChannel(discord.TextChannel, Container):
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import discord
|
|||||||
from cpl_discord.container.container import Container
|
from cpl_discord.container.container import Container
|
||||||
from cpl_discord.container.member import Member
|
from cpl_discord.container.member import Member
|
||||||
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension.list import List
|
||||||
|
|
||||||
|
|
||||||
class Thread(discord.Thread, Container):
|
class Thread(discord.Thread, Container):
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import discord
|
|||||||
from cpl_discord.container.container import Container
|
from cpl_discord.container.container import Container
|
||||||
from cpl_discord.container.member import Member
|
from cpl_discord.container.member import Member
|
||||||
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
from cpl_discord.helper.to_containers_converter import ToContainersConverter
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension.list import List
|
||||||
|
|
||||||
|
|
||||||
class VoiceChannel(discord.VoiceChannel, Container):
|
class VoiceChannel(discord.VoiceChannel, Container):
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"Version": {
|
"Version": {
|
||||||
"Major": "2023",
|
"Major": "2023",
|
||||||
"Minor": "4",
|
"Minor": "4",
|
||||||
"Micro": "0"
|
"Micro": "0.post3"
|
||||||
},
|
},
|
||||||
"Author": "Sven Heidemann",
|
"Author": "Sven Heidemann",
|
||||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||||
@@ -16,12 +16,12 @@
|
|||||||
"LicenseName": "MIT",
|
"LicenseName": "MIT",
|
||||||
"LicenseDescription": "MIT, see LICENSE for more details.",
|
"LicenseDescription": "MIT, see LICENSE for more details.",
|
||||||
"Dependencies": [
|
"Dependencies": [
|
||||||
"cpl-core>=2023.4.0",
|
"cpl-core>=2023.4.0.post2",
|
||||||
"discord.py>=2.2.2",
|
"discord.py>=2.3.0",
|
||||||
"cpl-query>=2023.4.0"
|
"cpl-query>=2023.4.0.post1"
|
||||||
],
|
],
|
||||||
"DevDependencies": [
|
"DevDependencies": [
|
||||||
"cpl-cli>=2023.4.0"
|
"cpl-cli>=2023.4.0.post3"
|
||||||
],
|
],
|
||||||
"PythonVersion": ">=3.10",
|
"PythonVersion": ">=3.10",
|
||||||
"PythonPath": {},
|
"PythonPath": {},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord.events"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -69,4 +69,4 @@ from .on_voice_state_update_abc import OnVoiceStateUpdateABC
|
|||||||
from .on_webhooks_update_abc import OnWebhooksUpdateABC
|
from .on_webhooks_update_abc import OnWebhooksUpdateABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord.helper"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -24,4 +24,4 @@ from collections import namedtuple
|
|||||||
from .to_containers_converter import ToContainersConverter
|
from .to_containers_converter import ToContainersConverter
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_discord.service"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post3"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -29,4 +29,4 @@ from .discord_service import DiscordService
|
|||||||
from .discord_service_abc import DiscordServiceABC
|
from .discord_service_abc import DiscordServiceABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post3")
|
||||||
|
|||||||
@@ -56,14 +56,13 @@ class DiscordBotService(DiscordBotServiceABC):
|
|||||||
env_token = self._config.get_configuration("TOKEN")
|
env_token = self._config.get_configuration("TOKEN")
|
||||||
env_prefix = self._config.get_configuration("PREFIX")
|
env_prefix = self._config.get_configuration("PREFIX")
|
||||||
|
|
||||||
new_settings.from_dict(
|
new_settings = DiscordBotSettings(
|
||||||
{
|
env_token if token is None or token == "" else token,
|
||||||
"Token": env_token if token is None or token == "" else token,
|
("! " if self._is_string_invalid(env_prefix) else env_prefix)
|
||||||
"Prefix": ("! " if self._is_string_invalid(env_prefix) else env_prefix)
|
if self._is_string_invalid(prefix)
|
||||||
if self._is_string_invalid(prefix)
|
else prefix,
|
||||||
else prefix,
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if new_settings.token is None or new_settings.token == "":
|
if new_settings.token is None or new_settings.token == "":
|
||||||
raise Exception("You have to configure discord token by appsettings or environment variables")
|
raise Exception("You have to configure discord token by appsettings or environment variables")
|
||||||
return new_settings
|
return new_settings
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from cpl_discord.command.discord_command_abc import DiscordCommandABC
|
|||||||
from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum
|
from cpl_discord.discord_event_types_enum import DiscordEventTypesEnum
|
||||||
from cpl_discord.service.command_error_handler_service import CommandErrorHandlerService
|
from cpl_discord.service.command_error_handler_service import CommandErrorHandlerService
|
||||||
from cpl_discord.service.discord_collection_abc import DiscordCollectionABC
|
from cpl_discord.service.discord_collection_abc import DiscordCollectionABC
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension.list import List
|
||||||
|
|
||||||
|
|
||||||
class DiscordCollection(DiscordCollectionABC):
|
class DiscordCollection(DiscordCollectionABC):
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
|
|||||||
from typing import Type
|
from typing import Type
|
||||||
|
|
||||||
from cpl_discord.command import DiscordCommandABC
|
from cpl_discord.command import DiscordCommandABC
|
||||||
from cpl_query.extension import List
|
from cpl_query.extension.list import List
|
||||||
|
|
||||||
|
|
||||||
class DiscordCollectionABC(ABC):
|
class DiscordCollectionABC(ABC):
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_query"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post1"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
|||||||
# imports:
|
# imports:
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post1")
|
||||||
|
|||||||
@@ -15,10 +15,11 @@ __title__ = "cpl_query.base"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post1"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
# imports:
|
||||||
from .default_lambda import default_lambda
|
from .default_lambda import default_lambda
|
||||||
from .ordered_queryable import OrderedQueryable
|
from .ordered_queryable import OrderedQueryable
|
||||||
@@ -27,4 +28,4 @@ from .queryable_abc import QueryableABC
|
|||||||
from .sequence import Sequence
|
from .sequence import Sequence
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post1")
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
|
|
||||||
|
from cpl_query.base.queryable_abc import QueryableABC
|
||||||
from cpl_query.base.ordered_queryable_abc import OrderedQueryableABC
|
from cpl_query.base.ordered_queryable_abc import OrderedQueryableABC
|
||||||
from cpl_query.exceptions import ArgumentNoneException, ExceptionArgument
|
from cpl_query.exceptions import ArgumentNoneException, ExceptionArgument
|
||||||
from cpl_query.iterable.iterable import Iterable
|
|
||||||
|
|
||||||
|
|
||||||
class OrderedQueryable(OrderedQueryableABC):
|
class OrderedQueryable(OrderedQueryableABC):
|
||||||
r"""Implementation of :class: `cpl_query.base.ordered_queryable_abc.OrderedQueryableABC`"""
|
r"""Implementation of :class: `cpl_query.base.ordered_queryable_abc.OrderedQueryableABC`"""
|
||||||
|
|
||||||
def __init__(self, _t: type, _values: Iterable = None, _func: Callable = None):
|
def __init__(self, _t: type, _values: QueryableABC = None, _func: Callable = None):
|
||||||
OrderedQueryableABC.__init__(self, _t, _values, _func)
|
OrderedQueryableABC.__init__(self, _t, _values, _func)
|
||||||
|
|
||||||
def then_by(self, _func: Callable) -> OrderedQueryableABC:
|
def then_by(self, _func: Callable) -> OrderedQueryableABC:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"Version": {
|
"Version": {
|
||||||
"Major": "2023",
|
"Major": "2023",
|
||||||
"Minor": "4",
|
"Minor": "4",
|
||||||
"Micro": "0"
|
"Micro": "0.post1"
|
||||||
},
|
},
|
||||||
"Author": "Sven Heidemann",
|
"Author": "Sven Heidemann",
|
||||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
"LicenseDescription": "MIT, see LICENSE for more details.",
|
"LicenseDescription": "MIT, see LICENSE for more details.",
|
||||||
"Dependencies": [],
|
"Dependencies": [],
|
||||||
"DevDependencies": [],
|
"DevDependencies": [],
|
||||||
"PythonVersion": ">=3.11",
|
"PythonVersion": ">=3.10",
|
||||||
"PythonPath": {},
|
"PythonPath": {},
|
||||||
"Classifiers": []
|
"Classifiers": []
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_query.enumerable"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post1"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ from .enumerable import Enumerable
|
|||||||
from .enumerable_abc import EnumerableABC
|
from .enumerable_abc import EnumerableABC
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post1")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_query.extension"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post1"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -24,4 +24,4 @@ from collections import namedtuple
|
|||||||
from .list import List
|
from .list import List
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post1")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_query.iterable"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2021 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post1"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -25,4 +25,4 @@ from .iterable_abc import IterableABC
|
|||||||
from .iterable import Iterable
|
from .iterable import Iterable
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post1")
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ __title__ = "cpl_translation"
|
|||||||
__author__ = "Sven Heidemann"
|
__author__ = "Sven Heidemann"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||||
__version__ = "2023.4.0"
|
__version__ = "2023.4.0.post1"
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
@@ -53,4 +53,4 @@ init()
|
|||||||
# build-ignore-end
|
# build-ignore-end
|
||||||
|
|
||||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||||
version_info = VersionInfo(major="2023", minor="4", micro="0")
|
version_info = VersionInfo(major="2023", minor="4", micro="0.post1")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"Version": {
|
"Version": {
|
||||||
"Major": "2023",
|
"Major": "2023",
|
||||||
"Minor": "4",
|
"Minor": "4",
|
||||||
"Micro": "0"
|
"Micro": "0.post1"
|
||||||
},
|
},
|
||||||
"Author": "Sven Heidemann",
|
"Author": "Sven Heidemann",
|
||||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ class TranslationSettings(ConfigurationModelABC):
|
|||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
languages: list = None,
|
languages: list = None,
|
||||||
default_lang: str = None,
|
default_language: str = None,
|
||||||
):
|
):
|
||||||
ConfigurationModelABC.__init__(self)
|
ConfigurationModelABC.__init__(self)
|
||||||
|
|
||||||
self._languages = [] if languages is None else languages
|
self._languages = [] if languages is None else languages
|
||||||
self._default_lang = default_lang
|
self._default_lang = default_language
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def languages(self) -> list[str]:
|
def languages(self) -> list[str]:
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ from cpl_core.dependency_injection import ServiceProviderABC
|
|||||||
from cpl_core.logging import LoggerABC
|
from cpl_core.logging import LoggerABC
|
||||||
from cpl_core.mailing import EMailClientABC, EMail
|
from cpl_core.mailing import EMailClientABC, EMail
|
||||||
from cpl_core.pipes import IPAddressPipe
|
from cpl_core.pipes import IPAddressPipe
|
||||||
|
from general.test_settings import TestSettings
|
||||||
from test_service import TestService
|
from test_service import TestService
|
||||||
|
|
||||||
|
|
||||||
@@ -57,4 +58,13 @@ class Application(ApplicationABC):
|
|||||||
Console.write_line("scope", scope)
|
Console.write_line("scope", scope)
|
||||||
with self._services.create_scope() as s:
|
with self._services.create_scope() as s:
|
||||||
Console.write_line("with scope", s)
|
Console.write_line("with scope", s)
|
||||||
|
|
||||||
|
test_settings = self._configuration.get_configuration(TestSettings)
|
||||||
|
Console.write_line(test_settings.value)
|
||||||
|
Console.write_line("reload config")
|
||||||
|
self._configuration.add_json_file(f"appsettings.json")
|
||||||
|
self._configuration.add_json_file(f"appsettings.{self._environment.environment_name}.json")
|
||||||
|
self._configuration.add_json_file(f"appsettings.{self._environment.host_name}.json", optional=True)
|
||||||
|
test_settings1 = self._configuration.get_configuration(TestSettings)
|
||||||
|
Console.write_line(test_settings1.value)
|
||||||
# self.test_send_mail()
|
# self.test_send_mail()
|
||||||
|
|||||||
@@ -29,5 +29,9 @@
|
|||||||
"UseUnicode": "true",
|
"UseUnicode": "true",
|
||||||
"Buffered": "true",
|
"Buffered": "true",
|
||||||
"AuthPlugin": "mysql_native_password"
|
"AuthPlugin": "mysql_native_password"
|
||||||
|
},
|
||||||
|
|
||||||
|
"TestSettings": {
|
||||||
|
"Value": 20
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
6
tests/custom/general/src/general/test_settings.py
Normal file
6
tests/custom/general/src/general/test_settings.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
from cpl_core.configuration import ConfigurationModelABC
|
||||||
|
|
||||||
|
|
||||||
|
class TestSettings(ConfigurationModelABC):
|
||||||
|
def __init__(self, value: int = None):
|
||||||
|
self.value = value
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
"LicenseName": "MIT",
|
"LicenseName": "MIT",
|
||||||
"LicenseDescription": "MIT, see LICENSE for more details.",
|
"LicenseDescription": "MIT, see LICENSE for more details.",
|
||||||
"Dependencies": [
|
"Dependencies": [
|
||||||
"cpl-core==2022.12.0",
|
"cpl-core>=2022.12.0",
|
||||||
"GitPython==3.1.29"
|
"GitPython>=3.1.29"
|
||||||
],
|
],
|
||||||
"DevDependencies": [],
|
"DevDependencies": [],
|
||||||
"PythonVersion": ">=3.10.4",
|
"PythonVersion": ">=3.10.4",
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ from unittests_cli.constants import PLAYGROUND_PATH
|
|||||||
|
|
||||||
class CommandTestCase(unittest.TestCase):
|
class CommandTestCase(unittest.TestCase):
|
||||||
_skip_tear_down = False
|
_skip_tear_down = False
|
||||||
|
_cwd = os.getcwd()
|
||||||
|
|
||||||
def __init__(self, method_name: str):
|
def __init__(self, method_name: str):
|
||||||
unittest.TestCase.__init__(self, method_name)
|
unittest.TestCase.__init__(self, method_name)
|
||||||
@@ -32,6 +33,7 @@ class CommandTestCase(unittest.TestCase):
|
|||||||
if cls._skip_tear_down:
|
if cls._skip_tear_down:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
|
os.chdir(cls._cwd)
|
||||||
if os.path.exists(PLAYGROUND_PATH):
|
if os.path.exists(PLAYGROUND_PATH):
|
||||||
shutil.rmtree(os.path.abspath(os.path.join(PLAYGROUND_PATH)))
|
shutil.rmtree(os.path.abspath(os.path.join(PLAYGROUND_PATH)))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
0
unittests/unittests_core/configuration/__init__.py
Normal file
0
unittests/unittests_core/configuration/__init__.py
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import unittest
|
||||||
|
from unittest.mock import Mock, MagicMock
|
||||||
|
|
||||||
|
from cpl_core.configuration import Configuration, ArgumentTypeEnum
|
||||||
|
from cpl_core.database import DatabaseSettings
|
||||||
|
from cpl_core.dependency_injection import ServiceProvider, ServiceCollection
|
||||||
|
from cpl_core.mailing import EMailClientSettings
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigurationTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self._config = Configuration()
|
||||||
|
|
||||||
|
def test_env_vars(self):
|
||||||
|
os.environ["CPLT_TESTVAR"] = "Hello World"
|
||||||
|
os.environ["CPL_NOT_EXISTING"] = "Hello World"
|
||||||
|
|
||||||
|
self._config.add_environment_variables("CPLT_")
|
||||||
|
|
||||||
|
self.assertEqual(self._config.get_configuration("TESTVAR"), "Hello World")
|
||||||
|
self.assertEqual(self._config.get_configuration("TESTVAR"), "Hello World")
|
||||||
|
self.assertEqual(self._config.get_configuration("NOT_EXISTING"), None)
|
||||||
|
|
||||||
|
def test_add_json_file(self):
|
||||||
|
self._config.add_json_file("unittests_core/configuration/test-settings.json")
|
||||||
|
db = self._config.get_configuration(DatabaseSettings)
|
||||||
|
self.assertIsNotNone(db)
|
||||||
|
self.assertEqual("localhost", db.host)
|
||||||
|
self.assertEqual("local", db.user)
|
||||||
|
self.assertEqual("bG9jYWw=", db.password)
|
||||||
|
self.assertEqual("local", db.database)
|
||||||
|
self.assertEqual(int, type(db.port))
|
||||||
|
self.assertEqual(3306, db.port)
|
||||||
|
self.assertEqual("utf8mb4", db.charset)
|
||||||
|
self.assertTrue(db.use_unicode)
|
||||||
|
self.assertTrue(db.buffered)
|
||||||
|
self.assertEqual("mysql_native_password", db.auth_plugin)
|
||||||
|
self.assertIsNone(self._config.get_configuration(EMailClientSettings))
|
||||||
|
|
||||||
|
def test_add_config(self):
|
||||||
|
self.assertIsNone(self._config.get_configuration("Test"))
|
||||||
|
self._config.add_configuration("Test", "Hello World")
|
||||||
|
self.assertIsNotNone(self._config.get_configuration("Test"))
|
||||||
|
self.assertEqual("Hello World", self._config.get_configuration("Test"))
|
||||||
|
|
||||||
|
def test_console_argument(self):
|
||||||
|
sc = ServiceCollection(self._config)
|
||||||
|
self.assertEqual([], sys.argv[1:])
|
||||||
|
sys.argv.append("flag")
|
||||||
|
sys.argv.append("exec")
|
||||||
|
sys.argv.append("var=test")
|
||||||
|
self.assertNotEqual([], sys.argv[1:])
|
||||||
|
|
||||||
|
self._config.create_console_argument(ArgumentTypeEnum.Flag, "", "flag", [])
|
||||||
|
mocked_exec = Mock()
|
||||||
|
mocked_exec.run = MagicMock()
|
||||||
|
sc.add_transient(mocked_exec)
|
||||||
|
self._config.create_console_argument(ArgumentTypeEnum.Executable, "", "exec", [], Mock)
|
||||||
|
self._config.create_console_argument(ArgumentTypeEnum.Variable, "", "var", [], "=")
|
||||||
|
|
||||||
|
self.assertIsNone(self._config.get_configuration("var"))
|
||||||
|
self._config.parse_console_arguments(sc.build_service_provider())
|
||||||
|
mocked_exec.run.assert_called()
|
||||||
|
|
||||||
|
self.assertEqual("test", self._config.get_configuration("var"))
|
||||||
|
self.assertIn("flag", self._config.additional_arguments)
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
import sys
|
||||||
|
import unittest
|
||||||
|
from unittest.mock import Mock, MagicMock
|
||||||
|
|
||||||
|
from cpl_core.configuration import Configuration, ArgumentTypeEnum
|
||||||
|
from cpl_core.dependency_injection import ServiceCollection
|
||||||
|
|
||||||
|
|
||||||
|
class ConsoleArgumentsTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self._config = Configuration()
|
||||||
|
|
||||||
|
self._config.create_console_argument(ArgumentTypeEnum.Flag, "", "flag", [])
|
||||||
|
self._config.create_console_argument(ArgumentTypeEnum.Variable, "", "var", [], "=")
|
||||||
|
|
||||||
|
self._config.create_console_argument(ArgumentTypeEnum.Executable, "", "exec", [], Mock).add_console_argument(
|
||||||
|
ArgumentTypeEnum.Flag, "--", "dev", ["d", "D"]
|
||||||
|
).add_console_argument(ArgumentTypeEnum.Flag, "--", "virtual", ["v", "V"]).add_console_argument(
|
||||||
|
ArgumentTypeEnum.Variable, "", "var1", [], "="
|
||||||
|
)
|
||||||
|
|
||||||
|
self._config.for_each_argument(
|
||||||
|
lambda a: a.add_console_argument(ArgumentTypeEnum.Flag, "--", "help", ["h", "H"])
|
||||||
|
)
|
||||||
|
|
||||||
|
self._sc = ServiceCollection(self._config)
|
||||||
|
self._mocked_exec = Mock()
|
||||||
|
self._mocked_exec.run = MagicMock()
|
||||||
|
self._sc.add_transient(self._mocked_exec)
|
||||||
|
|
||||||
|
def test_flag(self):
|
||||||
|
sys.argv.append("flag")
|
||||||
|
|
||||||
|
self._config.parse_console_arguments(self._sc.build_service_provider())
|
||||||
|
self.assertIn("flag", self._config.additional_arguments)
|
||||||
|
|
||||||
|
def test_var(self):
|
||||||
|
sys.argv.append("var=1")
|
||||||
|
sys.argv.append("var2=1")
|
||||||
|
|
||||||
|
self._config.parse_console_arguments(self._sc.build_service_provider())
|
||||||
|
self.assertEqual("1", self._config.get_configuration("var"))
|
||||||
|
self.assertIsNone(self._config.get_configuration("var1"))
|
||||||
|
|
||||||
|
def test_exec(self):
|
||||||
|
sys.argv.append("exec")
|
||||||
|
|
||||||
|
self._config.parse_console_arguments(self._sc.build_service_provider())
|
||||||
|
self._mocked_exec.run.assert_called()
|
||||||
|
|
||||||
|
def test_exec_with_one_flag(self):
|
||||||
|
sys.argv.append("exec")
|
||||||
|
sys.argv.append("--dev")
|
||||||
|
|
||||||
|
self._config.parse_console_arguments(self._sc.build_service_provider())
|
||||||
|
self._mocked_exec.run.assert_called()
|
||||||
|
self.assertIn("dev", self._config.additional_arguments)
|
||||||
|
|
||||||
|
def test_exec_with_one_flag_alias(self):
|
||||||
|
sys.argv.append("exec")
|
||||||
|
sys.argv.append("--d")
|
||||||
|
|
||||||
|
self._config.parse_console_arguments(self._sc.build_service_provider())
|
||||||
|
self._mocked_exec.run.assert_called()
|
||||||
|
self.assertIn("dev", self._config.additional_arguments)
|
||||||
|
|
||||||
|
def test_exec_with_two_flags(self):
|
||||||
|
sys.argv.append("exec")
|
||||||
|
sys.argv.append("--dev")
|
||||||
|
sys.argv.append("--virtual")
|
||||||
|
|
||||||
|
self._config.parse_console_arguments(self._sc.build_service_provider())
|
||||||
|
self._mocked_exec.run.assert_called()
|
||||||
|
self.assertIn("dev", self._config.additional_arguments)
|
||||||
|
self.assertIn("virtual", self._config.additional_arguments)
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
import os
|
||||||
|
import unittest
|
||||||
|
from _socket import gethostname
|
||||||
|
|
||||||
|
from cpl_core.configuration import Configuration
|
||||||
|
from cpl_core.environment import ApplicationEnvironment, ApplicationEnvironmentABC
|
||||||
|
from cpl_core.environment import application_environment
|
||||||
|
|
||||||
|
|
||||||
|
class EnvironmentTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self._config = Configuration()
|
||||||
|
self._env = self._config.environment
|
||||||
|
|
||||||
|
def test_app_env_created(self):
|
||||||
|
self.assertTrue(isinstance(self._env, ApplicationEnvironment))
|
||||||
|
self.assertTrue(issubclass(type(self._env), ApplicationEnvironmentABC))
|
||||||
|
|
||||||
|
def test_app_env_values_correct_when_default(self):
|
||||||
|
self.assertEqual(self._env.environment_name, "production")
|
||||||
|
self.assertEqual(self._env.application_name, "")
|
||||||
|
self.assertEqual(self._env.customer, "")
|
||||||
|
self.assertEqual(self._env.host_name, gethostname())
|
||||||
|
self.assertEqual(self._env.working_directory, os.getcwd())
|
||||||
|
self.assertEqual(
|
||||||
|
self._env.runtime_directory,
|
||||||
|
os.path.dirname(os.path.dirname(os.path.abspath(application_environment.__file__))),
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_app_env_values_correct_when_read_from_env(self):
|
||||||
|
os.environ["CPLT_ENVIRONMENT"] = "development"
|
||||||
|
os.environ["CPLT_NAME"] = "Core Tests"
|
||||||
|
os.environ["CPLT_CUSTOMER"] = "sh-edraft.de"
|
||||||
|
|
||||||
|
self._config.add_environment_variables("CPLT_")
|
||||||
|
|
||||||
|
self.assertEqual(self._env.environment_name, "development")
|
||||||
|
self.assertEqual(self._env.application_name, "Core Tests")
|
||||||
|
self.assertEqual(self._env.customer, "sh-edraft.de")
|
||||||
|
self.assertEqual(self._env.host_name, gethostname())
|
||||||
|
self.assertEqual(self._env.working_directory, os.getcwd())
|
||||||
|
self.assertEqual(
|
||||||
|
self._env.runtime_directory,
|
||||||
|
os.path.dirname(os.path.dirname(os.path.abspath(application_environment.__file__))),
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_app_env_set_dirs(self):
|
||||||
|
new_cwd = os.path.join(os.getcwd(), "../")
|
||||||
|
self._env.set_working_directory(new_cwd)
|
||||||
|
self.assertEqual(self._env.working_directory, new_cwd)
|
||||||
|
self._env.set_runtime_directory(new_cwd)
|
||||||
|
self.assertEqual(self._env.runtime_directory, new_cwd)
|
||||||
25
unittests/unittests_core/configuration/test-settings.json
Normal file
25
unittests/unittests_core/configuration/test-settings.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"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/$date_now/",
|
||||||
|
"Filename": "bot.log",
|
||||||
|
"ConsoleLogLevel": "TRACE",
|
||||||
|
"FileLogLevel": "TRACE"
|
||||||
|
},
|
||||||
|
"DatabaseSettings": {
|
||||||
|
"Host": "localhost",
|
||||||
|
"User": "local",
|
||||||
|
"Password": "bG9jYWw=",
|
||||||
|
"Database": "local",
|
||||||
|
"Port": "3306",
|
||||||
|
"Charset": "utf8mb4",
|
||||||
|
"UseUnicode": "true",
|
||||||
|
"Buffered": "true",
|
||||||
|
"AuthPlugin": "mysql_native_password"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,10 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
from unittests_core.configuration.console_arguments_test_case import ConsoleArgumentsTestCase
|
||||||
|
from unittests_core.configuration.configuration_test_case import ConfigurationTestCase
|
||||||
|
from unittests_core.configuration.environment_test_case import EnvironmentTestCase
|
||||||
|
from unittests_core.di.service_collection_test_case import ServiceCollectionTestCase
|
||||||
|
from unittests_core.di.service_provider_test_case import ServiceProviderTestCase
|
||||||
from unittests_core.pipes.bool_pipe_test_case import BoolPipeTestCase
|
from unittests_core.pipes.bool_pipe_test_case import BoolPipeTestCase
|
||||||
from unittests_core.pipes.ip_address_pipe_test_case import IPAddressTestCase
|
from unittests_core.pipes.ip_address_pipe_test_case import IPAddressTestCase
|
||||||
from unittests_core.pipes.version_pipe_test_case import VersionPipeTestCase
|
from unittests_core.pipes.version_pipe_test_case import VersionPipeTestCase
|
||||||
@@ -14,6 +19,13 @@ class CoreTestSuite(unittest.TestSuite):
|
|||||||
|
|
||||||
loader = unittest.TestLoader()
|
loader = unittest.TestLoader()
|
||||||
tests = [
|
tests = [
|
||||||
|
# config
|
||||||
|
ConfigurationTestCase,
|
||||||
|
ConsoleArgumentsTestCase,
|
||||||
|
EnvironmentTestCase,
|
||||||
|
# di
|
||||||
|
ServiceCollectionTestCase,
|
||||||
|
ServiceProviderTestCase,
|
||||||
# pipes
|
# pipes
|
||||||
BoolPipeTestCase,
|
BoolPipeTestCase,
|
||||||
IPAddressTestCase,
|
IPAddressTestCase,
|
||||||
|
|||||||
0
unittests/unittests_core/di/__init__.py
Normal file
0
unittests/unittests_core/di/__init__.py
Normal file
56
unittests/unittests_core/di/service_collection_test_case.py
Normal file
56
unittests/unittests_core/di/service_collection_test_case.py
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import unittest
|
||||||
|
from unittest.mock import Mock
|
||||||
|
|
||||||
|
from cpl_core.configuration import Configuration
|
||||||
|
from cpl_core.dependency_injection import ServiceCollection, ServiceLifetimeEnum, ServiceProviderABC
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceCollectionTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self._sc = ServiceCollection(Configuration())
|
||||||
|
|
||||||
|
def test_add_singleton_type(self):
|
||||||
|
self._sc.add_singleton(Mock)
|
||||||
|
|
||||||
|
service = self._sc._service_descriptors[0]
|
||||||
|
self.assertEqual(ServiceLifetimeEnum.singleton, service.lifetime)
|
||||||
|
self.assertEqual(Mock, service.service_type)
|
||||||
|
self.assertEqual(Mock, service.base_type)
|
||||||
|
self.assertIsNone(service.implementation)
|
||||||
|
|
||||||
|
def test_add_singleton_instance(self):
|
||||||
|
mock = Mock()
|
||||||
|
self._sc.add_singleton(mock)
|
||||||
|
|
||||||
|
service = self._sc._service_descriptors[0]
|
||||||
|
self.assertEqual(ServiceLifetimeEnum.singleton, service.lifetime)
|
||||||
|
self.assertEqual(type(mock), service.service_type)
|
||||||
|
self.assertEqual(type(mock), service.base_type)
|
||||||
|
self.assertIsNotNone(service.implementation)
|
||||||
|
|
||||||
|
def test_add_transient_type(self):
|
||||||
|
self._sc.add_transient(Mock)
|
||||||
|
|
||||||
|
service = self._sc._service_descriptors[0]
|
||||||
|
self.assertEqual(ServiceLifetimeEnum.transient, service.lifetime)
|
||||||
|
self.assertEqual(Mock, service.service_type)
|
||||||
|
self.assertEqual(Mock, service.base_type)
|
||||||
|
self.assertIsNone(service.implementation)
|
||||||
|
|
||||||
|
def test_add_scoped_type(self):
|
||||||
|
self._sc.add_scoped(Mock)
|
||||||
|
|
||||||
|
service = self._sc._service_descriptors[0]
|
||||||
|
self.assertEqual(ServiceLifetimeEnum.scoped, service.lifetime)
|
||||||
|
self.assertEqual(Mock, service.service_type)
|
||||||
|
self.assertEqual(Mock, service.base_type)
|
||||||
|
self.assertIsNone(service.implementation)
|
||||||
|
|
||||||
|
def test_build_service_provider(self):
|
||||||
|
self._sc.add_singleton(Mock)
|
||||||
|
service = self._sc._service_descriptors[0]
|
||||||
|
self.assertIsNone(service.implementation)
|
||||||
|
sp = self._sc.build_service_provider()
|
||||||
|
self.assertTrue(isinstance(sp, ServiceProviderABC))
|
||||||
|
self.assertTrue(isinstance(sp.get_service(Mock), Mock))
|
||||||
|
self.assertIsNotNone(service.implementation)
|
||||||
98
unittests/unittests_core/di/service_provider_test_case.py
Normal file
98
unittests/unittests_core/di/service_provider_test_case.py
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
import unittest
|
||||||
|
|
||||||
|
from cpl_core.configuration import Configuration
|
||||||
|
from cpl_core.dependency_injection import ServiceCollection, ServiceProviderABC
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceCount:
|
||||||
|
def __init__(self):
|
||||||
|
self.count = 0
|
||||||
|
|
||||||
|
|
||||||
|
class TestService:
|
||||||
|
def __init__(self, sp: ServiceProviderABC, count: ServiceCount):
|
||||||
|
count.count += 1
|
||||||
|
self.sp = sp
|
||||||
|
self.id = count.count
|
||||||
|
|
||||||
|
|
||||||
|
class DifferentService:
|
||||||
|
def __init__(self, sp: ServiceProviderABC, count: ServiceCount):
|
||||||
|
count.count += 1
|
||||||
|
self.sp = sp
|
||||||
|
self.id = count.count
|
||||||
|
|
||||||
|
|
||||||
|
class MoreDifferentService:
|
||||||
|
def __init__(self, sp: ServiceProviderABC, count: ServiceCount):
|
||||||
|
count.count += 1
|
||||||
|
self.sp = sp
|
||||||
|
self.id = count.count
|
||||||
|
|
||||||
|
|
||||||
|
class ServiceProviderTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self._services = (
|
||||||
|
ServiceCollection(Configuration())
|
||||||
|
.add_singleton(ServiceCount)
|
||||||
|
.add_singleton(TestService)
|
||||||
|
.add_singleton(TestService)
|
||||||
|
.add_transient(DifferentService)
|
||||||
|
.add_scoped(MoreDifferentService)
|
||||||
|
.build_service_provider()
|
||||||
|
)
|
||||||
|
|
||||||
|
count = self._services.get_service(ServiceCount)
|
||||||
|
|
||||||
|
def test_get_singleton(self):
|
||||||
|
x = self._services.get_service(TestService)
|
||||||
|
self.assertIsNotNone(x)
|
||||||
|
self.assertEqual(1, x.id)
|
||||||
|
self.assertEqual(x, self._services.get_service(TestService))
|
||||||
|
self.assertEqual(x, self._services.get_service(TestService))
|
||||||
|
self.assertEqual(x, self._services.get_service(TestService))
|
||||||
|
|
||||||
|
def test_get_singletons(self):
|
||||||
|
x = self._services.get_services(list[TestService])
|
||||||
|
self.assertEqual(2, len(x))
|
||||||
|
self.assertEqual(1, x[0].id)
|
||||||
|
self.assertEqual(2, x[1].id)
|
||||||
|
self.assertNotEqual(x[0], x[1])
|
||||||
|
|
||||||
|
def test_get_transient(self):
|
||||||
|
x = self._services.get_service(DifferentService)
|
||||||
|
self.assertIsNotNone(x)
|
||||||
|
self.assertEqual(1, x.id)
|
||||||
|
self.assertNotEqual(x, self._services.get_service(DifferentService))
|
||||||
|
self.assertNotEqual(x, self._services.get_service(DifferentService))
|
||||||
|
self.assertNotEqual(x, self._services.get_service(DifferentService))
|
||||||
|
|
||||||
|
def test_scoped(self):
|
||||||
|
scoped_id = 0
|
||||||
|
singleton = self._services.get_service(TestService)
|
||||||
|
transient = self._services.get_service(DifferentService)
|
||||||
|
with self._services.create_scope() as scope:
|
||||||
|
sp: ServiceProviderABC = scope.service_provider
|
||||||
|
self.assertNotEqual(sp, self._services)
|
||||||
|
y = sp.get_service(DifferentService)
|
||||||
|
self.assertIsNotNone(y)
|
||||||
|
self.assertEqual(3, y.id)
|
||||||
|
x = sp.get_service(MoreDifferentService)
|
||||||
|
self.assertIsNotNone(x)
|
||||||
|
self.assertEqual(4, x.id)
|
||||||
|
scoped_id = 4
|
||||||
|
self.assertEqual(singleton.sp, self._services)
|
||||||
|
self.assertEqual(transient.sp, self._services)
|
||||||
|
self.assertEqual(x.sp, sp)
|
||||||
|
self.assertNotEqual(x.sp, singleton.sp)
|
||||||
|
transient_in_scope = sp.get_service(DifferentService)
|
||||||
|
self.assertEqual(transient_in_scope.sp, sp)
|
||||||
|
self.assertNotEqual(transient.sp, transient_in_scope.sp)
|
||||||
|
|
||||||
|
self.assertEqual(x.id, sp.get_service(MoreDifferentService).id)
|
||||||
|
self.assertEqual(x.id, sp.get_service(MoreDifferentService).id)
|
||||||
|
self.assertNotEqual(x, self._services.get_service(MoreDifferentService))
|
||||||
|
self.assertEqual(singleton, self._services.get_service(TestService))
|
||||||
|
|
||||||
|
self.assertIsNone(scope.service_provider)
|
||||||
|
self.assertNotEqual(scoped_id, self._services.get_service(MoreDifferentService).id)
|
||||||
@@ -26,7 +26,7 @@ class JSONProcessorTestCase(unittest.TestCase):
|
|||||||
"i": 10,
|
"i": 10,
|
||||||
"s": "Hello World",
|
"s": "Hello World",
|
||||||
"d": {"test": "Test"},
|
"d": {"test": "Test"},
|
||||||
"l": range(0, 11),
|
"l": list(range(0, 11)),
|
||||||
"value": {"value": "Hello World"},
|
"value": {"value": "Hello World"},
|
||||||
}
|
}
|
||||||
test: TestClass = JSONProcessor.process(TestClass, test_dict)
|
test: TestClass = JSONProcessor.process(TestClass, test_dict)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class StringTestCase(unittest.TestCase):
|
|||||||
expected = "HelloWorld"
|
expected = "HelloWorld"
|
||||||
|
|
||||||
self.assertEqual(expected, String.convert_to_camel_case("hello-world"))
|
self.assertEqual(expected, String.convert_to_camel_case("hello-world"))
|
||||||
|
self.assertEqual(expected, String.convert_to_camel_case("hello-World"))
|
||||||
self.assertEqual(expected, String.convert_to_camel_case("hello_world"))
|
self.assertEqual(expected, String.convert_to_camel_case("hello_world"))
|
||||||
self.assertEqual("helloWorld", String.convert_to_camel_case("helloWorld"))
|
self.assertEqual("helloWorld", String.convert_to_camel_case("helloWorld"))
|
||||||
self.assertEqual(expected, String.convert_to_camel_case("Hello_world"))
|
self.assertEqual(expected, String.convert_to_camel_case("Hello_world"))
|
||||||
|
|||||||
Reference in New Issue
Block a user