This SDK is a rebranded and updated version of the SDK that was previously published under the Ingenico name. Next to renaming to Worldline, the SDK has been restructured to better support future improvements like multiple API versions and different authentication mechanisms. You can use the [migration guide](https://github.com/Worldline-Global-Collect/connect-sdk-python2/blob/master/documentation/Migration%20Guide%20v3%20to%20v4.md) to upgrade from the previous version. Previous versions and release notes of this SDK can be found [here](https://github.com/Ingenico-ePayments/connect-sdk-python2).
The following is an overview of changes:
* Added:
* Added optional `MetadataProvider`, `Connection`, `Authenticator` and `Marshaller` parameters to methods `create_communicator_from_configuration`, `create_communicator_from_file`, `create_client_from_configuration` and `create_client_from_file` of class `Factory`.
* Added an optional `marshaller` parameter to method `create_helper` of class `V1WebhooksFactory` (previously class `Webhooks`).
* Changed:
* Renamed all packages, and moved classes between packages. Each API version now has its own package structure that contains all classes specific for that version, including classes like `APIError`, exceptions and webhooks classes.
* Made the integrator required.
* Moved method `merchant` from class `Client` to new class `V1Client`. Instances of this class are available through method `v1` of class `Client`.
* Moved method `create_helper` from class `Webhooks` to new class `V1WebhooksFactory`. Instances of this class are available through method `v1` of class `Webhooks`.
* Replaced properties `api_key_id` and `secret_api_key` of class `CommunicatorConfiguration` with more generic properties `authorization_id` and `authorization_secret`. The existing properties and constructor parameter names remain as aliases though.
* Replaced parameters `api_key_id` and `secret_api_key` of methods of class `Factory` with more generic parameters `authorization_id` and `authorization_secret`.
* Renamed class `GlobalCollectException` to `PlatformException`.
* Renamed method `create_simple_authentication_signature` of class `Authenticator` to `get_authorization`.
* Renamed class `DefaultAuthenticator` to `V1HMACAuthenticator`.
* Renamed class `MetaDataProvider` and its `meta_data_headers` property to `MetadataProvider` and `metadata_headers` respectively.
* Renamed method `INSTANCE` of classes `DefaultMarshaller`, `SysOutCommunicatorLogger` and `InMemorySecretKeyStore` to `instance`.
* Class `Connection` now extends class `ObfuscationCapable`.
* Integrated class `Session` into class `Communicator`.
* Abstract classes and methods are now marked as such. It is an error to not implement abstract methods.
* Made methods `_get_header_date_string` and `_update_context` of class `Communicator` static.
* Made method `to_canonicalize_header_value` of class `V1HMACAuthenticator` static.
* Made method `empty_if_none` of class `LogMessage` static.
* Changed the arguments of the `ApiResource`, `SecretKeyNotAvailableException` and `SignatureValidationException` constructors to named arguments, to make it clear what each argument means. `ApiResource`'s communicator/parent parameter, which was combined before, has also been split into separate parameters.
* Classes that didn't before now also extend `object`, turning them into new-style classes.
* Removed:
* Removed method `API_VERSION` of class `Client`.
* Removed method `_create_exception` of class `ApiResource` in favor of separate `create_exception` functions per API version.
* Removed class `Session`.
* Removed methods `create_session_from_configuration`, `create_session_from_file`, `create_communicator_from_session` and `create_client_from_session` of class `Factory`.
* Removed parameter `authorization_type` from the `V1HMACAuthenticator` constructor, as its value should always be `v1HMAC`.
* Removed method `_validate` of class `WebhooksHelper`.
* Removed class `EndpointConfiguration`. Its properties have been merged into its only sub class `CommunicatorConfiguration`.
* Removed previously deprecated class `LoggingUtil`.
* Removed previously deprecated method `are_equal_signatures` of class `WebhooksHelper`.
* Removed class `WebhooksHelperBuilder` and method `Webhooks.create_helper_builder`.