port-ocean 0.5.3rc1__tar.gz → 0.5.5__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.3rc1 → port_ocean-0.5.5}/PKG-INFO +1 -1
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +16 -21
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/utils/cache.py +17 -5
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/pyproject.toml +1 -1
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/LICENSE.md +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/README.md +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Makefile +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/config.yaml +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/config/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/context/event.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/port/validate_entity_relations.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/models.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/utils.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/ocean.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/py.typed +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/run.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/version.py +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import functools
|
|
3
|
-
from asyncio import TaskGroup
|
|
4
3
|
from functools import lru_cache
|
|
5
4
|
from typing import Any
|
|
6
5
|
|
|
@@ -22,15 +21,13 @@ class JQEntityProcessor(BaseEntityProcessor):
|
|
|
22
21
|
"""
|
|
23
22
|
|
|
24
23
|
@lru_cache
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
compiler = functools.partial(jq.compile, pattern)
|
|
28
|
-
return await loop.run_in_executor(None, compiler)
|
|
24
|
+
def _compile(self, pattern: str) -> Any:
|
|
25
|
+
return jq.compile(pattern)
|
|
29
26
|
|
|
30
27
|
async def _search(self, data: dict[str, Any], pattern: str) -> Any:
|
|
31
28
|
try:
|
|
32
29
|
loop = asyncio.get_event_loop()
|
|
33
|
-
compiled_pattern =
|
|
30
|
+
compiled_pattern = self._compile(pattern)
|
|
34
31
|
first_value_callable = functools.partial(compiled_pattern.first, data)
|
|
35
32
|
return await loop.run_in_executor(None, first_value_callable)
|
|
36
33
|
except Exception:
|
|
@@ -38,7 +35,7 @@ class JQEntityProcessor(BaseEntityProcessor):
|
|
|
38
35
|
|
|
39
36
|
async def _search_as_bool(self, data: dict[str, Any], pattern: str) -> bool:
|
|
40
37
|
loop = asyncio.get_event_loop()
|
|
41
|
-
compiled_pattern =
|
|
38
|
+
compiled_pattern = self._compile(pattern)
|
|
42
39
|
first_value_callable = functools.partial(compiled_pattern.first, data)
|
|
43
40
|
value = await loop.run_in_executor(None, first_value_callable)
|
|
44
41
|
|
|
@@ -53,14 +50,13 @@ class JQEntityProcessor(BaseEntityProcessor):
|
|
|
53
50
|
self, data: dict[str, Any], obj: dict[str, Any]
|
|
54
51
|
) -> dict[str, Any | None]:
|
|
55
52
|
search_tasks = {}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
search_tasks[key] = tg.create_task(self._search(data, value))
|
|
53
|
+
for key, value in obj.items():
|
|
54
|
+
if isinstance(value, dict):
|
|
55
|
+
search_tasks[key] = asyncio.create_task(
|
|
56
|
+
self._search_as_object(data, value)
|
|
57
|
+
)
|
|
58
|
+
else:
|
|
59
|
+
search_tasks[key] = asyncio.create_task(self._search(data, value))
|
|
64
60
|
|
|
65
61
|
result: dict[str, Any | None] = {}
|
|
66
62
|
for key, task in search_tasks.items():
|
|
@@ -74,17 +70,16 @@ class JQEntityProcessor(BaseEntityProcessor):
|
|
|
74
70
|
async def _calculate_entities(
|
|
75
71
|
self, mapping: ResourceConfig, raw_data: list[dict[str, Any]]
|
|
76
72
|
) -> list[Entity]:
|
|
77
|
-
async def calculate_raw(data: dict[str, Any]) ->
|
|
73
|
+
async def calculate_raw(data: dict[str, Any]) -> dict[str, Any]:
|
|
78
74
|
should_run = await self._search_as_bool(data, mapping.selector.query)
|
|
79
75
|
if should_run and mapping.port.entity:
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
data, mapping.port.entity.mappings.dict(exclude_unset=True)
|
|
83
|
-
)
|
|
76
|
+
return await self._search_as_object(
|
|
77
|
+
data, mapping.port.entity.mappings.dict(exclude_unset=True)
|
|
84
78
|
)
|
|
79
|
+
return {}
|
|
85
80
|
|
|
86
81
|
entities_tasks = [asyncio.create_task(calculate_raw(data)) for data in raw_data]
|
|
87
|
-
entities = asyncio.gather(*entities_tasks)
|
|
82
|
+
entities = await asyncio.gather(*entities_tasks)
|
|
88
83
|
|
|
89
84
|
return [
|
|
90
85
|
Entity.parse_obj(entity_data)
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import functools
|
|
2
|
+
import hashlib
|
|
2
3
|
from typing import Callable, AsyncIterator, Any
|
|
3
|
-
|
|
4
4
|
from port_ocean.context.event import event
|
|
5
5
|
|
|
6
6
|
AsyncIteratorCallable = Callable[..., AsyncIterator[list[Any]]]
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
def
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
def hash_func(function_name: str, *args: Any, **kwargs: Any) -> str:
|
|
10
|
+
args_str = str(args)
|
|
11
|
+
kwargs_str = str(kwargs)
|
|
12
|
+
concatenated_string = args_str + kwargs_str
|
|
13
|
+
hash_object = hashlib.sha256(concatenated_string.encode())
|
|
14
|
+
return f"{function_name}_{hash_object.hexdigest()}"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def cache_iterator_result() -> Callable[[AsyncIteratorCallable], AsyncIteratorCallable]:
|
|
12
18
|
"""
|
|
13
19
|
This decorator caches the results of an async iterator function. It checks if the result is already in the cache
|
|
14
20
|
and if not, it fetches the all the data and caches it at ocean.attributes cache the end of the iteration.
|
|
@@ -18,9 +24,12 @@ def cache_iterator_result(
|
|
|
18
24
|
For example, you can use this to cache data coming back from the third-party API to avoid making the same request
|
|
19
25
|
multiple times for each kind.
|
|
20
26
|
|
|
27
|
+
The caching mechanism also detects changes in parameters.
|
|
28
|
+
If a function is called with different parameter values, it will be stored in different hash keys for each unique call.
|
|
29
|
+
|
|
21
30
|
Usage:
|
|
22
31
|
```python
|
|
23
|
-
@cache_iterator_result(
|
|
32
|
+
@cache_iterator_result()
|
|
24
33
|
async def my_async_iterator_function():
|
|
25
34
|
# Your code here
|
|
26
35
|
```
|
|
@@ -29,6 +38,9 @@ def cache_iterator_result(
|
|
|
29
38
|
def decorator(func: AsyncIteratorCallable) -> AsyncIteratorCallable:
|
|
30
39
|
@functools.wraps(func)
|
|
31
40
|
async def wrapper(*args: Any, **kwargs: Any) -> Any:
|
|
41
|
+
# Create Hash key from function name, args and kwargs
|
|
42
|
+
cache_key = hash_func(func.__name__, *args, **kwargs)
|
|
43
|
+
|
|
32
44
|
# Check if the result is already in the cache
|
|
33
45
|
if cache := event.attributes.get(cache_key):
|
|
34
46
|
yield cache
|
|
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.3rc1 → port_ocean-0.5.5}/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
|
|
File without changes
|
{port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.5.3rc1 → port_ocean-0.5.5}/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
|
|
File without changes
|
{port_ocean-0.5.3rc1 → port_ocean-0.5.5}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{port_ocean-0.5.3rc1 → port_ocean-0.5.5}/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
|
|
File without changes
|