port-ocean 0.10.1__tar.gz → 0.10.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.
- {port_ocean-0.10.1 → port_ocean-0.10.5}/PKG-INFO +1 -1
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/mixins/entities.py +18 -5
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/ocean.py +4 -1
- port_ocean-0.10.5/port_ocean/tests/helpers/__init__.py +75 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/pyproject.toml +14 -7
- {port_ocean-0.10.1 → port_ocean-0.10.5}/LICENSE.md +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/README.md +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Makefile +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/config/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/context/event.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/models.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/utils.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/py.typed +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/run.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/tests/test_sample.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/version.py +0 -0
|
@@ -58,11 +58,24 @@ class EntityClientMixin:
|
|
|
58
58
|
)
|
|
59
59
|
handle_status_code(response, should_raise)
|
|
60
60
|
result = response.json()
|
|
61
|
-
result_entity =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
result_entity = (
|
|
62
|
+
Entity.parse_obj(result["entity"]) if result.get("entity") else entity
|
|
63
|
+
)
|
|
64
|
+
# In order to save memory we'll keep only the identifier, blueprint and relations of the
|
|
65
|
+
# upserted entity result for later calculations
|
|
66
|
+
reduced_entity = Entity(
|
|
67
|
+
identifier=result_entity.identifier, blueprint=result_entity.blueprint
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
# Turning dict typed relations (raw search relations) is required
|
|
71
|
+
# for us to be able to successfully calculate the participation related entities
|
|
72
|
+
# and ignore the ones that don't as they weren't upserted
|
|
73
|
+
reduced_entity.relations = {
|
|
74
|
+
key: None if isinstance(relation, dict) else relation
|
|
75
|
+
for key, relation in result_entity.relations.items()
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return reduced_entity
|
|
66
79
|
|
|
67
80
|
async def batch_upsert_entities(
|
|
68
81
|
self,
|
|
@@ -89,6 +89,7 @@ class Ocean:
|
|
|
89
89
|
raise e
|
|
90
90
|
|
|
91
91
|
interval = self.config.scheduled_resync_interval
|
|
92
|
+
loop = asyncio.get_event_loop()
|
|
92
93
|
if interval is not None:
|
|
93
94
|
logger.info(
|
|
94
95
|
f"Setting up scheduled resync, the integration will automatically perform a full resync every {interval} minutes)"
|
|
@@ -99,7 +100,9 @@ class Ocean:
|
|
|
99
100
|
wait_first=True,
|
|
100
101
|
)(
|
|
101
102
|
lambda: threading.Thread(
|
|
102
|
-
target=lambda: asyncio.
|
|
103
|
+
target=lambda: asyncio.run_coroutine_threadsafe(
|
|
104
|
+
execute_resync_all(), loop
|
|
105
|
+
)
|
|
103
106
|
).start()
|
|
104
107
|
)
|
|
105
108
|
await repeated_function()
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
from inspect import getmembers
|
|
3
|
+
from typing import Dict, List, Set, Tuple, Union
|
|
4
|
+
|
|
5
|
+
from yaml import safe_load
|
|
6
|
+
|
|
7
|
+
from port_ocean.bootstrap import create_default_app
|
|
8
|
+
from port_ocean.core.handlers.port_app_config.models import ResourceConfig
|
|
9
|
+
from port_ocean.core.ocean_types import RESYNC_RESULT
|
|
10
|
+
from port_ocean.ocean import Ocean
|
|
11
|
+
from port_ocean.utils.misc import load_module
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def get_integration_ocean_app(integration_path: str) -> Ocean:
|
|
15
|
+
default_app = create_default_app(
|
|
16
|
+
integration_path,
|
|
17
|
+
None,
|
|
18
|
+
{
|
|
19
|
+
"port": {
|
|
20
|
+
"client_id": "bla",
|
|
21
|
+
"client_secret": "bla",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
)
|
|
25
|
+
main_path = f"{integration_path}/main.py"
|
|
26
|
+
sys.path.append(integration_path)
|
|
27
|
+
app_module = load_module(main_path)
|
|
28
|
+
app: Ocean = {name: item for name, item in getmembers(app_module)}.get(
|
|
29
|
+
"app", default_app
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
return app
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get_integation_resource_configs(integration_path: str) -> List[ResourceConfig]:
|
|
36
|
+
with open(
|
|
37
|
+
f"{integration_path}/.port/resources/port-app-config.yml"
|
|
38
|
+
) as port_app_config_file:
|
|
39
|
+
resource_configs = safe_load(port_app_config_file)
|
|
40
|
+
|
|
41
|
+
return [ResourceConfig(**item) for item in resource_configs["resources"]]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def get_integation_resource_config_by_name(
|
|
45
|
+
integration_path: str, kind: str
|
|
46
|
+
) -> Union[ResourceConfig, None]:
|
|
47
|
+
resource_configs = get_integation_resource_configs(integration_path)
|
|
48
|
+
|
|
49
|
+
relevant_configs = [x for x in resource_configs if x.kind == kind]
|
|
50
|
+
|
|
51
|
+
return relevant_configs[0] if len(relevant_configs) else None
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
async def get_raw_result_on_integration_sync_kinds(
|
|
55
|
+
integration_path: str, override_kinds: Union[Set[str], None] = None
|
|
56
|
+
) -> Dict[str, List[Tuple[RESYNC_RESULT, List[Exception]]]]:
|
|
57
|
+
app = get_integration_ocean_app(integration_path)
|
|
58
|
+
|
|
59
|
+
resource_configs = get_integation_resource_configs(integration_path)
|
|
60
|
+
|
|
61
|
+
if override_kinds:
|
|
62
|
+
resource_configs = [x for x in resource_configs if x.kind in override_kinds]
|
|
63
|
+
|
|
64
|
+
results: Dict[str, List[Tuple[RESYNC_RESULT, List[Exception]]]] = {}
|
|
65
|
+
|
|
66
|
+
for resource_config in resource_configs:
|
|
67
|
+
resource_result = await app.integration._get_resource_raw_results(
|
|
68
|
+
resource_config
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
results[resource_config.kind] = results.get(resource_config.kind, []) + [
|
|
72
|
+
resource_result
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
return results
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "port-ocean"
|
|
3
|
-
version = "0.10.
|
|
3
|
+
version = "0.10.5"
|
|
4
4
|
description = "Port Ocean is a CLI tool for managing your Port projects."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
homepage = "https://app.getport.io"
|
|
@@ -64,18 +64,20 @@ cli = ["click", "rich", "cookiecutter", "jinja2-time"]
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
[tool.poetry.group.dev.dependencies]
|
|
67
|
-
pytest = ">=7.2,<9.0"
|
|
68
67
|
black = ">=23.3,<25.0"
|
|
69
68
|
mypy = "^1.3.0"
|
|
69
|
+
pre-commit = "^3.7.1"
|
|
70
70
|
pylint = ">=2.17.4,<4.0.0"
|
|
71
|
-
|
|
71
|
+
pytest = ">=8.2,<9.0"
|
|
72
|
+
pytest-asyncio = ">=0.24.0"
|
|
73
|
+
pytest-httpx = ">=0.30.0"
|
|
74
|
+
pytest-xdist = "^3.6.1"
|
|
72
75
|
ruff = ">=0.0.278,<0.4.11"
|
|
73
|
-
types-toml = "^0.10.8.6"
|
|
74
76
|
towncrier = "^23.6.0"
|
|
75
|
-
yamllint = "^1.32.0"
|
|
76
77
|
types-python-dateutil = "^2.9.0.20240316"
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
types-pyyaml = "^6.0.12.10"
|
|
79
|
+
types-toml = "^0.10.8.6"
|
|
80
|
+
yamllint = "^1.32.0"
|
|
79
81
|
|
|
80
82
|
[tool.towncrier]
|
|
81
83
|
directory = "changelog"
|
|
@@ -168,3 +170,8 @@ exclude = '''
|
|
|
168
170
|
|node_modules
|
|
169
171
|
)/
|
|
170
172
|
'''
|
|
173
|
+
|
|
174
|
+
[tool.pytest.ini_options]
|
|
175
|
+
asyncio_mode = "auto"
|
|
176
|
+
asyncio_default_fixture_loop_scope = "function"
|
|
177
|
+
addopts = "-vv -n auto --ignore-glob='./integrations/*' ./port_ocean/tests"
|
|
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.10.1 → port_ocean-0.10.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.10.1 → port_ocean-0.10.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
|
{port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/port_app_config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/resync_state_updater/__init__.py
RENAMED
|
File without changes
|
{port_ocean-0.10.1 → port_ocean-0.10.5}/port_ocean/core/handlers/resync_state_updater/updater.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
|