اندیس API سطح پایین

این صفحه همه‌ی APIهای سطح پایین asyncio را فهرست می‌کند.

به دست آوردن حلقه رویداد

asyncio.get_running_loop()

تابع ارجح برای دریافت حلقه رویداد در حال اجرا.

asyncio.get_event_loop()

نمونه‌ای از حلقه رویداد را دریافت کنید (در حال اجرا یا جاری از طریق سیاست جاری).

asyncio.set_event_loop()

حلقه رویداد را از طریق سیاست جاری به‌عنوان حلقه جاری تنظیم کنید.

asyncio.new_event_loop()

یک حلقه رویداد جدید ایجاد کنید.

مثال‌ها

متدهای حلقه رویداد

همچنین بخش اصلی مستندات درباره متدهای حلقه رویداد را ببینید.

چرخه حیات

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()

گونه‌ای ایمن از نظر نخ‌ها (thread-safe) از loop.call_soon().

loop.call_later()

یک کال‌بک را پس از زمان داده‌شده فراخوانی کنید.

loop.call_at()

یک کال‌بک را در زمان داده‌شده فراخوانی کنید.

استخر نخ/مفسر/فرایند

await loop.run_in_executor()

یک تابع محدود به CPU یا یک تابع مسدودکننده دیگر را در یک اجراکننده (executor) از concurrent.futures اجرا کنید.

loop.set_default_executor()

اجراکننده‌ی پیش‌فرض را برای loop.run_in_executor() تنظیم کنید.

وظایف و آینده‌نماها (Tasks and Futures)

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()

باز کردن یک اتصال سوکت یونیکس.

await loop.create_unix_server()

یک سرور سوکت یونیکس ایجاد کنید.

await loop.connect_accepted_socket()

یک socket را در یک جفت (transport, protocol) قرار دهید.

await loop.create_datagram_endpoint()

باز کردن یک اتصال دیتاگرام (UDP).

await loop.sendfile()

ارسال یک پرونده از طریق یک انتقال.

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_recvfrom()

یک دیتاگرام را از socket دریافت کنید.

await loop.sock_recvfrom_into()

یک دیتاگرام را از socket در یک بافر دریافت کنید.

await loop.sock_sendall()

داده را به socket ارسال کنید.

await loop.sock_sendto()

یک دیتاگرام را از طریق socket به نشانی داده‌شده ارسال کنید.

await loop.sock_connect()

اتصال socket.

await loop.sock_accept()

یک اتصال socket را می‌پذیرد.

await loop.sock_sendfile()

یک پرونده را از طریق socket ارسال کنید.

loop.add_reader()

آغاز پایش یک توصیف‌گر پرونده برای دسترس‌پذیری جهت خواندن.

loop.remove_reader()

پایش یک توصیف‌گر پرونده را برای دسترس‌پذیری جهت خواندن متوقف کنید.

loop.add_writer()

شروع به پایش یک توصیف‌گر پرونده برای آمادگی نوشتن کنید.

loop.remove_writer()

پایش یک توصیف‌گر پرونده از نظر دسترس‌پذیری برای نوشتن را متوقف کنید.

سیگنال‌های یونیکس

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() و غیره برگردانده می‌شوند:

انتقال‌های نوشتن (Write Transports)

transport.write()

داده‌ها را در انتقال بنویسید.

transport.writelines()

بافرها را به انتقال بنویسید.

transport.can_write_eof()

اگر انتقال از ارسال EOF پشتیبانی کند، True را برمی‌گرداند.

transport.write_eof()

بستن و ارسال EOF پس از تخلیه‌ی داده‌های بافرشده.

transport.abort()

انتقال را بلافاصله ببندید.

transport.get_write_buffer_size()

اندازه‌ی فعلی بافر خروجی را برمی‌گرداند.

transport.get_write_buffer_limits()

حد آستانه‌های بالا و پایین (high and low water marks) برای کنترل جریان نوشتن را برمی‌گرداند.

transport.set_write_buffer_limits()

آستانه‌های بالا و پایین جدید را برای کنترل جریان نوشتن تنظیم کنید.

انتقال‌های برگردانده‌شده توسط loop.create_datagram_endpoint():

انتقال‌های دیتاگرام (Datagram Transports)

transport.sendto()

داده‌ها را به همتای راه‌دور ارسال کنید.

transport.abort()

انتقال را بلافاصله ببندید.

انتزاع انتقال سطح پایین بر روی زیرفرایندها. توسط loop.subprocess_exec() و loop.subprocess_shell() برگردانده می‌شود:

ترابری‌های زیرفرآیند

transport.get_pid()

شناسه‌ی فرایند زیرفرایند را بازمی‌گرداند.

transport.get_pipe_transport()

انتقال برای پایپ ارتباطی درخواست‌شده (stdin، stdout یا stderr) را برمی‌گرداند.

transport.get_returncode()

کد بازگشتی زیرفرایند را برمی‌گرداند.

transport.kill()

زیرفرایند را بکشید.

transport.send_signal()

سیگنالی به زیرفرایند ارسال کنید.

transport.terminate()

زیرفرایند را متوقف کنید.

transport.close()

زیرفرایند را خاتمه دهید و تمام پایپ‌ها را ببندید.

پروتکل‌ها

کلاس‌های پروتکل می‌توانند متدهای کال‌بک زیر را پیاده‌سازی کنند:

callback connection_made()

هنگامی که یک اتصال برقرار می‌شود، فراخوانی می‌شود.

callback connection_lost()

هنگامی که اتصال قطع یا بسته می‌شود، فراخوانی می‌شود.

callback pause_writing()

هنگامی که بافرانتقال از آستانه بالا (high water mark) عبور کند، فراخوانی می‌شود.

callback resume_writing()

هنگامی که بافرانتقال به زیر آستانه پایین (low water mark) تخلیه شود، فراخوانی می‌شود.

پروتکل‌های جریانی (TCP، Unix Sockets، Pipes)

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()

هنگامی که فرایند فرزند خارج شده باشد، فراخوانی می‌شود. ممکن است پیش از متدهای pipe_data_received() و pipe_connection_lost() فراخوانی شود.

سیاست‌های حلقه رویداد

سیاست‌ها یک سازوکار سطح پایین برای تغییر رفتار توابعی مانند asyncio.get_event_loop() هستند. همچنین برای جزئیات بیشتر، بخش اصلی سیاست‌ها را ببینید.

دسترسی به سیاست‌ها

asyncio.get_event_loop_policy()

سیاست جاری در سطح فرآیند را برمی‌گرداند.

asyncio.set_event_loop_policy()

یک خط‌مشی جدید برای کل فرایند تنظیم کنید.

AbstractEventLoopPolicy

کلاس پایه برای اشیای سیاست.