port-ocean 0.5.18__tar.gz → 0.5.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of port-ocean might be problematic. Click here for more details.
- {port_ocean-0.5.18 → port_ocean-0.5.19}/PKG-INFO +1 -1
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/config/settings.py +1 -0
- port_ocean-0.5.19/port_ocean/core/handlers/port_app_config/base.py +82 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/mixins/sync_raw.py +5 -1
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/utils.py +0 -8
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/queue_utils.py +1 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/pyproject.toml +1 -1
- port_ocean-0.5.18/port_ocean/core/handlers/port_app_config/base.py +0 -44
- {port_ocean-0.5.18 → port_ocean-0.5.19}/LICENSE.md +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/README.md +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Makefile +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/config.yaml +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/config/base.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/context/event.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/models.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/ocean.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/py.typed +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/run.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/version.py +0 -0
|
@@ -36,6 +36,7 @@ class PortSettings(BaseOceanModel, extra=Extra.allow):
|
|
|
36
36
|
client_id: str = Field(..., sensitive=True)
|
|
37
37
|
client_secret: str = Field(..., sensitive=True)
|
|
38
38
|
base_url: AnyHttpUrl = parse_obj_as(AnyHttpUrl, "https://api.getport.io")
|
|
39
|
+
port_app_config_cache_ttl: int = 60
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
class IntegrationSettings(BaseOceanModel, extra=Extra.allow):
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
from abc import abstractmethod
|
|
2
|
+
from typing import Type, Any
|
|
3
|
+
|
|
4
|
+
from loguru import logger
|
|
5
|
+
from pydantic import ValidationError
|
|
6
|
+
|
|
7
|
+
from port_ocean.context.event import event
|
|
8
|
+
from port_ocean.context.ocean import PortOceanContext
|
|
9
|
+
from port_ocean.core.handlers.base import BaseHandler
|
|
10
|
+
from port_ocean.core.handlers.port_app_config.models import PortAppConfig
|
|
11
|
+
from port_ocean.utils.misc import get_time
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class PortAppConfigCache:
|
|
15
|
+
_port_app_config: PortAppConfig | None
|
|
16
|
+
_retrieval_time: float
|
|
17
|
+
|
|
18
|
+
def __init__(self, cache_ttl: int):
|
|
19
|
+
self._cache_ttl = cache_ttl
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def port_app_config(self) -> PortAppConfig:
|
|
23
|
+
if self._port_app_config is None:
|
|
24
|
+
raise ValueError("Port app config is not set")
|
|
25
|
+
return self._port_app_config
|
|
26
|
+
|
|
27
|
+
@port_app_config.setter
|
|
28
|
+
def port_app_config(self, value: PortAppConfig) -> None:
|
|
29
|
+
self._retrieval_time = get_time()
|
|
30
|
+
self._port_app_config = value
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def is_cache_invalid(self) -> bool:
|
|
34
|
+
return (
|
|
35
|
+
not self._port_app_config
|
|
36
|
+
or self._retrieval_time + self._cache_ttl < get_time()
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class BasePortAppConfig(BaseHandler):
|
|
41
|
+
"""Abstract base class for managing port application configurations.
|
|
42
|
+
|
|
43
|
+
This class defines methods for obtaining and processing port application configurations.
|
|
44
|
+
|
|
45
|
+
Attributes:
|
|
46
|
+
context (Any): The context to be used during port application configuration.
|
|
47
|
+
CONFIG_CLASS (Type[PortAppConfig]): The class used for defining port application configuration settings.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
CONFIG_CLASS: Type[PortAppConfig] = PortAppConfig
|
|
51
|
+
|
|
52
|
+
def __init__(self, context: PortOceanContext):
|
|
53
|
+
super().__init__(context)
|
|
54
|
+
self._app_config_cache = PortAppConfigCache(
|
|
55
|
+
self.context.config.port.port_app_config_cache_ttl
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
@abstractmethod
|
|
59
|
+
async def _get_port_app_config(self) -> dict[str, Any]:
|
|
60
|
+
pass
|
|
61
|
+
|
|
62
|
+
async def get_port_app_config(self, use_cache: bool = True) -> PortAppConfig:
|
|
63
|
+
"""
|
|
64
|
+
Retrieve and parse the port application configuration.
|
|
65
|
+
|
|
66
|
+
:param use_cache: Determines whether to use the cached port-app-config if it exists, or to fetch it regardless
|
|
67
|
+
:return: The parsed port application configuration.
|
|
68
|
+
"""
|
|
69
|
+
if not use_cache or self._app_config_cache.is_cache_invalid:
|
|
70
|
+
raw_config = await self._get_port_app_config()
|
|
71
|
+
try:
|
|
72
|
+
self._app_config_cache.port_app_config = self.CONFIG_CLASS.parse_obj(
|
|
73
|
+
raw_config
|
|
74
|
+
)
|
|
75
|
+
except ValidationError:
|
|
76
|
+
logger.error(
|
|
77
|
+
"Invalid port app config found. Please check that the integration has been configured correctly."
|
|
78
|
+
)
|
|
79
|
+
raise
|
|
80
|
+
|
|
81
|
+
event.port_app_config = self._app_config_cache.port_app_config
|
|
82
|
+
return self._app_config_cache.port_app_config
|
|
@@ -362,7 +362,11 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
|
|
|
362
362
|
EventType.RESYNC,
|
|
363
363
|
trigger_type=trigger_type,
|
|
364
364
|
):
|
|
365
|
-
|
|
365
|
+
# If a resync is triggered due to a mappings change, we want to make sure that we have the updated version
|
|
366
|
+
# rather than the old cache
|
|
367
|
+
app_config = await self.port_app_config_handler.get_port_app_config(
|
|
368
|
+
use_cache=False
|
|
369
|
+
)
|
|
366
370
|
|
|
367
371
|
creation_results: list[tuple[list[Entity], list[Exception]]] = []
|
|
368
372
|
|
|
@@ -28,14 +28,6 @@ def is_same_entity(first_entity: Entity, second_entity: Entity) -> bool:
|
|
|
28
28
|
)
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
def get_unique(array: list[Entity]) -> list[Entity]:
|
|
32
|
-
result: list[Entity] = []
|
|
33
|
-
for item in array:
|
|
34
|
-
if all(not is_same_entity(item, seen_item) for seen_item in result):
|
|
35
|
-
result.append(item)
|
|
36
|
-
return result
|
|
37
|
-
|
|
38
|
-
|
|
39
31
|
def get_port_diff(
|
|
40
32
|
before: Iterable[Entity],
|
|
41
33
|
after: Iterable[Entity],
|
|
@@ -33,6 +33,7 @@ async def process_in_queue(
|
|
|
33
33
|
This function executes multiple asynchronous tasks in a bounded way
|
|
34
34
|
(e.g. having 200 tasks to execute, while running only 20 concurrently),
|
|
35
35
|
to prevent overload and memory issues when dealing with large sets of data and tasks.
|
|
36
|
+
read more -> https://stackoverflow.com/questions/38831322/making-1-milion-requests-with-aiohttp-asyncio-literally
|
|
36
37
|
|
|
37
38
|
Usage:
|
|
38
39
|
```python
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
from abc import abstractmethod
|
|
2
|
-
from typing import Type, Any
|
|
3
|
-
|
|
4
|
-
from loguru import logger
|
|
5
|
-
from pydantic import ValidationError
|
|
6
|
-
|
|
7
|
-
from port_ocean.context.event import event
|
|
8
|
-
from port_ocean.core.handlers.base import BaseHandler
|
|
9
|
-
from port_ocean.core.handlers.port_app_config.models import PortAppConfig
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class BasePortAppConfig(BaseHandler):
|
|
13
|
-
"""Abstract base class for managing port application configurations.
|
|
14
|
-
|
|
15
|
-
This class defines methods for obtaining and processing port application configurations.
|
|
16
|
-
|
|
17
|
-
Attributes:
|
|
18
|
-
context (Any): The context to be used during port application configuration.
|
|
19
|
-
CONFIG_CLASS (Type[PortAppConfig]): The class used for defining port application configuration settings.
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
CONFIG_CLASS: Type[PortAppConfig] = PortAppConfig
|
|
23
|
-
|
|
24
|
-
@abstractmethod
|
|
25
|
-
async def _get_port_app_config(self) -> dict[str, Any]:
|
|
26
|
-
pass
|
|
27
|
-
|
|
28
|
-
async def get_port_app_config(self) -> PortAppConfig:
|
|
29
|
-
"""Retrieve and parse the port application configuration.
|
|
30
|
-
|
|
31
|
-
Returns:
|
|
32
|
-
PortAppConfig: The parsed port application configuration.
|
|
33
|
-
"""
|
|
34
|
-
raw_config = await self._get_port_app_config()
|
|
35
|
-
try:
|
|
36
|
-
config = self.CONFIG_CLASS.parse_obj(raw_config)
|
|
37
|
-
except ValidationError:
|
|
38
|
-
logger.error(
|
|
39
|
-
"Invalid port app config found. Please check that the integration has been configured correctly."
|
|
40
|
-
)
|
|
41
|
-
raise
|
|
42
|
-
|
|
43
|
-
event.port_app_config = config
|
|
44
|
-
return config
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entities_state_applier/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.5.18 → port_ocean-0.5.19}/port_ocean/core/handlers/port_app_config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|