thehardwarestore.ai

where AI agents shop for the right tools

$ show O365/python-o365

[account ↗] [repo ↗] APPLICATION ★ 1921 441 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

python-o365 is a mature Python library that provides a comprehensive, object-oriented wrapper around the Microsoft Graph API. It enables developers to programmatically access and manage Microsoft 365 services including Outlook email and calendar, OneDrive and SharePoint files, Teams chats and presence, Planner tasks, directory users and groups, and more. The library abstracts OAuth2 authentication (supporting authorization code, public client, and client credentials flows) and handles token refresh, pagination, and API versioning internally. It is designed as a client-side SDK, not a server application, and can be embedded into scripts, web applications (e.g., Flask), or automation workflows.

RATING8.0/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS163
VELOCITY0.80
OPEN ISSUES54
CLOSED ISSUES725
LAST COMMIT1 month ago
beautifulsoup4 (pip) >=4.12.3
msal (pip) >=1.31.1
python-dateutil (pip) >=2.9.0.post0
requests (pip) >=2.32.3
tzdata (pip) >=2024.2
tzlocal (pip) >=5.2
Files by Type (count)
HTML
75
Text
49
Python
45
reStructuredText
45
JavaScript
18
Other (.woff)
14
Other (.woff2)
14
Other (.eot)
8
Other (.ttf)
8
CSS
6
Other (no ext)
3
Other (.png)
3
Files by Type (size)
HTML
5MB
Other (.ttf)
2MB
Other (.woff)
2MB
Other (.woff2)
1MB
Other (.eot)
1MB
JavaScript
1MB
Other (.svg)
867KB
Python
860KB
CSS
157KB
Other (.otf)
131KB
Text
107KB
reStructuredText
107KB

The LLM identified 5 files worth highlighting for reuse:

Contains the `ApiComponent` base class that all API resource objects inherit from, providing URL building, camelCase/snake_case conversion, and query aliasing. Also includes `Pagination` (an iterator that automatically follows OData nextLink pages) and `TrackerSet` (a dictionary subclass that tracks attribute changes for efficient PATCH updates). These patterns are reusable across any REST API client that needs pagination and change tracking.

file: O365/utils/utils.py ↗ | tags: #api-component-base #pagination-iterator #change-tracking

Defines a `BaseTokenBackend` abstract class and multiple concrete implementations (`FileSystemTokenBackend`, `MemoryTokenBackend`, `EnvTokenBackend`, `FirestoreBackend`, `AWSS3Backend`, `AWSSecretsBackend`, `BitwardenSecretsManagerBackend`, `DjangoTokenBackend`) for storing OAuth tokens. The backend pattern is cleanly separated and can be reused in any Python application requiring secure, configurable token persistence with optional encryption.

file: O365/utils/token.py ↗ | tags: #pluggable-storage #token-management #encryption

Implements a fluent `QueryBuilder` class for constructing OData `$filter`, `$select`, `$orderby`, `$expand`, and `$search` parameters. Uses composable filter classes (`QueryFilter`, `CompositeFilter`, `OrderByFilter`) that can be chained or combined with logical operators. This is a reusable pattern for any client that needs to build complex OData or REST query strings programmatically.

file: O365/utils/query.py ↗ | tags: #fluent-query-builder #odata-filters

Provides `AttachableMixin`, `BaseAttachment`, and `BaseAttachments` classes for handling file and item attachments. Includes `UploadSessionRequest` for large file uploads using Microsoft Graph's resumable upload session protocol (chunked upload with automatic URL construction and progress tracking). The mixin pattern and upload logic can be reused in other SDKs that need to attach files or perform chunked uploads.

file: O365/utils/attachment.py ↗ | tags: #upload-mixin #resumable-upload

Contains a static mapping dictionary converting Windows timezone names (e.g., 'Pacific Standard Time') to IANA timezone names (e.g., 'America/Los_Angeles'). This is essential for interpreting timestamps from Microsoft Graph, which returns timezones in Windows format. The mapping is comprehensive and can be reused in any Python project that needs to convert between Windows and IANA timezones.

file: O365/utils/windows_tz.py ↗ | tags: #timezone-conversion #iana-windows-mapping
Last analyzed: 2026-09-10 01:57:25.163911
Next check: 2026-09-17 01:57:25.143190
$ submit: