Exchangelib

Latest version: v5.5.0

Safety actively analyzes 683530 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 15

3.2.1

-----

- Fix bug leading to an exception in `CalendarItem.cancel()`.
- Improve stability of `.order_by()` in edge cases where sorting must be done client-side.
- Allow increasing the session pool-size dynamically.
- Change semantics of `.filter(foo__in=[])` to return an empty result. This was previously undefined behavior. Now we
adopt the behaviour of Django in this case. This is still undefined behavior for list-type fields.
- Moved documentation to GitHub Pages and auto-documentation generated by `pdoc3`.

3.2.0

-----

- Remove use of `ThreadPool` objects. Threads were used to implement async HTTP requests, but were creating massive
memory leaks. Async requests should be reimplemented using a real async HTTP request package, so this is just an
emergency fix. This also lowers the default
`Protocol.SESSION_POOLSIZE` to 1 because no internal code is running multi-threaded anymore.
- All-day calendar items (created as `CalendarItem(is_all_day=True, ...)`) now accept `EWSDate`
instances for the `start` and `end` values. Similarly, all-day calendar items fetched from the server now
return `start` and `end` values as `EWSDate` instances. In this case, start and end values are inclusive; a one-day
event starts and ends on the same `EWSDate` value.
- Add support for `RecurringMasterItemId` and `OccurrenceItemId` elements that allow to request the master recurrence
from a `CalendarItem` occurrence, and to request a specific occurrence from a `CalendarItem` master
recurrence. `CalendarItem.master_recurrence()` and
`CalendarItem.occurrence(some_occurrence_index)` methods were added to aid this traversal.
`some_occurrence_index` in the last method specifies which item in the list of occurrences to
target; `CalendarItem.occurrence(3)` gets the third occurrence in the recurrence.
- Change `Contact.birthday` and `Contact.wedding_anniversary` from `EWSDateTime` to `EWSDate`
fields. EWS still expects and sends datetime values but has started to reset the time part to 11:59. Dates are a
better match for these two fields anyway.
- Remove support for `len(some_queryset)`. It had the nasty side-effect of forcing
`list(some_queryset)` to run the query twice, once for pre-allocating the list via the result of `len(some_queryset)`,
and then once more to fetch the results. All occurrences of
`len(some_queryset)` can be replaced with `some_queryset.count()`. Unfortunately, there is no way to keep
backwards-compatibility for this feature.
- Added `Account.identity`, an attribute to contain extra information for impersonation. Setting
`Account.identity.upn` or `Account.identity.sid` removes the need for an AD lookup on every request.
`upn` will often be the same as `primary_smtp_address`, but it is not guaranteed. If you have access to your
organization's AD servers, you can look up these values once and add them to your
`Account` object to improve performance of the following requests.
- Added support for CBA authentication

3.1.1

-----

- The `max_wait` argument to `FaultTolerance` changed semantics. Previously, it triggered when the delay until the next
attempt would exceed this value. It now triggers after the given timespan since the *first* request attempt.
- Fixed a bug when pagination is combined with `max_items` (710)
- Other minor bug fixes

3.1.0

-----

- Removed the legacy autodiscover implementation.
- Added `QuerySet.depth()` to configure item traversal of querysets. Default is `Shallow` except for the `CommonViews`
folder where default is `Associated`.
- Updating credentials on `Account.protocol` after getting an `UnauthorizedError` now works.

3.0.0

-----

- The new Autodiscover implementation added in 2.2.0 is now default. To switch back to the old implementation, set the
environment variable `EXCHANGELIB_AUTODISCOVER_VERSION=legacy`.
- Removed support for Python 2

2.2.0

-----

- Added support for specifying a separate retry policy for the autodiscover service endpoint selection. Set via
the `exchangelib.autodiscover.legacy.INITIAL_RETRY_POLICY` module variable for the the old autodiscover
implementation, and via the
`exchangelib.autodiscover.Autodiscovery.INITIAL_RETRY_POLICY` class variable for the new one.
- Support the authorization code OAuth 2.0 grant type (see issue 698)
- Removed the `RootOfHierarchy.permission_set` field. It was causing too many failures in the wild.
- The full autodiscover response containing all contents of the reponse is now available as `Account.ad_response`.
- Added a new Autodiscover implementation that is closer to the specification and easier to debug. To switch to the new
implementation, set the environment variable `EXCHANGELIB_AUTODISCOVER_VERSION=new`. The old one is still the default
if the variable is not set, or set to `EXCHANGELIB_AUTODISCOVER_VERSION=legacy`.
- The `Item.mime_content` field was switched back from a string type to a `bytes` type. It turns out trying to decode
the data was an error (see issue 709).

Page 7 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.