Consolidate all non-IO code in AsyncCursor/Cursor into _AgnosticCursor

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Python Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      Many of the methods, especially the builder methods (limit, clone, _query_spec, sort, where, ..., of AsyncCursor/Cursor differ only in their return or argument type annotations (async or sync versions of classes). By using typing.Self as the return type and _Agnostic* in parameter types, we can consolidate these methods into the shared _AgnosticCursor base class.

      Note that typing.Self was added in Python 3.11, so older versions of Python will have to import from typing_extensions under a if TYPE_CHECKING guard.

            Assignee:
            Noah Stapp
            Reporter:
            Noah Stapp
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: