port-ocean 0.12.2.dev6__tar.gz → 0.12.2.dev8__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.

Files changed (146) hide show
  1. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/PKG-INFO +1 -1
  2. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/event_listener/base.py +2 -11
  3. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/mixins/sync_raw.py +50 -51
  4. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/log/handlers.py +7 -8
  5. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/ocean.py +11 -12
  6. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/pyproject.toml +1 -1
  7. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/LICENSE.md +0 -0
  8. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/README.md +0 -0
  9. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/__init__.py +0 -0
  10. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/bootstrap.py +0 -0
  11. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/__init__.py +0 -0
  12. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cli.py +0 -0
  13. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/__init__.py +0 -0
  14. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/defaults/__init___.py +0 -0
  15. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/defaults/clean.py +0 -0
  16. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/defaults/dock.py +0 -0
  17. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/defaults/group.py +0 -0
  18. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/list_integrations.py +0 -0
  19. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/main.py +0 -0
  20. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/new.py +0 -0
  21. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/pull.py +0 -0
  22. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/sail.py +0 -0
  23. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/commands/version.py +0 -0
  24. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/__init__.py +0 -0
  25. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
  26. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/extensions.py +0 -0
  27. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
  28. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
  29. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
  30. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
  31. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
  32. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
  33. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
  34. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
  35. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
  36. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
  37. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
  38. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
  39. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
  40. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
  41. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
  42. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
  43. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
  44. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
  45. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
  46. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
  47. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/cli/utils.py +0 -0
  48. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/__init__.py +0 -0
  49. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/__init__.py +0 -0
  50. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/authentication.py +0 -0
  51. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/client.py +0 -0
  52. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/mixins/__init__.py +0 -0
  53. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/mixins/blueprints.py +0 -0
  54. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/mixins/entities.py +0 -0
  55. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/mixins/integrations.py +0 -0
  56. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/mixins/migrations.py +0 -0
  57. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/retry_transport.py +0 -0
  58. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/types.py +0 -0
  59. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/clients/port/utils.py +0 -0
  60. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/config/__init__.py +0 -0
  61. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/config/base.py +0 -0
  62. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/config/dynamic.py +0 -0
  63. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/config/settings.py +0 -0
  64. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/consumers/__init__.py +0 -0
  65. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/consumers/kafka_consumer.py +0 -0
  66. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/context/__init__.py +0 -0
  67. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/context/event.py +0 -0
  68. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/context/ocean.py +0 -0
  69. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/context/resource.py +0 -0
  70. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/__init__.py +0 -0
  71. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/defaults/__init__.py +0 -0
  72. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/defaults/clean.py +0 -0
  73. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/defaults/common.py +0 -0
  74. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/defaults/initialize.py +0 -0
  75. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/event_listener/__init__.py +0 -0
  76. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/event_listener/factory.py +0 -0
  77. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/event_listener/http.py +0 -0
  78. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/event_listener/kafka.py +0 -0
  79. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/event_listener/once.py +0 -0
  80. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/event_listener/polling.py +0 -0
  81. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/__init__.py +0 -0
  82. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/base.py +0 -0
  83. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
  84. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
  85. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
  86. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
  87. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
  88. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
  89. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
  90. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entity_processor/base.py +0 -0
  91. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
  92. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
  93. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/port_app_config/api.py +0 -0
  94. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/port_app_config/base.py +0 -0
  95. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/port_app_config/models.py +0 -0
  96. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
  97. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
  98. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/__init__.py +0 -0
  99. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/base.py +0 -0
  100. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/mixins/__init__.py +0 -0
  101. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/mixins/events.py +0 -0
  102. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/mixins/handler.py +0 -0
  103. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/mixins/sync.py +0 -0
  104. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/integrations/mixins/utils.py +0 -0
  105. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/models.py +0 -0
  106. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/ocean_types.py +0 -0
  107. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/core/utils.py +0 -0
  108. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/__init__.py +0 -0
  109. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/api.py +0 -0
  110. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/base.py +0 -0
  111. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/clients.py +0 -0
  112. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/context.py +0 -0
  113. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/core.py +0 -0
  114. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/port_defaults.py +0 -0
  115. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/exceptions/utils.py +0 -0
  116. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/helpers/__init__.py +0 -0
  117. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/helpers/async_client.py +0 -0
  118. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/helpers/retry.py +0 -0
  119. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/log/__init__.py +0 -0
  120. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/log/logger_setup.py +0 -0
  121. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/log/sensetive.py +0 -0
  122. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/middlewares.py +0 -0
  123. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/py.typed +0 -0
  124. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/run.py +0 -0
  125. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/sonar-project.properties +0 -0
  126. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/__init__.py +0 -0
  127. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
  128. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/conftest.py +0 -0
  129. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
  130. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/helpers/__init__.py +0 -0
  131. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/helpers/fixtures.py +0 -0
  132. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/helpers/integration.py +0 -0
  133. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/helpers/ocean_app.py +0 -0
  134. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/helpers/port_client.py +0 -0
  135. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/helpers/smoke_test.py +0 -0
  136. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/tests/test_smoke.py +0 -0
  137. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/__init__.py +0 -0
  138. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/async_http.py +0 -0
  139. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/async_iterators.py +0 -0
  140. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/cache.py +0 -0
  141. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/misc.py +0 -0
  142. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/queue_utils.py +0 -0
  143. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/repeat.py +0 -0
  144. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/signal.py +0 -0
  145. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/utils/time.py +0 -0
  146. {port_ocean-0.12.2.dev6 → port_ocean-0.12.2.dev8}/port_ocean/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: port-ocean
3
- Version: 0.12.2.dev6
3
+ Version: 0.12.2.dev8
4
4
  Summary: Port Ocean is a CLI tool for managing your Port projects.
5
5
  Home-page: https://app.getport.io
6
6
  Keywords: ocean,port-ocean,port
@@ -1,14 +1,12 @@
1
- import asyncio
2
1
  from abc import abstractmethod
3
- from concurrent.futures import ProcessPoolExecutor
4
2
  from typing import TypedDict, Callable, Any, Awaitable
5
3
 
6
4
  from pydantic import Extra
7
5
 
8
6
  from port_ocean.config.base import BaseOceanModel
7
+ from port_ocean.utils.signal import signal_handler
9
8
  from port_ocean.context.ocean import ocean
10
9
  from port_ocean.utils.misc import IntegrationStateStatus
11
- from port_ocean.utils.signal import signal_handler
12
10
 
13
11
 
14
12
  class EventListenerEvents(TypedDict):
@@ -69,14 +67,7 @@ class BaseEventListener:
69
67
  """
70
68
  await self._before_resync()
71
69
  try:
72
- loop = asyncio.get_event_loop()
73
- with ProcessPoolExecutor() as executor:
74
- e = executor.submit(
75
- lambda: asyncio.run_coroutine_threadsafe(
76
- self.events["on_resync"](resync_args), loop
77
- )
78
- )
79
- signal_handler.register(e.cancel)
70
+ await self.events["on_resync"](resync_args)
80
71
  await self._after_resync()
81
72
  except Exception as e:
82
73
  await self._on_resync_failure(e)
@@ -3,7 +3,6 @@ import inspect
3
3
  import typing
4
4
  from typing import Callable, Awaitable, Any
5
5
 
6
- import httpx
7
6
  from loguru import logger
8
7
 
9
8
  from port_ocean.clients.port.types import UserAgentType
@@ -140,9 +139,9 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
140
139
  objects_diff = await self._calculate_raw(
141
140
  [(resource, results)], parse_all, send_raw_data_examples_amount
142
141
  )
143
- await self.entities_state_applier.upsert(
144
- objects_diff[0].entity_selector_diff.passed, user_agent_type
145
- )
142
+ # modified_objects = await self.entities_state_applier.upsert(
143
+ # objects_diff[0].entity_selector_diff.passed, user_agent_type
144
+ # )
146
145
  return CalculationResult(
147
146
  objects_diff[0].entity_selector_diff._replace(passed=objects_diff[0].entity_selector_diff.passed),
148
147
  errors=objects_diff[0].errors,
@@ -426,20 +425,20 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
426
425
  use_cache=False
427
426
  )
428
427
  logger.info(f"Resync will use the following mappings: {app_config.dict()}")
429
- try:
430
- did_fetched_current_state = True
431
- entities_at_port = await ocean.port_client.search_entities(
432
- user_agent_type
433
- )
434
- except httpx.HTTPError as e:
435
- logger.warning(
436
- "Failed to fetch the current state of entities at Port. "
437
- "Skipping delete phase due to unknown initial state. "
438
- f"Error: {e}\n"
439
- f"Response status code: {e.response.status_code if isinstance(e, httpx.HTTPStatusError) else None}\n"
440
- f"Response content: {e.response.text if isinstance(e, httpx.HTTPStatusError) else None}\n"
441
- )
442
- did_fetched_current_state = False
428
+ # try:
429
+ # did_fetched_current_state = True
430
+ # entities_at_port = await ocean.port_client.search_entities(
431
+ # user_agent_type
432
+ # )
433
+ # except httpx.HTTPError as e:
434
+ # logger.warning(
435
+ # "Failed to fetch the current state of entities at Port. "
436
+ # "Skipping delete phase due to unknown initial state. "
437
+ # f"Error: {e}\n"
438
+ # f"Response status code: {e.response.status_code if isinstance(e, httpx.HTTPStatusError) else None}\n"
439
+ # f"Response content: {e.response.text if isinstance(e, httpx.HTTPStatusError) else None}\n"
440
+ # )
441
+ # did_fetched_current_state = False
443
442
 
444
443
  creation_results: list[tuple[list[Entity], list[Exception]]] = []
445
444
 
@@ -458,36 +457,36 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
458
457
  except asyncio.CancelledError as e:
459
458
  logger.warning("Resync aborted successfully, skipping delete phase. This leads to an incomplete state")
460
459
  raise
461
- else:
462
- if not did_fetched_current_state:
463
- logger.warning(
464
- "Due to an error before the resync, the previous state of entities at Port is unknown."
465
- " Skipping delete phase due to unknown initial state."
466
- )
467
- return
468
-
469
- logger.info("Starting resync diff calculation")
470
- flat_created_entities, errors = zip_and_sum(creation_results) or [
471
- [],
472
- [],
473
- ]
474
-
475
- if errors:
476
- message = f"Resync failed with {len(errors)}. Skipping delete phase due to incomplete state"
477
- error_group = ExceptionGroup(
478
- f"Resync failed with {len(errors)}. Skipping delete phase due to incomplete state",
479
- errors,
480
- )
481
- if not silent:
482
- raise error_group
483
-
484
- logger.error(message, exc_info=error_group)
485
- else:
486
- logger.info(
487
- f"Running resync diff calculation, number of entities at Port before resync: {len(entities_at_port)}, number of entities created during sync: {len(flat_created_entities)}"
488
- )
489
- await self.entities_state_applier.delete_diff(
490
- {"before": entities_at_port, "after": flat_created_entities},
491
- user_agent_type,
492
- )
493
- logger.info("Resync finished successfully")
460
+ # else:
461
+ # if not did_fetched_current_state:
462
+ # logger.warning(
463
+ # "Due to an error before the resync, the previous state of entities at Port is unknown."
464
+ # " Skipping delete phase due to unknown initial state."
465
+ # )
466
+ # return
467
+ #
468
+ # logger.info("Starting resync diff calculation")
469
+ # flat_created_entities, errors = zip_and_sum(creation_results) or [
470
+ # [],
471
+ # [],
472
+ # ]
473
+ #
474
+ # if errors:
475
+ # message = f"Resync failed with {len(errors)}. Skipping delete phase due to incomplete state"
476
+ # error_group = ExceptionGroup(
477
+ # f"Resync failed with {len(errors)}. Skipping delete phase due to incomplete state",
478
+ # errors,
479
+ # )
480
+ # if not silent:
481
+ # raise error_group
482
+ #
483
+ # logger.error(message, exc_info=error_group)
484
+ # else:
485
+ # logger.info(
486
+ # f"Running resync diff calculation, number of entities at Port before resync: {len(entities_at_port)}, number of entities created during sync: {len(flat_created_entities)}"
487
+ # )
488
+ # await self.entities_state_applier.delete_diff(
489
+ # {"before": entities_at_port, "after": flat_created_entities},
490
+ # user_agent_type,
491
+ # )
492
+ # logger.info("Resync finished successfully")
@@ -1,8 +1,8 @@
1
1
  import asyncio
2
2
  import logging
3
3
  import sys
4
+ import threading
4
5
  import time
5
- from concurrent.futures import ProcessPoolExecutor
6
6
  from datetime import datetime
7
7
  from logging.handlers import MemoryHandler
8
8
  from typing import Any
@@ -65,19 +65,18 @@ class HTTPMemoryHandler(MemoryHandler):
65
65
  if self.ocean is None or not self.buffer:
66
66
  return
67
67
 
68
+ def _wrap_event_loop(_ocean: Ocean, logs_to_send: list[dict[str, Any]]) -> None:
69
+ loop = asyncio.new_event_loop()
70
+ loop.run_until_complete(self.send_logs(_ocean, logs_to_send))
71
+ loop.close()
72
+
68
73
  self.acquire()
69
74
  logs = list(self._serialized_buffer)
70
75
  if logs:
71
76
  self.buffer.clear()
72
77
  self._serialized_buffer.clear()
73
78
  self.last_flush_time = time.time()
74
- loop = asyncio.new_event_loop()
75
- with ProcessPoolExecutor() as executor:
76
- executor.submit(
77
- lambda: asyncio.run_coroutine_threadsafe(
78
- self.send_logs(self.ocean, logs), loop
79
- )
80
- )
79
+ threading.Thread(target=_wrap_event_loop, args=(self.ocean, logs)).start()
81
80
  self.release()
82
81
 
83
82
  async def send_logs(
@@ -1,6 +1,6 @@
1
1
  import asyncio
2
2
  import sys
3
- from concurrent.futures import ProcessPoolExecutor
3
+ import threading
4
4
  from contextlib import asynccontextmanager
5
5
  from typing import Callable, Any, Dict, AsyncIterator, Type
6
6
 
@@ -9,6 +9,8 @@ from loguru import logger
9
9
  from pydantic import BaseModel
10
10
  from starlette.types import Scope, Receive, Send
11
11
 
12
+ from port_ocean.core.handlers.resync_state_updater import ResyncStateUpdater
13
+ from port_ocean.core.models import Runtime
12
14
  from port_ocean.clients.port.client import PortClient
13
15
  from port_ocean.config.settings import (
14
16
  IntegrationConfiguration,
@@ -18,15 +20,13 @@ from port_ocean.context.ocean import (
18
20
  ocean,
19
21
  initialize_port_ocean_context,
20
22
  )
21
- from port_ocean.core.handlers.resync_state_updater import ResyncStateUpdater
22
23
  from port_ocean.core.integrations.base import BaseIntegration
23
- from port_ocean.core.models import Runtime
24
24
  from port_ocean.log.sensetive import sensitive_log_filter
25
25
  from port_ocean.middlewares import request_handler
26
- from port_ocean.utils.misc import IntegrationStateStatus
27
26
  from port_ocean.utils.repeat import repeat_every
28
27
  from port_ocean.utils.signal import signal_handler
29
28
  from port_ocean.version import __integration_version__
29
+ from port_ocean.utils.misc import IntegrationStateStatus
30
30
 
31
31
 
32
32
  class Ocean:
@@ -92,13 +92,6 @@ class Ocean:
92
92
  )
93
93
  raise e
94
94
 
95
- def pool_executor_wrapper(event_loop) -> None:
96
- with ProcessPoolExecutor() as executor:
97
- e = executor.submit(lambda: asyncio.run_coroutine_threadsafe(
98
- execute_resync_all(), event_loop
99
- ))
100
- signal_handler.register(e.cancel)
101
-
102
95
  interval = self.config.scheduled_resync_interval
103
96
  loop = asyncio.get_event_loop()
104
97
  if interval is not None:
@@ -110,7 +103,13 @@ class Ocean:
110
103
  seconds=interval * 60,
111
104
  # Not running the resync immediately because the event listener should run resync on startup
112
105
  wait_first=True,
113
- )(lambda _: pool_executor_wrapper(loop))
106
+ )(
107
+ lambda: threading.Thread(
108
+ target=lambda: asyncio.run_coroutine_threadsafe(
109
+ execute_resync_all(), loop
110
+ )
111
+ ).start()
112
+ )
114
113
  await repeated_function()
115
114
 
116
115
  async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "port-ocean"
3
- version = "0.12.2-dev06"
3
+ version = "0.12.2-dev08"
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"