Skip to content

Commit ebb5bdd

Browse files
authored
Initial pika stubs (#9200)
1 parent 4588dd6 commit ebb5bdd

33 files changed

+2374
-0
lines changed

pyrightconfig.stricter.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
"stubs/google-cloud-ndb",
5353
"stubs/passlib",
5454
"stubs/peewee",
55+
"stubs/pika",
5556
"stubs/psutil",
5657
"stubs/psycopg2",
5758
"stubs/pyflakes",
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Inherited from stdlib's io module.
2+
pika.compat.StringIO.seek
3+
pika.compat.StringIO.truncate
4+
5+
# Requires external libraries to be installed.
6+
pika\.adapters\.gevent_connection.*
7+
pika\.adapters\.tornado_connection.*
8+
pika\.adapters\.twisted_connection.*
9+
10+
# Stubtest doesn't understand that a property alias is also read-only.
11+
pika.BlockingConnection.basic_nack
12+
pika.BlockingConnection.consumer_cancel_notify
13+
pika.BlockingConnection.exchange_exchange_bindings
14+
pika.BlockingConnection.publisher_confirms
15+
pika.adapters.BlockingConnection.basic_nack
16+
pika.adapters.BlockingConnection.consumer_cancel_notify
17+
pika.adapters.BlockingConnection.exchange_exchange_bindings
18+
pika.adapters.BlockingConnection.publisher_confirms
19+
pika.adapters.blocking_connection.BlockingConnection.basic_nack
20+
pika.adapters.blocking_connection.BlockingConnection.consumer_cancel_notify
21+
pika.adapters.blocking_connection.BlockingConnection.exchange_exchange_bindings
22+
pika.adapters.blocking_connection.BlockingConnection.publisher_confirms
23+
24+
# Flagged by stubtest for unknown reasons.
25+
pika.data.PY2
26+
pika.data.basestring
27+
pika.spec.str_or_bytes
28+
pika.validators.basestring

stubs/pika/METADATA.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
version = "1.3.*"
2+
3+
[tool.stubtest]
4+
ignore_missing_stub = false

stubs/pika/pika/__init__.pyi

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from pika import adapters as adapters
2+
from pika.adapters import (
3+
BaseConnection as BaseConnection,
4+
BlockingConnection as BlockingConnection,
5+
SelectConnection as SelectConnection,
6+
)
7+
from pika.adapters.utils.connection_workflow import AMQPConnectionWorkflow as AMQPConnectionWorkflow
8+
from pika.connection import ConnectionParameters as ConnectionParameters, SSLOptions as SSLOptions, URLParameters as URLParameters
9+
from pika.credentials import PlainCredentials as PlainCredentials
10+
from pika.delivery_mode import DeliveryMode as DeliveryMode
11+
from pika.spec import BasicProperties as BasicProperties
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from pika.adapters.base_connection import BaseConnection as BaseConnection
2+
from pika.adapters.blocking_connection import BlockingConnection as BlockingConnection
3+
from pika.adapters.select_connection import IOLoop as IOLoop, SelectConnection as SelectConnection
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from _typeshed import Incomplete
2+
3+
from pika.adapters import base_connection
4+
from pika.adapters.utils import io_services_utils, nbio_interface
5+
6+
LOGGER: Incomplete
7+
8+
class AsyncioConnection(base_connection.BaseConnection):
9+
def __init__(
10+
self,
11+
parameters: Incomplete | None = ...,
12+
on_open_callback: Incomplete | None = ...,
13+
on_open_error_callback: Incomplete | None = ...,
14+
on_close_callback: Incomplete | None = ...,
15+
custom_ioloop: Incomplete | None = ...,
16+
internal_connection_workflow: bool = ...,
17+
) -> None: ...
18+
@classmethod
19+
def create_connection(
20+
cls, connection_configs, on_done, custom_ioloop: Incomplete | None = ..., workflow: Incomplete | None = ...
21+
): ...
22+
23+
class _AsyncioIOServicesAdapter(
24+
io_services_utils.SocketConnectionMixin,
25+
io_services_utils.StreamingConnectionMixin,
26+
nbio_interface.AbstractIOServices,
27+
nbio_interface.AbstractFileDescriptorServices,
28+
):
29+
def __init__(self, loop: Incomplete | None = ...) -> None: ...
30+
def get_native_ioloop(self): ...
31+
def close(self) -> None: ...
32+
def run(self) -> None: ...
33+
def stop(self) -> None: ...
34+
def add_callback_threadsafe(self, callback) -> None: ...
35+
def call_later(self, delay, callback): ...
36+
def getaddrinfo(self, host, port, on_done, family: int = ..., socktype: int = ..., proto: int = ..., flags: int = ...): ...
37+
def set_reader(self, fd, on_readable) -> None: ...
38+
def remove_reader(self, fd): ...
39+
def set_writer(self, fd, on_writable) -> None: ...
40+
def remove_writer(self, fd): ...
41+
42+
class _TimerHandle(nbio_interface.AbstractTimerReference):
43+
def __init__(self, handle) -> None: ...
44+
def cancel(self) -> None: ...
45+
46+
class _AsyncioIOReference(nbio_interface.AbstractIOReference):
47+
def __init__(self, future, on_done) -> None: ...
48+
def cancel(self): ...
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import abc
2+
from _typeshed import Incomplete
3+
4+
from pika import connection
5+
from pika.adapters.utils import nbio_interface
6+
7+
LOGGER: Incomplete
8+
9+
class BaseConnection(connection.Connection, metaclass=abc.ABCMeta):
10+
def __init__(
11+
self, parameters, on_open_callback, on_open_error_callback, on_close_callback, nbio, internal_connection_workflow
12+
) -> None: ...
13+
@classmethod
14+
@abc.abstractmethod
15+
def create_connection(
16+
cls, connection_configs, on_done, custom_ioloop: Incomplete | None = ..., workflow: Incomplete | None = ...
17+
): ...
18+
@property
19+
def ioloop(self): ...
20+
21+
class _StreamingProtocolShim(nbio_interface.AbstractStreamProtocol):
22+
connection_made: Incomplete
23+
connection_lost: Incomplete
24+
eof_received: Incomplete
25+
data_received: Incomplete
26+
conn: Incomplete
27+
def __init__(self, conn) -> None: ...
28+
def __getattr__(self, attr): ...
Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
from _typeshed import Incomplete
2+
from collections.abc import Generator
3+
from typing import NamedTuple
4+
5+
LOGGER: Incomplete
6+
7+
class _CallbackResult:
8+
def __init__(self, value_class: Incomplete | None = ...) -> None: ...
9+
def reset(self) -> None: ...
10+
def __bool__(self) -> bool: ...
11+
__nonzero__: Incomplete
12+
def __enter__(self): ...
13+
def __exit__(self, *args, **kwargs) -> None: ...
14+
def is_ready(self): ...
15+
@property
16+
def ready(self): ...
17+
def signal_once(self, *_args, **_kwargs) -> None: ...
18+
def set_value_once(self, *args, **kwargs) -> None: ...
19+
def append_element(self, *args, **kwargs) -> None: ...
20+
@property
21+
def value(self): ...
22+
@property
23+
def elements(self): ...
24+
25+
class _IoloopTimerContext:
26+
def __init__(self, duration, connection) -> None: ...
27+
def __enter__(self): ...
28+
def __exit__(self, *_args, **_kwargs) -> None: ...
29+
def is_ready(self): ...
30+
31+
class _TimerEvt:
32+
timer_id: Incomplete
33+
def __init__(self, callback) -> None: ...
34+
def dispatch(self) -> None: ...
35+
36+
class _ConnectionBlockedUnblockedEvtBase:
37+
def __init__(self, callback, method_frame) -> None: ...
38+
def dispatch(self) -> None: ...
39+
40+
class _ConnectionBlockedEvt(_ConnectionBlockedUnblockedEvtBase): ...
41+
class _ConnectionUnblockedEvt(_ConnectionBlockedUnblockedEvtBase): ...
42+
43+
class BlockingConnection:
44+
class _OnClosedArgs(NamedTuple):
45+
connection: Incomplete
46+
error: Incomplete
47+
48+
class _OnChannelOpenedArgs(NamedTuple):
49+
channel: Incomplete
50+
def __init__(self, parameters: Incomplete | None = ..., _impl_class: Incomplete | None = ...) -> None: ...
51+
def __enter__(self): ...
52+
def __exit__(self, exc_type, value, traceback) -> None: ...
53+
def add_on_connection_blocked_callback(self, callback) -> None: ...
54+
def add_on_connection_unblocked_callback(self, callback) -> None: ...
55+
def call_later(self, delay, callback): ...
56+
def add_callback_threadsafe(self, callback) -> None: ...
57+
def remove_timeout(self, timeout_id) -> None: ...
58+
def update_secret(self, new_secret, reason) -> None: ...
59+
def close(self, reply_code: int = ..., reply_text: str = ...) -> None: ...
60+
def process_data_events(self, time_limit: int = ...): ...
61+
def sleep(self, duration) -> None: ...
62+
def channel(self, channel_number: Incomplete | None = ...): ...
63+
@property
64+
def is_closed(self): ...
65+
@property
66+
def is_open(self): ...
67+
@property
68+
def basic_nack_supported(self): ...
69+
@property
70+
def consumer_cancel_notify_supported(self): ...
71+
@property
72+
def exchange_exchange_bindings_supported(self): ...
73+
@property
74+
def publisher_confirms_supported(self): ...
75+
basic_nack = basic_nack_supported
76+
consumer_cancel_notify = consumer_cancel_notify_supported
77+
exchange_exchange_bindings = exchange_exchange_bindings_supported
78+
publisher_confirms = publisher_confirms_supported
79+
80+
class _ChannelPendingEvt: ...
81+
82+
class _ConsumerDeliveryEvt(_ChannelPendingEvt):
83+
method: Incomplete
84+
properties: Incomplete
85+
body: Incomplete
86+
def __init__(self, method, properties, body) -> None: ...
87+
88+
class _ConsumerCancellationEvt(_ChannelPendingEvt):
89+
method_frame: Incomplete
90+
def __init__(self, method_frame) -> None: ...
91+
@property
92+
def method(self): ...
93+
94+
class _ReturnedMessageEvt(_ChannelPendingEvt):
95+
callback: Incomplete
96+
channel: Incomplete
97+
method: Incomplete
98+
properties: Incomplete
99+
body: Incomplete
100+
def __init__(self, callback, channel, method, properties, body) -> None: ...
101+
def dispatch(self) -> None: ...
102+
103+
class ReturnedMessage:
104+
method: Incomplete
105+
properties: Incomplete
106+
body: Incomplete
107+
def __init__(self, method, properties, body) -> None: ...
108+
109+
class _ConsumerInfo:
110+
SETTING_UP: int
111+
ACTIVE: int
112+
TEARING_DOWN: int
113+
CANCELLED_BY_BROKER: int
114+
consumer_tag: Incomplete
115+
auto_ack: Incomplete
116+
on_message_callback: Incomplete
117+
alternate_event_sink: Incomplete
118+
state: Incomplete
119+
def __init__(
120+
self, consumer_tag, auto_ack, on_message_callback: Incomplete | None = ..., alternate_event_sink: Incomplete | None = ...
121+
) -> None: ...
122+
@property
123+
def setting_up(self): ...
124+
@property
125+
def active(self): ...
126+
@property
127+
def tearing_down(self): ...
128+
@property
129+
def cancelled_by_broker(self): ...
130+
131+
class _QueueConsumerGeneratorInfo:
132+
params: Incomplete
133+
consumer_tag: Incomplete
134+
pending_events: Incomplete
135+
def __init__(self, params, consumer_tag) -> None: ...
136+
137+
class BlockingChannel:
138+
class _RxMessageArgs(NamedTuple):
139+
channel: Incomplete
140+
method: Incomplete
141+
properties: Incomplete
142+
body: Incomplete
143+
144+
class _MethodFrameCallbackResultArgs(NamedTuple):
145+
method_frame: Incomplete
146+
147+
class _OnMessageConfirmationReportArgs(NamedTuple):
148+
method_frame: Incomplete
149+
150+
class _FlowOkCallbackResultArgs(NamedTuple):
151+
active: Incomplete
152+
def __init__(self, channel_impl, connection) -> None: ...
153+
def __int__(self) -> int: ...
154+
def __enter__(self): ...
155+
def __exit__(self, exc_type, value, traceback) -> None: ...
156+
@property
157+
def channel_number(self): ...
158+
@property
159+
def connection(self): ...
160+
@property
161+
def is_closed(self): ...
162+
@property
163+
def is_open(self): ...
164+
@property
165+
def consumer_tags(self): ...
166+
def close(self, reply_code: int = ..., reply_text: str = ...): ...
167+
def flow(self, active): ...
168+
def add_on_cancel_callback(self, callback) -> None: ...
169+
def add_on_return_callback(self, callback): ...
170+
def basic_consume(
171+
self,
172+
queue,
173+
on_message_callback,
174+
auto_ack: bool = ...,
175+
exclusive: bool = ...,
176+
consumer_tag: Incomplete | None = ...,
177+
arguments: Incomplete | None = ...,
178+
): ...
179+
def basic_cancel(self, consumer_tag): ...
180+
def start_consuming(self) -> None: ...
181+
def stop_consuming(self, consumer_tag: Incomplete | None = ...) -> None: ...
182+
def consume(
183+
self,
184+
queue,
185+
auto_ack: bool = ...,
186+
exclusive: bool = ...,
187+
arguments: Incomplete | None = ...,
188+
inactivity_timeout: Incomplete | None = ...,
189+
) -> Generator[Incomplete, None, None]: ...
190+
def get_waiting_message_count(self): ...
191+
def cancel(self): ...
192+
def basic_ack(self, delivery_tag: int = ..., multiple: bool = ...) -> None: ...
193+
def basic_nack(self, delivery_tag: int = ..., multiple: bool = ..., requeue: bool = ...) -> None: ...
194+
def basic_get(self, queue, auto_ack: bool = ...): ...
195+
def basic_publish(self, exchange, routing_key, body, properties: Incomplete | None = ..., mandatory: bool = ...) -> None: ...
196+
def basic_qos(self, prefetch_size: int = ..., prefetch_count: int = ..., global_qos: bool = ...) -> None: ...
197+
def basic_recover(self, requeue: bool = ...) -> None: ...
198+
def basic_reject(self, delivery_tag: int = ..., requeue: bool = ...) -> None: ...
199+
def confirm_delivery(self) -> None: ...
200+
def exchange_declare(
201+
self,
202+
exchange,
203+
exchange_type=...,
204+
passive: bool = ...,
205+
durable: bool = ...,
206+
auto_delete: bool = ...,
207+
internal: bool = ...,
208+
arguments: Incomplete | None = ...,
209+
): ...
210+
def exchange_delete(self, exchange: Incomplete | None = ..., if_unused: bool = ...): ...
211+
def exchange_bind(self, destination, source, routing_key: str = ..., arguments: Incomplete | None = ...): ...
212+
def exchange_unbind(
213+
self,
214+
destination: Incomplete | None = ...,
215+
source: Incomplete | None = ...,
216+
routing_key: str = ...,
217+
arguments: Incomplete | None = ...,
218+
): ...
219+
def queue_declare(
220+
self,
221+
queue,
222+
passive: bool = ...,
223+
durable: bool = ...,
224+
exclusive: bool = ...,
225+
auto_delete: bool = ...,
226+
arguments: Incomplete | None = ...,
227+
): ...
228+
def queue_delete(self, queue, if_unused: bool = ..., if_empty: bool = ...): ...
229+
def queue_purge(self, queue): ...
230+
def queue_bind(self, queue, exchange, routing_key: Incomplete | None = ..., arguments: Incomplete | None = ...): ...
231+
def queue_unbind(
232+
self, queue, exchange: Incomplete | None = ..., routing_key: Incomplete | None = ..., arguments: Incomplete | None = ...
233+
): ...
234+
def tx_select(self): ...
235+
def tx_commit(self): ...
236+
def tx_rollback(self): ...

0 commit comments

Comments
 (0)