Exchange Web Services client library v3.2.0 Release Notes
Release Date: 2020-05-11 // almost 4 years ago-
- ๐ 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 defaultProtocol.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 acceptEWSDate
instances for thestart
andend
values. Similarly, all-day calendar items fetched from the server now returnstart
andend
values asEWSDate
instances. In this case, start and end values are inclusive; a one-day event starts and ends on the sameEWSDate
value. - ๐ Add support for
RecurringMasterItemId
andOccurrenceItemId
elements that allow to request the master recurrence from aCalendarItem
occurrence, and to request a specific occurrence from aCalendarItem
master recurrence.CalendarItem.master_recurrence()
andCalendarItem.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
andContact.wedding_anniversary
fromEWSDateTime
toEWSDate
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 forcinglist(some_queryset)
to run the query twice, once for pre-allocating the list via the result oflen(some_queryset)
, and then once more to fetch the results. All occurrences oflen(some_queryset)
can be replaced withsome_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. SettingAccount.identity.upn
orAccount.identity.sid
removes the need for an AD lookup on every request.upn
will often be the same asprimary_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 yourAccount
object to improve performance of the following requests. - ๐ Added support for CBA authentication
- ๐ Remove use of