port-ocean 0.24.21__tar.gz → 0.25.0__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.24.21 → port_ocean-0.25.0}/PKG-INFO +1 -1
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/config/dynamic.py +27 -2
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/mixins/sync_raw.py +307 -117
- port_ocean-0.25.0/port_ocean/tests/config/test_config.py +38 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/pyproject.toml +1 -1
- {port_ocean-0.24.21 → port_ocean-0.25.0}/LICENSE.md +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/README.md +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/Dockerfile.Deb +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/Dockerfile.alpine +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/Dockerfile.base.builder +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/Dockerfile.base.runner +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/Dockerfile.dockerignore +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/Dockerfile.local +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/Makefile +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/entry_local.sh +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/grpcio.sh +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/integrations/_infra/init.sh +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cache/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cache/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cache/disk.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cache/errors.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cache/memory.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/auth/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/auth/auth_client.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/auth/oauth_client.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/mixins/organization.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/config/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/context/event.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/context/metric_resource.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/event_listener/webhooks_only.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/queue/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/queue/abstract_queue.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/queue/local_queue.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/webhook/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/webhook/abstract_webhook_processor.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/webhook/processor_manager.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/handlers/webhook/webhook_event.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/mixins/live_events.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/models.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/utils/entity_topological_sorter.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/core/utils/utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/debug_cli.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/exceptions/webhook_processor.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/helpers/metric/metric.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/helpers/metric/utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/ocean.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/py.typed +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/run.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/cache/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/cache/test_disk_cache.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/cache/test_memory_cache.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/clients/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/clients/oauth/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/clients/oauth/test_oauth_client.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/clients/port/mixins/test_integrations.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/clients/port/mixins/test_organization_mixin.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/conftest.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/conftest.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/defaults/test_common.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/entities_state_applier/test_applier.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/mixins/test_live_events.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/port_app_config/test_api.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/port_app_config/test_base.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/queue/test_local_queue.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/webhook/test_abstract_webhook_processor.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/webhook/test_processor_manager.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/test_utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/utils/test_entity_topological_sorter.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/core/utils/test_resolve_entities_diff.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/helpers/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/helpers/fake_port_api.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/helpers/fixtures.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/helpers/integration.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/helpers/ocean_app.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/helpers/port_client.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/helpers/smoke_test.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/log/test_handlers.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/test_metric.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/test_ocean.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/test_smoke.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/utils/test_async_iterators.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/tests/utils/test_cache.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/ipc.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.24.21 → port_ocean-0.25.0}/port_ocean/version.py +0 -0
@@ -2,12 +2,37 @@ import json
|
|
2
2
|
from typing import Type, Any, Optional
|
3
3
|
|
4
4
|
from humps import decamelize
|
5
|
-
from pydantic import
|
5
|
+
from pydantic import (
|
6
|
+
BaseConfig,
|
7
|
+
BaseModel,
|
8
|
+
AnyUrl,
|
9
|
+
create_model,
|
10
|
+
Extra,
|
11
|
+
parse_obj_as,
|
12
|
+
validator,
|
13
|
+
)
|
6
14
|
from pydantic.fields import ModelField, Field
|
7
15
|
|
8
16
|
from port_ocean.config.base import BaseOceanModel
|
9
17
|
|
10
18
|
|
19
|
+
class NoTrailingSlashUrl(AnyUrl):
|
20
|
+
@classmethod
|
21
|
+
def validate(cls, value: Any, field: ModelField, config: BaseConfig) -> "AnyUrl":
|
22
|
+
if value is not None:
|
23
|
+
if isinstance(value, (bytes, bytearray)):
|
24
|
+
try:
|
25
|
+
value = value.decode()
|
26
|
+
except UnicodeDecodeError as exc:
|
27
|
+
raise ValueError("URL bytes must be valid UTF-8") from exc
|
28
|
+
else:
|
29
|
+
value = str(value)
|
30
|
+
|
31
|
+
if value != "/":
|
32
|
+
value = value.rstrip("/")
|
33
|
+
return super().validate(value, field, config)
|
34
|
+
|
35
|
+
|
11
36
|
class Configuration(BaseModel, extra=Extra.allow):
|
12
37
|
name: str
|
13
38
|
type: str
|
@@ -39,7 +64,7 @@ def default_config_factory(configurations: Any) -> Type[BaseModel]:
|
|
39
64
|
case "object":
|
40
65
|
field_type = dict
|
41
66
|
case "url":
|
42
|
-
field_type =
|
67
|
+
field_type = NoTrailingSlashUrl
|
43
68
|
case "string":
|
44
69
|
field_type = str
|
45
70
|
case "integer":
|