python-greenlet/docs/api.rst

88 lines
2.4 KiB
ReStructuredText

======================
Python API Reference
======================
.. currentmodule:: greenlet
Exceptions
==========
.. autoexception:: GreenletExit
.. autoexception:: error
Greenlets
=========
.. autofunction:: getcurrent
.. autoclass:: greenlet
Greenlets support boolean tests: ``bool(g)`` is true if ``g`` is
active and false if it is dead or not yet started.
.. method:: switch(*args, **kwargs)
Switches execution to this greenlet. See :ref:`switching`.
.. automethod:: throw
.. autoattribute:: dead
True if this greenlet is dead (i.e., it finished its execution).
.. autoattribute:: gr_context
The :class:`contextvars.Context` in which ``g`` will run.
Writable; defaults to ``None``, reflecting that a greenlet
starts execution in an empty context unless told otherwise.
Generally, this should only be set once, before a greenlet
begins running. Accessing or modifying this attribute raises
:exc:`AttributeError` on Python versions 3.6 and earlier (which
don't natively support the `contextvars` module) or if
``greenlet`` was built without contextvars support.
For more information, see :doc:`contextvars`.
.. versionadded:: 1.0.0
.. autoattribute:: gr_frame
The frame that was active in this greenlet when it most recently
called ``some_other_greenlet.switch()``, and that will resume
execution when ``this_greenlet.switch()`` is next called. The remainder of
the greenlet's stack can be accessed by following the frame
object's ``f_back`` attributes. ``gr_frame`` is non-None only
for suspended greenlets; it is None if the greenlet is dead, not
yet started, or currently executing.
.. autoattribute:: parent
The parent greenlet. This is writable, but it is not allowed to create
cycles of parents.
A greenlet without a parent is the main greenlet of its thread.
Cannot be set to anything except a greenlet.
.. autoattribute:: run
The callable that this greenlet will run when it starts. After
it is started, this attribute no longer exists.
Subclasses can define this as a method on the type.
Tracing
=======
For details on tracing, see :doc:`tracing`.
.. autofunction:: gettrace
.. autofunction:: settrace
:param callback: A callable object with the signature
``callback(event, args)``.