Low-level API Index

Diese Seite listet alle Low-level asyncio APIs auf.

Ermitteln der Event Loop

asyncio.get_running_loop()

Die bevorzugte Funktion, um die laufende Event Loop zu erhalten.

asyncio.get_event_loop()

Ermittelt eine Event-Loop-Instanz (laufende oder aktuelle über die aktuelle Policy).

asyncio.set_event_loop()

Setzt die Event Loop als aktuell über die aktuelle Policy.

asyncio.new_event_loop()

Erstellt eine neue Event Loop.

Beispiele

Event Loop Methoden

Siehe auch den Hauptdokumentationsabschnitt über die Event Loop Methoden.

Lebenszyklus

loop.run_until_complete()

Führt einen Future/Task/awaitable aus, bis er abgeschlossen ist.

loop.run_forever()

Führt die Event Loop für immer aus.

loop.stop()

Stoppt die Event Loop.

loop.close()

Schließt die Event Loop.

loop.is_running()

Gibt True zurück, wenn die Event Loop läuft.

loop.is_closed()

Gibt True zurück, wenn die Event Loop geschlossen ist.

await loop.shutdown_asyncgens()

Schließt asynchrone Generatoren.

Debugging

loop.set_debug()

Aktiviert oder deaktiviert den Debug-Modus.

loop.get_debug()

Ruft den aktuellen Debug-Modus ab.

Callbacks planen

loop.call_soon()

Ruft einen Callback bald auf.

loop.call_soon_threadsafe()

Eine Thread-sichere Variante von loop.call_soon().

loop.call_later()

Ruft einen Callback nach der angegebenen Zeit auf.

loop.call_at()

Ruft einen Callback zum angegebenen Zeitpunkt auf.

Thread-/Interpreter-/Prozess-Pool

await loop.run_in_executor()

Führt eine CPU-intensive oder andere blockierende Funktion in einem concurrent.futures Executor aus.

loop.set_default_executor()

Setzt den Standard-Executor für loop.run_in_executor().

Tasks und Futures

loop.create_future()

Erstellt ein Future-Objekt.

loop.create_task()

Plant eine Coroutine als Task.

loop.set_task_factory()

Setzt eine Factory, die von loop.create_task() verwendet wird, um Tasks zu erstellen.

loop.get_task_factory()

Ruft die Factory ab, die loop.create_task() zum Erstellen von Tasks verwendet.

DNS

await loop.getaddrinfo()

Asynchrone Version von socket.getaddrinfo().

await loop.getnameinfo()

Asynchrone Version von socket.getnameinfo().

Netzwerk und IPC

await loop.create_connection()

Öffnet eine TCP-Verbindung.

await loop.create_server()

Erstellt einen TCP-Server.

await loop.create_unix_connection()

Öffnet eine Unix-Socket-Verbindung.

await loop.create_unix_server()

Erstellt einen Unix-Socket-Server.

await loop.connect_accepted_socket()

Wrap einen socket in ein (transport, protocol)-Paar.

await loop.create_datagram_endpoint()

Öffnet eine Datagramm- (UDP) Verbindung.

await loop.sendfile()

Sendet eine Datei über einen Transport.

await loop.start_tls()

Aktualisiert eine bestehende Verbindung auf TLS.

await loop.connect_read_pipe()

Wrap das Leseende einer Pipe in ein (transport, protocol)-Paar.

await loop.connect_write_pipe()

Wrap das Schreibende einer Pipe in ein (transport, protocol)-Paar.

Sockets

await loop.sock_recv()

Empfängt Daten vom socket.

await loop.sock_recv_into()

Empfängt Daten vom socket in einen Puffer.

await loop.sock_recvfrom()

Empfängt ein Datagramm vom socket.

await loop.sock_recvfrom_into()

Empfängt ein Datagramm vom socket in einen Puffer.

await loop.sock_sendall()

Sendet Daten an den socket.

await loop.sock_sendto()

Sendet ein Datagramm über den socket an die angegebene Adresse.

await loop.sock_connect()

Verbindet den socket.

await loop.sock_accept()

Akzeptiert eine socket-Verbindung.

await loop.sock_sendfile()

Sendet eine Datei über den socket.

loop.add_reader()

Beginnt die Überwachung eines Dateideskriptors auf Leseverfügbarkeit.

loop.remove_reader()

Beendet die Überwachung eines Dateideskriptors auf Leseverfügbarkeit.

loop.add_writer()

Beginnt die Überwachung eines Dateideskriptors auf Schreibverfügbarkeit.

loop.remove_writer()

Beendet die Überwachung eines Dateideskriptors auf Schreibverfügbarkeit.

Unix-Signale

loop.add_signal_handler()

Fügt einen Handler für ein signal hinzu.

loop.remove_signal_handler()

Entfernt einen Handler für ein signal.

Subprozesse

loop.subprocess_exec()

Startet einen Subprozess.

loop.subprocess_shell()

Startet einen Subprozess aus einem Shell-Befehl.

Fehlerbehandlung

loop.call_exception_handler()

Ruft den Exception-Handler auf.

loop.set_exception_handler()

Setzt einen neuen Exception-Handler.

loop.get_exception_handler()

Ruft den aktuellen Exception-Handler ab.

loop.default_exception_handler()

Die Standardimplementierung des Exception-Handlers.

Beispiele

Transports

Alle Transports implementieren die folgenden Methoden

transport.close()

Schließt den Transport.

transport.is_closing()

Gibt True zurück, wenn der Transport schließt oder geschlossen ist.

transport.get_extra_info()

Anforderung von Informationen über den Transport.

transport.set_protocol()

Setzt ein neues Protokoll.

transport.get_protocol()

Gibt das aktuelle Protokoll zurück.

Transports, die Daten empfangen können (TCP- und Unix-Verbindungen, Pipes usw.). Zurückgegeben von Methoden wie loop.create_connection(), loop.create_unix_connection(), loop.connect_read_pipe() usw.

Lese-Transports

transport.is_reading()

Gibt True zurück, wenn der Transport empfängt.

transport.pause_reading()

Pausiert das Empfangen.

transport.resume_reading()

Setzt das Empfangen fort.

Transports, die Daten senden können (TCP- und Unix-Verbindungen, Pipes usw.). Zurückgegeben von Methoden wie loop.create_connection(), loop.create_unix_connection(), loop.connect_write_pipe() usw.

Schreib-Transports

transport.write()

Schreibt Daten in den Transport.

transport.writelines()

Schreibt Puffer in den Transport.

transport.can_write_eof()

Gibt True zurück, wenn der Transport EOF senden kann.

transport.write_eof()

Schließt und sendet EOF, nachdem gepufferte Daten geleert wurden.

transport.abort()

Schließt den Transport sofort.

transport.get_write_buffer_size()

Gibt die aktuelle Größe des Ausgabepuffers zurück.

transport.get_write_buffer_limits()

Gibt die oberen und unteren Grenzwerte für die Schreibflusskontrolle zurück.

transport.set_write_buffer_limits()

Setzt neue obere und untere Grenzwerte für die Schreibflusskontrolle.

Von loop.create_datagram_endpoint() zurückgegebene Transports

Datagramm-Transporte

transport.sendto()

Sendet Daten an den entfernten Peer.

transport.abort()

Schließt den Transport sofort.

Low-level Transport-Abstraktion über Subprozesse. Zurückgegeben von loop.subprocess_exec() und loop.subprocess_shell()

Subprozess-Transporte

transport.get_pid()

Gibt die Prozess-ID des Subprozesses zurück.

transport.get_pipe_transport()

Gibt den Transport für die angeforderte Kommunikationspipe (stdin, stdout oder stderr) zurück.

transport.get_returncode()

Gibt den Rückgabecode des Subprozesses zurück.

transport.kill()

Beendet den Subprozess.

transport.send_signal()

Sendet ein Signal an den Subprozess.

transport.terminate()

Stoppt den Subprozess.

transport.close()

Beendet den Subprozess und schließt alle Pipes.

Protokolle

Protokollklassen können die folgenden Callback-Methoden implementieren

callback connection_made()

Wird aufgerufen, wenn eine Verbindung hergestellt wird.

callback connection_lost()

Wird aufgerufen, wenn die Verbindung verloren geht oder geschlossen wird.

callback pause_writing()

Wird aufgerufen, wenn der Puffer des Transports die obere Wasserlinie überschreitet.

callback resume_writing()

Wird aufgerufen, wenn der Puffer des Transports unter die untere Wasserlinie fällt.

Streaming-Protokolle (TCP, Unix-Sockets, Pipes)

callback data_received()

Wird aufgerufen, wenn Daten empfangen werden.

callback eof_received()

Wird aufgerufen, wenn ein EOF empfangen wird.

Gepufferte Streaming-Protokolle

callback get_buffer()

Wird aufgerufen, um einen neuen Empfangspuffer zuzuweisen.

callback buffer_updated()

Wird aufgerufen, wenn der Puffer mit den empfangenen Daten aktualisiert wurde.

callback eof_received()

Wird aufgerufen, wenn ein EOF empfangen wird.

Datagramm-Protokolle

callback datagram_received()

Wird aufgerufen, wenn ein Datagramm empfangen wird.

callback error_received()

Wird aufgerufen, wenn eine vorherige Sende- oder Empfangsoperation eine OSError auslöst.

Subprozess-Protokolle

callback pipe_data_received()

Wird aufgerufen, wenn der Kindprozess Daten in seine stdout- oder stderr-Pipe schreibt.

callback pipe_connection_lost()

Wird aufgerufen, wenn eine der Pipes, die mit dem Kindprozess kommunizieren, geschlossen wird.

callback process_exited()

Wird aufgerufen, wenn der Kindprozess beendet wurde. Dies kann vor den Methoden pipe_data_received() und pipe_connection_lost() aufgerufen werden.

Event Loop Policies

Policies sind ein Low-level-Mechanismus, um das Verhalten von Funktionen wie asyncio.get_event_loop() zu ändern. Siehe auch den Hauptabschnitt Policies für weitere Details.

Zugriff auf Policies

asyncio.get_event_loop_policy()

Gibt die aktuelle prozessweite Policy zurück.

asyncio.set_event_loop_policy()

Setzt eine neue prozessweite Policy.

AbstractEventLoopPolicy

Basisklasse für Policy-Objekte.