[WIP] Add async support (PoC) with shared operation builders#119
Draft
scottanderson-smartsheet wants to merge 2 commits intosmartsheet:mainlinefrom
Draft
[WIP] Add async support (PoC) with shared operation builders#119scottanderson-smartsheet wants to merge 2 commits intosmartsheet:mainlinefrom
scottanderson-smartsheet wants to merge 2 commits intosmartsheet:mainlinefrom
Conversation
Contributor
Reviewing your PR now. Feedback on the way! |
44f6b19 to
382b3da
Compare
- Implement AsyncSmartsheet client with async/await support - Add async versions of Sheets.add_rows() and Workspaces.list_workspaces() - Create shared operation builders to eliminate code duplication - Refactor sync classes to use shared operations - Add comprehensive async tests including async framework integration tests - Add documentation: async-quickstart.md, ASYNC_MIGRATION.md, examples - Resolves event loop blocking issues in async frameworks PoC scope: Foundation + add_rows + list_workspaces Dependencies: httpx>=0.27.0, pytest-asyncio>=0.21.0
382b3da to
f6fe0bd
Compare
ggoranov-smar
requested changes
Jan 8, 2026
| asyncio.run(main()) | ||
| ``` | ||
|
|
||
| ### Installation |
Contributor
There was a problem hiding this comment.
The details about async should be in ADVANCED.md
| Async support requires the `httpx` library: | ||
|
|
||
| ```bash | ||
| pip install smartsheet-python-sdk httpx |
Contributor
There was a problem hiding this comment.
You should look into optional dependencies for python packages. This way the customer can install a package using pip install smartsheet-python-sdk[async] which would install httpx instead of requests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚧 Work In Progress - Proof of Concept
This PR adds async/await support to the Smartsheet Python SDK to resolve event loop blocking issues in FastMCP and other async frameworks.
What's Included
PoC Scope
AsyncSmartsheetclient with async context manager supportAsyncSheets.add_rows()methodAsyncWorkspaces.list_workspaces()methodArchitecture
httpxfor unified sync/async HTTP clientsmartsheet/operations/Key Features
Testing
Documentation
docs-source/async-design.md- Architecture designdocs-source/async-quickstart.md- Quick start guideASYNC_MIGRATION.md- Migration guideexamples/async_examples.py- Runnable examplesNext Steps
Related Issues
Resolves event loop blocking in FastMCP services.