Exchangelib

Latest version: v5.4.0

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

Scan your dependencies

Page 6 of 14

3.3.1

-----

- Allow overriding `dns.resolver.Resolver` class attributes via `Autodiscovery.DNS_RESOLVER_ATTRS`.

3.3.0

-----

- Switch `EWSTimeZone` to be implemented on top of the new `zoneinfo` module in Python 3.9 instead of `pytz`
. `backports.zoneinfo` is used for earlier versions of Python. This means that the
`ÈWSTimeZone` methods `timezone()`, `normalize()` and `localize()` methods are now deprecated.
- Add `EWSTimeZone.from_dateutil()` to support converting `dateutil.tz` timezones to `EWSTimeZone`.
- Dropped support for Python 3.5 which is EOL per September 2020.
- Added support for `CalendaItem.appointment_state`, `CalendaItem.conflicting_meetings` and
`CalendarItem.adjacent_meetings` fields.
- Added support for the `Message.reminder_message_data` field.
- Added support for `Contact.manager_mailbox`, `Contact.direct_reports` and `Contact.complete_name` fields.
- Added support for `Item.response_objects` field.
- Changed `Task.due_date` and `Tas.start_date` fields from datetime to date fields, since the time was being truncated
anyway by the server.
- Added support for `Task.recurrence` field.
- Added read-only support for `Contact.user_smime_certificate` and `Contact.ms_exchange_certificate`. This means that
all fields on all item types are now supported.

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.

Page 6 of 14

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.