1
+ # twisted is optional and self-contained in this module.
2
+ # We don't want to force it as a dependency but that means we also can't test it with type-checkers given the current setup.
3
+
1
4
from _typeshed import Incomplete
2
- from typing import Any , NamedTuple
3
- from typing_extensions import TypeAlias
5
+ from typing import NamedTuple , TypeVar
4
6
5
7
import pika .connection
6
8
from pika .adapters .utils import nbio_interface
9
+ from twisted .internet .base import DelayedCall # type: ignore[import] # pyright: ignore[reportMissingImports]
10
+ from twisted .internet .defer import Deferred , DeferredQueue # type: ignore[import] # pyright: ignore[reportMissingImports]
11
+ from twisted .internet .interfaces import ITransport # type: ignore[import] # pyright: ignore[reportMissingImports]
12
+ from twisted .internet .protocol import Protocol # type: ignore[import] # pyright: ignore[reportMissingImports]
13
+ from twisted .python .failure import Failure # type: ignore[import] # pyright: ignore[reportMissingImports]
7
14
8
- _DeferredQueue : TypeAlias = Any # TODO: twisted.internet.defer.DeferredQueue
9
- _Protocol : TypeAlias = Any # TODO: twisted.internet.protocol.Protocol
15
+ _T = TypeVar ("_T" )
10
16
11
17
LOGGER : Incomplete
12
18
13
- class ClosableDeferredQueue (_DeferredQueue ):
14
- closed : Incomplete
19
+ class ClosableDeferredQueue (DeferredQueue [ _T ]): # pyright: ignore[reportUntypedBaseClass]
20
+ closed : Failure | BaseException | None
15
21
def __init__ (self , size : Incomplete | None = ..., backlog : Incomplete | None = ...) -> None : ...
16
- def put (self , obj ): ...
17
- def get (self ): ...
22
+ # Returns a Deferred with an error if fails. None if success
23
+ def put (self , obj : _T ) -> Deferred [Failure | BaseException ] | None : ... # type: ignore[override] # pyright: ignore[reportInvalidTypeVarUse]
24
+ def get (self ) -> Deferred [Failure | BaseException | _T ]: ...
18
25
pending : Incomplete
19
- def close (self , reason ) -> None : ...
26
+ def close (self , reason : BaseException | None ) -> None : ...
20
27
21
28
class ReceivedMessage (NamedTuple ):
22
29
channel : Incomplete
@@ -25,7 +32,7 @@ class ReceivedMessage(NamedTuple):
25
32
body : Incomplete
26
33
27
34
class TwistedChannel :
28
- on_closed : Incomplete
35
+ on_closed : Deferred [ Incomplete | Failure | BaseException | None ]
29
36
def __init__ (self , channel ) -> None : ...
30
37
@property
31
38
def channel_number (self ): ...
@@ -44,24 +51,30 @@ class TwistedChannel:
44
51
def callback_deferred (self , deferred , replies ) -> None : ...
45
52
def add_on_return_callback (self , callback ): ...
46
53
def basic_ack (self , delivery_tag : int = ..., multiple : bool = ...): ...
47
- def basic_cancel (self , consumer_tag : str = ...): ...
54
+ def basic_cancel (self , consumer_tag : str = ...) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
48
55
def basic_consume (
49
56
self ,
50
57
queue ,
51
58
auto_ack : bool = ...,
52
59
exclusive : bool = ...,
53
60
consumer_tag : Incomplete | None = ...,
54
61
arguments : Incomplete | None = ...,
55
- ): ...
56
- def basic_get (self , queue , auto_ack : bool = ...): ...
62
+ ) -> Deferred [ Incomplete | Failure | BaseException ] : ...
63
+ def basic_get (self , queue , auto_ack : bool = ...) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
57
64
def basic_nack (self , delivery_tag : Incomplete | None = ..., multiple : bool = ..., requeue : bool = ...): ...
58
- def basic_publish (self , exchange , routing_key , body , properties : Incomplete | None = ..., mandatory : bool = ...): ...
59
- def basic_qos (self , prefetch_size : int = ..., prefetch_count : int = ..., global_qos : bool = ...): ...
65
+ def basic_publish (
66
+ self , exchange , routing_key , body , properties : Incomplete | None = ..., mandatory : bool = ...
67
+ ) -> Deferred [Incomplete | Failure | BaseException ]: ...
68
+ def basic_qos (
69
+ self , prefetch_size : int = ..., prefetch_count : int = ..., global_qos : bool = ...
70
+ ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
60
71
def basic_reject (self , delivery_tag , requeue : bool = ...): ...
61
- def basic_recover (self , requeue : bool = ...): ...
72
+ def basic_recover (self , requeue : bool = ...) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
62
73
def close (self , reply_code : int = ..., reply_text : str = ...): ...
63
- def confirm_delivery (self ): ...
64
- def exchange_bind (self , destination , source , routing_key : str = ..., arguments : Incomplete | None = ...): ...
74
+ def confirm_delivery (self ) -> Deferred [Incomplete | None ]: ...
75
+ def exchange_bind (
76
+ self , destination , source , routing_key : str = ..., arguments : Incomplete | None = ...
77
+ ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
65
78
def exchange_declare (
66
79
self ,
67
80
exchange ,
@@ -71,18 +84,22 @@ class TwistedChannel:
71
84
auto_delete : bool = ...,
72
85
internal : bool = ...,
73
86
arguments : Incomplete | None = ...,
74
- ): ...
75
- def exchange_delete (self , exchange : Incomplete | None = ..., if_unused : bool = ...): ...
87
+ ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
88
+ def exchange_delete (
89
+ self , exchange : Incomplete | None = ..., if_unused : bool = ...
90
+ ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
76
91
def exchange_unbind (
77
92
self ,
78
93
destination : Incomplete | None = ...,
79
94
source : Incomplete | None = ...,
80
95
routing_key : str = ...,
81
96
arguments : Incomplete | None = ...,
82
- ): ...
83
- def flow (self , active ): ...
97
+ ) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
98
+ def flow (self , active ) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
84
99
def open (self ): ...
85
- def queue_bind (self , queue , exchange , routing_key : Incomplete | None = ..., arguments : Incomplete | None = ...): ...
100
+ def queue_bind (
101
+ self , queue , exchange , routing_key : Incomplete | None = ..., arguments : Incomplete | None = ...
102
+ ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
86
103
def queue_declare (
87
104
self ,
88
105
queue ,
@@ -91,37 +108,39 @@ class TwistedChannel:
91
108
exclusive : bool = ...,
92
109
auto_delete : bool = ...,
93
110
arguments : Incomplete | None = ...,
94
- ): ...
95
- def queue_delete (self , queue , if_unused : bool = ..., if_empty : bool = ...): ...
96
- def queue_purge (self , queue ): ...
111
+ ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
112
+ def queue_delete (
113
+ self , queue , if_unused : bool = ..., if_empty : bool = ...
114
+ ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
115
+ def queue_purge (self , queue ) -> Deferred [Incomplete | Failure | BaseException | None ]: ...
97
116
def queue_unbind (
98
117
self , queue , exchange : Incomplete | None = ..., routing_key : Incomplete | None = ..., arguments : Incomplete | None = ...
99
- ): ...
100
- def tx_commit (self ): ...
101
- def tx_rollback (self ): ...
102
- def tx_select (self ): ...
118
+ ) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
119
+ def tx_commit (self ) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
120
+ def tx_rollback (self ) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
121
+ def tx_select (self ) -> Deferred [ Incomplete | Failure | BaseException | None ] : ...
103
122
104
123
class _TwistedConnectionAdapter (pika .connection .Connection ):
105
124
def __init__ (self , parameters , on_open_callback , on_open_error_callback , on_close_callback , custom_reactor ) -> None : ...
106
- def connection_made (self , transport ) -> None : ...
107
- def connection_lost (self , error ) -> None : ...
125
+ def connection_made (self , transport : ITransport ) -> None : ...
126
+ def connection_lost (self , error : Exception ) -> None : ...
108
127
def data_received (self , data ) -> None : ...
109
128
110
- class TwistedProtocolConnection (_Protocol ):
111
- ready : Incomplete
112
- closed : Incomplete
129
+ class TwistedProtocolConnection (Protocol ): # pyright: ignore[reportUntypedBaseClass]
130
+ ready : Deferred [ None ] | None
131
+ closed : Deferred [ None ] | Failure | BaseException | None
113
132
def __init__ (self , parameters : Incomplete | None = ..., custom_reactor : Incomplete | None = ...) -> None : ...
114
133
def channel (self , channel_number : Incomplete | None = ...): ...
115
134
@property
116
135
def is_open (self ): ...
117
136
@property
118
137
def is_closed (self ): ...
119
- def close (self , reply_code : int = ..., reply_text : str = ...): ...
138
+ def close (self , reply_code : int = ..., reply_text : str = ...) -> Deferred [ None ] | Failure | BaseException | None : ...
120
139
def dataReceived (self , data ) -> None : ...
121
- def connectionLost (self , reason = ...) -> None : ...
122
- def makeConnection (self , transport ) -> None : ...
140
+ def connectionLost (self , reason : Failure | BaseException = ...) -> None : ...
141
+ def makeConnection (self , transport : ITransport ) -> None : ...
123
142
def connectionReady (self ): ...
124
143
125
144
class _TimerHandle (nbio_interface .AbstractTimerReference ):
126
- def __init__ (self , handle ) -> None : ...
145
+ def __init__ (self , handle : DelayedCall ) -> None : ...
127
146
def cancel (self ) -> None : ...
0 commit comments