Compare commits

..

2 Commits

Author SHA1 Message Date
cc76227199 Moved hosted service base
All checks were successful
Test before pr merge / test-lint (pull_request) Successful in 10s
Build on push / prepare (push) Successful in 13s
Build on push / query (push) Successful in 24s
Build on push / core (push) Successful in 25s
Build on push / dependency (push) Successful in 18s
Build on push / cli (push) Successful in 24s
Build on push / application (push) Successful in 18s
Build on push / mail (push) Successful in 19s
Build on push / database (push) Successful in 23s
Build on push / translation (push) Successful in 26s
Build on push / auth (push) Successful in 17s
Build on push / api (push) Successful in 22s
2025-10-22 11:40:25 +02:00
dfbb0a8c1f Updated cpl structure model json handling
All checks were successful
Test before pr merge / test-lint (pull_request) Successful in 7s
Build on push / prepare (push) Successful in 12s
Build on push / query (push) Successful in 19s
Build on push / core (push) Successful in 19s
Build on push / cli (push) Successful in 19s
Build on push / dependency (push) Successful in 19s
Build on push / database (push) Successful in 16s
Build on push / application (push) Successful in 17s
Build on push / translation (push) Successful in 19s
Build on push / mail (push) Successful in 22s
Build on push / auth (push) Successful in 15s
Build on push / api (push) Successful in 15s
2025-10-19 20:17:17 +02:00
11 changed files with 16 additions and 33 deletions

View File

@@ -75,9 +75,3 @@ class Application(ApplicationABC):
test_settings1 = Configuration.get(TestSettings)
Console.write_line(test_settings1.value)
# self.test_send_mail()
x = 0
while x < 500:
Console.write_line("Running...")
x += 1
await asyncio.sleep(5)

View File

@@ -1,11 +1,13 @@
from application import Application
from cpl.application import ApplicationBuilder
from cpl.core.console import Console
from test_extension import TestExtension
from startup import Startup
from test_startup_extension import TestStartupExtension
def main():
Console.write_line("\n\n--- Application Starting ---\n")
app_builder = ApplicationBuilder(Application)
app_builder.with_startup(Startup)
app_builder.with_extension(TestStartupExtension)

View File

@@ -22,22 +22,6 @@ class ApplicationABC(ABC):
Contains instances of prepared objects
"""
@classmethod
def extend(cls, name: str | Callable, func: Callable[[Self], Self]):
r"""Extend the Application with a custom method
Parameters:
name: :class:`str`
Name of the method
func: :class:`Callable[[Self], Self]`
Function that takes the Application as a parameter and returns it
"""
if callable(name):
name = name.__name__
setattr(cls, name, func)
return cls
@abstractmethod
def __init__(
self, services: ServiceProvider, loaded_modules: set[TModule], required_modules: list[str | object] = None

View File

@@ -4,7 +4,7 @@ from typing import Callable
from cpl.core.property import classproperty
from cpl.dependency.context import get_provider, use_root_provider
from cpl.dependency.service_collection import ServiceCollection
from cpl.dependency.hosted.startup_task import StartupTask
from cpl.core.service.startup_task import StartupTask
class Host:
@@ -86,10 +86,9 @@ class Host:
func(*args, **kwargs)
except (KeyboardInterrupt, asyncio.CancelledError):
pass
finally:
await cls._stop_all()
cls.get_loop().run_until_complete(runner())
cls.get_loop().run_until_complete(cls.wait_for_all())
@classmethod
def run(cls, func: Callable, *args, **kwargs):

View File

@@ -11,9 +11,13 @@ T = TypeVar("T", bound="CPLStructureModel")
class CPLStructureModel:
def __init__(self, path: Optional[str] = None):
def __init__(self, path: Optional[str] = None, ignore_fields: Optional[List[str]] = None):
self._path = path
self._ignore = {"_ignore", "_path"}
if ignore_fields is not None:
self._ignore.update(ignore_fields)
@property
def path(self) -> Optional[str]:
return self._path
@@ -68,7 +72,7 @@ class CPLStructureModel:
def to_json(self) -> Dict[str, Any]:
result: Dict[str, Any] = {}
for key, value in self.__dict__.items():
if not key.startswith("_") or key == "_path":
if not key.startswith("_") or key in self._ignore:
continue
out_key = _self_or_cls_snake_to_camel(key[1:])

View File

@@ -24,7 +24,7 @@ class Workspace(CPLStructureModel):
default_project: Optional[str],
scripts: Dict[str, str],
):
CPLStructureModel.__init__(self, path)
CPLStructureModel.__init__(self, path, ["_actual_projects", "_project_names"])
self._name = name
self._projects = projects

View File

@@ -3,7 +3,7 @@ from abc import ABC, abstractmethod
from datetime import datetime
from cpl.core.time.cron import Cron
from cpl.dependency.hosted import HostedService
from cpl.core.service import HostedService
class CronjobABC(HostedService, ABC):

View File

@@ -7,7 +7,7 @@ from cpl.database.model.migration import Migration
from cpl.database.model.server_type import ServerType, ServerTypes
from cpl.database.schema.executed_migration import ExecutedMigration
from cpl.database.schema.executed_migration_dao import ExecutedMigrationDao
from cpl.dependency.hosted import StartupTask
from cpl.core.service import StartupTask
class MigrationService(StartupTask):

View File

@@ -1,7 +1,7 @@
from cpl.database.abc.data_seeder_abc import DataSeederABC
from cpl.database.logger import DBLogger
from cpl.dependency import ServiceProvider
from cpl.dependency.hosted import StartupTask
from cpl.core.service import StartupTask
class SeederService(StartupTask):

View File

@@ -5,7 +5,7 @@ from cpl.core.errors import module_dependency_error
from cpl.core.log.logger_abc import LoggerABC
from cpl.core.typing import T, Service
from cpl.core.utils.cache import Cache
from cpl.dependency.hosted.startup_task import StartupTask
from cpl.core.service.startup_task import StartupTask
from cpl.dependency.module.module import Module
from cpl.dependency.service_descriptor import ServiceDescriptor
from cpl.dependency.service_lifetime import ServiceLifetimeEnum

View File

@@ -2,7 +2,7 @@ from typing import Type
from cpl.core.configuration import ConfigurationModelABC
from cpl.core.typing import T
from cpl.dependency.hosted import StartupTask
from cpl.core.service import StartupTask
from cpl.dependency.module.module import Module
TModule = Type[Module]