低水準の API インデックス

このページでは低水準の asyncio API を全てリストしています。

イベントループの取得

asyncio.get_running_loop()

実行中のイベントループを取得するために 利用が推奨される 関数です。

asyncio.get_event_loop()

Get an event loop instance (current or via the policy).

asyncio.set_event_loop()

ポリシーに基づいて引数のイベントループを "カレント" (current event loop) に設定します。

asyncio.new_event_loop()

新しいイベントループのインスタンスを生成します。

使用例

  • :ref:`asyncio.get_running_loop() を使う <asyncio_example_future> `

イベントループのメソッド

See also the main documentation section about the event loop methods.

ライフサイクル

loop.run_until_complete()

Future/Task/awaitable が完了するまで実行します。

loop.run_forever()

イベントループを永久に実行します。

loop.stop()

イベントループを停止します。

loop.close()

イベントループをクローズします。

loop.is_running()

イベントループが実行中の場合 True を返します。

loop.is_closed()

イベントループがクローズされている場合 True を返します。

await loop.shutdown_asyncgens()

非同期ジェネレータをクローズします。

デバッグ

loop.set_debug()

デバッグモードを有効化または無効化します。

loop.get_debug()

現在のデバッグモードを取得します。

コールバックのスケジューリング

loop.call_soon()

コールバックを即座に実行します。

loop.call_soon_threadsafe()

loop.call_soon() のスレッドセーフ版です。

loop.call_later()

与えられた遅延時間の 経過後 にコールバックを実行します。

loop.call_at()

与えられた時刻に コールバックを実行します。

スレッドプール/プロセスプール

await loop.run_in_executor()

CPUバウンドなブロッキング関数、またはその他のブロッキング関数を concurrent.futures 実行オブジェクト (executor) 上で実行します。

loop.set_default_executor()

loop.run_in_executor() のデフォルト実行オブジェクト (executor) を設定します。

タスクとフューチャー

loop.create_future()

Future オブジェクトを生成します。

loop.create_task()

コルーチンを Task としてスケジュールします。

loop.set_task_factory()

loop.create_task()Tasks を生成する際に使われるファクトリを設定します。

loop.get_task_factory()

loop.create_task()Tasks を生成するファクトリを取得します。

DNS

await loop.getaddrinfo()

socket.getaddrinfo() の非同期版です。

await loop.getnameinfo()

socket.getnameinfo() の非同期版です。

ネットワークとプロセス間通信 (IPC)

await loop.create_connection()

TCP接続を確立します。

await loop.create_server()

TCPサーバーを起動します。

await loop.create_unix_connection()

Unix のソケット接続を確立します。

await loop.create_unix_server()

Create a Unix socket server.

await loop.connect_accepted_socket()

socket(transport, protocol) のペアでラップします。

await loop.create_datagram_endpoint()

データグラム (UDP) 接続を確立します。

await loop.sendfile()

確立した接続 (transport) を通じてファイルを送信します。

await loop.start_tls()

既存の接続を TLS にアップグレードします。

await loop.connect_read_pipe()

パイプの読み出し側を (transport, protocol) のペアでラップします。

await loop.connect_write_pipe()

パイプの書き込み側を (transport, protocol) のペアでラップします。

ソケット

await loop.sock_recv()

socket からデータを受信します。

await loop.sock_recv_into()

socket からデータを受信し、バッファに送信します。

await loop.sock_sendall()

socket にデータを送信します。

await loop.sock_connect()

socket を接続します。

await loop.sock_accept()

socket の接続を受け入れます。

await loop.sock_sendfile()

Send a file over the socket.

loop.add_reader()

ファイル記述子が読み込み可能かどうかの監視を開始します。

loop.remove_reader()

ファイル記述子が読み込み可能かどうかの監視を停止します。

loop.add_writer()

ファイル記述子が書き込み可能かどうかの監視を開始します。

loop.remove_writer()

ファイル記述子が書き込み可能かどうかの監視を停止します。

Unix シグナル

loop.add_signal_handler()

signal 用のハンドラーを追加します。

loop.remove_signal_handler()

signal 用のハンドラーを削除します。

サブプロセス

loop.subprocess_exec()

サブプロセスを生成します。

loop.subprocess_shell()

シェルコマンドからサブプロセスを生成します。

エラー処理

loop.call_exception_handler()

例外ハンドラを呼び出します。

loop.set_exception_handler()

新しい例外ハンドラーを設定します。

loop.get_exception_handler()

現在の例外ハンドラーを取得します。

loop.default_exception_handler()

デフォルトの例外ハンドラー実装です。

使用例

トランスポート

全てのトランスポートは以下のメソッドを実装します:

transport.close()

トランスポートをクローズします。

transport.is_closing()

トランスポートを閉じている最中か閉じていた場合 True を返します。

transport.get_extra_info()

トランスポートについての情報をリクエストします。

transport.set_protocol()

トランスポートに新しいプロトコルを設定します。

transport.get_protocol()

現在のプロトコルを返します。

データを受信できるトランスポート (TCP 接続、 Unix 接続、パイプなど) のメソッドです。該当するトランスポートは loop.create_connection(), loop.create_unix_connection(), loop.connect_read_pipe() などの戻り値です:

読み込みトランスポート

transport.is_reading()

トランスポートがデータを受信中の場合 True を返します。

transport.pause_reading()

データの受信を停止します。

transport.resume_reading()

データの受信を再開します。

データを送信できるトランスポート (TCP 接続、 Unix 接続、パイプなど) のメソッドです。該当するトランスポートは loop.create_connection(), loop.create_unix_connection(), loop.connect_write_pipe() などの戻り値です:

トランスポートにデータを書き込みます。

transport.write()

トランスポートにデータを書き込みます。

transport.writelines()

トランスポートにバッファの内容を書き込みます。

transport.can_write_eof()

トランスポートが 終端 (EOF) の送信をサポートしている場合 True を返します。

transport.write_eof()

バッファに残っているデータをフラッシュしてから終端 (EOF) を送信して、トランスポートをクローズします。

transport.abort()

トランスポートを即座にクローズします。

transport.get_write_buffer_size()

書き込みフロー制御の高水位点と低水位点を取得します。

transport.set_write_buffer_limits()

書き込みフロー制御の高水位点と低水位点を設定します。

loop.create_datagram_endpoint() が返すトランスポート:

データグラムトランスポート

transport.sendto()

リモートピアにデータを送信します。

transport.abort()

トランスポートを即座にクローズします。

サブプロセスに対するトランスポートの低レベルな抽象化です。 loop.subprocess_exec()loop.subprocess_shell() の戻り値です:

サブプロセス化されたトランスポート

transport.get_pid()

サブプロセスのプロセス ID を返します。

transport.get_pipe_transport()

リクエストされた通信パイプ (標準入力 stdin, 標準出力 stdout, または標準エラー出力 stderr) のためのトランスポートを返します。

transport.get_returncode()

サブプロセスの終了ステータスを返します。

transport.kill()

サブプロセスを強制終了 (kill) します。

transport.send_signal()

サブプロセスにシグナルを送信します。

transport.terminate()

サブプロセスを停止します。

transport.close()

サブプロセスを強制終了 (kill) し、全てのパイプをクローズします。

プロトコル

プロトコルクラスは以下の コールバックメソッド を実装することができます:

callback connection_made()

コネクションが作成されたときに呼び出されます。

callback connection_lost()

コネクションが失われた、あるいはクローズされたときに呼び出されます。

callback pause_writing()

トランスポートのバッファーサイズが最高水位点 (High-Water Mark) を超えたときに呼び出されます。

callback resume_writing()

トランスポートのバッファーサイズが最低水位点 (Low-Water Mark) に達したきに呼び出されます。

ストリーミングプロトコル (TCP, Unix ソケット, パイプ)

callback data_received()

データを受信したときに呼び出されます。

callback eof_received()

終端 (EOF) を受信したときに呼び出されます。

バッファリングされたストリーミングプロトコル

callback get_buffer()

新しい受信バッファを割り当てるために呼び出します。

callback buffer_updated()

受信データによりバッファが更新された場合に呼び出されます。

callback eof_received()

終端 (EOF) を受信したときに呼び出されます。

データグラムプロトコル

callback datagram_received()

データグラムを受信したときに呼び出されます。

callback error_received()

直前の送信あるいは受信が OSError を送出したときに呼び出されます。

サブプロセスプロトコル

callback pipe_data_received()

子プロセスが標準出力 (stdout) または標準エラー出力 (stderr) のパイプにデータを書き込んだときに呼び出されます。

callback pipe_connection_lost()

子プロセスと通信するパイプのいずれかがクローズされたときに呼び出されます。

callback process_exited()

子プロセスが終了したときに呼び出されます。

イベントループのポリシー

ポリシーは asyncio.get_event_loop() などの関数の振る舞いを変更する低レベルなメカニズムです。詳細は ポリシーについてのセクション を参照してください。

ポリシーへのアクセス

asyncio.get_event_loop_policy()

プロセス全体にわたる現在のポリシーを返します。

asyncio.set_event_loop_policy()

新たなプロセス全体にわたるポリシーを設定します。

AbstractEventLoopPolicy

ポリシーオブジェクトの基底クラスです。