L0RD-ZER0 / Motor-Types

Python stubs for Motor, a Non-Blocking MongoDB driver for Python's Tornado and AsyncIO based applications.
https://pypi.org/project/motor-types/
MIT License
23 stars 7 forks source link

Add incomplete mapping to Tornado stubs instead of empty file #9

Open alexmaurizio opened 1 year ago

alexmaurizio commented 1 year ago

Hello, due to the actual tornado stub being empty, the reference file when using elements like MotorClient and MotorDatabase is to default to not resolving the import. image

MyPy will complain, as the language server.

Substituting it with a basic stub does not enforce correct typing, but does not block the issue This is generated via stubgen, of course this is not a real stub but at least solves the issue temporarily, until a full stub is implemented

image

Incomplete is better than an empty file, but might hide the fact that this is not implemented, I'm not sure if this was a deliberate implementation decision.

motor_tornado.pyi

from _typeshed import Incomplete
from typing import TypeVar

T = TypeVar('T')
MotorClient: Incomplete
MotorDatabase: Incomplete
MotorCollection: Incomplete
MotorCursor: Incomplete
MotorCommandCursor: Incomplete
MotorChangeStream: Incomplete
MotorGridFSBucket: Incomplete
MotorGridIn: Incomplete
MotorGridOut: Incomplete
MotorGridOutCursor: Incomplete
MotorClientEncryption: Incomplete
L0RD-ZER0 commented 1 year ago

Yes, leaving it empty instead of marking it as Incomplete is deliberate on my end. As mentioned in 'About' section of the readme, it's something I'm not going to do. It's waiting on someone who's both familiar with (and wants to) use Tornado. I myself am unfamiliar with Tornado (nor do I use it or foresee myself using it in near future), nor could I find anyone who could help me typehint that portion. Eventually things piled up and time to work on the project as opposed to other stuff shrank. Therefore, I deliberately left it empty, hoping that I would either complete it or someone would eventually help me out in completing it. Sorry for the inconvenience caused.