Almost every release features a lot of bugfixes but those are not listed here.
- Added 'on_premises_sam_account_name' to directory.py (Thanks @danpoltawski)
- TokenBackend: Added DjangoTokenBackend (Thanks @sdelgadoc)
- TokenBackend: Added BitwardenSecretsManagerBackend (Thanks @wnagele)
Removed dependency: stringcase Upgraded requirement requests-oauthlib Added classifier python 3.12
###Features:
- Tasks: Exposed status property (Thanks @RogerSelwyn)
- Tasks: Added bucket_id to allowed update-attributes of Task (Thanks @dekiesel)
- Drive: Added "hashes" attribute to File (Thanks @Chrisrdouglas)
- Drive: get_item_by_path now prepends a slash if it's missing (Thanks @dekiesel)
- Excel: Added "only_values" to "get_used_range" method (Thanks @zstrathe)
- Query: Added negate to iterables inside Query
- Protocol: Added 'Europe/Kyiv' as valid Iana timezone (Thanks @jackill88)
- Message: Added ability to add custom headers (Thanks @ted-mey)
###Features:
- Calendar: Added weblink property (Thanks @Invincibear)
###Features:
- Connection: Add support for multiple Prefer headers in Connection class (Thanks @Invincibear)
- MailBox: Added timezone & workinghours to MailboxSettings class (Thanks @sdelgadoc)
###Features:
- Connection: Allow default headers to be set for GET request (see #1021)
- Teams: Add ability to set user presence status and get another users presence status (Thanks @RogerSelwyn)
###Features:
- AddressBook: Added fileAs attribute (Thanks @LarsK1)
- Fixed critical bug in 2.0.30 release
###Features:
- Dropped support for python <3.9 because of the need to use zoneinfo (dropped pytz). If you need support for older versions use version 2.0.28.
###Features:
- Calendar: no forwarding events (Thanks @Gregorek85)
- Account: removed pytz (Thanks @ponquersohn)
###Features:
- Bug fixing release
###Features:
- Added hex_color to Calendar (Thanks @Invincibear)
- Add support for filter by due datetime in Tasks (Thanks @RogerSelwyn)
- Adding option to set file created and last modified time while uploading in drive (Thanks @yeyeric)
- Add access to singleValueExtendedProperties in Message (Thanks @svmcaro)
###Features:
- Connection now allows setting default headers (Thanks @yeyeric)
- Now it's possible to request inmutable Ids to the MS Graph protocol (Thanks @yeyeric and @NielsDebrier)
- Added more Well Known Folder Names (Thanks @ponquersohn)
###Features:
- Added get and set of mailbox settings (Thanks @RogerSelwyn)
###Features:
- Added externalAudience to automatic replies (Thanks @RogerSelwyn)
###Features:
- Bug fixing release
###Features:
- NEW: Added Tasks for MS GRAPH Protocol(Thanks @RogerSelwyn)
- NEW: Mailbox can now set auto reply (Thanks @lodesmets)
- Planner: Added pagination to Plan.list_tasks (Thanks @hcallen)
###Features:
- Bug fixing release
- Teams: added pagination to
get_all_chats
(Thanks @jhoult). - Message: added access to inferenceClassification in msg object (Thanks @BlueSideStrongSide).
- Connection: added proxy_http_only flag (Thanks @senor-vu).
- Connection: added ROPC authentication flow (Thanks @pierfrancesto).
- Connection: added new
EnvTokenBackend
(Thanks @pierfrancesto).
- Drive: added password and expiration date to share_with_link method (Thanks @MagestryMark).
- Drive: support uploading large attachments from memory (Thanks @sebastiant).
- Directory: added new methods:
get_user_manager
andget_user_direct_reports
(Thanks @dionm). - Groups: Improvements to
Group
class (Thanks @Krukosz).
- Updated requirements to use tzlocal >=4.0
- Groups: Added groups.py with some read functionality in Office 365 Groups. Thanks @Krukosz*
- Teams Chats and Chat Messages: Added to teams.py. Thanks @hcallen.
- Calendar: Added 'cancel_event' method
- Message: attachment existance is checked lazily
- Mailbox: upload attachments bigger than 4MB using MS Graph Protocol
- Account: added dynamic consent process using functions
- Drive: allow pulling DriveItems external to tenant
- Sharepoint: added support for list item fields
- Tasks: added Task.importance and Task.is_starred
- NEW: added MS Teams Presence class
- Bug fixing release
- NEW: added MS Office 365 Tasks (only available using Office365 protocol)
- Connection: init now accepts params for the default FileSystemToken
- Token: added AWS token backend
- Drive: added streamable upload and download
- Drive: added conflict handling flag on uploads (only simple uploads < 4MB)
- Connection: added
verify_ssl
flag - Calendar: added online meeting methods to change providers (teams, etc.)
- Account: added public client auth flow
- Directory: added query params to retrieve users
- Calendar: now adapted to teams online meetings
- Contact: added personal notes
- Bug fixing release
- NEW: MS Teams available
- Drive: new method "get_drive" in DriveItems
- Connection: now allows to pass a custom Json Encoder ("json_encoder" param).
- Added WorkBookApplication on excel.py that can run manual calculations on workbooks.
- NEW: Outlook Categories. Modified Message, Event and Contact to accept Category instances
- TokenBackends: Implementation of 'should_refresh_token' for environments where multiple account instances are racing against each other to refresh the token. The BaseTokenBackend 'get_token' is now a default and it's not intended to be subclassed. Instead a new 'load_token' is defined to be subclassed.
- User: Profile photo implemented
- Contact: Profile photo implemented
- Drive: can set a custom name when using 'upload_file'
- Utils: updated timezones
- NEW: Directory and User objects
- Removed the GAL from address_book.py. Now the users are queried from the Directory object
- Account: Added 'directory' and 'get_current_user' methods
- Message: Constructor now loads present attachments
- Connection: When using the credentials auth_flow_type the tenant_id is now required
- Message: added 'unique_body' property
- Calendar: added 'get_schedule' (get_availability)
- Message: You can now save Messages and attached messages as EML files.
- The library now features two different authentication flows:
- 'authorization': Authenticate on behalf of a user
- 'credentials': Authenticate with your own identity (the app)
- Drive: Added Drive.get_item_by_path(item_path)
- Drive: Now get_drives accepts limit, batch order_by and query parameters
- Mailbox: Now get_message allows to specify an object_id and expands or selects as well
- Account: scopes param on account.authenticate are now optional
- Sharepoint: some enhancements
- Bug fixing release
- It is now posible to authenticate from a web environment with the changes on Connection.
- Attachment: Added attribute size to attachments
- Attachment: You can now add in memory files to attachments. Pass a tuple (BytesIO instance, 'file name.png')
- Account: the resource ME_RESOURCE is now the default
- Message: Added new method 'mark_as_unread' to mark the message as unread.
- Message: Added Body Preview
- Query: Added Precedence Grouping
- Query: Now it's possible to pass attribute=None to the iterable method so you can iterate on the object itself. See #271
- Connection: If timezone is unkknown default to UTC
- Connection: self.naive_session is now lazy loaded
- OutlookWellKnowFolderNames: Added ARCHIVE
- Optimized library startup time by moving imports into methods
- Calendar: Included start/end check on get_events
- Attachments: Allow inline attachments
- Scope Helpers updated
- Bug fixing release
- Excel: Added Excel capabilities to Drive Files
- When returning a potentially big list of instances, the library now returns a generator instead a list
- Message: Added Headers, internet message id and weblink
- Query: Added search capabilities
- Sharepoint: Ability to create, and edit listitems in sharepoint
- New default oauth redirect url
- Message now recognizes EventMessages: an EventMessage can retrieve the related Event
- Added isReadReceiptRequested and isDeliveryReceiptRequested to Messag
- Message can now handle flags
- ApiComponent now stores the logic to convert to/from dateTimeTimeZone resource
- Connection: add tenant_id parameter
- Mailbox: Folder allows to get a message by id ('get_message').
- Message: constructor now accepts a object_id parameter
- Message: new method 'save_message' now allows to save draft-independent properties of a message: is_read and categories for the moment.
- Added Token Backends: Now tokens can be stored anywhere with a concise api
- TokenBackends available: FileSystemTokenBackend and FirestoreTokenBackend
- Token dict: tokens expose new properties like: "expiration_datetime", "is_expired" and "is_long_lived"
- Account: New property "account.is_authenticated": Checks if the token exists and if it is expired
- Connection: The "refresh_token" method now detects if the token can indeed be refreshed.
- Bug fixing release
- Calendar:
get_events
method now includes a new param 'include_recurring' to include all recurring events. Internally will request a calendarView if 'include_recurring' is True (this is the default behaviour).
- Connection: HttpErrors now include the json error Message the server respond with
- Sharepoint: added new features
- Planner capabilites (Tasks)
- Event: Added method 'get_occurrences' to retrieve the recurring events of a seriesMaster event type.
- Contact: now tracks it's inner state
- ContactFolders: New method get_contact_by_email on ContactFolders
- Sharepoint capabilities
Library updated from the previous implementation. Merged from pyo365. Merge pull request #135 from O365/rewrite