port-ocean 0.24.11__py3-none-any.whl → 0.24.14__py3-none-any.whl

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.

@@ -24,6 +24,7 @@ from port_ocean.helpers.metric.metric import MetricPhase, MetricType
24
24
  ENTITIES_BULK_SAMPLES_SIZE = 10
25
25
  ENTITIES_BULK_ESTIMATED_SIZE_MULTIPLIER = 1.5
26
26
  ENTITIES_BULK_MINIMUM_BATCH_SIZE = 1
27
+ ENTITIES_BULK_UPSERT_CONCURRENCY = 5
27
28
 
28
29
 
29
30
  class EntityClientMixin:
@@ -199,7 +200,8 @@ class EntityClientMixin:
199
200
  :return: httpx.HTTPStatusError if there was an HTTP error and should_raise is False
200
201
  """
201
202
  validation_only = request_options["validation_only"]
202
- async with self.semaphore:
203
+ bulk_semaphore = asyncio.Semaphore(ENTITIES_BULK_UPSERT_CONCURRENCY)
204
+ async with bulk_semaphore:
203
205
  logger.debug(
204
206
  f"{'Validating' if validation_only else 'Upserting'} {len(entities)} of blueprint: {blueprint}"
205
207
  )
@@ -378,7 +380,7 @@ class EntityClientMixin:
378
380
  ):
379
381
  if should_raise:
380
382
  raise bulk_result
381
- # If should_raise is False, retry batch in sequential order as a fallback only for 413 errors
383
+ # If should_raise is False, retry bulk in sequential order as a fallback only for 413 errors
382
384
  if (
383
385
  isinstance(bulk_result, httpx.HTTPStatusError)
384
386
  and bulk_result.response.status_code == 413
@@ -1,4 +1,4 @@
1
- from typing import Any, Callable, Type
1
+ from typing import Any, Type
2
2
 
3
3
  import httpx
4
4
  from loguru import logger
@@ -26,11 +26,10 @@ class OceanAsyncClient(httpx.AsyncClient):
26
26
  def _init_transport( # type: ignore[override]
27
27
  self,
28
28
  transport: httpx.AsyncBaseTransport | None = None,
29
- app: Callable[..., Any] | None = None,
30
29
  **kwargs: Any,
31
30
  ) -> httpx.AsyncBaseTransport:
32
- if transport is not None or app is not None:
33
- return super()._init_transport(transport=transport, app=app, **kwargs)
31
+ if transport is not None:
32
+ return super()._init_transport(transport=transport, **kwargs)
34
33
 
35
34
  return self._transport_class(
36
35
  wrapped_transport=httpx.AsyncHTTPTransport(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: port-ocean
3
- Version: 0.24.11
3
+ Version: 0.24.14
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
@@ -24,10 +24,10 @@ Classifier: Topic :: Utilities
24
24
  Provides-Extra: cli
25
25
  Requires-Dist: aiostream (>=0.5.2,<0.7.0)
26
26
  Requires-Dist: click (>=8.1.3,<9.0.0) ; extra == "cli"
27
- Requires-Dist: confluent-kafka (>=2.8.2,<3.0.0)
27
+ Requires-Dist: confluent-kafka (>=2.10.1,<3.0.0)
28
28
  Requires-Dist: cookiecutter (>=2.1.1,<3.0.0) ; extra == "cli"
29
29
  Requires-Dist: fastapi (>=0.115.3,<0.116.0)
30
- Requires-Dist: httpx (>=0.24.1,<0.28.0)
30
+ Requires-Dist: httpx (>=0.28.1,<0.29.0)
31
31
  Requires-Dist: jinja2-time (>=0.2.0,<0.3.0) ; extra == "cli"
32
32
  Requires-Dist: jq (>=1.8.0,<2.0.0)
33
33
  Requires-Dist: loguru (>=0.7.0,<0.8.0)
@@ -41,8 +41,8 @@ Requires-Dist: pyyaml (>=6.0,<7.0)
41
41
  Requires-Dist: rich (>=13.4.1,<14.0.0) ; extra == "cli"
42
42
  Requires-Dist: six (>=1.16.0,<2.0.0)
43
43
  Requires-Dist: tomli (>=2.0.1,<3.0.0)
44
- Requires-Dist: urllib3 (>=1.26.16,<3.0.0)
45
- Requires-Dist: uvicorn (>=0.22,<0.31)
44
+ Requires-Dist: urllib3 (>=2.5.0,<3.0.0)
45
+ Requires-Dist: uvicorn (>=0.34.3,<0.35.0)
46
46
  Requires-Dist: werkzeug (>=2.3.4,<4.0.0)
47
47
  Project-URL: Repository, https://github.com/port-labs/Port-Ocean
48
48
  Description-Content-Type: text/markdown
@@ -59,7 +59,7 @@ port_ocean/clients/port/authentication.py,sha256=r7r8Ag9WuwXy-CmgeOoj-PHbmJAQxhb
59
59
  port_ocean/clients/port/client.py,sha256=dv0mxIOde6J-wFi1FXXZkoNPVHrZzY7RSMhNkDD9xgA,3566
60
60
  port_ocean/clients/port/mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  port_ocean/clients/port/mixins/blueprints.py,sha256=aMCG4zePsMSMjMLiGrU37h5z5_ElfMzTcTvqvOI5wXY,4683
62
- port_ocean/clients/port/mixins/entities.py,sha256=NSZCV-IAg5_gQ7LxCMzxKJu_LkFkz809CQ2y8dFhHqE,23239
62
+ port_ocean/clients/port/mixins/entities.py,sha256=_FKoSEUxc_fGcdoWm4ZAeUKUnnzkGPMDQEsxmpbj8Vo,23352
63
63
  port_ocean/clients/port/mixins/integrations.py,sha256=s6paomK9bYWW-Tu3y2OIaEGSxsXCHyhapVi4JIhhO64,11162
64
64
  port_ocean/clients/port/mixins/migrations.py,sha256=vdL_A_NNUogvzujyaRLIoZEu5vmKDY2BxTjoGP94YzI,1467
65
65
  port_ocean/clients/port/mixins/organization.py,sha256=A2cP5V49KnjoAXxjmnm_XGth4ftPSU0qURNfnyUyS_Y,1041
@@ -138,7 +138,7 @@ port_ocean/exceptions/port_defaults.py,sha256=2a7Koy541KxMan33mU-gbauUxsumG3NT4i
138
138
  port_ocean/exceptions/utils.py,sha256=gjOqpi-HpY1l4WlMFsGA9yzhxDhajhoGGdDDyGbLnqI,197
139
139
  port_ocean/exceptions/webhook_processor.py,sha256=4SnkVzVwiacH_Ip4qs1hRHa6GanhnojW_TLTdQQtm7Y,363
140
140
  port_ocean/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- port_ocean/helpers/async_client.py,sha256=SRlP6o7_FCSY3UHnRlZdezppePVxxOzZ0z861vE3K40,1783
141
+ port_ocean/helpers/async_client.py,sha256=0MkFY46MuEYkju7gJ8HYeUTMBsjwAzESvATryJy2DaM,1698
142
142
  port_ocean/helpers/metric/metric.py,sha256=Aacz7bOd8ZCwEPpXAdwLbKRXf28Z4wiViG_GXiV_xWg,14529
143
143
  port_ocean/helpers/metric/utils.py,sha256=1lAgrxnZLuR_wUNDyPOPzLrm32b8cDdioob2lvnPQ1A,1619
144
144
  port_ocean/helpers/retry.py,sha256=gmS4YxM6N4fboFp7GSgtOzyBJemxs46bnrz4L4rDS6Y,16136
@@ -200,8 +200,8 @@ port_ocean/utils/repeat.py,sha256=U2OeCkHPWXmRTVoPV-VcJRlQhcYqPWI5NfmPlb1JIbc,32
200
200
  port_ocean/utils/signal.py,sha256=mMVq-1Ab5YpNiqN4PkiyTGlV_G0wkUDMMjTZp5z3pb0,1514
201
201
  port_ocean/utils/time.py,sha256=pufAOH5ZQI7gXvOvJoQXZXZJV-Dqktoj9Qp9eiRwmJ4,1939
202
202
  port_ocean/version.py,sha256=UsuJdvdQlazzKGD3Hd5-U7N69STh8Dq9ggJzQFnu9fU,177
203
- port_ocean-0.24.11.dist-info/LICENSE.md,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
204
- port_ocean-0.24.11.dist-info/METADATA,sha256=5SPsmnSpVV2tiRRGdbP0SeRJZ3SJ2EUiPR_t-4oGupI,6853
205
- port_ocean-0.24.11.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
206
- port_ocean-0.24.11.dist-info/entry_points.txt,sha256=F_DNUmGZU2Kme-8NsWM5LLE8piGMafYZygRYhOVtcjA,54
207
- port_ocean-0.24.11.dist-info/RECORD,,
203
+ port_ocean-0.24.14.dist-info/LICENSE.md,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
204
+ port_ocean-0.24.14.dist-info/METADATA,sha256=BVsTGNvXk57-A3isNjhXmFlg9tb9-vRO56oB-i5wPDM,6856
205
+ port_ocean-0.24.14.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
206
+ port_ocean-0.24.14.dist-info/entry_points.txt,sha256=F_DNUmGZU2Kme-8NsWM5LLE8piGMafYZygRYhOVtcjA,54
207
+ port_ocean-0.24.14.dist-info/RECORD,,