Skip to content

Comments

Add documentation for native asyncio cursors#671

Merged
laughingman7743 merged 5 commits intomasterfrom
docs/native-asyncio-cursors
Feb 21, 2026
Merged

Add documentation for native asyncio cursors#671
laughingman7743 merged 5 commits intomasterfrom
docs/native-asyncio-cursors

Conversation

@laughingman7743
Copy link
Member

Summary

  • Add new docs/aio.md page documenting native asyncio cursors (AioCursor, AioDictCursor), the aconnect() function, async patterns (async with, async for), and a comparison table of sync vs AsyncCursor vs AioCursor
  • Add AioPandasCursor, AioArrowCursor, AioPolarsCursor, AioS3FSCursor, AioSparkCursor sections to their respective cursor documentation pages (pandas.md, arrow.md, polars.md, s3fs.md, spark.md)
  • Update cursor.md with cross-references to all aio cursor sections
  • Add aio to the Cursors toctree in index.md
  • Create docs/api/aio.rst with autodoc for all aio module classes
  • Update api.md toctree and quick reference section
  • Add async usage example to README.md

Context

PRs #666, #667, #668 added native asyncio cursors under pyathena/aio/. The code is complete and merged, but there was no documentation for users to discover the aio API. This PR fills that gap.

Test plan

  • Verify make chk passes (lint + mypy)
  • Build docs locally: cd docs && uv run sphinx-build -b html . _build/html
  • Verify all cross-references resolve correctly
  • Verify new aio.md page renders with comparison table
  • Verify each specialized cursor page shows the new aio section

🤖 Generated with Claude Code

laughingman7743 and others added 3 commits February 21, 2026 13:34
Add comprehensive documentation for the native asyncio cursor
implementations added in PRs #666, #667, #668. This includes a new
docs/aio.md overview page, AioCursor sections in each specialized
cursor page, API reference for the aio module, and an async example
in the README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the ### Async heading with a simple inline lead-in sentence
to avoid an unbalanced section structure under Usage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Explain why as_pandas/as_arrow/as_polars don't need await: the S3
download is wrapped in asyncio.to_thread inside execute(), so data
is already in memory by the time fetch/as_* methods are called.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When chunksize is set, execute() creates a lazy reader instead of
loading all data. Subsequent iteration triggers blocking S3 reads
not wrapped in asyncio.to_thread(). Document this limitation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@laughingman7743 laughingman7743 force-pushed the docs/native-asyncio-cursors branch from 59bb39d to ece3dda Compare February 21, 2026 04:50
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@laughingman7743 laughingman7743 linked an issue Feb 21, 2026 that may be closed by this pull request
@laughingman7743 laughingman7743 marked this pull request as ready for review February 21, 2026 04:56
@laughingman7743 laughingman7743 merged commit 51a342d into master Feb 21, 2026
9 of 10 checks passed
@laughingman7743 laughingman7743 deleted the docs/native-asyncio-cursors branch February 21, 2026 05:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add native asyncio cursor support (AioCursor)

1 participant