Enhancements
* **User custom attributes** 💫 : We're glad to announce that we now support adding custom attributes to the user object! The default user object is great, but sometimes you want to keep a bit more information on it for your app's needs.
* Creation of the attributes are done from the [Descope Console](https://app.descope.com/), and you can find them in the user object under the `custom_attributes` property. Option to set, update and delete the values are also available from the SDK.
* **Add a Login ID to the user upon update**: When updating a user's phone or email (via OTP / Magic Link / Enchanted Link), you can decide if to make that new value part of the user's Login IDs so that they can later on authenticate with them.
There can be times where an existing user with the new identifier already exists in your user database - so a merging strategy needs to be defined as well.
All of this can be done using the `add_to_login_ids` parameter.
* **Import and export of Flows and Themes**: If you want to export or import flows and themes from one project to another - you can do so now with supporting commands, such as `export_flow`. Examples can be found in the SDK's README.
* **Get tenant SSO configuration**: Using the `get_settings` function, you can now fetch a specific tenant's SSO configuration. Example on how to do so in the repo's README, under the ['Manage SSO Settings' section](https://github.com/descope/python-sdk#manage-sso-setting).
* **User attribute updates**: You can now update the user's picture using the new user `update_picture` command, and user custom attributes using the `update_custom_attribute` command.
* **Timeouts for request**: We added configurable timeouts to our request. Default is set by the `DEFAULT_TIMEOUT_SECONDS` property and is set to 60 seconds. (tebeka)
Bug fixes
* **Test user functions**: Deleting and authenticating test users didn't work in some cases as they were using the wrong methods. We fixed it and now it should work smoothly.