Skip to content

Commit 3a168b9

Browse files
committed
MInor doc update.
1 parent 12933d5 commit 3a168b9

File tree

8 files changed

+345
-390
lines changed

8 files changed

+345
-390
lines changed

README.md

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,11 @@
11
# Python Bunny MQ
2-
Python-based package that implements a no-dependency, ultra-lightweight intra-process message queue. This works inside a single process.
2+
Python-based package that implements a no-dependency, ultra-lightweight intra-process message queue. This works inside a single process, running in a separate thread.
3+
![](https://raw.githubusercontent.com/tangledpath/python-bunny-mq/master/bunny-sm.png)
4+
35
* This is useful when you need a lightweight pub-sub system.
4-
* For example, the author is using it in development to send messages to local handlers.
5-
* These handlers are ultimately deployed to AWS and are invoked as a lambda function via SQS, so the dev-time "bunny-mq" will not be used.
6-
* In this case we use dependency injection to inject the correct MQ facade based on a `FAST_API_ENV` environment variable.
6+
* Introduce intra-process decoupling without running a separate service.
77
* It is backed by python's multiproducer, multiconsumer [queue](https://docs.python.org/3/library/queue.html).
88

9-
<p>
10-
<img src="https://raw.githubusercontent.com/tangledpath/python-bunny-mq/master/bunny.png" align="left" width="512"/>
11-
</p>
12-
<p>&nbsp</p>
13-
<p>&nbsp</p>
14-
<p>&nbsp</p>
15-
<p>&nbsp</p>
16-
<p>&nbsp</p>
17-
<p>&nbsp</p>
18-
<p>&nbsp</p>
19-
<p>&nbsp</p>
20-
<p>&nbsp</p>
21-
<p>&nbsp</p>
22-
<p>&nbsp</p>
23-
<p>&nbsp</p>
24-
<p>&nbsp</p>
259

2610
## Homepage
2711
https://pypi.org/project/python-bunny-mq/

docs/python_bunny_mq.html

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -60,48 +60,15 @@ <h1 class="modulename">
6060

6161
<div class="docstring"><h1 id="python-bunny-mq">Python Bunny MQ</h1>
6262

63-
<p>Python-based package that implements a no-dependency, ultra-lightweight intra-process message queue. This works inside a single process. </p>
63+
<p>Python-based package that implements a no-dependency, ultra-lightweight intra-process message queue. This works inside a single process, running in a separate thread.
64+
<img src="https://raw.githubusercontent.com/tangledpath/python-bunny-mq/master/bunny-sm.png" alt="" /></p>
6465

6566
<ul>
6667
<li>This is useful when you need a lightweight pub-sub system.</li>
67-
<li>For example, the author is using it in development to send messages to local handlers. <br />
68-
<ul>
69-
<li>These handlers are ultimately deployed to AWS and are invoked as a lambda function via SQS, so the dev-time "bunny-mq" will not be used.</li>
70-
<li>In this case we use dependency injection to inject the correct MQ facade based on a <code>FAST_API_ENV</code> environment variable.</li>
71-
</ul></li>
68+
<li>Introduce intra-process decoupling without running a separate service. </li>
7269
<li>It is backed by python's multiproducer, multiconsumer <a href="https://docs.python.org/3/library/queue.html">queue</a>. </li>
7370
</ul>
7471

75-
<p>
76-
<img src="https://raw.githubusercontent.com/tangledpath/python-bunny-mq/master/bunny.png" align="left" width="512"/>
77-
</p>
78-
79-
<p>&nbsp</p>
80-
81-
<p>&nbsp</p>
82-
83-
<p>&nbsp</p>
84-
85-
<p>&nbsp</p>
86-
87-
<p>&nbsp</p>
88-
89-
<p>&nbsp</p>
90-
91-
<p>&nbsp</p>
92-
93-
<p>&nbsp</p>
94-
95-
<p>&nbsp</p>
96-
97-
<p>&nbsp</p>
98-
99-
<p>&nbsp</p>
100-
101-
<p>&nbsp</p>
102-
103-
<p>&nbsp</p>
104-
10572
<h2 id="homepage">Homepage</h2>
10673

10774
<p><a href="https://pypi.org/project/python-bunny-mq/">https://pypi.org/project/python-bunny-mq/</a></p>

docs/python_bunny_mq/bunny_mq.html

Lines changed: 321 additions & 318 deletions
Large diffs are not rendered by default.

docs/python_bunny_mq/test_bunny_queue.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ <h1 class="modulename">
7777
</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> <span class="k">try</span><span class="p">:</span>
7878
</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">register_handler</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">,</span> <span class="n">foo_handler</span><span class="p">)</span>
7979
</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
80-
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">({</span><span class="s1">&#39;command&#39;</span><span class="p">:</span> <span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobar&quot;</span><span class="p">})</span>
80+
</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobar&quot;</span><span class="p">})</span>
8181
</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="k">finally</span><span class="p">:</span>
8282
</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
8383
</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a>
@@ -103,8 +103,8 @@ <h1 class="modulename">
103103
</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="k">try</span><span class="p">:</span>
104104
</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">register_handler</span><span class="p">(</span><span class="n">BunnyMQ</span><span class="o">.</span><span class="n">WILDCARD_HANDLER</span><span class="p">,</span> <span class="n">wildcard_handler</span><span class="p">)</span>
105105
</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
106-
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">({</span><span class="s1">&#39;command&#39;</span><span class="p">:</span> <span class="s1">&#39;bar&#39;</span><span class="p">,</span> <span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;barfood&quot;</span><span class="p">})</span>
107-
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">({</span><span class="s1">&#39;command&#39;</span><span class="p">:</span> <span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobard&quot;</span><span class="p">})</span>
106+
</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;barfood&quot;</span><span class="p">})</span>
107+
</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="s1">&#39;bar&#39;</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobard&quot;</span><span class="p">})</span>
108108
</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="k">finally</span><span class="p">:</span>
109109
</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
110110
</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a>
@@ -143,7 +143,7 @@ <h1 class="modulename">
143143
</span><span id="test_simple_message-17"><a href="#test_simple_message-17"><span class="linenos">17</span></a> <span class="k">try</span><span class="p">:</span>
144144
</span><span id="test_simple_message-18"><a href="#test_simple_message-18"><span class="linenos">18</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">register_handler</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">,</span> <span class="n">foo_handler</span><span class="p">)</span>
145145
</span><span id="test_simple_message-19"><a href="#test_simple_message-19"><span class="linenos">19</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
146-
</span><span id="test_simple_message-20"><a href="#test_simple_message-20"><span class="linenos">20</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">({</span><span class="s1">&#39;command&#39;</span><span class="p">:</span> <span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobar&quot;</span><span class="p">})</span>
146+
</span><span id="test_simple_message-20"><a href="#test_simple_message-20"><span class="linenos">20</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobar&quot;</span><span class="p">})</span>
147147
</span><span id="test_simple_message-21"><a href="#test_simple_message-21"><span class="linenos">21</span></a> <span class="k">finally</span><span class="p">:</span>
148148
</span><span id="test_simple_message-22"><a href="#test_simple_message-22"><span class="linenos">22</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
149149
</span><span id="test_simple_message-23"><a href="#test_simple_message-23"><span class="linenos">23</span></a>
@@ -186,8 +186,8 @@ <h1 class="modulename">
186186
</span><span id="test_wildcard_handler-43"><a href="#test_wildcard_handler-43"><span class="linenos">43</span></a> <span class="k">try</span><span class="p">:</span>
187187
</span><span id="test_wildcard_handler-44"><a href="#test_wildcard_handler-44"><span class="linenos">44</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">register_handler</span><span class="p">(</span><span class="n">BunnyMQ</span><span class="o">.</span><span class="n">WILDCARD_HANDLER</span><span class="p">,</span> <span class="n">wildcard_handler</span><span class="p">)</span>
188188
</span><span id="test_wildcard_handler-45"><a href="#test_wildcard_handler-45"><span class="linenos">45</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
189-
</span><span id="test_wildcard_handler-46"><a href="#test_wildcard_handler-46"><span class="linenos">46</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">({</span><span class="s1">&#39;command&#39;</span><span class="p">:</span> <span class="s1">&#39;bar&#39;</span><span class="p">,</span> <span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;barfood&quot;</span><span class="p">})</span>
190-
</span><span id="test_wildcard_handler-47"><a href="#test_wildcard_handler-47"><span class="linenos">47</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">({</span><span class="s1">&#39;command&#39;</span><span class="p">:</span> <span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobard&quot;</span><span class="p">})</span>
189+
</span><span id="test_wildcard_handler-46"><a href="#test_wildcard_handler-46"><span class="linenos">46</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;barfood&quot;</span><span class="p">})</span>
190+
</span><span id="test_wildcard_handler-47"><a href="#test_wildcard_handler-47"><span class="linenos">47</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">send_message</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="s1">&#39;bar&#39;</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;body&#39;</span><span class="p">:</span> <span class="s2">&quot;foobard&quot;</span><span class="p">})</span>
191191
</span><span id="test_wildcard_handler-48"><a href="#test_wildcard_handler-48"><span class="linenos">48</span></a> <span class="k">finally</span><span class="p">:</span>
192192
</span><span id="test_wildcard_handler-49"><a href="#test_wildcard_handler-49"><span class="linenos">49</span></a> <span class="n">bunny</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
193193
</span><span id="test_wildcard_handler-50"><a href="#test_wildcard_handler-50"><span class="linenos">50</span></a>

docs/search.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "python-bunny-mq"
3-
version = "0.1.6"
3+
version = "0.1.8"
44
description = "Ultra-lightweight (no-dependency) message queue for intra-process pub-sub communication."
55
authors = ["Steven Miers <steven.miers@gmail.com>"]
66
license = "THE UNLICENSE"

python_bunny_mq/bunny_mq.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,18 @@ def __init__(self, name: str = DEFAULT_NAME, timeout: float = 1.0, interval: flo
5858
self.processed_count = 0
5959
self.processed_events = BoundedDict()
6060

61-
def send_message(self, message: Dict[str, Any]):
61+
def send_message(self, command:str, message: Dict[str, Any]) -> Dict[str, Any]:
6262
""" Stores a message in the queue, to processed by any registered handlers"""
63-
logger.info(f"Sending message: {message}", {"name": self.name})
63+
logger.info(f"Sending message[{command}]: {message}", {"name": self.name})
6464
result = None
6565
if self.stopping:
6666
logger.info(f"Queue is stopped; blocking message: {message}", {
6767
"name": self.name
6868
})
6969
else:
70-
message_id = uuid.uuid4()
70+
message_id = str(uuid.uuid4())
7171
metadata = {
72+
'command': command,
7273
'MD5OfMessageBody': hashlib.md5(json.dumps(message).encode()).hexdigest(),
7374
'MessageId': message_id,
7475
'SequenceNumber': self.sequence_number
@@ -118,7 +119,7 @@ def handle_message(self):
118119
message: Dict[str, Any] = full_event["message"]
119120
metadata: Dict[str, Any] = full_event["metadata"]
120121

121-
message_cmd = message.get("command", None)
122+
message_cmd = metadata.get("command", None)
122123
processed = False
123124
if message_cmd:
124125
handlers = self.handlers.get(message_cmd, None)

python_bunny_mq/test_bunny_queue.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def foo_handler(message):
1616
try:
1717
bunny.register_handler("foo", foo_handler)
1818
bunny.start()
19-
bunny.send_message({'command': 'foo', 'body': "foobar"})
19+
bunny.send_message(command='foo', message={'body': "foobar"})
2020
finally:
2121
bunny.stop()
2222

@@ -42,13 +42,13 @@ def wildcard_handler(message):
4242
try:
4343
bunny.register_handler(BunnyMQ.WILDCARD_HANDLER, wildcard_handler)
4444
bunny.start()
45-
bunny.send_message({'command': 'bar', 'body': "barfood"})
46-
bunny.send_message({'command': 'foo', 'body': "foobard"})
45+
bunny.send_message(command='foo', message={'body': "barfood"})
46+
bunny.send_message(command='bar', message={'body': "foobard"})
4747
finally:
4848
bunny.stop()
4949

5050
assert handled == 2
5151
assert len(bunny) == 0
5252
assert bunny.sequence_number == 2
5353
assert bunny.processed_count == 2
54-
assert len(bunny.processed_events) == 2
54+
assert len(bunny.processed_events) == 2

0 commit comments

Comments
 (0)