Repository: qpid-site
Updated Branches:
  refs/heads/asf-site 4be7b17a5 -> 55375a760


http://git-wip-us.apache.org/repos/asf/qpid-site/blob/55375a76/input/releases/qpid-python-1.36.0/messaging-api/examples/spout.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-python-1.36.0/messaging-api/examples/spout.html.in 
b/input/releases/qpid-python-1.36.0/messaging-api/examples/spout.html.in
new file mode 100644
index 0000000..1d4509c
--- /dev/null
+++ b/input/releases/qpid-python-1.36.0/messaging-api/examples/spout.html.in
@@ -0,0 +1,118 @@
+
+<h1>spout</h1>
+<div class="highlight"><pre><span></span><span class="kn">import</span> <span 
class="nn">optparse</span><span class="o">,</span> <span class="nn">time</span>
+<span class="kn">from</span> <span class="nn">qpid.messaging</span> <span 
class="kn">import</span> <span class="o">*</span>
+<span class="kn">from</span> <span class="nn">qpid.util</span> <span 
class="kn">import</span> <span class="n">URL</span>
+<span class="kn">from</span> <span class="nn">qpid.log</span> <span 
class="kn">import</span> <span class="n">enable</span><span class="p">,</span> 
<span class="n">DEBUG</span><span class="p">,</span> <span class="n">WARN</span>
+
+<span class="k">def</span> <span class="nf">nameval</span><span 
class="p">(</span><span class="n">st</span><span class="p">):</span>
+  <span class="n">idx</span> <span class="o">=</span> <span 
class="n">st</span><span class="o">.</span><span class="n">find</span><span 
class="p">(</span><span class="s2">&quot;=&quot;</span><span class="p">)</span>
+  <span class="k">if</span> <span class="n">idx</span> <span 
class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
+    <span class="n">name</span> <span class="o">=</span> <span 
class="n">st</span><span class="p">[</span><span class="mi">0</span><span 
class="p">:</span><span class="n">idx</span><span class="p">]</span>
+    <span class="n">value</span> <span class="o">=</span> <span 
class="n">st</span><span class="p">[</span><span class="n">idx</span><span 
class="o">+</span><span class="mi">1</span><span class="p">:]</span>
+  <span class="k">else</span><span class="p">:</span>
+    <span class="n">name</span> <span class="o">=</span> <span 
class="n">st</span>
+    <span class="n">value</span> <span class="o">=</span> <span 
class="bp">None</span>
+  <span class="k">return</span> <span class="n">name</span><span 
class="p">,</span> <span class="n">value</span>
+
+<span class="n">parser</span> <span class="o">=</span> <span 
class="n">optparse</span><span class="o">.</span><span 
class="n">OptionParser</span><span class="p">(</span><span 
class="n">usage</span><span class="o">=</span><span class="s2">&quot;usage: 
%prog [options] ADDRESS [ CONTENT ... ]&quot;</span><span class="p">,</span>
+                               <span class="n">description</span><span 
class="o">=</span><span class="s2">&quot;Send messages to the supplied 
address.&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-b&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--broker&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span 
class="s2">&quot;localhost&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;connect to specified BROKER (default </span><span 
class="si">%d</span><span class="s2">efault)&quot;</span><span 
class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-r&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--reconnect&quot;</span><span class="p">,</span> <span 
class="n">action</span><span class="o">=</span><span 
class="s2">&quot;store_true&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;enable auto reconnect&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-i&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--reconnect-interval&quot;</span><span class="p">,</span> 
<span class="nb">type</span><span class="o">=</span><span 
class="s2">&quot;float&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span class="mi">3</span><span 
class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;interval between reconnect attempts&quot;</span><span 
class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-l&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--reconnect-limit&quot;</span><span class="p">,</span> <span 
class="nb">type</span><span class="o">=</span><span 
class="s2">&quot;int&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;maximum number of reconnect attempts&quot;</span><span 
class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-c&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--count&quot;</span><span class="p">,</span> <span 
class="nb">type</span><span class="o">=</span><span 
class="s2">&quot;int&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span class="mi">1</span><span 
class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;stop after count messages have been sent, zero disables 
(default </span><span class="si">%d</span><span 
class="s2">efault)&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-d&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--durable&quot;</span><span class="p">,</span> <span 
class="n">action</span><span class="o">=</span><span 
class="s2">&quot;store_true&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;make the message persistent&quot;</span><span 
class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-t&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--timeout&quot;</span><span class="p">,</span> <span 
class="nb">type</span><span class="o">=</span><span 
class="s2">&quot;float&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span 
class="bp">None</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;exit after the specified time&quot;</span><span 
class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-I&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--id&quot;</span><span class="p">,</span> <span 
class="n">help</span><span class="o">=</span><span class="s2">&quot;use the 
supplied id instead of generating one&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-S&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--subject&quot;</span><span class="p">,</span> <span 
class="n">help</span><span class="o">=</span><span class="s2">&quot;specify a 
subject&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-R&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--reply-to&quot;</span><span class="p">,</span> <span 
class="n">help</span><span class="o">=</span><span class="s2">&quot;specify 
reply-to address&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-P&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--property&quot;</span><span class="p">,</span> <span 
class="n">dest</span><span class="o">=</span><span 
class="s2">&quot;properties&quot;</span><span class="p">,</span> <span 
class="n">action</span><span class="o">=</span><span 
class="s2">&quot;append&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span class="p">[],</span>
+                  <span class="n">metavar</span><span class="o">=</span><span 
class="s2">&quot;NAME=VALUE&quot;</span><span class="p">,</span> <span 
class="n">help</span><span class="o">=</span><span class="s2">&quot;specify 
message property&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-M&quot;</span><span class="p">,</span> <span 
class="s2">&quot;--map&quot;</span><span class="p">,</span> <span 
class="n">dest</span><span class="o">=</span><span 
class="s2">&quot;entries&quot;</span><span class="p">,</span> <span 
class="n">action</span><span class="o">=</span><span 
class="s2">&quot;append&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span class="p">[],</span>
+                  <span class="n">metavar</span><span class="o">=</span><span 
class="s2">&quot;KEY=VALUE&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;specify map entry for message body&quot;</span><span 
class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s2">&quot;-v&quot;</span><span class="p">,</span> <span 
class="n">dest</span><span class="o">=</span><span 
class="s2">&quot;verbose&quot;</span><span class="p">,</span> <span 
class="n">action</span><span class="o">=</span><span 
class="s2">&quot;store_true&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s2">&quot;enable logging&quot;</span><span class="p">)</span>
+
+<span class="n">opts</span><span class="p">,</span> <span 
class="n">args</span> <span class="o">=</span> <span 
class="n">parser</span><span class="o">.</span><span 
class="n">parse_args</span><span class="p">()</span>
+
+<span class="k">if</span> <span class="n">opts</span><span 
class="o">.</span><span class="n">verbose</span><span class="p">:</span>
+  <span class="n">enable</span><span class="p">(</span><span 
class="s2">&quot;qpid&quot;</span><span class="p">,</span> <span 
class="n">DEBUG</span><span class="p">)</span>
+<span class="k">else</span><span class="p">:</span>
+  <span class="n">enable</span><span class="p">(</span><span 
class="s2">&quot;qpid&quot;</span><span class="p">,</span> <span 
class="n">WARN</span><span class="p">)</span>
+
+<span class="k">if</span> <span class="n">opts</span><span 
class="o">.</span><span class="n">id</span> <span class="ow">is</span> <span 
class="bp">None</span><span class="p">:</span>
+  <span class="n">spout_id</span> <span class="o">=</span> <span 
class="nb">str</span><span class="p">(</span><span class="n">uuid4</span><span 
class="p">())</span>
+<span class="k">else</span><span class="p">:</span>
+  <span class="n">spout_id</span> <span class="o">=</span> <span 
class="n">opts</span><span class="o">.</span><span class="n">id</span>
+<span class="k">if</span> <span class="n">args</span><span class="p">:</span>
+  <span class="n">addr</span> <span class="o">=</span> <span 
class="n">args</span><span class="o">.</span><span class="n">pop</span><span 
class="p">(</span><span class="mi">0</span><span class="p">)</span>
+<span class="k">else</span><span class="p">:</span>
+  <span class="n">parser</span><span class="o">.</span><span 
class="n">error</span><span class="p">(</span><span class="s2">&quot;address is 
required&quot;</span><span class="p">)</span>
+
+<span class="n">content</span> <span class="o">=</span> <span 
class="bp">None</span>
+<span class="n">content_type</span> <span class="o">=</span> <span 
class="bp">None</span>
+
+<span class="k">if</span> <span class="n">args</span><span class="p">:</span>
+  <span class="n">text</span> <span class="o">=</span> <span class="s2">&quot; 
&quot;</span><span class="o">.</span><span class="n">join</span><span 
class="p">(</span><span class="n">args</span><span class="p">)</span>
+<span class="k">else</span><span class="p">:</span>
+  <span class="n">text</span> <span class="o">=</span> <span 
class="bp">None</span>
+
+<span class="k">if</span> <span class="n">opts</span><span 
class="o">.</span><span class="n">entries</span><span class="p">:</span>
+  <span class="n">content</span> <span class="o">=</span> <span 
class="p">{}</span>
+  <span class="k">if</span> <span class="n">text</span><span class="p">:</span>
+    <span class="n">content</span><span class="p">[</span><span 
class="s2">&quot;text&quot;</span><span class="p">]</span> <span 
class="o">=</span> <span class="n">text</span>
+  <span class="k">for</span> <span class="n">e</span> <span 
class="ow">in</span> <span class="n">opts</span><span class="o">.</span><span 
class="n">entries</span><span class="p">:</span>
+    <span class="n">name</span><span class="p">,</span> <span 
class="n">val</span> <span class="o">=</span> <span 
class="n">nameval</span><span class="p">(</span><span class="n">e</span><span 
class="p">)</span>
+    <span class="n">content</span><span class="p">[</span><span 
class="n">name</span><span class="p">]</span> <span class="o">=</span> <span 
class="n">val</span>
+<span class="k">else</span><span class="p">:</span>
+  <span class="n">content</span> <span class="o">=</span> <span 
class="n">text</span>
+  <span class="c1"># no entries were supplied, so assume text/plain for</span>
+  <span class="c1"># compatibility with java (and other) clients</span>
+  <span class="n">content_type</span> <span class="o">=</span> <span 
class="s2">&quot;text/plain&quot;</span>
+
+<span class="n">conn</span> <span class="o">=</span> <span 
class="n">Connection</span><span class="p">(</span><span 
class="n">opts</span><span class="o">.</span><span class="n">broker</span><span 
class="p">,</span>
+                  <span class="n">reconnect</span><span 
class="o">=</span><span class="n">opts</span><span class="o">.</span><span 
class="n">reconnect</span><span class="p">,</span>
+                  <span class="n">reconnect_interval</span><span 
class="o">=</span><span class="n">opts</span><span class="o">.</span><span 
class="n">reconnect_interval</span><span class="p">,</span>
+                  <span class="n">reconnect_limit</span><span 
class="o">=</span><span class="n">opts</span><span class="o">.</span><span 
class="n">reconnect_limit</span><span class="p">)</span>
+<span class="k">try</span><span class="p">:</span>
+  <span class="n">conn</span><span class="o">.</span><span 
class="n">open</span><span class="p">()</span>
+  <span class="n">ssn</span> <span class="o">=</span> <span 
class="n">conn</span><span class="o">.</span><span 
class="n">session</span><span class="p">()</span>
+  <span class="n">snd</span> <span class="o">=</span> <span 
class="n">ssn</span><span class="o">.</span><span class="n">sender</span><span 
class="p">(</span><span class="n">addr</span><span class="p">)</span>
+
+  <span class="n">count</span> <span class="o">=</span> <span 
class="mi">0</span>
+  <span class="n">start</span> <span class="o">=</span> <span 
class="n">time</span><span class="o">.</span><span class="n">time</span><span 
class="p">()</span>
+  <span class="k">while</span> <span class="p">(</span><span 
class="n">opts</span><span class="o">.</span><span class="n">count</span> <span 
class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span 
class="n">count</span> <span class="o">&lt;</span> <span 
class="n">opts</span><span class="o">.</span><span class="n">count</span><span 
class="p">)</span> <span class="ow">and</span> \
+        <span class="p">(</span><span class="n">opts</span><span 
class="o">.</span><span class="n">timeout</span> <span class="ow">is</span> 
<span class="bp">None</span> <span class="ow">or</span> <span 
class="n">time</span><span class="o">.</span><span class="n">time</span><span 
class="p">()</span> <span class="o">-</span> <span class="n">start</span> <span 
class="o">&lt;</span> <span class="n">opts</span><span class="o">.</span><span 
class="n">timeout</span><span class="p">):</span>
+    <span class="n">msg</span> <span class="o">=</span> <span 
class="n">Message</span><span class="p">(</span><span 
class="n">subject</span><span class="o">=</span><span 
class="n">opts</span><span class="o">.</span><span 
class="n">subject</span><span class="p">,</span>
+                  <span class="n">reply_to</span><span class="o">=</span><span 
class="n">opts</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">,</span>
+                  <span class="n">content</span><span class="o">=</span><span 
class="n">content</span><span class="p">)</span>
+    <span class="k">if</span> <span class="n">opts</span><span 
class="o">.</span><span class="n">durable</span><span class="p">:</span>
+      <span class="n">msg</span><span class="o">.</span><span 
class="n">durable</span> <span class="o">=</span> <span class="bp">True</span>
+    <span class="k">if</span> <span class="n">content_type</span> <span 
class="ow">is</span> <span class="ow">not</span> <span 
class="bp">None</span><span class="p">:</span>
+        <span class="n">msg</span><span class="o">.</span><span 
class="n">content_type</span> <span class="o">=</span> <span 
class="n">content_type</span>
+    <span class="n">msg</span><span class="o">.</span><span 
class="n">properties</span><span class="p">[</span><span 
class="s2">&quot;spout-id&quot;</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">&quot;</span><span 
class="si">%s</span><span class="s2">:</span><span class="si">%s</span><span 
class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span 
class="n">spout_id</span><span class="p">,</span> <span 
class="n">count</span><span class="p">)</span>
+    <span class="k">for</span> <span class="n">p</span> <span 
class="ow">in</span> <span class="n">opts</span><span class="o">.</span><span 
class="n">properties</span><span class="p">:</span>
+      <span class="n">name</span><span class="p">,</span> <span 
class="n">val</span> <span class="o">=</span> <span 
class="n">nameval</span><span class="p">(</span><span class="n">p</span><span 
class="p">)</span>
+      <span class="n">msg</span><span class="o">.</span><span 
class="n">properties</span><span class="p">[</span><span 
class="n">name</span><span class="p">]</span> <span class="o">=</span> <span 
class="n">val</span>
+
+    <span class="n">snd</span><span class="o">.</span><span 
class="n">send</span><span class="p">(</span><span class="n">msg</span><span 
class="p">)</span>
+    <span class="n">count</span> <span class="o">+=</span> <span 
class="mi">1</span>
+    <span class="k">print</span> <span class="n">msg</span>
+<span class="k">except</span> <span class="n">SendError</span><span 
class="p">,</span> <span class="n">e</span><span class="p">:</span>
+  <span class="k">print</span> <span class="n">e</span>
+<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span>
+  <span class="k">pass</span>
+
+<span class="n">conn</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
+</pre></div>
+
+<p><a href="spout">Download this file</a></p>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/55375a76/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py 
b/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py
new file mode 100644
index 0000000..e095920
--- /dev/null
+++ b/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py
@@ -0,0 +1,139 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+import time
+
+TS = "ts"
+TIME_SEC = 1000000000
+MILLISECOND = 1000
+
+class Statistic:
+    def message(self, msg):
+        return
+    def report(self):
+        return ""
+    def header(self):
+        return ""
+
+
+class Throughput(Statistic):
+    def __init__(self):
+        self.messages = 0
+        self.started = False
+
+    def message(self, m):
+        self.messages += 1
+        if not self.started:
+            self.start = time.time()
+            self.started = True
+
+    def header(self):
+        return "tp(m/s)"
+
+    def report(self):
+       if self.started:
+            elapsed = time.time() - self.start
+            return str(int(self.messages/elapsed))
+       else:
+           return "0"
+
+
+class ThroughputAndLatency(Throughput):
+    def __init__(self):
+       Throughput.__init__(self)
+        self.total = 0.0
+        self.min = float('inf')
+        self.max = -float('inf')
+        self.samples = 0
+
+    def message(self, m):
+        Throughput.message(self, m)
+        if TS in m.properties:
+            self.samples+=1
+            latency = MILLISECOND * (time.time() - 
float(m.properties[TS])/TIME_SEC)
+            if latency > 0:
+                self.total += latency
+                if latency < self.min:
+                    self.min = latency
+                if latency > self.max:
+                    self.max = latency
+
+    def header(self):
+#        Throughput.header(self)
+        return "%s\tl-min\tl-max\tl-avg" % Throughput.header(self)
+
+    def report(self):
+        output = Throughput.report(self)
+        if (self.samples > 0):
+           output += "\t%.2f\t%.2f\t%.2f" %(self.min, self.max, 
self.total/self.samples)
+       return output
+
+
+# Report batch and overall statistics
+class ReporterBase:
+    def __init__(self, batch, wantHeader):
+        self.batchSize = batch
+        self.batchCount = 0
+        self.headerPrinted = not wantHeader
+        self.overall = None
+        self.batch = None
+
+    def create(self):
+        return
+
+    # Count message in the statistics
+    def message(self, m):
+        if self.overall == None:
+            self.overall = self.create()
+        self.overall.message(m)
+        if self.batchSize:
+            if self.batch == None:
+                self.batch = self.create()
+            self.batch.message(m)
+            self.batchCount+=1
+            if self.batchCount == self.batchSize:
+                self.header()
+                print self.batch.report()
+                self.create()
+                self.batchCount = 0
+
+    # Print overall report.
+    def report(self):
+        if self.overall == None:
+            self.overall = self.create()
+        self.header()
+        print self.overall.report()
+
+    def header(self):
+        if not self.headerPrinted:
+            if self.overall == None:
+                self.overall = self.create()
+            print self.overall.header()
+            self.headerPrinted = True
+
+
+class Reporter(ReporterBase):
+    def __init__(self, batchSize, wantHeader, Stats):
+        ReporterBase.__init__(self, batchSize, wantHeader)
+        self.__stats = Stats
+
+    def create(self):
+        ClassName = self.__stats.__class__
+        return ClassName()

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/55375a76/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py.html.in
 
b/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py.html.in
new file mode 100644
index 0000000..c5567fd
--- /dev/null
+++ 
b/input/releases/qpid-python-1.36.0/messaging-api/examples/statistics.py.html.in
@@ -0,0 +1,124 @@
+
+<h1>statistics.py</h1>
+<div class="highlight"><pre><span></span><span class="kn">import</span> <span 
class="nn">time</span>
+
+<span class="n">TS</span> <span class="o">=</span> <span 
class="s2">&quot;ts&quot;</span>
+<span class="n">TIME_SEC</span> <span class="o">=</span> <span 
class="mi">1000000000</span>
+<span class="n">MILLISECOND</span> <span class="o">=</span> <span 
class="mi">1000</span>
+
+<span class="k">class</span> <span class="nc">Statistic</span><span 
class="p">:</span>
+    <span class="k">def</span> <span class="nf">message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">msg</span><span class="p">):</span>
+        <span class="k">return</span>
+    <span class="k">def</span> <span class="nf">report</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+    <span class="k">def</span> <span class="nf">header</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="s2">&quot;&quot;</span>
+
+
+<span class="k">class</span> <span class="nc">Throughput</span><span 
class="p">(</span><span class="n">Statistic</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">messages</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">started</span> <span class="o">=</span> <span class="bp">False</span>
+
+    <span class="k">def</span> <span class="nf">message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">m</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">messages</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">started</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">start</span> <span class="o">=</span> <span 
class="n">time</span><span class="o">.</span><span class="n">time</span><span 
class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">started</span> <span class="o">=</span> <span class="bp">True</span>
+
+    <span class="k">def</span> <span class="nf">header</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span 
class="s2">&quot;tp(m/s)&quot;</span>
+
+    <span class="k">def</span> <span class="nf">report</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+       <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">started</span><span class="p">:</span>
+            <span class="n">elapsed</span> <span class="o">=</span> <span 
class="n">time</span><span class="o">.</span><span class="n">time</span><span 
class="p">()</span> <span class="o">-</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">start</span>
+            <span class="k">return</span> <span class="nb">str</span><span 
class="p">(</span><span class="nb">int</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">messages</span><span class="o">/</span><span 
class="n">elapsed</span><span class="p">))</span>
+       <span class="k">else</span><span class="p">:</span>
+           <span class="k">return</span> <span class="s2">&quot;0&quot;</span>
+
+
+<span class="k">class</span> <span class="nc">ThroughputAndLatency</span><span 
class="p">(</span><span class="n">Throughput</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+       <span class="n">Throughput</span><span class="o">.</span><span 
class="n">__init__</span><span class="p">(</span><span 
class="bp">self</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">total</span> <span class="o">=</span> <span class="mf">0.0</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">min</span> <span class="o">=</span> <span 
class="nb">float</span><span class="p">(</span><span 
class="s1">&#39;inf&#39;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">max</span> <span class="o">=</span> <span class="o">-</span><span 
class="nb">float</span><span class="p">(</span><span 
class="s1">&#39;inf&#39;</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">samples</span> <span class="o">=</span> <span class="mi">0</span>
+
+    <span class="k">def</span> <span class="nf">message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">m</span><span class="p">):</span>
+        <span class="n">Throughput</span><span class="o">.</span><span 
class="n">message</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span class="n">m</span><span 
class="p">)</span>
+        <span class="k">if</span> <span class="n">TS</span> <span 
class="ow">in</span> <span class="n">m</span><span class="o">.</span><span 
class="n">properties</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">samples</span><span class="o">+=</span><span class="mi">1</span>
+            <span class="n">latency</span> <span class="o">=</span> <span 
class="n">MILLISECOND</span> <span class="o">*</span> <span 
class="p">(</span><span class="n">time</span><span class="o">.</span><span 
class="n">time</span><span class="p">()</span> <span class="o">-</span> <span 
class="nb">float</span><span class="p">(</span><span class="n">m</span><span 
class="o">.</span><span class="n">properties</span><span 
class="p">[</span><span class="n">TS</span><span class="p">])</span><span 
class="o">/</span><span class="n">TIME_SEC</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">latency</span> <span 
class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">total</span> <span class="o">+=</span> <span class="n">latency</span>
+                <span class="k">if</span> <span class="n">latency</span> <span 
class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">min</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span 
class="n">min</span> <span class="o">=</span> <span class="n">latency</span>
+                <span class="k">if</span> <span class="n">latency</span> <span 
class="o">&gt;</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">max</span><span class="p">:</span>
+                    <span class="bp">self</span><span class="o">.</span><span 
class="n">max</span> <span class="o">=</span> <span class="n">latency</span>
+
+    <span class="k">def</span> <span class="nf">header</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<span class="c1">#        Throughput.header(self)</span>
+        <span class="k">return</span> <span class="s2">&quot;</span><span 
class="si">%s</span><span class="se">\t</span><span 
class="s2">l-min</span><span class="se">\t</span><span 
class="s2">l-max</span><span class="se">\t</span><span 
class="s2">l-avg&quot;</span> <span class="o">%</span> <span 
class="n">Throughput</span><span class="o">.</span><span 
class="n">header</span><span class="p">(</span><span 
class="bp">self</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">report</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="n">output</span> <span class="o">=</span> <span 
class="n">Throughput</span><span class="o">.</span><span 
class="n">report</span><span class="p">(</span><span 
class="bp">self</span><span class="p">)</span>
+        <span class="k">if</span> <span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">samples</span> 
<span class="o">&gt;</span> <span class="mi">0</span><span class="p">):</span>
+           <span class="n">output</span> <span class="o">+=</span> <span 
class="s2">&quot;</span><span class="se">\t</span><span 
class="si">%.2f</span><span class="se">\t</span><span 
class="si">%.2f</span><span class="se">\t</span><span 
class="si">%.2f</span><span class="s2">&quot;</span> <span 
class="o">%</span><span class="p">(</span><span class="bp">self</span><span 
class="o">.</span><span class="n">min</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">max</span><span 
class="p">,</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">total</span><span class="o">/</span><span class="bp">self</span><span 
class="o">.</span><span class="n">samples</span><span class="p">)</span>
+       <span class="k">return</span> <span class="n">output</span>
+
+
+<span class="c1"># Report batch and overall statistics</span>
+<span class="k">class</span> <span class="nc">ReporterBase</span><span 
class="p">:</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">batch</span><span class="p">,</span> <span 
class="n">wantHeader</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">batchSize</span> <span class="o">=</span> <span class="n">batch</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">batchCount</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">headerPrinted</span> <span class="o">=</span> <span 
class="ow">not</span> <span class="n">wantHeader</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">overall</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">batch</span> <span class="o">=</span> <span class="bp">None</span>
+
+    <span class="k">def</span> <span class="nf">create</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span>
+
+    <span class="c1"># Count message in the statistics</span>
+    <span class="k">def</span> <span class="nf">message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">m</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">overall</span> <span class="o">==</span> 
<span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">overall</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">create</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">overall</span><span class="o">.</span><span 
class="n">message</span><span class="p">(</span><span class="n">m</span><span 
class="p">)</span>
+        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">batchSize</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">batch</span> <span class="o">==</span> <span 
class="bp">None</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">batch</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">create</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">batch</span><span class="o">.</span><span 
class="n">message</span><span class="p">(</span><span class="n">m</span><span 
class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">batchCount</span><span class="o">+=</span><span class="mi">1</span>
+            <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">batchCount</span> <span class="o">==</span> 
<span class="bp">self</span><span class="o">.</span><span 
class="n">batchSize</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">header</span><span class="p">()</span>
+                <span class="k">print</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">batch</span><span class="o">.</span><span 
class="n">report</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">create</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">batchCount</span> <span class="o">=</span> <span class="mi">0</span>
+
+    <span class="c1"># Print overall report.</span>
+    <span class="k">def</span> <span class="nf">report</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">overall</span> <span class="o">==</span> 
<span class="bp">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">overall</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">create</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">header</span><span class="p">()</span>
+        <span class="k">print</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">overall</span><span class="o">.</span><span 
class="n">report</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">header</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">headerPrinted</span><span class="p">:</span>
+            <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">overall</span> <span class="o">==</span> 
<span class="bp">None</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">overall</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">create</span><span class="p">()</span>
+            <span class="k">print</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">overall</span><span class="o">.</span><span 
class="n">header</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">headerPrinted</span> <span class="o">=</span> <span 
class="bp">True</span>
+
+
+<span class="k">class</span> <span class="nc">Reporter</span><span 
class="p">(</span><span class="n">ReporterBase</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">batchSize</span><span class="p">,</span> <span 
class="n">wantHeader</span><span class="p">,</span> <span 
class="n">Stats</span><span class="p">):</span>
+        <span class="n">ReporterBase</span><span class="o">.</span><span 
class="n">__init__</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">batchSize</span><span class="p">,</span> <span 
class="n">wantHeader</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">__stats</span> <span class="o">=</span> <span class="n">Stats</span>
+
+    <span class="k">def</span> <span class="nf">create</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="n">ClassName</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">__stats</span><span class="o">.</span><span class="n">__class__</span>
+        <span class="k">return</span> <span class="n">ClassName</span><span 
class="p">()</span>
+</pre></div>
+
+<p><a href="statistics.py">Download this file</a></p>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/55375a76/input/releases/qpid-python-1.36.0/release-notes.md
----------------------------------------------------------------------
diff --git a/input/releases/qpid-python-1.36.0/release-notes.md 
b/input/releases/qpid-python-1.36.0/release-notes.md
new file mode 100644
index 0000000..9b49252
--- /dev/null
+++ b/input/releases/qpid-python-1.36.0/release-notes.md
@@ -0,0 +1,34 @@
+;;
+;; Licensed to the Apache Software Foundation (ASF) under one
+;; or more contributor license agreements.  See the NOTICE file
+;; distributed with this work for additional information
+;; regarding copyright ownership.  The ASF licenses this file
+;; to you under the Apache License, Version 2.0 (the
+;; "License"); you may not use this file except in compliance
+;; with the License.  You may obtain a copy of the License at
+;; 
+;;   http://www.apache.org/licenses/LICENSE-2.0
+;; 
+;; Unless required by applicable law or agreed to in writing,
+;; software distributed under the License is distributed on an
+;; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+;; KIND, either express or implied.  See the License for the
+;; specific language governing permissions and limitations
+;; under the License.
+;;
+
+# Qpid Python 1.36.0 Release Notes
+
+Qpid Python includes an AMQP messaging library and a suite of tests
+for AMQP conformance.
+
+For more information about this release, including download links and
+documentation, see the [release overview](index.html).
+
+
+## Bugs fixed
+
+ - [QPID-7317](https://issues.apache.org/jira/browse/QPID-7317) - Deadlock on 
publish
+ - [QPID-7423](https://issues.apache.org/jira/browse/QPID-7423) - [0-8...0-91] 
Chunk message content that exceeds the capacity of a single frame into multiple 
frames
+ - [QPID-7424](https://issues.apache.org/jira/browse/QPID-7424) - [0-8..0-91] 
Consuming python client application is not notified of remotely closed 
connection
+ - [QPID-7588](https://issues.apache.org/jira/browse/QPID-7588) - [Python 
Client 0-8..0-91] The received message ocasionally might not be dispatched into 
the application queue in timely manner
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to