23
23
<script type="text/javascript" src="../_static/underscore.js"></script>
24
24
<script type="text/javascript" src="../_static/doctools.js"></script>
25
25
<link rel="top" title="BallotBox v0.1 documentation" href="../index.html" />
26
<link rel="next" title="License" href="LICENSE.html" />
26
<link rel="next" title="Voting Methods" href="methods/VOTINGMETHODS.html" />
27
27
<link rel="prev" title="Installation" href="INSTALL.html" />
37
37
<a href="../py-modindex.html" title="Python Module Index"
38
38
>modules</a> |</li>
39
39
<li class="right" >
40
<a href="LICENSE.html" title="License"
40
<a href="methods/VOTINGMETHODS.html" title="Voting Methods"
41
41
accesskey="N">next</a> |</li>
42
42
<li class="right" >
43
43
<a href="INSTALL.html" title="Installation"
55
55
<h1>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h1>
56
56
<p>Below is a quick introduction to the usage of the API. The voting method used
57
57
in this example is simple majority. Simple majority rule voting is mostly
58
useful for binary decision. Below are some examples involving just two
58
useful for binary decisions. Here are some examples involving just two
60
60
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">ballotbox.ballot</span> <span class="kn">import</span> <span class="n">BallotBox</span>
61
61
<span class="gp">>>> </span><span class="kn">from</span> <span class="nn">ballotbox.singlewinner.simple</span> <span class="kn">import</span> <span class="n">MajorityRuleVoting</span>
63
63
<span class="gp">>>> </span><span class="n">bb</span> <span class="o">=</span> <span class="n">BallotBox</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="n">MajorityRuleVoting</span><span class="p">)</span>
64
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"alice"</span><span class="p">,</span> <span class="mi">10000</span><span class="p">),</span> <span class="p">(</span><span class="s">"bob"</span><span class="p">,</span> <span class="mi">5000</span><span class="p">)])</span>
64
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"alice"</span><span class="p">,</span> <span class="mf">10000</span><span class="p">),</span> <span class="p">(</span><span class="s">"bob"</span><span class="p">,</span> <span class="mf">5000</span><span class="p">)])</span>
65
65
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">get_winner</span><span class="p">()</span>
66
66
<span class="go">[(10000, 'alice')]</span>
68
68
<span class="gp">>>> </span><span class="n">bb</span> <span class="o">=</span> <span class="n">BallotBox</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="n">MajorityRuleVoting</span><span class="p">)</span>
69
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"bob"</span><span class="p">,</span> <span class="mi">5000</span><span class="p">),</span> <span class="p">(</span><span class="s">"carol"</span><span class="p">,</span> <span class="mi">5001</span><span class="p">)])</span>
69
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"bob"</span><span class="p">,</span> <span class="mf">5000</span><span class="p">),</span> <span class="p">(</span><span class="s">"carol"</span><span class="p">,</span> <span class="mf">5001</span><span class="p">)])</span>
70
70
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">get_winner</span><span class="p">()</span>
71
71
<span class="go">[(5001, 'carol')]</span>
74
74
<p>This method breaks down with ties and is not guaranteed to work with more than
76
76
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">bb</span> <span class="o">=</span> <span class="n">BallotBox</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="n">MajorityRuleVoting</span><span class="p">)</span>
77
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"alice"</span><span class="p">,</span> <span class="mi">8000</span><span class="p">),</span> <span class="p">(</span><span class="s">"carol"</span><span class="p">,</span> <span class="mi">8000</span><span class="p">)])</span>
77
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"alice"</span><span class="p">,</span> <span class="mf">8000</span><span class="p">),</span> <span class="p">(</span><span class="s">"carol"</span><span class="p">,</span> <span class="mf">8000</span><span class="p">)])</span>
78
78
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">get_winner</span><span class="p">()</span>
79
79
<span class="go">[]</span>
82
82
<p>No result is returned. Likewise for edge cases with more than two candidates:</p>
83
83
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">bb</span> <span class="o">=</span> <span class="n">BallotBox</span><span class="p">(</span><span class="n">method</span><span class="o">=</span><span class="n">MajorityRuleVoting</span><span class="p">)</span>
84
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"alice"</span><span class="p">,</span> <span class="mi">5000</span><span class="p">),</span> <span class="p">(</span><span class="s">"bob"</span><span class="p">,</span> <span class="mi">4000</span><span class="p">),</span> <span class="p">(</span><span class="s">"carol"</span><span class="p">,</span> <span class="mi">3000</span><span class="p">)])</span>
84
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">batch_votes</span><span class="p">([(</span><span class="s">"alice"</span><span class="p">,</span> <span class="mf">5000</span><span class="p">),</span> <span class="p">(</span><span class="s">"bob"</span><span class="p">,</span> <span class="mf">4000</span><span class="p">),</span> <span class="p">(</span><span class="s">"carol"</span><span class="p">,</span> <span class="mf">3000</span><span class="p">)])</span>
85
85
<span class="gp">>>> </span><span class="n">bb</span><span class="o">.</span><span class="n">get_winner</span><span class="p">()</span>
86
86
<span class="go">[]</span>
98
98
<p class="topless"><a href="INSTALL.html"
99
99
title="previous chapter">Installation</a></p>
100
100
<h4>Next topic</h4>
101
<p class="topless"><a href="LICENSE.html"
102
title="next chapter">License</a></p>
101
<p class="topless"><a href="methods/VOTINGMETHODS.html"
102
title="next chapter">Voting Methods</a></p>
103
103
<h3>This Page</h3>
104
104
<ul class="this-page-menu">
105
105
<li><a href="../_sources/docs/USAGE.txt"