Skip to content

Commit

Permalink
Quote Deferred annotations
Browse files Browse the repository at this point in the history
This is necessary on Python 3.7 because type is not subscriptable.
  • Loading branch information
twm committed Apr 30, 2023
1 parent c09df9f commit a5799b6
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 16 deletions.
6 changes: 3 additions & 3 deletions src/treq/_agentspy.py
Expand Up @@ -25,7 +25,7 @@ class RequestRecord:
uri: bytes = attr.field()
headers: Optional[Headers] = attr.field()
bodyProducer: Optional[IBodyProducer] = attr.field()
deferred: Deferred[IResponse] = attr.field()
deferred: "Deferred[IResponse]" = attr.field()


@implementer(IAgent)
Expand All @@ -46,7 +46,7 @@ def request(
uri: bytes,
headers: Optional[Headers] = None,
bodyProducer: Optional[IBodyProducer] = None,
) -> Deferred[IResponse]:
) -> "Deferred[IResponse]":
if not isinstance(method, bytes):
raise TypeError(
"method must be bytes, not {!r} of type {}".format(method, type(method))
Expand All @@ -68,7 +68,7 @@ def request(
" Is the implementation marked with @implementer(IBodyProducer)?"
).format(bodyProducer)
)
d: Deferred[IResponse] = Deferred()
d: "Deferred[IResponse]" = Deferred()
record = RequestRecord(method, uri, headers, bodyProducer, d)
self._callback(record)
return d
Expand Down
14 changes: 7 additions & 7 deletions src/treq/client.py
Expand Up @@ -151,7 +151,7 @@ def __init__(
self._cookiejar = cookiejar
self._data_to_body_producer = data_to_body_producer

def get(self, url: _URLType, **kwargs: Any) -> Deferred[_Response]:
def get(self, url: _URLType, **kwargs: Any) -> "Deferred[_Response]":
"""
See :func:`treq.get()`.
"""
Expand All @@ -160,7 +160,7 @@ def get(self, url: _URLType, **kwargs: Any) -> Deferred[_Response]:

def put(
self, url: _URLType, data: Optional[_DataType] = None, **kwargs: Any
) -> Deferred[_Response]:
) -> "Deferred[_Response]":
"""
See :func:`treq.put()`.
"""
Expand All @@ -169,7 +169,7 @@ def put(

def patch(
self, url: _URLType, data: Optional[_DataType] = None, **kwargs: Any
) -> Deferred[_Response]:
) -> "Deferred[_Response]":
"""
See :func:`treq.patch()`.
"""
Expand All @@ -178,21 +178,21 @@ def patch(

def post(
self, url: _URLType, data: Optional[_DataType] = None, **kwargs: Any
) -> Deferred[_Response]:
) -> "Deferred[_Response]":
"""
See :func:`treq.post()`.
"""
kwargs.setdefault("_stacklevel", 3)
return self.request("POST", url, data=data, **kwargs)

def head(self, url: _URLType, **kwargs: Any) -> Deferred[_Response]:
def head(self, url: _URLType, **kwargs: Any) -> "Deferred[_Response]":
"""
See :func:`treq.head()`.
"""
kwargs.setdefault("_stacklevel", 3)
return self.request("HEAD", url, **kwargs)

def delete(self, url: _URLType, **kwargs: Any) -> Deferred[_Response]:
def delete(self, url: _URLType, **kwargs: Any) -> "Deferred[_Response]":
"""
See :func:`treq.delete()`.
"""
Expand All @@ -217,7 +217,7 @@ def request(
reactor: Optional[_ITreqReactor] = None,
timeout: Optional[float] = None,
_stacklevel: int = 2,
) -> Deferred[_Response]:
) -> "Deferred[_Response]":
"""
See :func:`treq.request()`.
"""
Expand Down
12 changes: 6 additions & 6 deletions src/treq/multipart.py
Expand Up @@ -83,7 +83,7 @@ def __init__(

self.length = self._calculateLength()

def startProducing(self, consumer: IConsumer) -> Deferred[None]:
def startProducing(self, consumer: IConsumer) -> "Deferred[None]":
"""
Start a cooperative task which will read bytes from the input file and
write them to `consumer`. Return a `Deferred` which fires after all
Expand All @@ -94,13 +94,13 @@ def startProducing(self, consumer: IConsumer) -> Deferred[None]:
self._task = self._cooperate(self._writeLoop(consumer)) # type: ignore
# whenDone returns the iterator that was passed to cooperate, so who
# cares what type it has? It's an edge signal; we ignore its value.
d: Deferred[Any] = self._task.whenDone()
d: "Deferred[Any]" = self._task.whenDone()

def maybeStopped(reason: Failure) -> Deferred:
def maybeStopped(reason: Failure) -> "Deferred[None]":
reason.trap(task.TaskStopped)
return Deferred()

d = cast(Deferred[None], d.addCallbacks(lambda ignored: None, maybeStopped))
d = cast("Deferred[None]", d.addCallbacks(lambda ignored: None, maybeStopped))
return d

def stopProducing(self) -> None:
Expand Down Expand Up @@ -215,7 +215,7 @@ def _writeFile(
content_type: str,
producer: IBodyProducer,
consumer: _Consumer,
) -> Optional[Deferred[None]]:
) -> "Optional[Deferred[None]]":
cdisp = _Header(b"Content-Disposition", b"form-data")
cdisp.add_param(b"name", name)
if filename:
Expand All @@ -240,7 +240,7 @@ def unset(val):
return val

d = producer.startProducing(consumer)
return cast(Deferred[None], d.addCallback(unset))
return cast("Deferred[None]", d.addCallback(unset))


def _escape(value: Union[str, bytes]) -> str:
Expand Down

0 comments on commit a5799b6

Please sign in to comment.