port-ocean 0.28.16__tar.gz → 0.28.18__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.28.16 → port_ocean-0.28.18}/PKG-INFO +1 -1
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/mixins/utils.py +19 -16
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/helpers/retry.py +8 -2
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/log/logger_setup.py +2 -2
- port_ocean-0.28.18/port_ocean/tests/helpers/test_retry.py +931 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/pyproject.toml +1 -1
- port_ocean-0.28.16/port_ocean/tests/helpers/test_retry.py +0 -309
- {port_ocean-0.28.16 → port_ocean-0.28.18}/LICENSE.md +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/README.md +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/Dockerfile.Deb +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/Dockerfile.alpine +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/Dockerfile.base.builder +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/Dockerfile.base.runner +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/Dockerfile.dockerignore +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/Dockerfile.local +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/Makefile +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/README.md +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/entry_local.sh +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/grpcio.sh +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/integrations/_infra/init.sh +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cache/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cache/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cache/disk.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cache/errors.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cache/memory.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/auth/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/auth/auth_client.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/auth/oauth_client.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/mixins/organization.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/config/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/context/event.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/context/metric_resource.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/event_listener/webhooks_only.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/entity_processor/jq_input_evaluator.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/queue/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/queue/abstract_queue.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/queue/group_queue.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/queue/local_queue.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/webhook/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/webhook/abstract_webhook_processor.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/webhook/processor_manager.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/handlers/webhook/webhook_event.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/mixins/live_events.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/models.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/utils/entity_topological_sorter.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/core/utils/utils.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/debug_cli.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/exceptions/webhook_processor.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/helpers/metric/metric.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/helpers/metric/utils.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/helpers/stream.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/ocean.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/py.typed +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/run.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/cache/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/cache/test_disk_cache.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/cache/test_memory_cache.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/clients/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/clients/oauth/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/clients/oauth/test_oauth_client.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/clients/port/mixins/test_integrations.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/clients/port/mixins/test_organization_mixin.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/config/test_config.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/conftest.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/conftest.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/defaults/test_common.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/event_listener/test_kafka.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/entities_state_applier/test_applier.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/entity_processor/test_jq_input_evaluator.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/mixins/test_live_events.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/port_app_config/test_api.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/port_app_config/test_base.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/queue/test_group_queue.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/queue/test_local_queue.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/webhook/test_abstract_webhook_processor.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/webhook/test_processor_manager.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/test_utils.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/utils/test_entity_topological_sorter.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/utils/test_get_port_diff.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/core/utils/test_resolve_entities_diff.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/helpers/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/helpers/fake_port_api.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/helpers/fixtures.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/helpers/integration.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/helpers/ocean_app.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/helpers/port_client.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/helpers/smoke_test.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/log/test_handlers.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/test_metric.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/test_ocean.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/test_smoke.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/utils/test_async_iterators.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/tests/utils/test_cache.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/ipc.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.28.16 → port_ocean-0.28.18}/port_ocean/version.py +0 -0
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
from contextlib import contextmanager
|
|
2
|
-
from typing import Awaitable, Generator, Callable, cast
|
|
3
|
-
|
|
4
|
-
from loguru import logger
|
|
5
1
|
import asyncio
|
|
2
|
+
import json
|
|
6
3
|
import multiprocessing
|
|
4
|
+
import os
|
|
7
5
|
import re
|
|
8
|
-
import
|
|
6
|
+
import shutil
|
|
7
|
+
import stat
|
|
8
|
+
import subprocess
|
|
9
|
+
import tempfile
|
|
10
|
+
from contextlib import contextmanager
|
|
11
|
+
from typing import Any, AsyncGenerator, Awaitable, Callable, Generator, cast
|
|
12
|
+
|
|
13
|
+
import ijson
|
|
14
|
+
from loguru import logger
|
|
15
|
+
|
|
16
|
+
from port_ocean.clients.port.utils import _http_client as _port_http_client
|
|
17
|
+
from port_ocean.context.ocean import ocean
|
|
9
18
|
from port_ocean.core.handlers.entity_processor.jq_entity_processor import JQEntityProcessor
|
|
10
19
|
from port_ocean.core.ocean_types import (
|
|
11
20
|
ASYNC_GENERATOR_RESYNC_TYPE,
|
|
@@ -19,16 +28,8 @@ from port_ocean.exceptions.core import (
|
|
|
19
28
|
OceanAbortException,
|
|
20
29
|
KindNotImplementedException,
|
|
21
30
|
)
|
|
22
|
-
import os
|
|
23
|
-
from port_ocean.utils.async_http import _http_client
|
|
24
|
-
from port_ocean.clients.port.utils import _http_client as _port_http_client
|
|
25
31
|
from port_ocean.helpers.metric.metric import MetricType, MetricPhase
|
|
26
|
-
from port_ocean.
|
|
27
|
-
import subprocess
|
|
28
|
-
import tempfile
|
|
29
|
-
import stat
|
|
30
|
-
import ijson
|
|
31
|
-
from typing import Any, AsyncGenerator
|
|
32
|
+
from port_ocean.utils.async_http import _http_client
|
|
32
33
|
|
|
33
34
|
def _process_path_type_items(
|
|
34
35
|
result: RAW_RESULT, items_to_parse: str | None = None
|
|
@@ -216,7 +217,9 @@ async def get_items_to_parse_bulks(raw_data: dict[Any, Any], data_path: str, ite
|
|
|
216
217
|
| map({{{items_to_parse_name}: ., {base_jq_object_string}}})"""
|
|
217
218
|
|
|
218
219
|
# Use subprocess with list arguments instead of shell=True
|
|
219
|
-
|
|
220
|
+
|
|
221
|
+
jq_path = shutil.which("jq") or "/bin/jq"
|
|
222
|
+
jq_args = [jq_path, jq_expression, data_path]
|
|
220
223
|
|
|
221
224
|
with open(temp_output_path, "w") as output_file:
|
|
222
225
|
result = subprocess.run(
|
|
@@ -271,7 +274,7 @@ def get_events_as_a_stream(
|
|
|
271
274
|
max_buffer_size_mb: int = 1
|
|
272
275
|
) -> Generator[list[dict[str, Any]], None, None]:
|
|
273
276
|
events = ijson.sendable_list()
|
|
274
|
-
coro = ijson.items_coro(events, target_items)
|
|
277
|
+
coro = ijson.items_coro(events, target_items, use_float=True)
|
|
275
278
|
|
|
276
279
|
# Convert MB to bytes for the buffer size
|
|
277
280
|
buffer_size = max_buffer_size_mb * 1024 * 1024
|
|
@@ -359,8 +359,11 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
|
|
|
359
359
|
else:
|
|
360
360
|
# If no Content-Length header, try to get actual content size
|
|
361
361
|
try:
|
|
362
|
-
|
|
362
|
+
content = await response.aread()
|
|
363
|
+
actual_size = len(content)
|
|
363
364
|
size_info = actual_size
|
|
365
|
+
# Restore the cached body so downstream code can still use .json()/.text/.content
|
|
366
|
+
response._content = content # httpx convention
|
|
364
367
|
except Exception as e:
|
|
365
368
|
cast(logging.Logger, self._logger).error(
|
|
366
369
|
f"Error getting response size: {e}"
|
|
@@ -383,8 +386,11 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
|
|
|
383
386
|
else:
|
|
384
387
|
# If no Content-Length header, try to get actual content size
|
|
385
388
|
try:
|
|
386
|
-
|
|
389
|
+
content = response.read()
|
|
390
|
+
actual_size = len(content)
|
|
387
391
|
size_info = actual_size
|
|
392
|
+
# Restore the cached body so downstream code can still use .json()/.text/.content
|
|
393
|
+
response._content = content # httpx convention
|
|
388
394
|
except Exception as e:
|
|
389
395
|
cast(logging.Logger, self._logger).error(
|
|
390
396
|
f"Error getting response size: {e}"
|
|
@@ -61,9 +61,9 @@ def _http_loguru_handler(level: LogLevelType) -> None:
|
|
|
61
61
|
|
|
62
62
|
http_memory_handler = HTTPMemoryHandler()
|
|
63
63
|
signal_handler.register(
|
|
64
|
-
http_memory_handler.wait_for_lingering_threads, priority=-
|
|
64
|
+
http_memory_handler.wait_for_lingering_threads, priority=-900
|
|
65
65
|
)
|
|
66
|
-
signal_handler.register(http_memory_handler.flush, priority=-
|
|
66
|
+
signal_handler.register(http_memory_handler.flush, priority=-899)
|
|
67
67
|
|
|
68
68
|
queue_listener = QueueListener(queue, http_memory_handler)
|
|
69
69
|
queue_listener.start()
|