port-ocean 0.4.6__tar.gz → 0.4.7__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 (117) hide show
  1. {port_ocean-0.4.6 → port_ocean-0.4.7}/PKG-INFO +1 -1
  2. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/retry_transport.py +5 -0
  3. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/utils.py +16 -1
  4. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/helpers/retry.py +4 -1
  5. {port_ocean-0.4.6 → port_ocean-0.4.7}/pyproject.toml +1 -1
  6. {port_ocean-0.4.6 → port_ocean-0.4.7}/LICENSE.md +0 -0
  7. {port_ocean-0.4.6 → port_ocean-0.4.7}/README.md +0 -0
  8. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/__init__.py +0 -0
  9. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/bootstrap.py +0 -0
  10. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/__init__.py +0 -0
  11. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cli.py +0 -0
  12. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/__init__.py +0 -0
  13. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/defaults/__init___.py +0 -0
  14. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/defaults/clean.py +0 -0
  15. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/defaults/dock.py +0 -0
  16. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/defaults/group.py +0 -0
  17. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/list_integrations.py +0 -0
  18. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/main.py +0 -0
  19. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/new.py +0 -0
  20. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/pull.py +0 -0
  21. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/sail.py +0 -0
  22. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/commands/version.py +0 -0
  23. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/__init__.py +0 -0
  24. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
  25. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/extensions.py +0 -0
  26. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
  27. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
  28. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
  29. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
  30. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
  31. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
  32. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Makefile +0 -0
  33. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
  34. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
  35. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/config.yaml +0 -0
  36. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
  37. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
  38. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
  39. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
  40. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
  41. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/cli/utils.py +0 -0
  42. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/__init__.py +0 -0
  43. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/__init__.py +0 -0
  44. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/authentication.py +0 -0
  45. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/client.py +0 -0
  46. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/mixins/__init__.py +0 -0
  47. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/mixins/blueprints.py +0 -0
  48. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/mixins/entities.py +0 -0
  49. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/mixins/integrations.py +0 -0
  50. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/mixins/migrations.py +0 -0
  51. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/clients/port/types.py +0 -0
  52. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/config/__init__.py +0 -0
  53. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/config/base.py +0 -0
  54. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/config/dynamic.py +0 -0
  55. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/config/settings.py +0 -0
  56. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/consumers/__init__.py +0 -0
  57. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/consumers/base_consumer.py +0 -0
  58. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/consumers/kafka_consumer.py +0 -0
  59. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/context/__init__.py +0 -0
  60. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/context/event.py +0 -0
  61. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/context/ocean.py +0 -0
  62. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/context/resource.py +0 -0
  63. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/context/utils.py +0 -0
  64. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/__init__.py +0 -0
  65. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/defaults/__init__.py +0 -0
  66. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/defaults/clean.py +0 -0
  67. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/defaults/common.py +0 -0
  68. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/defaults/initialize.py +0 -0
  69. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/event_listener/__init__.py +0 -0
  70. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/event_listener/base.py +0 -0
  71. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/event_listener/factory.py +0 -0
  72. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/event_listener/http.py +0 -0
  73. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/event_listener/kafka.py +0 -0
  74. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/event_listener/once.py +0 -0
  75. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/event_listener/polling.py +0 -0
  76. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/__init__.py +0 -0
  77. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/base.py +0 -0
  78. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
  79. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
  80. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
  81. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
  82. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
  83. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
  84. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entities_state_applier/port/validate_entity_relations.py +0 -0
  85. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
  86. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entity_processor/base.py +0 -0
  87. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
  88. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
  89. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/port_app_config/api.py +0 -0
  90. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/port_app_config/base.py +0 -0
  91. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/handlers/port_app_config/models.py +0 -0
  92. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/__init__.py +0 -0
  93. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/base.py +0 -0
  94. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/mixins/__init__.py +0 -0
  95. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/mixins/events.py +0 -0
  96. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/mixins/handler.py +0 -0
  97. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/mixins/sync.py +0 -0
  98. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
  99. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/integrations/mixins/utils.py +0 -0
  100. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/models.py +0 -0
  101. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/ocean_types.py +0 -0
  102. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/core/utils.py +0 -0
  103. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/exceptions/__init__.py +0 -0
  104. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/exceptions/api.py +0 -0
  105. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/exceptions/base.py +0 -0
  106. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/exceptions/clients.py +0 -0
  107. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/exceptions/context.py +0 -0
  108. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/exceptions/core.py +0 -0
  109. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/exceptions/port_defaults.py +0 -0
  110. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/helpers/__init__.py +0 -0
  111. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/logger_setup.py +0 -0
  112. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/middlewares.py +0 -0
  113. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/ocean.py +0 -0
  114. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/py.typed +0 -0
  115. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/run.py +0 -0
  116. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/utils.py +0 -0
  117. {port_ocean-0.4.6 → port_ocean-0.4.7}/port_ocean/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: port-ocean
3
- Version: 0.4.6
3
+ Version: 0.4.7
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
@@ -15,6 +15,11 @@ class TokenRetryTransport(RetryTransport):
15
15
  super().__init__(*args, **kwargs)
16
16
  self.port_client = port_client
17
17
 
18
+ def _is_retryable_method(self, request: httpx.Request) -> bool:
19
+ return super()._is_retryable_method(request) or request.url.path.endswith(
20
+ "/auth/access_token"
21
+ )
22
+
18
23
  async def _handle_unauthorized(self, response: httpx.Response) -> None:
19
24
  token = await self.port_client.auth.token
20
25
  response.headers["Authorization"] = f"Bearer {token}"
@@ -12,6 +12,19 @@ if TYPE_CHECKING:
12
12
  _http_client: LocalStack[httpx.AsyncClient] = LocalStack()
13
13
 
14
14
 
15
+ # In case the framework sends more requests to port in parallel then allowed by the limits, a PoolTimeout exception will
16
+ # be raised.
17
+ # Raising defaults for the timeout, in addition to the limits, will allow request to wait for a connection for a longer
18
+ # period of time, before raising an exception.
19
+ # We don't want to set the max_connections too highly, as it will cause the application to run out of memory.
20
+ # We also don't want to set the max_keepalive_connections too highly, as it will cause the application to run out of
21
+ # available connections.
22
+ PORT_HTTP_CLIENT_TIMEOUT = httpx.Timeout(10.0)
23
+ PORT_HTTP_CLIENT_CONNECTIONS_LIMIT = httpx.Limits(
24
+ max_connections=200, max_keepalive_connections=50
25
+ )
26
+
27
+
15
28
  def _get_http_client_context(port_client: "PortClient") -> httpx.AsyncClient:
16
29
  client = _http_client.top
17
30
  if client is None:
@@ -20,7 +33,9 @@ def _get_http_client_context(port_client: "PortClient") -> httpx.AsyncClient:
20
33
  port_client,
21
34
  httpx.AsyncHTTPTransport(),
22
35
  logger=logger,
23
- )
36
+ ),
37
+ timeout=PORT_HTTP_CLIENT_TIMEOUT,
38
+ limits=PORT_HTTP_CLIENT_CONNECTIONS_LIMIT,
24
39
  )
25
40
  _http_client.push(client)
26
41
 
@@ -151,7 +151,7 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
151
151
 
152
152
  """
153
153
  transport: httpx.AsyncBaseTransport = self._wrapped_transport # type: ignore
154
- if request.method in self._retryable_methods:
154
+ if self._is_retryable_method(request):
155
155
  send_method = partial(transport.handle_async_request)
156
156
  response = await self._retry_operation_async(request, send_method)
157
157
  else:
@@ -178,6 +178,9 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
178
178
  transport: httpx.BaseTransport = self._wrapped_transport # type: ignore
179
179
  transport.close()
180
180
 
181
+ def _is_retryable_method(self, request: httpx.Request) -> bool:
182
+ return request.method in self._retryable_methods
183
+
181
184
  def _should_retry(self, response: httpx.Response) -> bool:
182
185
  return response.status_code in self._retry_status_codes
183
186
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "port-ocean"
3
- version = "0.4.6"
3
+ version = "0.4.7"
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"
File without changes
File without changes
File without changes