File: classes.rst

package info (click to toggle)
toro 1.0.1-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, trixie
  • size: 392 kB
  • sloc: python: 2,054; makefile: 128
file content (118 lines) | stat: -rw-r--r-- 2,010 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
:mod:`toro` Classes
===================

.. currentmodule:: toro

.. contents:: Contents
   :local:

.. _primitives:

Primitives
~~~~~~~~~~

AsyncResult
-----------
.. autoclass:: AsyncResult
  :members:

Lock
----
.. autoclass:: Lock
  :members:

RWLock
------
.. autoclass:: RWLock
  :members:

Semaphore
---------
.. autoclass:: Semaphore
  :members:

BoundedSemaphore
----------------
.. autoclass:: BoundedSemaphore
  :members:

Condition
---------
.. autoclass:: Condition
  :members:

Event
-----
.. autoclass:: Event
  :members:

Queues
~~~~~~

Queue
-----
.. autoclass:: Queue
  :members:

PriorityQueue
-------------
.. autoclass:: PriorityQueue
  :members:

LifoQueue
---------
.. autoclass:: LifoQueue
  :members:

JoinableQueue
-------------
.. autoclass:: JoinableQueue
  :members:

Exceptions
~~~~~~~~~~

.. autoclass:: Timeout

.. autoclass:: NotReady

.. autoclass:: AlreadySet

Toro also uses exceptions Empty_ and Full_ from the standard module Queue_.

.. _Empty: http://docs.python.org/library/queue.html#Queue.Empty

.. _Full: http://docs.python.org/library/queue.html#Queue.Full

.. _Queue: http://docs.python.org/library/queue.html

Class relationships
~~~~~~~~~~~~~~~~~~~

Toro uses some of its primitives in the implementation of others.
For example, :class:`JoinableQueue` is a subclass of :class:`Queue`, and it
contains an :class:`Event`. (:class:`AsyncResult` stands alone.)

.. graphviz::

   digraph Toro {
       graph [splines=false];
       node [shape=record];

       // First show UML-style subclass relationships.
       edge [label=subclass arrowtail=empty arrowhead=none dir=both];

       Queue -> PriorityQueue
       Queue -> LifoQueue
       Queue -> JoinableQueue
       Semaphore -> BoundedSemaphore

       // Now UML-style composition or has-a relationships.
       edge [label="has a" arrowhead=odiamond arrowtail=none];

       Event -> JoinableQueue
       Condition -> Event
       Event -> Semaphore
       Queue -> Semaphore
       Semaphore -> Lock
   }