Changeset - 3378805b80ee
[Not reviewed]
doc/build/html/README.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>The Accounting API &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    './',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="_static/jquery.js"></script>
 
    <script type="text/javascript" src="_static/underscore.js"></script>
 
    <script type="text/javascript" src="_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="index.html" />
 
    <link rel="next" title="accounting package" href="api/accounting.html" />
 
    <link rel="next" title="REST API" href="restapi.html" />
 
    <link rel="prev" title="Welcome to Accounting API’s documentation!" href="index.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="api/accounting.html" title="accounting package"
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="restapi.html" title="REST API"
 
             accesskey="N">next</a> |</li>
 
        <li class="right" >
 
          <a href="index.html" title="Welcome to Accounting API’s documentation!"
 
             accesskey="P">previous</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <div class="section" id="the-accounting-api">
 
<h1>The Accounting API<a class="headerlink" href="#the-accounting-api" title="Permalink to this headline">¶</a></h1>
 
<div class="section" id="dependencies">
 
<h2>Dependencies<a class="headerlink" href="#dependencies" title="Permalink to this headline">¶</a></h2>
 
<ul class="simple">
 
<li>Python &gt;=3.3</li>
 
<li>ledger version 3 (I have not tried with version 2.x)</li>
 
<li>Python packages: Flask, etc. (install by running <tt class="docutils literal"><span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-r</span>
 
<span class="pre">requirements.txt</span></tt>)</li>
 
</ul>
 
<div class="section" id="gtk-client-dependencies">
 
<h3>GTK Client Dependencies<a class="headerlink" href="#gtk-client-dependencies" title="Permalink to this headline">¶</a></h3>
 
<p>To run the GTK client you need to have <tt class="docutils literal"><span class="pre">gi.repository</span></tt> avaiable in the python
 
environment, this means that if you use virtualenv to install the dependencies
 
of accounting-api you need to set it up with the <tt class="docutils literal"><span class="pre">--system-site-packages</span></tt>
 
flag.</p>
 
</div>
 
</div>
 
<div class="section" id="installation-i-e-development-setup">
 
<h2>Installation (i.e. Development Setup)<a class="headerlink" href="#installation-i-e-development-setup" title="Permalink to this headline">¶</a></h2>
 
<p>accounting-api does not yet have a method for end-user installation. This
 
section describes how you would set up accounting-api for development purposes,
 
which can also be used as an environment to try out the functionality of
 
accounting-api.</p>
 
<p>See the sections below on how to install the dependencies. Then run the
 
following in your shell.</p>
 
<div class="highlight-bash"><div class="highlight"><pre><span class="c"># Get the source code</span>
 
git clone git://gitorious.org/conservancy/accounting-api.git
 
<span class="nb">cd </span>accounting-api
 

	
 
<span class="c"># Set up the python 3.3 virtualenv (this will make the GTK client not work)</span>
 
mkvirtualenv -p /usr/bin/python3.3 accounting-api
 
<span class="c"># OR If you want the GTK client to work</span>
 
mkvirtualenv -p /usr/bin/python3.3 --system-site-packages accounting-api
 

	
 
<span class="c"># If your terminal prompt does not say &quot;(accounting-api)&quot;, run</span>
 
workon accounting-api
 

	
 
<span class="c"># Install the python packages</span>
 
pip-3.3 install -r requirements.txt
 
</pre></div>
 
</div>
 
<p>If all went well, head to <a class="reference internal" href="#usage"><em>Usage</em></a>. If not, head to the channel <tt class="docutils literal"><span class="pre">#npoacct</span></tt>
 
on <tt class="docutils literal"><span class="pre">irc.freenode.net</span></tt>.</p>
 
<div class="section" id="ubuntu">
 
<h3>Ubuntu<a class="headerlink" href="#ubuntu" title="Permalink to this headline">¶</a></h3>
 
<div class="highlight-bash"><div class="highlight"><pre><span class="c"># git python 3.3 and virtualenvwrapper</span>
 
sudo apt-get install git-core python3.3 virtualenvwrapper
 

	
 
<span class="c"># ledger 3</span>
 
sudo apt-add-repository ppa:mbudde/ledger
 
sudo apt-get update
 
sudo apt-get install ledger
 
</pre></div>
 
</div>
 
</div>
 
</div>
 
<div class="section" id="usage">
 
<span id="id1"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2>
 
<div class="highlight-bash"><div class="highlight"><pre><span class="c"># Run the web service</span>
 
<span class="nv">LEDGER_FILE</span><span class="o">=</span>../path/to/your.ledger ./bin/serve
 

	
 
<span class="c"># Get a balance report via the web service</span>
 
./bin/client balance
 

	
 
<span class="c"># Get the transaction log</span>
 
./bin/client register
 

	
 
<span class="c"># Insert a simple transaction, currency will be autodetected from your</span>
 
<span class="c"># locale, for another currency, use ``--symbol USD``</span>
 
./bin/client insert <span class="s2">&quot;January rent&quot;</span> Assets:Checking Expenses:Rent 654.32
 
</pre></div>
 
</div>
 
</div>
 
</div>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
  <h3><a href="index.html">Table Of Contents</a></h3>
 
  <ul>
 
<li><a class="reference internal" href="#">The Accounting API</a><ul>
 
<li><a class="reference internal" href="#dependencies">Dependencies</a><ul>
 
<li><a class="reference internal" href="#gtk-client-dependencies">GTK Client Dependencies</a></li>
 
</ul>
 
</li>
 
<li><a class="reference internal" href="#installation-i-e-development-setup">Installation (i.e. Development Setup)</a><ul>
 
<li><a class="reference internal" href="#ubuntu">Ubuntu</a></li>
 
</ul>
 
</li>
 
<li><a class="reference internal" href="#usage">Usage</a></li>
 
</ul>
 
</li>
 
</ul>
 

	
 
  <h4>Previous topic</h4>
 
  <p class="topless"><a href="index.html"
 
                        title="previous chapter">Welcome to Accounting API&#8217;s documentation!</a></p>
 
  <h4>Next topic</h4>
 
  <p class="topless"><a href="api/accounting.html"
 
                        title="next chapter">accounting package</a></p>
 
  <p class="topless"><a href="restapi.html"
 
                        title="next chapter">REST API</a></p>
 
  <h3>This Page</h3>
 
  <ul class="this-page-menu">
 
    <li><a href="_sources/README.txt"
 
           rel="nofollow">Show Source</a></li>
 
  </ul>
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="api/accounting.html" title="accounting package"
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="restapi.html" title="REST API"
 
             >next</a> |</li>
 
        <li class="right" >
 
          <a href="index.html" title="Welcome to Accounting API’s documentation!"
 
             >previous</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../index.html" />
 
    <link rel="up" title="Module code" href="index.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="index.html" accesskey="U">Module code</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting</h1><div class="highlight"><pre>
 
<span class="kn">import</span> <span class="nn">sys</span>
 
<span class="kn">import</span> <span class="nn">subprocess</span>
 
<span class="kn">import</span> <span class="nn">logging</span>
 
<span class="kn">import</span> <span class="nn">time</span>
 

	
 
<span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
 
<span class="kn">from</span> <span class="nn">xml.etree</span> <span class="kn">import</span> <span class="n">ElementTree</span>
 
<span class="kn">from</span> <span class="nn">contextlib</span> <span class="kn">import</span> <span class="n">contextmanager</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting.models</span> <span class="kn">import</span> <span class="n">Account</span><span class="p">,</span> <span class="n">Transaction</span><span class="p">,</span> <span class="n">Posting</span><span class="p">,</span> <span class="n">Amount</span>
 

	
 
<span class="n">_log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
 

	
 
<div class="viewcode-block" id="Ledger"><a class="viewcode-back" href="../api/accounting.html#accounting.Ledger">[docs]</a><span class="k">class</span> <span class="nc">Ledger</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">ledger_file</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ledger_bin</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
        <span class="k">if</span> <span class="n">ledger_file</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
 
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">&#39;ledger_file cannot be None&#39;</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">ledger_bin</span> <span class="o">=</span> <span class="n">ledger_bin</span> <span class="ow">or</span> <span class="s">&#39;ledger&#39;</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">ledger_file</span> <span class="o">=</span> <span class="n">ledger_file</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&#39;ledger file: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">ledger_file</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">locked</span> <span class="o">=</span> <span class="bp">False</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">ledger_process</span> <span class="o">=</span> <span class="bp">None</span>
 

	
 
    <span class="nd">@contextmanager</span>
 
<div class="viewcode-block" id="Ledger.locked_process"><a class="viewcode-back" href="../api/accounting.html#accounting.Ledger.locked_process">[docs]</a>    <span class="k">def</span> <span class="nf">locked_process</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="sd">r&#39;&#39;&#39;</span>
 
<span class="sd">        Context manager that checks that the ledger process is not already</span>
 
<span class="sd">        locked, then &quot;locks&quot; the process and yields the process handle and</span>
 
<span class="sd">        unlocks the process when execution is returned.</span>
 

	
 
<span class="sd">        Since this decorated as a :func:`contextlib.contextmanager` the</span>
 
<span class="sd">        recommended use is with the ``with``-statement.</span>
 

	
 
<span class="sd">        .. code-block:: python</span>
 

	
 
<span class="sd">            with self.locked_process() as p:</span>
 
<span class="sd">                p.stdin.write(b&#39;bal\n&#39;)</span>
 

	
 
<span class="sd">                output = self.read_until_prompt(p)</span>
 

	
 
<span class="sd">        &#39;&#39;&#39;</span>
 
        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">locked</span><span class="p">:</span>
 
            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">&#39;The process has already been locked,&#39;</span>
 
                               <span class="s">&#39; something</span><span class="se">\&#39;</span><span class="s">s out of order.&#39;</span><span class="p">)</span>
 

	
 
            <span class="c"># XXX: This code has no purpose in a single-threaded process</span>
 
            <span class="n">timeout</span> <span class="o">=</span> <span class="mi">5</span>  <span class="c"># Seconds</span>
 

	
 
            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">+</span> <span class="mi">2</span><span class="p">):</span>
 
                <span class="k">if</span> <span class="n">i</span> <span class="o">&gt;</span> <span class="n">timeout</span><span class="p">:</span>
 
                    <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">&#39;Ledger process is already locked&#39;</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">locked</span><span class="p">:</span>
 
                    <span class="k">break</span>
 
                <span class="k">else</span><span class="p">:</span>
 
                    <span class="n">_log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&#39;Waiting for one second... </span><span class="si">%d</span><span class="s">/</span><span class="si">%d</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span>
 
                    <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
 

	
 
        <span class="n">process</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_process</span><span class="p">()</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">locked</span> <span class="o">=</span> <span class="bp">True</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Lock enabled&#39;</span><span class="p">)</span>
 

	
 
        <span class="k">yield</span> <span class="n">process</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">locked</span> <span class="o">=</span> <span class="bp">False</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Lock disabled&#39;</span><span class="p">)</span>
 
</div>
 
<div class="viewcode-block" id="Ledger.assemble_arguments"><a class="viewcode-back" href="../api/accounting.html#accounting.Ledger.assemble_arguments">[docs]</a>    <span class="k">def</span> <span class="nf">assemble_arguments</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">        Returns a list of arguments suitable for :class:`subprocess.Popen` based on</span>
 
<span class="sd">        :attr:`self.ledger_bin` and :attr:`self.ledger_file`.</span>
 
<span class="sd">        &#39;&#39;&#39;</span>
 
        <span class="k">return</span> <span class="p">[</span>
 
            <span class="bp">self</span><span class="o">.</span><span class="n">ledger_bin</span><span class="p">,</span>
 
            <span class="s">&#39;-f&#39;</span><span class="p">,</span>
 
            <span class="bp">self</span><span class="o">.</span><span class="n">ledger_file</span><span class="p">,</span>
 
        <span class="p">]</span>
 
</div>
 
<div class="viewcode-block" id="Ledger.init_process"><a class="viewcode-back" href="../api/accounting.html#accounting.Ledger.init_process">[docs]</a>    <span class="k">def</span> <span class="nf">init_process</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
...
 
@@ -304,109 +307,112 @@
 

	
 
            <span class="k">for</span> <span class="n">posting</span> <span class="ow">in</span> <span class="n">transaction</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&#39;./postings/posting&#39;</span><span class="p">):</span>
 
                <span class="n">account</span> <span class="o">=</span> <span class="n">posting</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;./account/name&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 
                <span class="n">amount</span> <span class="o">=</span> <span class="n">posting</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;./post-amount/amount/quantity&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 
                <span class="n">symbol</span> <span class="o">=</span> <span class="n">posting</span><span class="o">.</span><span class="n">find</span><span class="p">(</span>
 
                    <span class="s">&#39;./post-amount/amount/commodity/symbol&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 

	
 
                <span class="c"># Get the posting metadata</span>
 
                <span class="n">metadata</span> <span class="o">=</span> <span class="p">{}</span>
 

	
 
                <span class="n">values</span> <span class="o">=</span> <span class="n">posting</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&#39;./metadata/value&#39;</span><span class="p">)</span>
 
                <span class="k">if</span> <span class="n">values</span><span class="p">:</span>
 
                    <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">values</span><span class="p">:</span>
 
                        <span class="n">key</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;key&#39;</span><span class="p">)</span>
 
                        <span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;./string&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 

	
 
                        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;metadata: </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
 

	
 
                        <span class="n">metadata</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="n">key</span><span class="p">:</span> <span class="n">value</span><span class="p">})</span>
 

	
 
                <span class="n">postings</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
 
                    <span class="n">Posting</span><span class="p">(</span><span class="n">account</span><span class="o">=</span><span class="n">account</span><span class="p">,</span>
 
                            <span class="n">metadata</span><span class="o">=</span><span class="n">metadata</span><span class="p">,</span>
 
                            <span class="n">amount</span><span class="o">=</span><span class="n">Amount</span><span class="p">(</span><span class="n">amount</span><span class="o">=</span><span class="n">amount</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="n">symbol</span><span class="p">)))</span>
 

	
 
            <span class="c"># Get the transaction metadata</span>
 
            <span class="n">metadata</span> <span class="o">=</span> <span class="p">{}</span>
 

	
 
            <span class="n">values</span> <span class="o">=</span> <span class="n">transaction</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&#39;./metadata/value&#39;</span><span class="p">)</span>
 
            <span class="k">if</span> <span class="n">values</span><span class="p">:</span>
 
                <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">values</span><span class="p">:</span>
 
                    <span class="n">key</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;key&#39;</span><span class="p">)</span>
 
                    <span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;./string&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 

	
 
                    <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;metadata: </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
 

	
 
                    <span class="n">metadata</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="n">key</span><span class="p">:</span> <span class="n">value</span><span class="p">})</span>
 

	
 
            <span class="c"># Add a Transaction instance to the list</span>
 
            <span class="n">entries</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
 
                <span class="n">Transaction</span><span class="p">(</span><span class="n">date</span><span class="o">=</span><span class="n">date</span><span class="p">,</span> <span class="n">payee</span><span class="o">=</span><span class="n">payee</span><span class="p">,</span> <span class="n">postings</span><span class="o">=</span><span class="n">postings</span><span class="p">,</span>
 
                            <span class="n">metadata</span><span class="o">=</span><span class="n">metadata</span><span class="p">))</span>
 

	
 
        <span class="k">return</span> <span class="n">entries</span>
 

	
 
</div></div>
 
<div class="viewcode-block" id="main"><a class="viewcode-back" href="../api/accounting.html#accounting.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
    <span class="kn">import</span> <span class="nn">argparse</span>
 
    <span class="k">if</span> <span class="n">argv</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
 
        <span class="n">argv</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span>
 

	
 
    <span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">()</span>
 
    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="s">&#39;--verbosity&#39;</span><span class="p">,</span>
 
                        <span class="n">default</span><span class="o">=</span><span class="s">&#39;INFO&#39;</span><span class="p">,</span>
 
                        <span class="n">help</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;Filter logging output. Possible values:&#39;</span> <span class="o">+</span>
 
                        <span class="s">&#39; CRITICAL, ERROR, WARNING, INFO, DEBUG&#39;</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="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
 
    <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="nb">getattr</span><span class="p">(</span><span class="n">logging</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">verbosity</span><span class="p">,</span> <span class="s">&#39;INFO&#39;</span><span class="p">))</span>
 
    <span class="n">ledger</span> <span class="o">=</span> <span class="n">Ledger</span><span class="p">(</span><span class="n">ledger_file</span><span class="o">=</span><span class="s">&#39;non-profit-test-data.ledger&#39;</span><span class="p">)</span>
 
    <span class="k">print</span><span class="p">(</span><span class="n">ledger</span><span class="o">.</span><span class="n">bal</span><span class="p">())</span>
 
    <span class="k">print</span><span class="p">(</span><span class="n">ledger</span><span class="o">.</span><span class="n">reg</span><span class="p">())</span>
 

	
 
</div>
 
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
 
    <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">main</span><span class="p">())</span>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="index.html" >Module code</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/client.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.client &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.client</h1><div class="highlight"><pre>
 
<span class="kn">import</span> <span class="nn">sys</span>
 
<span class="kn">import</span> <span class="nn">argparse</span>
 
<span class="kn">import</span> <span class="nn">json</span>
 
<span class="kn">import</span> <span class="nn">logging</span>
 

	
 
<span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
 
<span class="kn">from</span> <span class="nn">decimal</span> <span class="kn">import</span> <span class="n">Decimal</span>
 

	
 
<span class="kn">import</span> <span class="nn">requests</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting.models</span> <span class="kn">import</span> <span class="n">Transaction</span><span class="p">,</span> <span class="n">Posting</span><span class="p">,</span> <span class="n">Amount</span>
 
<span class="kn">from</span> <span class="nn">accounting.transport</span> <span class="kn">import</span> <span class="n">AccountingDecoder</span><span class="p">,</span> <span class="n">AccountingEncoder</span>
 

	
 
<span class="n">_log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
 

	
 

	
 
<div class="viewcode-block" id="Client"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.Client">[docs]</a><span class="k">class</span> <span class="nc">Client</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">host</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">json_encoder</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
 
                 <span class="n">json_decoder</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">host</span> <span class="o">=</span> <span class="n">host</span> <span class="ow">or</span> <span class="s">&#39;http://localhost:5000&#39;</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">json_encoder</span> <span class="o">=</span> <span class="n">json_encoder</span> <span class="ow">or</span> <span class="n">AccountingEncoder</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">json_decoder</span> <span class="o">=</span> <span class="n">json_decoder</span> <span class="ow">or</span> <span class="n">AccountingDecoder</span>
 

	
 
<div class="viewcode-block" id="Client.get_balance"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.Client.get_balance">[docs]</a>    <span class="k">def</span> <span class="nf">get_balance</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="n">balance</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;/balance&#39;</span><span class="p">)</span>
 
        <span class="k">return</span> <span class="n">balance</span><span class="p">[</span><span class="s">&#39;balance_report&#39;</span><span class="p">]</span>
 
</div>
 
<div class="viewcode-block" id="Client.get"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.Client.get">[docs]</a>    <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
 
        <span class="n">response</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">+</span> <span class="n">path</span><span class="p">)</span>
 

	
 
        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_decode_response</span><span class="p">(</span><span class="n">response</span><span class="p">)</span>
 
</div>
 
    <span class="k">def</span> <span class="nf">_decode_response</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">):</span>
 
        <span class="n">response_data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">json</span><span class="p">(</span><span class="n">cls</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">json_decoder</span><span class="p">)</span>
 

	
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;response_data: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">response_data</span><span class="p">)</span>
 

	
 
        <span class="k">return</span> <span class="n">response_data</span>
 

	
 
<div class="viewcode-block" id="Client.post"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.Client.post">[docs]</a>    <span class="k">def</span> <span class="nf">post</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">payload</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
 
        <span class="n">kw</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s">&#39;headers&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s">&#39;Content-Type&#39;</span><span class="p">:</span> <span class="s">&#39;application/json&#39;</span><span class="p">}})</span>
 
        <span class="n">kw</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s">&#39;data&#39;</span><span class="p">:</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">payload</span><span class="p">,</span> <span class="n">cls</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">json_encoder</span><span class="p">)})</span>
 

	
 
        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_decode_response</span><span class="p">(</span><span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">+</span> <span class="n">path</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">))</span>
 
</div>
 
<div class="viewcode-block" id="Client.simple_transaction"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.Client.simple_transaction">[docs]</a>    <span class="k">def</span> <span class="nf">simple_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_acc</span><span class="p">,</span> <span class="n">to_acc</span><span class="p">,</span> <span class="n">amount</span><span class="p">):</span>
 
        <span class="n">t</span> <span class="o">=</span> <span class="n">Transaction</span><span class="p">(</span>
 
            <span class="n">date</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">today</span><span class="p">(),</span>
 
            <span class="n">payee</span><span class="o">=</span><span class="s">&#39;PayPal donation&#39;</span><span class="p">,</span>
 
            <span class="n">postings</span><span class="o">=</span><span class="p">[</span>
 
                <span class="n">Posting</span><span class="p">(</span><span class="n">account</span><span class="o">=</span><span class="n">from_acc</span><span class="p">,</span>
 
                        <span class="n">amount</span><span class="o">=</span><span class="n">Amount</span><span class="p">(</span><span class="n">symbol</span><span class="o">=</span><span class="s">&#39;$&#39;</span><span class="p">,</span> <span class="n">amount</span><span class="o">=-</span><span class="n">amount</span><span class="p">)),</span>
 
                <span class="n">Posting</span><span class="p">(</span><span class="n">account</span><span class="o">=</span><span class="n">to_acc</span><span class="p">,</span>
 
                        <span class="n">amount</span><span class="o">=</span><span class="n">Amount</span><span class="p">(</span><span class="n">symbol</span><span class="o">=</span><span class="s">&#39;$&#39;</span><span class="p">,</span> <span class="n">amount</span><span class="o">=</span><span class="n">amount</span><span class="p">))</span>
 
            <span class="p">]</span>
 
        <span class="p">)</span>
 

	
 
        <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">post</span><span class="p">(</span><span class="s">&#39;/transaction&#39;</span><span class="p">,</span> <span class="p">{</span><span class="s">&#39;transactions&#39;</span><span class="p">:</span> <span class="p">[</span><span class="n">t</span><span class="p">]})</span>
 
</div>
 
<div class="viewcode-block" id="Client.get_register"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.Client.get_register">[docs]</a>    <span class="k">def</span> <span class="nf">get_register</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="n">register</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;/register&#39;</span><span class="p">)</span>
 

	
 
        <span class="k">return</span> <span class="n">register</span><span class="p">[</span><span class="s">&#39;register_report&#39;</span><span class="p">]</span>
 

	
 
</div></div>
 
<div class="viewcode-block" id="print_transactions"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.print_transactions">[docs]</a><span class="k">def</span> <span class="nf">print_transactions</span><span class="p">(</span><span class="n">transactions</span><span class="p">):</span>
 
    <span class="k">for</span> <span class="n">transaction</span> <span class="ow">in</span> <span class="n">transactions</span><span class="p">:</span>
 
        <span class="k">print</span><span class="p">(</span><span class="s">&#39;{date} {t.payee:.&lt;69}&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
 
            <span class="n">date</span><span class="o">=</span><span class="n">transaction</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s">&#39;%Y-%m-</span><span class="si">%d</span><span class="s">&#39;</span><span class="p">),</span>
 
            <span class="n">t</span><span class="o">=</span><span class="n">transaction</span><span class="p">))</span>
 

	
 
        <span class="k">for</span> <span class="n">posting</span> <span class="ow">in</span> <span class="n">transaction</span><span class="o">.</span><span class="n">postings</span><span class="p">:</span>
 
            <span class="k">print</span><span class="p">(</span><span class="s">&#39; &#39;</span> <span class="o">+</span> <span class="n">posting</span><span class="o">.</span><span class="n">account</span> <span class="o">+</span>
 
                <span class="s">&#39; &#39;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">80</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">posting</span><span class="o">.</span><span class="n">account</span><span class="p">)</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">symbol</span><span class="p">)</span> <span class="o">-</span>
 
                        <span class="nb">len</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">amount</span><span class="p">))</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">+</span>
 
                <span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">symbol</span> <span class="o">+</span> <span class="s">&#39; &#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">amount</span><span class="p">))</span>
 

	
 
</div>
 
<div class="viewcode-block" id="print_balance_accounts"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.print_balance_accounts">[docs]</a><span class="k">def</span> <span class="nf">print_balance_accounts</span><span class="p">(</span><span class="n">accounts</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
 
    <span class="k">for</span> <span class="n">account</span> <span class="ow">in</span> <span class="n">accounts</span><span class="p">:</span>
 
        <span class="k">print</span><span class="p">(</span><span class="s">&#39; &#39;</span> <span class="o">*</span> <span class="n">level</span> <span class="o">+</span> <span class="s">&#39; + {account.name}&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">account</span><span class="o">=</span><span class="n">account</span><span class="p">)</span> <span class="o">+</span>
 
              <span class="s">&#39; &#39;</span> <span class="o">+</span> <span class="s">&#39;-&#39;</span> <span class="o">*</span> <span class="p">(</span><span class="mi">80</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">account</span><span class="o">.</span><span class="n">name</span><span class="p">))</span> <span class="o">-</span> <span class="n">level</span><span class="p">))</span>
 
        <span class="k">for</span> <span class="n">amount</span> <span class="ow">in</span> <span class="n">account</span><span class="o">.</span><span class="n">amounts</span><span class="p">:</span>
 
            <span class="k">print</span><span class="p">(</span><span class="s">&#39; &#39;</span> <span class="o">*</span> <span class="n">level</span> <span class="o">+</span> <span class="s">&#39;   {amount.symbol} {amount.amount}&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
 
                <span class="n">amount</span><span class="o">=</span><span class="n">amount</span><span class="p">))</span>
 
        <span class="n">print_balance_accounts</span><span class="p">(</span><span class="n">account</span><span class="o">.</span><span class="n">accounts</span><span class="p">,</span> <span class="n">level</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
 

	
 
</div>
 
<div class="viewcode-block" id="main"><a class="viewcode-back" href="../../api/accounting.html#accounting.client.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">prog</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
    <span class="k">global</span> <span class="n">HOST</span>
 
    <span class="k">if</span> <span class="n">argv</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
 
        <span class="n">prog</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
 
        <span class="n">argv</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
 

	
 
    <span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">prog</span><span class="o">=</span><span class="n">prog</span><span class="p">)</span>
 
    <span class="n">actions</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_subparsers</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s">&#39;Actions&#39;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s">&#39;action&#39;</span><span class="p">)</span>
 

	
 
    <span class="n">insert</span> <span class="o">=</span> <span class="n">actions</span><span class="o">.</span><span class="n">add_parser</span><span class="p">(</span><span class="s">&#39;insert&#39;</span><span class="p">,</span>
 
                                <span class="n">aliases</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;in&#39;</span><span class="p">])</span>
 
    <span class="n">insert</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;from_account&#39;</span><span class="p">)</span>
 
    <span class="n">insert</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;to_account&#39;</span><span class="p">)</span>
 
    <span class="n">insert</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;amount&#39;</span><span class="p">,</span> <span class="nb">type</span><span class="o">=</span><span class="n">Decimal</span><span class="p">)</span>
 

	
 
    <span class="n">balance</span> <span class="o">=</span> <span class="n">actions</span><span class="o">.</span><span class="n">add_parser</span><span class="p">(</span><span class="s">&#39;balance&#39;</span><span class="p">,</span> <span class="n">aliases</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;bal&#39;</span><span class="p">])</span>
 

	
 
    <span class="n">register</span> <span class="o">=</span> <span class="n">actions</span><span class="o">.</span><span class="n">add_parser</span><span class="p">(</span><span class="s">&#39;register&#39;</span><span class="p">,</span> <span class="n">aliases</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;reg&#39;</span><span class="p">])</span>
 

	
 
    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="s">&#39;--verbosity&#39;</span><span class="p">,</span>
 
                        <span class="n">default</span><span class="o">=</span><span class="s">&#39;WARNING&#39;</span><span class="p">,</span>
 
                        <span class="n">help</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;Filter logging output. Possible values:&#39;</span> <span class="o">+</span>
 
                        <span class="s">&#39; CRITICAL, ERROR, WARNING, INFO, DEBUG&#39;</span><span class="p">))</span>
 
    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--host&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s">&#39;http://localhost:5000&#39;</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="n">argv</span><span class="p">)</span>
 

	
 
    <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="nb">getattr</span><span class="p">(</span><span class="n">logging</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">verbosity</span><span class="p">))</span>
 

	
 
    <span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">host</span><span class="p">)</span>
 

	
 
    <span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">action</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;insert&#39;</span><span class="p">,</span> <span class="s">&#39;in&#39;</span><span class="p">]:</span>
 
        <span class="k">print</span><span class="p">(</span><span class="n">client</span><span class="o">.</span><span class="n">simple_transaction</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">from_account</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">to_account</span><span class="p">,</span>
 
                                        <span class="n">args</span><span class="o">.</span><span class="n">amount</span><span class="p">))</span>
 
    <span class="k">elif</span> <span class="n">args</span><span class="o">.</span><span class="n">action</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;balance&#39;</span><span class="p">,</span> <span class="s">&#39;bal&#39;</span><span class="p">]:</span>
 
        <span class="n">print_balance_accounts</span><span class="p">(</span><span class="n">client</span><span class="o">.</span><span class="n">get_balance</span><span class="p">())</span>
 
    <span class="k">elif</span> <span class="n">args</span><span class="o">.</span><span class="n">action</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;register&#39;</span><span class="p">,</span> <span class="s">&#39;reg&#39;</span><span class="p">]:</span>
 
        <span class="n">print_transactions</span><span class="p">(</span><span class="n">client</span><span class="o">.</span><span class="n">get_register</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">print_help</span><span class="p">()</span>
 
</div>
 
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
 
    <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">main</span><span class="p">())</span>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/decorators.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.decorators &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.decorators</h1><div class="highlight"><pre>
 
<span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">wraps</span>
 

	
 
<span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">jsonify</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting.exceptions</span> <span class="kn">import</span> <span class="n">AccountingException</span>
 

	
 

	
 
<div class="viewcode-block" id="jsonify_exceptions"><a class="viewcode-back" href="../../api/accounting.html#accounting.decorators.jsonify_exceptions">[docs]</a><span class="k">def</span> <span class="nf">jsonify_exceptions</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
 
    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    Wraps a Flask endpoint and catches any AccountingException-based</span>
 
<span class="sd">    exceptions which are returned to the client as JSON.</span>
 
<span class="sd">    &#39;&#39;&#39;</span>
 
    <span class="nd">@wraps</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
 
    <span class="k">def</span> <span class="nf">wrapper</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
 
        <span class="k">try</span><span class="p">:</span>
 
            <span class="k">return</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
 
        <span class="k">except</span> <span class="n">AccountingException</span> <span class="k">as</span> <span class="n">exc</span><span class="p">:</span>
 
            <span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span><span class="n">error</span><span class="o">=</span><span class="n">exc</span><span class="p">)</span>
 

	
 
    <span class="k">return</span> <span class="n">wrapper</span></div>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/exceptions.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.exceptions &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.exceptions</h1><div class="highlight"><pre>
 
<div class="viewcode-block" id="AccountingException"><a class="viewcode-back" href="../../api/accounting.html#accounting.exceptions.AccountingException">[docs]</a><span class="k">class</span> <span class="nc">AccountingException</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
 
    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    Used as a base for exceptions that are returned to the caller via the</span>
 
<span class="sd">    jsonify_exceptions decorator</span>
 
<span class="sd">    &#39;&#39;&#39;</span>
 
    <span class="k">pass</span></div>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/gtkclient.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.gtkclient &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.gtkclient</h1><div class="highlight"><pre>
 
<span class="kn">import</span> <span class="nn">sys</span>
 
<span class="kn">import</span> <span class="nn">logging</span>
 
<span class="kn">import</span> <span class="nn">threading</span>
 
<span class="kn">import</span> <span class="nn">pkg_resources</span>
 

	
 
<span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">wraps</span>
 
<span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
 

	
 
<span class="kn">from</span> <span class="nn">gi.repository</span> <span class="kn">import</span> <span class="n">Gtk</span>
 
<span class="kn">from</span> <span class="nn">gi.repository</span> <span class="kn">import</span> <span class="n">GLib</span>
 
<span class="kn">from</span> <span class="nn">gi.repository</span> <span class="kn">import</span> <span class="n">GObject</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting.client</span> <span class="kn">import</span> <span class="n">Client</span>
 

	
 
<span class="n">_log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
 

	
 

	
 
<div class="viewcode-block" id="indicate_activity"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.indicate_activity">[docs]</a><span class="k">def</span> <span class="nf">indicate_activity</span><span class="p">(</span><span class="n">func_or_str</span><span class="p">):</span>
 
    <span class="n">description</span> <span class="o">=</span> <span class="bp">None</span>
 

	
 
    <span class="k">def</span> <span class="nf">decorator</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
 
        <span class="nd">@wraps</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
 
        <span class="k">def</span> <span class="nf">wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
 
            <span class="bp">self</span><span class="o">.</span><span class="n">status_description</span><span class="o">.</span><span class="n">set_text</span><span class="p">(</span><span class="n">description</span><span class="p">)</span>
 
            <span class="bp">self</span><span class="o">.</span><span class="n">activity_indicator</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
 
            <span class="bp">self</span><span class="o">.</span><span class="n">activity_indicator</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
 

	
 
            <span class="k">return</span> <span class="n">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
 

	
 
        <span class="k">return</span> <span class="n">wrapper</span>
 

	
 
    <span class="k">if</span> <span class="nb">callable</span><span class="p">(</span><span class="n">func_or_str</span><span class="p">):</span>
 
        <span class="n">description</span> <span class="o">=</span> <span class="s">&#39;Working&#39;</span>
 
        <span class="k">return</span> <span class="n">decorator</span><span class="p">(</span><span class="n">func_or_str</span><span class="p">)</span>
 
    <span class="k">else</span><span class="p">:</span>
 
        <span class="n">description</span> <span class="o">=</span> <span class="n">func_or_str</span>
 
        <span class="k">return</span> <span class="n">decorator</span>
 

	
 
</div>
 
<div class="viewcode-block" id="indicate_activity_done"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.indicate_activity_done">[docs]</a><span class="k">def</span> <span class="nf">indicate_activity_done</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
 
    <span class="nd">@wraps</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
 
    <span class="k">def</span> <span class="nf">wrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">status_description</span><span class="o">.</span><span class="n">set_text</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">activity_indicator</span><span class="o">.</span><span class="n">stop</span><span class="p">()</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">activity_indicator</span><span class="o">.</span><span class="n">hide</span><span class="p">()</span>
 

	
 
        <span class="k">return</span> <span class="n">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
 

	
 
    <span class="k">return</span> <span class="n">wrapper</span>
 

	
 
</div>
 
<div class="viewcode-block" id="AccountingApplication"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.AccountingApplication">[docs]</a><span class="k">class</span> <span class="nc">AccountingApplication</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="c">#Gtk.Window.__init__(self, title=&#39;Accounting Client&#39;)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">()</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">load_ui</span><span class="p">(</span><span class="n">pkg_resources</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span>
 
            <span class="s">&#39;accounting&#39;</span><span class="p">,</span> <span class="s">&#39;res/client-ui.glade&#39;</span><span class="p">))</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">aboutdialog</span><span class="o">.</span><span class="n">set_transient_for</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">accounting_window</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">accounting_window</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s">&#39;delete-event&#39;</span><span class="p">,</span> <span class="n">Gtk</span><span class="o">.</span><span class="n">main_quit</span><span class="p">)</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">accounting_window</span><span class="o">.</span><span class="n">set_border_width</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">accounting_window</span><span class="o">.</span><span class="n">set_default_geometry</span><span class="p">(</span><span class="mi">640</span><span class="p">,</span> <span class="mi">360</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">accounting_window</span><span class="o">.</span><span class="n">show_all</span><span class="p">()</span>
 

	
 
<div class="viewcode-block" id="AccountingApplication.load_ui"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.AccountingApplication.load_ui">[docs]</a>    <span class="k">def</span> <span class="nf">load_ui</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Loading UI...&#39;</span><span class="p">)</span>
 
        <span class="n">builder</span> <span class="o">=</span> <span class="n">Gtk</span><span class="o">.</span><span class="n">Builder</span><span class="p">()</span>
 
        <span class="n">builder</span><span class="o">.</span><span class="n">add_from_file</span><span class="p">(</span><span class="n">path</span><span class="p">)</span>
 
        <span class="n">builder</span><span class="o">.</span><span class="n">connect_signals</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
 

	
 
        <span class="k">for</span> <span class="n">element</span> <span class="ow">in</span> <span class="n">builder</span><span class="o">.</span><span class="n">get_objects</span><span class="p">():</span>
 
            <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Loaded </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">Gtk</span><span class="o">.</span><span class="n">Buildable</span><span class="o">.</span><span class="n">get_name</span><span class="p">(</span><span class="n">element</span><span class="p">))</span>
 
            <span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Gtk</span><span class="o">.</span><span class="n">Buildable</span><span class="o">.</span><span class="n">get_name</span><span class="p">(</span><span class="n">element</span><span class="p">),</span> <span class="n">element</span><span class="p">)</span>
 

	
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;UI loaded&#39;</span><span class="p">)</span>
 
</div>
 
<div class="viewcode-block" id="AccountingApplication.on_transaction_selected"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.AccountingApplication.on_transaction_selected">[docs]</a>    <span class="k">def</span> <span class="nf">on_transaction_selected</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">widget</span><span class="p">):</span>
 
        <span class="n">selection</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">transaction_view</span><span class="o">.</span><span class="n">get_selection</span><span class="p">()</span>
 
        <span class="n">selection</span><span class="o">.</span><span class="n">set_mode</span><span class="p">(</span><span class="n">Gtk</span><span class="o">.</span><span class="n">SelectionMode</span><span class="o">.</span><span class="n">SINGLE</span><span class="p">)</span>
 
        <span class="n">xact_store</span><span class="p">,</span> <span class="n">xact_iter</span> <span class="o">=</span> <span class="n">selection</span><span class="o">.</span><span class="n">get_selected</span><span class="p">()</span>
 

	
 
        <span class="n">xact_id</span> <span class="o">=</span> <span class="n">xact_store</span><span class="o">.</span><span class="n">get_value</span><span class="p">(</span><span class="n">xact_iter</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;selection: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">xact_id</span><span class="p">)</span>
 

	
 
        <span class="k">for</span> <span class="n">transaction</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">transaction_data</span><span class="p">:</span>
 
            <span class="k">if</span> <span class="n">transaction</span><span class="o">.</span><span class="n">id</span> <span class="o">==</span> <span class="n">xact_id</span><span class="p">:</span>
 
                <span class="bp">self</span><span class="o">.</span><span class="n">lbl_payee</span><span class="o">.</span><span class="n">set_text</span><span class="p">(</span><span class="n">transaction</span><span class="o">.</span><span class="n">payee</span><span class="p">)</span>
 

	
 
                <span class="bp">self</span><span class="o">.</span><span class="n">posting_store</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
 

	
 
                <span class="k">for</span> <span class="n">posting</span> <span class="ow">in</span> <span class="n">transaction</span><span class="o">.</span><span class="n">postings</span><span class="p">:</span>
 
                    <span class="bp">self</span><span class="o">.</span><span class="n">posting_store</span><span class="o">.</span><span class="n">append</span><span class="p">([</span>
 
                        <span class="n">posting</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
 
                        <span class="nb">str</span><span class="p">(</span><span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">amount</span><span class="p">),</span>
 
                        <span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">symbol</span>
 
                    <span class="p">])</span>
 

	
 
                <span class="bp">self</span><span class="o">.</span><span class="n">detail_view</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
 
                <span class="k">break</span>
 
</div>
 
<div class="viewcode-block" id="AccountingApplication.on_show_about_activate"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.AccountingApplication.on_show_about_activate">[docs]</a>    <span class="k">def</span> <span class="nf">on_show_about_activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">widget</span><span class="p">):</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Showing About&#39;</span><span class="p">)</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">aboutdialog</span><span class="o">.</span><span class="n">show_all</span><span class="p">()</span>
 
</div>
 
<div class="viewcode-block" id="AccountingApplication.on_aboutdialog_close"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.AccountingApplication.on_aboutdialog_close">[docs]</a>    <span class="k">def</span> <span class="nf">on_aboutdialog_close</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">widget</span><span class="p">):</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Closing About&#39;</span><span class="p">)</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">aboutdialog</span><span class="o">.</span><span class="n">hide_all</span><span class="p">()</span>
 
</div>
 
    <span class="nd">@indicate_activity</span><span class="p">(</span><span class="s">&#39;Refreshing Transactions&#39;</span><span class="p">)</span>
 
<div class="viewcode-block" id="AccountingApplication.on_refresh_transactions_activate"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.AccountingApplication.on_refresh_transactions_activate">[docs]</a>    <span class="k">def</span> <span class="nf">on_refresh_transactions_activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">widget</span><span class="p">):</span>
 
        <span class="k">def</span> <span class="nf">load_transactions</span><span class="p">():</span>
 
            <span class="n">transactions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">get_register</span><span class="p">()</span>
 
            <span class="n">GLib</span><span class="o">.</span><span class="n">idle_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">on_transactions_loaded</span><span class="p">,</span> <span class="n">transactions</span><span class="p">)</span>
 

	
 
        <span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">load_transactions</span><span class="p">)</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
 
</div>
 
    <span class="nd">@indicate_activity_done</span>
 
<div class="viewcode-block" id="AccountingApplication.on_transactions_loaded"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.AccountingApplication.on_transactions_loaded">[docs]</a>    <span class="k">def</span> <span class="nf">on_transactions_loaded</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transactions</span><span class="p">):</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;transactions: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">transactions</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">transaction_data</span> <span class="o">=</span> <span class="n">transactions</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">transaction_store</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
 

	
 
        <span class="k">for</span> <span class="n">transaction</span> <span class="ow">in</span> <span class="n">transactions</span><span class="p">:</span>
 
            <span class="bp">self</span><span class="o">.</span><span class="n">transaction_store</span><span class="o">.</span><span class="n">append</span><span class="p">([</span>
 
                <span class="n">transaction</span><span class="o">.</span><span class="n">id</span><span class="p">,</span>
 
                <span class="n">transaction</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s">&#39;%Y-%m-</span><span class="si">%d</span><span class="s">&#39;</span><span class="p">),</span>
 
                <span class="n">transaction</span><span class="o">.</span><span class="n">payee</span>
 
            <span class="p">])</span>
 

	
 
</div></div>
 
<div class="viewcode-block" id="main"><a class="viewcode-back" href="../../api/accounting.html#accounting.gtkclient.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
    <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span>
 

	
 
    <span class="n">GObject</span><span class="o">.</span><span class="n">threads_init</span><span class="p">()</span>
 

	
 
    <span class="n">accounting</span> <span class="o">=</span> <span class="n">AccountingApplication</span><span class="p">()</span>
 
    <span class="c">#accounting_win.connect(&#39;delete-event&#39;, Gtk.main_quit)</span>
 

	
 
    <span class="n">Gtk</span><span class="o">.</span><span class="n">main</span><span class="p">()</span>
 
</div>
 
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
 
    <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">main</span><span class="p">())</span>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/models.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.models &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.models</h1><div class="highlight"><pre>
 
<span class="kn">import</span> <span class="nn">uuid</span>
 
<span class="kn">from</span> <span class="nn">decimal</span> <span class="kn">import</span> <span class="n">Decimal</span>
 

	
 

	
 
<div class="viewcode-block" id="Transaction"><a class="viewcode-back" href="../../api/accounting.html#accounting.models.Transaction">[docs]</a><span class="k">class</span> <span class="nc">Transaction</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">date</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">payee</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">postings</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">metadata</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
 
                 <span class="n">_generate_id</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">date</span> <span class="o">=</span> <span class="n">date</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">payee</span> <span class="o">=</span> <span class="n">payee</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">postings</span> <span class="o">=</span> <span class="n">postings</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">metadata</span> <span class="o">=</span> <span class="n">metadata</span> <span class="k">if</span> <span class="n">metadata</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="k">else</span> <span class="p">{}</span>
 

	
 
        <span class="k">if</span> <span class="n">_generate_id</span><span class="p">:</span>
 
            <span class="bp">self</span><span class="o">.</span><span class="n">generate_id</span><span class="p">()</span>
 

	
 
<div class="viewcode-block" id="Transaction.generate_id"><a class="viewcode-back" href="../../api/accounting.html#accounting.models.Transaction.generate_id">[docs]</a>    <span class="k">def</span> <span class="nf">generate_id</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">metadata</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s">&#39;Id&#39;</span><span class="p">:</span> <span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()})</span>
 
</div>
 
    <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="k">return</span> <span class="p">(</span><span class="s">&#39;&lt;{self.__class__.__name__} {date}&#39;</span> <span class="o">+</span>
 
                <span class="s">&#39; {self.payee} {self.postings}&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
 
                    <span class="bp">self</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
 
                    <span class="n">date</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s">&#39;%Y-%m-</span><span class="si">%d</span><span class="s">&#39;</span><span class="p">))</span>
 

	
 
</div>
 
<div class="viewcode-block" id="Posting"><a class="viewcode-back" href="../../api/accounting.html#accounting.models.Posting">[docs]</a><span class="k">class</span> <span class="nc">Posting</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">account</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">amount</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">metadata</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">account</span> <span class="o">=</span> <span class="n">account</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">amount</span> <span class="o">=</span> <span class="n">amount</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">metadata</span> <span class="o">=</span> <span class="n">metadata</span> <span class="k">if</span> <span class="n">metadata</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="k">else</span> <span class="p">{}</span>
 

	
 
    <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="k">return</span> <span class="p">(</span><span class="s">&#39;&lt;{self.__class__.__name__} &quot;{self.account}&quot;&#39;</span> <span class="o">+</span>
 
                <span class="s">&#39; {self.amount}&gt;&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
 

	
 
</div>
 
<div class="viewcode-block" id="Amount"><a class="viewcode-back" href="../../api/accounting.html#accounting.models.Amount">[docs]</a><span class="k">class</span> <span class="nc">Amount</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">amount</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">symbol</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">amount</span> <span class="o">=</span> <span class="n">Decimal</span><span class="p">(</span><span class="n">amount</span><span class="p">)</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">symbol</span> <span class="o">=</span> <span class="n">symbol</span>
 

	
 
    <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="k">return</span> <span class="p">(</span><span class="s">&#39;&lt;{self.__class__.__name__} {self.symbol}&#39;</span> <span class="o">+</span>
 
                <span class="s">&#39; {self.amount}&gt;&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span>
 

	
 
</div>
 
<div class="viewcode-block" id="Account"><a class="viewcode-back" href="../../api/accounting.html#accounting.models.Account">[docs]</a><span class="k">class</span> <span class="nc">Account</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">name</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">amounts</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">accounts</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">name</span> <span class="o">=</span> <span class="n">name</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">amounts</span> <span class="o">=</span> <span class="n">amounts</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">accounts</span> <span class="o">=</span> <span class="n">accounts</span>
 

	
 
    <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="k">return</span> <span class="p">(</span><span class="s">&#39;&lt;{self.__class__.__name__} &quot;{self.name}&quot; {self.amounts}&#39;</span> <span class="o">+</span>
 
                <span class="s">&#39; {self.accounts}&gt;&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span></div>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/storage.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.storage &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.storage</h1><div class="highlight"><pre>
 
<span class="k">class</span> <span class="nc">Storage</span><span class="p">:</span>
 
<div class="viewcode-block" id="Storage"><a class="viewcode-back" href="../../api/accounting.storage.html#accounting.storage.Storage">[docs]</a>    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    ABC for accounting storage</span>
 
<span class="sd">    &#39;&#39;&#39;</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="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
 
        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
 

	
 
    <span class="k">def</span> <span class="nf">get_transactions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
 
<div class="viewcode-block" id="Storage.get_transactions"><a class="viewcode-back" href="../../api/accounting.storage.html#accounting.storage.Storage.get_transactions">[docs]</a>        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
 

	
 
    <span class="k">def</span> <span class="nf">get_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span></div>
 
<div class="viewcode-block" id="Storage.get_transaction"><a class="viewcode-back" href="../../api/accounting.storage.html#accounting.storage.Storage.get_transaction">[docs]</a>        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
 

	
 
    <span class="k">def</span> <span class="nf">get_account</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span></div>
 
<div class="viewcode-block" id="Storage.get_account"><a class="viewcode-back" href="../../api/accounting.storage.html#accounting.storage.Storage.get_account">[docs]</a>        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
 

	
 
    <span class="k">def</span> <span class="nf">get_accounts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span></div>
 
<div class="viewcode-block" id="Storage.get_accounts"><a class="viewcode-back" href="../../api/accounting.storage.html#accounting.storage.Storage.get_accounts">[docs]</a>        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">()</span>
 
</pre></div></div></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/storage/ledgercli.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.storage.ledgercli &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../../index.html" />
 
    <link rel="up" title="accounting.storage" href="../storage.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../../accounting.html" >accounting</a> &raquo;</li>
 
          <li><a href="../storage.html" accesskey="U">accounting.storage</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.storage.ledgercli</h1><div class="highlight"><pre>
 
<span class="kn">import</span> <span class="nn">sys</span>
 
<span class="kn">import</span> <span class="nn">subprocess</span>
 
<span class="kn">import</span> <span class="nn">logging</span>
 
<span class="kn">import</span> <span class="nn">time</span>
 

	
 
<span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
 
<span class="kn">from</span> <span class="nn">xml.etree</span> <span class="kn">import</span> <span class="n">ElementTree</span>
 
<span class="kn">from</span> <span class="nn">contextlib</span> <span class="kn">import</span> <span class="n">contextmanager</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting.models</span> <span class="kn">import</span> <span class="n">Account</span><span class="p">,</span> <span class="n">Transaction</span><span class="p">,</span> <span class="n">Posting</span><span class="p">,</span> <span class="n">Amount</span>
 
<span class="kn">from</span> <span class="nn">accounting.storage</span> <span class="kn">import</span> <span class="n">Storage</span>
 

	
 
<span class="n">_log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
 

	
 

	
 
<div class="viewcode-block" id="Ledger"><a class="viewcode-back" href="../../../api/accounting.storage.html#accounting.storage.ledgercli.Ledger">[docs]</a><span class="k">class</span> <span class="nc">Ledger</span><span class="p">(</span><span class="n">Storage</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">app</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ledger_file</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">ledger_bin</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
        <span class="k">if</span> <span class="n">app</span><span class="p">:</span>
 
            <span class="n">ledger_file</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s">&#39;LEDGER_FILE&#39;</span><span class="p">]</span>
 

	
 
        <span class="k">if</span> <span class="n">ledger_file</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
 
            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s">&#39;ledger_file cannot be None&#39;</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">ledger_bin</span> <span class="o">=</span> <span class="n">ledger_bin</span> <span class="ow">or</span> <span class="s">&#39;ledger&#39;</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">ledger_file</span> <span class="o">=</span> <span class="n">ledger_file</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&#39;ledger file: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">ledger_file</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">locked</span> <span class="o">=</span> <span class="bp">False</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">ledger_process</span> <span class="o">=</span> <span class="bp">None</span>
 

	
 
    <span class="nd">@contextmanager</span>
 
<div class="viewcode-block" id="Ledger.locked_process"><a class="viewcode-back" href="../../../api/accounting.storage.html#accounting.storage.ledgercli.Ledger.locked_process">[docs]</a>    <span class="k">def</span> <span class="nf">locked_process</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="sd">r&#39;&#39;&#39;</span>
 
<span class="sd">        Context manager that checks that the ledger process is not already</span>
 
<span class="sd">        locked, then &quot;locks&quot; the process and yields the process handle and</span>
 
<span class="sd">        unlocks the process when execution is returned.</span>
 

	
 
<span class="sd">        Since this decorated as a :func:`contextlib.contextmanager` the</span>
 
<span class="sd">        recommended use is with the ``with``-statement.</span>
 

	
 
<span class="sd">        .. code-block:: python</span>
 

	
 
<span class="sd">            with self.locked_process() as p:</span>
 
<span class="sd">                p.stdin.write(b&#39;bal\n&#39;)</span>
 

	
 
<span class="sd">                output = self.read_until_prompt(p)</span>
 

	
 
<span class="sd">        &#39;&#39;&#39;</span>
 
        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">locked</span><span class="p">:</span>
 
            <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">&#39;The process has already been locked,&#39;</span>
 
                               <span class="s">&#39; something</span><span class="se">\&#39;</span><span class="s">s out of order.&#39;</span><span class="p">)</span>
 

	
 
            <span class="c"># XXX: This code has no purpose in a single-threaded process</span>
 
            <span class="n">timeout</span> <span class="o">=</span> <span class="mi">5</span>  <span class="c"># Seconds</span>
 

	
 
            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">+</span> <span class="mi">2</span><span class="p">):</span>
 
                <span class="k">if</span> <span class="n">i</span> <span class="o">&gt;</span> <span class="n">timeout</span><span class="p">:</span>
 
                    <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s">&#39;Ledger process is already locked&#39;</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">locked</span><span class="p">:</span>
 
                    <span class="k">break</span>
 
                <span class="k">else</span><span class="p">:</span>
 
                    <span class="n">_log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&#39;Waiting for one second... </span><span class="si">%d</span><span class="s">/</span><span class="si">%d</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span>
 
                    <span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
 

	
 
        <span class="n">process</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_process</span><span class="p">()</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">locked</span> <span class="o">=</span> <span class="bp">True</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Lock enabled&#39;</span><span class="p">)</span>
 

	
 
        <span class="k">yield</span> <span class="n">process</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">locked</span> <span class="o">=</span> <span class="bp">False</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Lock disabled&#39;</span><span class="p">)</span>
 
</div>
 
<div class="viewcode-block" id="Ledger.assemble_arguments"><a class="viewcode-back" href="../../../api/accounting.storage.html#accounting.storage.ledgercli.Ledger.assemble_arguments">[docs]</a>    <span class="k">def</span> <span class="nf">assemble_arguments</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">        Returns a list of arguments suitable for :class:`subprocess.Popen`</span>
 
<span class="sd">        based on :attr:`self.ledger_bin` and :attr:`self.ledger_file`.</span>
 
<span class="sd">        &#39;&#39;&#39;</span>
...
 
@@ -319,111 +322,114 @@
 
                <span class="n">symbol</span> <span class="o">=</span> <span class="n">posting</span><span class="o">.</span><span class="n">find</span><span class="p">(</span>
 
                    <span class="s">&#39;./post-amount/amount/commodity/symbol&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 

	
 
                <span class="c"># Get the posting metadata</span>
 
                <span class="n">metadata</span> <span class="o">=</span> <span class="p">{}</span>
 

	
 
                <span class="n">values</span> <span class="o">=</span> <span class="n">posting</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&#39;./metadata/value&#39;</span><span class="p">)</span>
 
                <span class="k">if</span> <span class="n">values</span><span class="p">:</span>
 
                    <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">values</span><span class="p">:</span>
 
                        <span class="n">key</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;key&#39;</span><span class="p">)</span>
 
                        <span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;./string&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 

	
 
                        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;metadata: </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
 

	
 
                        <span class="n">metadata</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="n">key</span><span class="p">:</span> <span class="n">value</span><span class="p">})</span>
 

	
 
                <span class="n">postings</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
 
                    <span class="n">Posting</span><span class="p">(</span><span class="n">account</span><span class="o">=</span><span class="n">account</span><span class="p">,</span>
 
                            <span class="n">metadata</span><span class="o">=</span><span class="n">metadata</span><span class="p">,</span>
 
                            <span class="n">amount</span><span class="o">=</span><span class="n">Amount</span><span class="p">(</span><span class="n">amount</span><span class="o">=</span><span class="n">amount</span><span class="p">,</span> <span class="n">symbol</span><span class="o">=</span><span class="n">symbol</span><span class="p">)))</span>
 

	
 
            <span class="c"># Get the transaction metadata</span>
 
            <span class="n">metadata</span> <span class="o">=</span> <span class="p">{}</span>
 

	
 
            <span class="n">values</span> <span class="o">=</span> <span class="n">transaction</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="s">&#39;./metadata/value&#39;</span><span class="p">)</span>
 
            <span class="k">if</span> <span class="n">values</span><span class="p">:</span>
 
                <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">values</span><span class="p">:</span>
 
                    <span class="n">key</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">&#39;key&#39;</span><span class="p">)</span>
 
                    <span class="n">value</span> <span class="o">=</span> <span class="n">value</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s">&#39;./string&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">text</span>
 

	
 
                    <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;metadata: </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
 

	
 
                    <span class="n">metadata</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="n">key</span><span class="p">:</span> <span class="n">value</span><span class="p">})</span>
 

	
 
            <span class="c"># Add a Transaction instance to the list</span>
 
            <span class="nb">id</span> <span class="o">=</span> <span class="n">metadata</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;Id&#39;</span><span class="p">)</span>
 
            <span class="n">entries</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
 
                <span class="n">Transaction</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="nb">id</span><span class="p">,</span> <span class="n">date</span><span class="o">=</span><span class="n">date</span><span class="p">,</span> <span class="n">payee</span><span class="o">=</span><span class="n">payee</span><span class="p">,</span> <span class="n">postings</span><span class="o">=</span><span class="n">postings</span><span class="p">,</span>
 
                            <span class="n">metadata</span><span class="o">=</span><span class="n">metadata</span><span class="p">))</span>
 

	
 
        <span class="k">return</span> <span class="n">entries</span>
 
</div>
 
<div class="viewcode-block" id="Ledger.update_transaction"><a class="viewcode-back" href="../../../api/accounting.storage.html#accounting.storage.ledgercli.Ledger.update_transaction">[docs]</a>    <span class="k">def</span> <span class="nf">update_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transaction</span><span class="p">):</span>
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;DUMMY: Updated transaction: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">transaction</span><span class="p">)</span>
 

	
 
</div></div>
 
<div class="viewcode-block" id="main"><a class="viewcode-back" href="../../../api/accounting.storage.html#accounting.storage.ledgercli.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
    <span class="kn">import</span> <span class="nn">argparse</span>
 
    <span class="k">if</span> <span class="n">argv</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
 
        <span class="n">argv</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span>
 

	
 
    <span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">()</span>
 
    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="s">&#39;--verbosity&#39;</span><span class="p">,</span>
 
                        <span class="n">default</span><span class="o">=</span><span class="s">&#39;INFO&#39;</span><span class="p">,</span>
 
                        <span class="n">help</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;Filter logging output. Possible values:&#39;</span> <span class="o">+</span>
 
                              <span class="s">&#39; CRITICAL, ERROR, WARNING, INFO, DEBUG&#39;</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="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
 
    <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="nb">getattr</span><span class="p">(</span><span class="n">logging</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">verbosity</span><span class="p">,</span> <span class="s">&#39;INFO&#39;</span><span class="p">))</span>
 
    <span class="n">ledger</span> <span class="o">=</span> <span class="n">Ledger</span><span class="p">(</span><span class="n">ledger_file</span><span class="o">=</span><span class="s">&#39;non-profit-test-data.ledger&#39;</span><span class="p">)</span>
 
    <span class="k">print</span><span class="p">(</span><span class="n">ledger</span><span class="o">.</span><span class="n">bal</span><span class="p">())</span>
 
    <span class="k">print</span><span class="p">(</span><span class="n">ledger</span><span class="o">.</span><span class="n">reg</span><span class="p">())</span>
 

	
 
</div>
 
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
 
    <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">main</span><span class="p">())</span>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../../accounting.html" >accounting</a> &raquo;</li>
 
          <li><a href="../storage.html" >accounting.storage</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/storage/sql.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.storage.sql &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../../index.html" />
 
    <link rel="up" title="accounting.storage" href="../storage.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../../accounting.html" >accounting</a> &raquo;</li>
 
          <li><a href="../storage.html" accesskey="U">accounting.storage</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.storage.sql</h1><div class="highlight"><pre>
 
<span class="kn">import</span> <span class="nn">logging</span>
 
<span class="kn">import</span> <span class="nn">json</span>
 

	
 
<span class="kn">from</span> <span class="nn">flask.ext.sqlalchemy</span> <span class="kn">import</span> <span class="n">SQLAlchemy</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting.exceptions</span> <span class="kn">import</span> <span class="n">AccountingException</span>
 
<span class="kn">from</span> <span class="nn">accounting.storage</span> <span class="kn">import</span> <span class="n">Storage</span>
 
<span class="kn">from</span> <span class="nn">accounting.models</span> <span class="kn">import</span> <span class="n">Transaction</span><span class="p">,</span> <span class="n">Posting</span><span class="p">,</span> <span class="n">Amount</span>
 

	
 
<span class="n">_log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
 
<span class="n">db</span> <span class="o">=</span> <span class="bp">None</span>
 

	
 

	
 
<div class="viewcode-block" id="SQLStorage"><a class="viewcode-back" href="../../../api/accounting.storage.sql.html#accounting.storage.sql.SQLStorage">[docs]</a><span class="k">class</span> <span class="nc">SQLStorage</span><span class="p">(</span><span class="n">Storage</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">app</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
        <span class="k">global</span> <span class="n">db</span>
 

	
 
        <span class="k">if</span> <span class="ow">not</span> <span class="n">app</span><span class="p">:</span>
 
            <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">&#39;Missing app keyword argument&#39;</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">app</span> <span class="o">=</span> <span class="n">app</span>
 
        <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">db</span> <span class="o">=</span> <span class="n">SQLAlchemy</span><span class="p">(</span><span class="n">app</span><span class="p">)</span>
 

	
 
        <span class="kn">from</span> <span class="nn">.models</span> <span class="kn">import</span> <span class="n">Transaction</span> <span class="k">as</span> <span class="n">SQLTransaction</span><span class="p">,</span> \
 
            <span class="n">Posting</span> <span class="k">as</span> <span class="n">SQLPosting</span><span class="p">,</span> <span class="n">Amount</span> <span class="k">as</span> <span class="n">SQLAmount</span>
 

	
 
        <span class="n">db</span><span class="o">.</span><span class="n">create_all</span><span class="p">()</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">Transaction</span> <span class="o">=</span> <span class="n">SQLTransaction</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">Posting</span> <span class="o">=</span> <span class="n">SQLPosting</span>
 
        <span class="bp">self</span><span class="o">.</span><span class="n">Amount</span> <span class="o">=</span> <span class="n">SQLAmount</span>
 

	
 
<div class="viewcode-block" id="SQLStorage.get_transactions"><a class="viewcode-back" href="../../../api/accounting.storage.sql.html#accounting.storage.sql.SQLStorage.get_transactions">[docs]</a>    <span class="k">def</span> <span class="nf">get_transactions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">):</span>
 
        <span class="n">transactions</span> <span class="o">=</span> <span class="p">[]</span>
 

	
 
        <span class="k">for</span> <span class="n">transaction</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">Transaction</span><span class="o">.</span><span class="n">query</span><span class="o">.</span><span class="n">all</span><span class="p">():</span>
 
            <span class="n">dict_transaction</span> <span class="o">=</span> <span class="n">transaction</span><span class="o">.</span><span class="n">as_dict</span><span class="p">()</span>
 
            <span class="n">dict_postings</span> <span class="o">=</span> <span class="n">dict_transaction</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;postings&#39;</span><span class="p">)</span>
 

	
 
            <span class="n">postings</span> <span class="o">=</span> <span class="p">[]</span>
 

	
 
            <span class="k">for</span> <span class="n">dict_posting</span> <span class="ow">in</span> <span class="n">dict_postings</span><span class="p">:</span>
 
                <span class="n">dict_amount</span> <span class="o">=</span> <span class="n">dict_posting</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;amount&#39;</span><span class="p">)</span>
 
                <span class="n">posting</span> <span class="o">=</span> <span class="n">Posting</span><span class="p">(</span><span class="o">**</span><span class="n">dict_posting</span><span class="p">)</span>
 
                <span class="n">posting</span><span class="o">.</span><span class="n">amount</span> <span class="o">=</span> <span class="n">Amount</span><span class="p">(</span><span class="o">**</span><span class="n">dict_amount</span><span class="p">)</span>
 

	
 
                <span class="n">postings</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">posting</span><span class="p">)</span>
 

	
 
            <span class="n">dict_transaction</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s">&#39;postings&#39;</span><span class="p">:</span> <span class="n">postings</span><span class="p">})</span>
 

	
 
            <span class="n">transactions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Transaction</span><span class="p">(</span><span class="o">**</span><span class="n">dict_transaction</span><span class="p">))</span>
 

	
 
        <span class="k">return</span> <span class="n">transactions</span>
 
</div>
 
<div class="viewcode-block" id="SQLStorage.update_transaction"><a class="viewcode-back" href="../../../api/accounting.storage.sql.html#accounting.storage.sql.SQLStorage.update_transaction">[docs]</a>    <span class="k">def</span> <span class="nf">update_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transaction</span><span class="p">):</span>
 
        <span class="k">if</span> <span class="n">transaction</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="k">raise</span> <span class="n">AccountingException</span><span class="p">(</span><span class="s">&#39;The transaction id must be set for&#39;</span>
 
                                      <span class="s">&#39; update_transaction calls&#39;</span><span class="p">)</span>
 

	
 
        <span class="n">_log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;DUMMY: Update transaction: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">transaction</span><span class="p">)</span>
 
</div>
 
<div class="viewcode-block" id="SQLStorage.add_transaction"><a class="viewcode-back" href="../../../api/accounting.storage.sql.html#accounting.storage.sql.SQLStorage.add_transaction">[docs]</a>    <span class="k">def</span> <span class="nf">add_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transaction</span><span class="p">):</span>
 
        <span class="k">if</span> <span class="n">transaction</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">transaction</span><span class="o">.</span><span class="n">generate_id</span><span class="p">()</span>
 

	
 
        <span class="n">_t</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Transaction</span><span class="p">()</span>
 
        <span class="n">_t</span><span class="o">.</span><span class="n">uuid</span> <span class="o">=</span> <span class="n">transaction</span><span class="o">.</span><span class="n">id</span>
 
        <span class="n">_t</span><span class="o">.</span><span class="n">date</span> <span class="o">=</span> <span class="n">transaction</span><span class="o">.</span><span class="n">date</span>
 
        <span class="n">_t</span><span class="o">.</span><span class="n">payee</span> <span class="o">=</span> <span class="n">transaction</span><span class="o">.</span><span class="n">payee</span>
 
        <span class="n">_t</span><span class="o">.</span><span class="n">meta</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">transaction</span><span class="o">.</span><span class="n">metadata</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">_t</span><span class="p">)</span>
 

	
 
        <span class="k">for</span> <span class="n">posting</span> <span class="ow">in</span> <span class="n">transaction</span><span class="o">.</span><span class="n">postings</span><span class="p">:</span>
 
            <span class="n">_p</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Posting</span><span class="p">()</span>
 
            <span class="n">_p</span><span class="o">.</span><span class="n">transaction_uuid</span> <span class="o">=</span> <span class="n">transaction</span><span class="o">.</span><span class="n">id</span>
 
            <span class="n">_p</span><span class="o">.</span><span class="n">account</span> <span class="o">=</span> <span class="n">posting</span><span class="o">.</span><span class="n">account</span>
 
            <span class="n">_p</span><span class="o">.</span><span class="n">meta</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">posting</span><span class="o">.</span><span class="n">metadata</span><span class="p">)</span>
 
            <span class="n">_p</span><span class="o">.</span><span class="n">amount</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Amount</span><span class="p">(</span><span class="n">symbol</span><span class="o">=</span><span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">symbol</span><span class="p">,</span>
 
                                    <span class="n">amount</span><span class="o">=</span><span class="n">posting</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">amount</span><span class="p">)</span>
 

	
 
            <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">_p</span><span class="p">)</span>
 

	
 
        <span class="bp">self</span><span class="o">.</span><span class="n">db</span><span class="o">.</span><span class="n">session</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span></div></div>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../../accounting.html" >accounting</a> &raquo;</li>
 
          <li><a href="../storage.html" >accounting.storage</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/storage/sql/models.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.storage.sql.models &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../../../index.html" />
 
    <link rel="up" title="accounting.storage.sql" href="../sql.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../../../accounting.html" >accounting</a> &raquo;</li>
 
          <li><a href="../../storage.html" >accounting.storage</a> &raquo;</li>
 
          <li><a href="../sql.html" accesskey="U">accounting.storage.sql</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.storage.sql.models</h1><div class="highlight"><pre>
 
<span class="kn">import</span> <span class="nn">json</span>
 

	
 
<span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">db</span>
 

	
 

	
 
<div class="viewcode-block" id="Transaction"><a class="viewcode-back" href="../../../../api/accounting.storage.sql.html#accounting.storage.sql.models.Transaction">[docs]</a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
 
    <span class="nb">id</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Integer</span><span class="p">(),</span> <span class="n">primary_key</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
 
    <span class="n">uuid</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">unique</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">nullable</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
 
    <span class="n">date</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">DateTime</span><span class="p">)</span>
 
    <span class="n">payee</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">String</span><span class="p">())</span>
 
    <span class="n">meta</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">String</span><span class="p">())</span>
 

	
 
<div class="viewcode-block" id="Transaction.as_dict"><a class="viewcode-back" href="../../../../api/accounting.storage.sql.html#accounting.storage.sql.models.Transaction.as_dict">[docs]</a>    <span class="k">def</span> <span class="nf">as_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
            <span class="nb">id</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">uuid</span><span class="p">,</span>
 
            <span class="n">date</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">date</span><span class="p">,</span>
 
            <span class="n">payee</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">payee</span><span class="p">,</span>
 
            <span class="n">postings</span><span class="o">=</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="n">as_dict</span><span class="p">()</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">postings</span><span class="p">],</span>
 
            <span class="n">metadata</span><span class="o">=</span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">)</span>
 
        <span class="p">)</span>
 

	
 
</div></div>
 
<div class="viewcode-block" id="Posting"><a class="viewcode-back" href="../../../../api/accounting.storage.sql.html#accounting.storage.sql.models.Posting">[docs]</a><span class="k">class</span> <span class="nc">Posting</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
 
    <span class="nb">id</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Integer</span><span class="p">(),</span> <span class="n">primary_key</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
 

	
 
    <span class="n">transaction_uuid</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">db</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="s">&#39;transaction.uuid&#39;</span><span class="p">))</span>
 
    <span class="n">transaction</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">relationship</span><span class="p">(</span><span class="s">&#39;Transaction&#39;</span><span class="p">,</span> <span class="n">backref</span><span class="o">=</span><span class="s">&#39;postings&#39;</span><span class="p">)</span>
 

	
 
    <span class="n">account</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">String</span><span class="p">,</span> <span class="n">nullable</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
 

	
 
    <span class="n">amount_id</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Integer</span><span class="p">,</span> <span class="n">db</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="s">&#39;amount.id&#39;</span><span class="p">))</span>
 
    <span class="n">amount</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">relationship</span><span class="p">(</span><span class="s">&#39;Amount&#39;</span><span class="p">)</span>
 

	
 
    <span class="n">meta</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">String</span><span class="p">)</span>
 

	
 
<div class="viewcode-block" id="Posting.as_dict"><a class="viewcode-back" href="../../../../api/accounting.storage.sql.html#accounting.storage.sql.models.Posting.as_dict">[docs]</a>    <span class="k">def</span> <span class="nf">as_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
            <span class="n">account</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
 
            <span class="n">amount</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">amount</span><span class="o">.</span><span class="n">as_dict</span><span class="p">(),</span>
 
            <span class="n">metadata</span><span class="o">=</span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">meta</span><span class="p">)</span>
 
        <span class="p">)</span>
 

	
 
</div></div>
 
<div class="viewcode-block" id="Amount"><a class="viewcode-back" href="../../../../api/accounting.storage.sql.html#accounting.storage.sql.models.Amount">[docs]</a><span class="k">class</span> <span class="nc">Amount</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span>
 
    <span class="nb">id</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Integer</span><span class="p">,</span> <span class="n">primary_key</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
 
    <span class="n">symbol</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">String</span><span class="p">)</span>
 
    <span class="n">amount</span> <span class="o">=</span> <span class="n">db</span><span class="o">.</span><span class="n">Column</span><span class="p">(</span><span class="n">db</span><span class="o">.</span><span class="n">Numeric</span><span class="p">)</span>
 

	
 
<div class="viewcode-block" id="Amount.as_dict"><a class="viewcode-back" href="../../../../api/accounting.storage.sql.html#accounting.storage.sql.models.Amount.as_dict">[docs]</a>    <span class="k">def</span> <span class="nf">as_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 
        <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
            <span class="n">symbol</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">symbol</span><span class="p">,</span>
 
            <span class="n">amount</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">amount</span>
 
        <span class="p">)</span></div></div>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../../../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../../../accounting.html" >accounting</a> &raquo;</li>
 
          <li><a href="../../storage.html" >accounting.storage</a> &raquo;</li>
 
          <li><a href="../sql.html" >accounting.storage.sql</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/transport.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.transport &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.transport</h1><div class="highlight"><pre>
 
<span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
 

	
 
<span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">json</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting.models</span> <span class="kn">import</span> <span class="n">Amount</span><span class="p">,</span> <span class="n">Transaction</span><span class="p">,</span> <span class="n">Posting</span><span class="p">,</span> <span class="n">Account</span>
 

	
 
<div class="viewcode-block" id="AccountingEncoder"><a class="viewcode-back" href="../../api/accounting.html#accounting.transport.AccountingEncoder">[docs]</a><span class="k">class</span> <span class="nc">AccountingEncoder</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">JSONEncoder</span><span class="p">):</span>
 
<div class="viewcode-block" id="AccountingEncoder.default"><a class="viewcode-back" href="../../api/accounting.html#accounting.transport.AccountingEncoder.default">[docs]</a>    <span class="k">def</span> <span class="nf">default</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">o</span><span class="p">):</span>
 
        <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">Account</span><span class="p">):</span>
 
            <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
                <span class="n">__type__</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span>
 
                <span class="n">name</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
 
                <span class="n">amounts</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">amounts</span><span class="p">,</span>
 
                <span class="n">accounts</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">accounts</span>
 
            <span class="p">)</span>
 
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">Transaction</span><span class="p">):</span>
 
            <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
                <span class="n">__type__</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span>
 
                <span class="n">date</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s">&#39;%Y-%m-</span><span class="si">%d</span><span class="s">&#39;</span><span class="p">),</span>
 
                <span class="n">payee</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">payee</span><span class="p">,</span>
 
                <span class="n">postings</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">postings</span><span class="p">,</span>
 
                <span class="n">metadata</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">metadata</span>
 
            <span class="p">)</span>
 
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">Posting</span><span class="p">):</span>
 
            <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
                <span class="n">__type__</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span>
 
                <span class="n">account</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">account</span><span class="p">,</span>
 
                <span class="n">amount</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">amount</span><span class="p">,</span>
 
                <span class="n">metadata</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">metadata</span>
 
            <span class="p">)</span>
 
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="n">Amount</span><span class="p">):</span>
 
            <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
                <span class="n">__type__</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span>
 
                <span class="n">amount</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">amount</span><span class="p">),</span>
 
                <span class="n">symbol</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">symbol</span>
 
            <span class="p">)</span>
 
        <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="ne">Exception</span><span class="p">):</span>
 
            <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span>
 
                <span class="n">__type__</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span>
 
                <span class="n">args</span><span class="o">=</span><span class="n">o</span><span class="o">.</span><span class="n">args</span>
 
            <span class="p">)</span>
 

	
 
        <span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">JSONEncoder</span><span class="o">.</span><span class="n">default</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">o</span><span class="p">)</span>
 
</div></div>
 
<div class="viewcode-block" id="AccountingDecoder"><a class="viewcode-back" href="../../api/accounting.html#accounting.transport.AccountingDecoder">[docs]</a><span class="k">class</span> <span class="nc">AccountingDecoder</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">JSONDecoder</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">json</span><span class="o">.</span><span class="n">JSONDecoder</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">object_hook</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dict_to_object</span><span class="p">)</span>
 

	
 
<div class="viewcode-block" id="AccountingDecoder.dict_to_object"><a class="viewcode-back" href="../../api/accounting.html#accounting.transport.AccountingDecoder.dict_to_object">[docs]</a>    <span class="k">def</span> <span class="nf">dict_to_object</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">):</span>
 
        <span class="k">if</span> <span class="s">&#39;__type__&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">d</span><span class="p">:</span>
 
            <span class="k">return</span> <span class="n">d</span>
 

	
 
        <span class="n">types</span> <span class="o">=</span> <span class="p">{</span><span class="n">c</span><span class="o">.</span><span class="n">__name__</span> <span class="p">:</span> <span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="p">[</span><span class="n">Amount</span><span class="p">,</span> <span class="n">Transaction</span><span class="p">,</span> <span class="n">Posting</span><span class="p">,</span>
 
                                          <span class="n">Account</span><span class="p">]}</span>
 

	
 
        <span class="n">_type</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s">&#39;__type__&#39;</span><span class="p">)</span>
 

	
 
        <span class="k">if</span> <span class="n">_type</span> <span class="o">==</span> <span class="s">&#39;Transaction&#39;</span><span class="p">:</span>
 
            <span class="n">d</span><span class="p">[</span><span class="s">&#39;date&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="s">&#39;date&#39;</span><span class="p">],</span> <span class="s">&#39;%Y-%m-</span><span class="si">%d</span><span class="s">&#39;</span><span class="p">)</span>
 

	
 
        <span class="k">return</span> <span class="n">types</span><span class="p">[</span><span class="n">_type</span><span class="p">](</span><span class="o">**</span><span class="n">d</span><span class="p">)</span></div></div>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/accounting/web.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.web &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../../index.html" />
 
    <link rel="up" title="accounting" href="../accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" accesskey="U">accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>Source code for accounting.web</h1><div class="highlight"><pre>
 
<span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">This module contains the high-level webservice logic such as the Flask setup</span>
 
<span class="sd">and the Flask endpoints.</span>
 
<span class="sd">&#39;&#39;&#39;</span>
 
<span class="kn">import</span> <span class="nn">sys</span>
 
<span class="kn">import</span> <span class="nn">logging</span>
 
<span class="kn">import</span> <span class="nn">argparse</span>
 

	
 
<span class="kn">from</span> <span class="nn">flask</span> <span class="kn">import</span> <span class="n">Flask</span><span class="p">,</span> <span class="n">jsonify</span><span class="p">,</span> <span class="n">request</span>
 

	
 
<span class="kn">from</span> <span class="nn">accounting</span> <span class="kn">import</span> <span class="n">Ledger</span>
 
<span class="kn">from</span> <span class="nn">accounting.transport</span> <span class="kn">import</span> <span class="n">AccountingEncoder</span><span class="p">,</span> <span class="n">AccountingDecoder</span>
 
<span class="kn">from</span> <span class="nn">accounting.exceptions</span> <span class="kn">import</span> <span class="n">AccountingException</span>
 
<span class="kn">from</span> <span class="nn">accounting.decorators</span> <span class="kn">import</span> <span class="n">jsonify_exceptions</span>
 

	
 

	
 
<span class="n">app</span> <span class="o">=</span> <span class="n">Flask</span><span class="p">(</span><span class="s">&#39;accounting&#39;</span><span class="p">)</span>
 
<span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">from_pyfile</span><span class="p">(</span><span class="s">&#39;config.py&#39;</span><span class="p">)</span>
 

	
 
<span class="n">ledger</span> <span class="o">=</span> <span class="bp">None</span>
 

	
 
<span class="nd">@app.before_request</span>
 
<div class="viewcode-block" id="init_ledger"><a class="viewcode-back" href="../../api/accounting.html#accounting.web.init_ledger">[docs]</a><span class="k">def</span> <span class="nf">init_ledger</span><span class="p">():</span>
 
    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    :py:meth:`flask.Flask.before_request`-decorated method that initializes an</span>
 
<span class="sd">    :py:class:`accounting.Ledger` object.</span>
 
<span class="sd">    &#39;&#39;&#39;</span>
 
    <span class="k">global</span> <span class="n">ledger</span>
 
    <span class="n">ledger</span> <span class="o">=</span> <span class="n">Ledger</span><span class="p">(</span><span class="n">ledger_file</span><span class="o">=</span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s">&#39;LEDGER_FILE&#39;</span><span class="p">])</span>
 

	
 

	
 
<span class="c"># These will convert output from our internal classes to JSON and back</span></div>
 
<span class="n">app</span><span class="o">.</span><span class="n">json_encoder</span> <span class="o">=</span> <span class="n">AccountingEncoder</span>
 
<span class="n">app</span><span class="o">.</span><span class="n">json_decoder</span> <span class="o">=</span> <span class="n">AccountingDecoder</span>
 

	
 

	
 
<span class="nd">@app.route</span><span class="p">(</span><span class="s">&#39;/&#39;</span><span class="p">)</span>
 
<div class="viewcode-block" id="index"><a class="viewcode-back" href="../../api/accounting.html#accounting.web.index">[docs]</a><span class="k">def</span> <span class="nf">index</span><span class="p">():</span>
 
    <span class="sd">&#39;&#39;&#39; Hello World! &#39;&#39;&#39;</span>
 
    <span class="k">return</span> <span class="s">&#39;Hello World!&#39;</span>
 

	
 
</div>
 
<span class="nd">@app.route</span><span class="p">(</span><span class="s">&#39;/balance&#39;</span><span class="p">)</span>
 
<div class="viewcode-block" id="balance_report"><a class="viewcode-back" href="../../api/accounting.html#accounting.web.balance_report">[docs]</a><span class="k">def</span> <span class="nf">balance_report</span><span class="p">():</span>
 
    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    Returns the JSON-serialized result of :meth:`accounting.Ledger.bal`</span>
 
<span class="sd">    &#39;&#39;&#39;</span>
 
    <span class="n">report_data</span> <span class="o">=</span> <span class="n">ledger</span><span class="o">.</span><span class="n">bal</span><span class="p">()</span>
 

	
 
    <span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span><span class="n">balance_report</span><span class="o">=</span><span class="n">report_data</span><span class="p">)</span>
 
</div>
 
<span class="nd">@app.route</span><span class="p">(</span><span class="s">&#39;/transaction&#39;</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;GET&#39;</span><span class="p">])</span>
 
<div class="viewcode-block" id="transaction_get"><a class="viewcode-back" href="../../api/accounting.html#accounting.web.transaction_get">[docs]</a><span class="k">def</span> <span class="nf">transaction_get</span><span class="p">():</span>
 
    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    Returns the JSON-serialized output of :meth:`accounting.Ledger.reg`</span>
 
<span class="sd">    &#39;&#39;&#39;</span>
 
    <span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span><span class="n">transactions</span><span class="o">=</span><span class="n">ledger</span><span class="o">.</span><span class="n">reg</span><span class="p">())</span>
 
</div>
 
<span class="nd">@app.route</span><span class="p">(</span><span class="s">&#39;/transaction&#39;</span><span class="p">,</span> <span class="n">methods</span><span class="o">=</span><span class="p">[</span><span class="s">&#39;POST&#39;</span><span class="p">])</span>
 
<span class="nd">@jsonify_exceptions</span>
 
<div class="viewcode-block" id="transaction_post"><a class="viewcode-back" href="../../api/accounting.html#accounting.web.transaction_post">[docs]</a><span class="k">def</span> <span class="nf">transaction_post</span><span class="p">():</span>
 
    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    REST/JSON endpoint for transactions.</span>
 

	
 
<span class="sd">    Current state:</span>
 

	
 
<span class="sd">    Takes a POST request with a ``transactions`` JSON payload and writes it to</span>
 
<span class="sd">    the ledger file.</span>
 

	
 
<span class="sd">    Requires the ``transactions`` payload to be __type__-annotated:</span>
 

	
 
<span class="sd">    .. code-block:: json</span>
 

	
 
<span class="sd">        {</span>
 
<span class="sd">          &quot;transactions&quot;: [</span>
 
<span class="sd">            {</span>
 
<span class="sd">              &quot;__type__&quot;: &quot;Transaction&quot;,</span>
 
<span class="sd">              &quot;date&quot;: &quot;2013-01-01&quot;,</span>
 
<span class="sd">              &quot;payee&quot;: &quot;Kindly T. Donor&quot;,</span>
 
<span class="sd">              &quot;postings&quot;: [</span>
 
<span class="sd">                {</span>
...
 
@@ -183,110 +186,113 @@
 
<span class="sd">        # Logging output (linebreaks added for clarity)</span>
 
<span class="sd">        # DEBUG:accounting:json data: {&#39;balance_report&#39;:</span>
 
<span class="sd">        #    [&lt;Account &quot;None&quot; [</span>
 
<span class="sd">        #        &lt;Amount $ 0&gt;, &lt;Amount KARMA 0&gt;]</span>
 
<span class="sd">        #        [&lt;Account &quot;Assets&quot; [</span>
 
<span class="sd">        #            &lt;Amount $ 50&gt;, &lt;Amount KARMA 10&gt;]</span>
 
<span class="sd">        #            [&lt;Account &quot;Assets:Checking&quot; [</span>
 
<span class="sd">        #                &lt;Amount $ 50&gt;] []&gt;,</span>
 
<span class="sd">        #             &lt;Account &quot;Assets:Karma Account&quot; [</span>
 
<span class="sd">        #                &lt;Amount KARMA 10&gt;] []&gt;]&gt;,</span>
 
<span class="sd">        #         &lt;Account &quot;Expenses&quot; [</span>
 
<span class="sd">        #            &lt;Amount $ 500&gt;]</span>
 
<span class="sd">        #            [&lt;Account &quot;Expenses:Blah&quot; [</span>
 
<span class="sd">        #                &lt;Amount $ 250&gt;]</span>
 
<span class="sd">        #                [&lt;Account &quot;Expenses:Blah:Hosting&quot; [</span>
 
<span class="sd">        #                    &lt;Amount $ 250&gt;] []&gt;]&gt;,</span>
 
<span class="sd">        #             &lt;Account &quot;Expenses:Foo&quot; [</span>
 
<span class="sd">        #                &lt;Amount $ 250&gt;] [</span>
 
<span class="sd">        #                &lt;Account &quot;Expenses:Foo:Hosting&quot; [</span>
 
<span class="sd">        #                    &lt;Amount $ 250&gt;] []&gt;]&gt;]&gt;,</span>
 
<span class="sd">        #         &lt;Account &quot;Income&quot; [</span>
 
<span class="sd">        #            &lt;Amount $ -550&gt;,</span>
 
<span class="sd">        #            &lt;Amount KARMA -10&gt;]</span>
 
<span class="sd">        #            [&lt;Account &quot;Income:Donation&quot; [</span>
 
<span class="sd">        #                &lt;Amount $ -50&gt;] []&gt;,</span>
 
<span class="sd">        #             &lt;Account &quot;Income:Foo&quot; [</span>
 
<span class="sd">        #                &lt;Amount $ -500&gt;]</span>
 
<span class="sd">        #                [&lt;Account &quot;Income:Foo:Donation&quot; [</span>
 
<span class="sd">        #                    &lt;Amount $ -500&gt;] []&gt;]&gt;,</span>
 
<span class="sd">        #             &lt;Account &quot;Income:Karma&quot; [</span>
 
<span class="sd">        #             &lt;Amount KARMA -10&gt;] []&gt;]&gt;]&gt;]}</span>
 
<span class="sd">    &#39;&#39;&#39;</span>
 
    <span class="n">app</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;json data: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">request</span><span class="o">.</span><span class="n">json</span><span class="p">)</span>
 
    <span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span><span class="n">foo</span><span class="o">=</span><span class="s">&#39;bar&#39;</span><span class="p">)</span>
 

	
 
</div>
 
<span class="nd">@app.route</span><span class="p">(</span><span class="s">&#39;/register&#39;</span><span class="p">)</span>
 
<div class="viewcode-block" id="register_report"><a class="viewcode-back" href="../../api/accounting.html#accounting.web.register_report">[docs]</a><span class="k">def</span> <span class="nf">register_report</span><span class="p">():</span>
 
    <span class="sd">&#39;&#39;&#39;</span>
 
<span class="sd">    Returns the JSON-serialized output of :py:meth:`accounting.Ledger.reg`</span>
 
<span class="sd">    &#39;&#39;&#39;</span>
 
    <span class="n">report_data</span> <span class="o">=</span> <span class="n">ledger</span><span class="o">.</span><span class="n">reg</span><span class="p">()</span>
 

	
 
    <span class="k">return</span> <span class="n">jsonify</span><span class="p">(</span><span class="n">register_report</span><span class="o">=</span><span class="n">report_data</span><span class="p">)</span>
 

	
 
</div>
 
<div class="viewcode-block" id="main"><a class="viewcode-back" href="../../api/accounting.html#accounting.web.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
 
    <span class="n">prog</span> <span class="o">=</span> <span class="n">__name__</span>
 
    <span class="k">if</span> <span class="n">argv</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
 
        <span class="n">prog</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
 
        <span class="n">argv</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
 

	
 
    <span class="n">parser</span> <span class="o">=</span> <span class="n">argparse</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">prog</span><span class="o">=</span><span class="n">prog</span><span class="p">)</span>
 
    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;-v&#39;</span><span class="p">,</span> <span class="s">&#39;--verbosity&#39;</span><span class="p">,</span>
 
                        <span class="n">default</span><span class="o">=</span><span class="s">&#39;INFO&#39;</span><span class="p">,</span>
 
                        <span class="n">help</span><span class="o">=</span><span class="p">(</span><span class="s">&#39;Filter logging output. Possible values:&#39;</span> <span class="o">+</span>
 
                        <span class="s">&#39; CRITICAL, ERROR, WARNING, INFO, DEBUG&#39;</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="n">argv</span><span class="p">)</span>
 

	
 
    <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="nb">getattr</span><span class="p">(</span><span class="n">logging</span><span class="p">,</span> <span class="n">args</span><span class="o">.</span><span class="n">verbosity</span><span class="p">,</span> <span class="s">&#39;INFO&#39;</span><span class="p">))</span>
 

	
 
    <span class="n">app</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s">&#39;HOST&#39;</span><span class="p">],</span> <span class="n">port</span><span class="o">=</span><span class="n">app</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s">&#39;PORT&#39;</span><span class="p">])</span>
 
</div>
 
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span>
 
    <span class="n">main</span><span class="p">()</span>
 
</pre></div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="../index.html" >Module code</a> &raquo;</li>
 
          <li><a href="../accounting.html" >accounting</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_modules/index.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>Overview: module code &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../index.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1>All modules for which code is available</h1>
 
<ul><li><a href="accounting.html">accounting</a></li>
 
<ul><li><a href="accounting/client.html">accounting.client</a></li>
 
<li><a href="accounting/decorators.html">accounting.decorators</a></li>
 
<li><a href="accounting/exceptions.html">accounting.exceptions</a></li>
 
<li><a href="accounting/gtkclient.html">accounting.gtkclient</a></li>
 
<li><a href="accounting/models.html">accounting.models</a></li>
 
<li><a href="accounting/storage.html">accounting.storage</a></li>
 
<ul><li><a href="accounting/storage/ledgercli.html">accounting.storage.ledgercli</a></li>
 
<li><a href="accounting/storage/sql.html">accounting.storage.sql</a></li>
 
<ul><li><a href="accounting/storage/sql/models.html">accounting.storage.sql.models</a></li>
 
</ul></ul><li><a href="accounting/transport.html">accounting.transport</a></li>
 
<li><a href="accounting/web.html">accounting.web</a></li>
 
</ul></ul>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/_sources/index.txt
Show inline comments
 
.. Accounting API documentation master file, created by
 
   sphinx-quickstart on Thu Dec 12 14:02:01 2013.
 
   You can adapt this file completely to your liking, but it should at least
 
   contain the root `toctree` directive.
 

	
 
Welcome to Accounting API's documentation!
 
==========================================
 

	
 
Contents:
 

	
 
.. toctree::
 
   :maxdepth: 2
 

	
 
   README
 
   restapi
 
   api/accounting.rst
 

	
 

	
 

	
 
Indices and tables
 
==================
 

	
 
* :ref:`genindex`
 
* :ref:`modindex`
 
* :ref:`search`
doc/build/html/_sources/restapi.txt
Show inline comments
 
new file 100644
 
==========
 
 REST API
 
==========
 

	
 
Get transactions
 
----------------
 

	
 
.. http:get:: /transaction
 

	
 
    Get all transactions
 

	
 
    **Example request**
 

	
 
    .. code-block:: http
 

	
 
        GET /transaction HTTP/1.1
 
        Host: accounting.example
 
        Accept: application/json
 

	
 

	
 
    **Example response**
 

	
 
    .. code-block:: http
 

	
 
        HTTP/1.1 200 OK
 
        Content-Type: application/json
 

	
 
        {
 
          "transactions": [
 
            {
 
              "__type__": "Transaction", 
 
              "date": "2010-01-01", 
 
              "id": "Ids can be anything", 
 
              "metadata": {}, 
 
              "payee": "Kindly T. Donor", 
 
              "postings": [
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Income:Foo:Donation", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "-100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {
 
                    "Invoice": "Projects/Foo/Invoices/Invoice20100101.pdf"
 
                  }
 
                }, 
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Assets:Checking", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {}
 
                }
 
              ]
 
            }, 
 
            {
 
              "__type__": "Transaction", 
 
              "date": "2011-03-15", 
 
              "id": "but mind you if they collide.", 
 
              "metadata": {}, 
 
              "payee": "Another J. Donor", 
 
              "postings": [
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Income:Foo:Donation", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "-400", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {
 
                    "Approval": "Projects/Foo/earmark-record.txt"
 
                  }
 
                }, 
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Assets:Checking", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "400", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {}
 
                }
 
              ]
 
            },
 
          ]
 
        }
 

	
 
Add transactions
 
----------------
 

	
 
.. http:post:: /transaction
 

	
 
    :jsonparam array transactions: A list of Transaction objects to add.
 

	
 
    **Example request**
 

	
 
    .. code-block:: http
 

	
 
        POST /transaction HTTP/1.1
 
        Host: accounting.example
 
        Content-Type: application/json
 
        Accept: application/json
 

	
 
        {
 
          "transactions": [
 
            {
 
              "__type__": "Transaction", 
 
              "date": "2010-01-01", 
 
              "id": "Ids can be anything", 
 
              "metadata": {}, 
 
              "payee": "Kindly T. Donor", 
 
              "postings": [
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Income:Foo:Donation", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "-100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {
 
                    "Invoice": "Projects/Foo/Invoices/Invoice20100101.pdf"
 
                  }
 
                }, 
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Assets:Checking", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {}
 
                }
 
              ]
 
            }, 
 
          ]
 
        }
 

	
 
    **Example response**
 

	
 
    .. code-block:: http
 

	
 
        HTTP/1.1 200 OK
 
        Content-Type: application/json
 

	
 
        {
 
          "status": "OK",
 
          "transaction_ids": [
 
            "Ids can be anything"
 
          ]
 
        }
 

	
 

	
 
Delete a transaction
 
--------------------
 

	
 
.. http:delete:: /transaction/<string:transaction_id>
 

	
 
    Delete the transaction with ID :data:`transaction_id`.
 

	
 
    **Example request**
 

	
 
    .. code-block:: http
 

	
 
        DELETE /transaction/123456 HTTP/1.1
 
        Host: accounting.example
 
        Accept: application/json
 

	
 
    **Example response**
 

	
 
    .. code-block:: http
 

	
 
        HTTP/1.1 200 OK
 
        Content-Type: application/json
 

	
 
        {
 
          "status": "OK"
 
        }
doc/build/html/api/accounting.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting package &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../index.html" />
 
    <link rel="next" title="accounting.storage package" href="accounting.storage.html" />
 
    <link rel="prev" title="The Accounting API" href="../README.html" /> 
 
    <link rel="prev" title="REST API" href="../restapi.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.storage.html" title="accounting.storage package"
 
             accesskey="N">next</a> |</li>
 
        <li class="right" >
 
          <a href="../README.html" title="The Accounting API"
 
          <a href="../restapi.html" title="REST API"
 
             accesskey="P">previous</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <div class="section" id="accounting-package">
 
<h1>accounting package<a class="headerlink" href="#accounting-package" title="Permalink to this headline">¶</a></h1>
 
<div class="section" id="subpackages">
 
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
 
<div class="toctree-wrapper compound">
 
<ul>
 
<li class="toctree-l1"><a class="reference internal" href="accounting.storage.html">accounting.storage package</a><ul>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.storage.html#subpackages">Subpackages</a><ul>
 
<li class="toctree-l3"><a class="reference internal" href="accounting.storage.sql.html">accounting.storage.sql package</a><ul>
 
<li class="toctree-l4"><a class="reference internal" href="accounting.storage.sql.html#submodules">Submodules</a></li>
 
<li class="toctree-l4"><a class="reference internal" href="accounting.storage.sql.html#module-accounting.storage.sql.models">accounting.storage.sql.models module</a></li>
 
<li class="toctree-l4"><a class="reference internal" href="accounting.storage.sql.html#module-accounting.storage.sql">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 
</li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.storage.html#submodules">Submodules</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.storage.html#module-accounting.storage.ledgercli">accounting.storage.ledgercli module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.storage.html#module-accounting.storage">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 
</div>
 
</div>
 
<div class="section" id="submodules">
 
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
 
</div>
 
<div class="section" id="module-accounting.client">
 
<span id="accounting-client-module"></span><h2>accounting.client module<a class="headerlink" href="#module-accounting.client" title="Permalink to this headline">¶</a></h2>
 
<dl class="class">
 
<dt id="accounting.client.Client">
 
<em class="property">class </em><tt class="descclassname">accounting.client.</tt><tt class="descname">Client</tt><big>(</big><em>host=None</em>, <em>json_encoder=None</em>, <em>json_decoder=None</em><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#Client"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.Client" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">builtins.object</span></tt></p>
 
<dl class="method">
 
<dt id="accounting.client.Client.get">
 
<tt class="descname">get</tt><big>(</big><em>path</em><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#Client.get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.Client.get" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.client.Client.get_balance">
 
<tt class="descname">get_balance</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#Client.get_balance"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.Client.get_balance" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.client.Client.get_register">
 
<tt class="descname">get_register</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#Client.get_register"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.Client.get_register" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.client.Client.post">
 
<tt class="descname">post</tt><big>(</big><em>path</em>, <em>payload</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#Client.post"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.Client.post" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.client.Client.simple_transaction">
 
<tt class="descname">simple_transaction</tt><big>(</big><em>from_acc</em>, <em>to_acc</em>, <em>amount</em>, <em>symbol=None</em>, <em>payee=None</em><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#Client.simple_transaction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.Client.simple_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</dd></dl>
 

	
 
<dl class="function">
 
<dt id="accounting.client.main">
 
<tt class="descclassname">accounting.client.</tt><tt class="descname">main</tt><big>(</big><em>argv=None</em>, <em>prog=None</em><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#main"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.main" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="function">
 
<dt id="accounting.client.print_balance_accounts">
 
<tt class="descclassname">accounting.client.</tt><tt class="descname">print_balance_accounts</tt><big>(</big><em>accounts</em>, <em>level=0</em><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#print_balance_accounts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.print_balance_accounts" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="function">
 
<dt id="accounting.client.print_transactions">
 
<tt class="descclassname">accounting.client.</tt><tt class="descname">print_transactions</tt><big>(</big><em>transactions</em><big>)</big><a class="reference internal" href="../_modules/accounting/client.html#print_transactions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.client.print_transactions" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</div>
 
<div class="section" id="module-accounting.config">
 
<span id="accounting-config-module"></span><h2>accounting.config module<a class="headerlink" href="#module-accounting.config" title="Permalink to this headline">¶</a></h2>
 
</div>
 
<div class="section" id="module-accounting.decorators">
 
<span id="accounting-decorators-module"></span><h2>accounting.decorators module<a class="headerlink" href="#module-accounting.decorators" title="Permalink to this headline">¶</a></h2>
 
<dl class="function">
 
<dt id="accounting.decorators.jsonify_exceptions">
 
<tt class="descclassname">accounting.decorators.</tt><tt class="descname">jsonify_exceptions</tt><big>(</big><em>func</em><big>)</big><a class="reference internal" href="../_modules/accounting/decorators.html#jsonify_exceptions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.decorators.jsonify_exceptions" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Wraps a Flask endpoint and catches any AccountingException-based
 
exceptions which are returned to the client as JSON.</p>
...
 
@@ -285,147 +288,150 @@ and the Flask endpoints.</p>
 
<tt class="descclassname">accounting.web.</tt><tt class="descname">main</tt><big>(</big><em>argv=None</em><big>)</big><a class="reference internal" href="../_modules/accounting/web.html#main"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.web.main" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="function">
 
<dt id="accounting.web.transaction_delete">
 
<tt class="descclassname">accounting.web.</tt><tt class="descname">transaction_delete</tt><big>(</big><em>transaction_id=None</em><big>)</big><a class="headerlink" href="#accounting.web.transaction_delete" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="function">
 
<dt id="accounting.web.transaction_get">
 
<tt class="descclassname">accounting.web.</tt><tt class="descname">transaction_get</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/web.html#transaction_get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.web.transaction_get" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Returns the JSON-serialized output of <tt class="xref py py-meth docutils literal"><span class="pre">accounting.Ledger.reg()</span></tt></p>
 
</dd></dl>
 

	
 
<dl class="function">
 
<dt id="accounting.web.transaction_post">
 
<tt class="descclassname">accounting.web.</tt><tt class="descname">transaction_post</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/web.html#transaction_post"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.web.transaction_post" title="Permalink to this definition">¶</a></dt>
 
<dd><p>REST/JSON endpoint for transactions.</p>
 
<p>Current state:</p>
 
<p>Takes a POST request with a <tt class="docutils literal"><span class="pre">transactions</span></tt> JSON payload and writes it to
 
the ledger file.</p>
 
<p>Requires the <tt class="docutils literal"><span class="pre">transactions</span></tt> payload to be __type__-annotated:</p>
 
<div class="highlight-json"><pre>{
 
  &quot;transactions&quot;: [
 
    {
 
      &quot;__type__&quot;: &quot;Transaction&quot;,
 
      &quot;date&quot;: &quot;2013-01-01&quot;,
 
      &quot;payee&quot;: &quot;Kindly T. Donor&quot;,
 
      &quot;postings&quot;: [
 
        {
 
          &quot;__type__&quot;: &quot;Posting&quot;,
 
          &quot;account&quot;: &quot;Income:Foo:Donation&quot;,
 
          &quot;amount&quot;: {
 
            &quot;__type__&quot;: &quot;Amount&quot;,
 
            &quot;amount&quot;: &quot;-100&quot;,
 
            &quot;symbol&quot;: &quot;$&quot;
 
          }
 
        },
 
        {
 
          &quot;__type__&quot;: &quot;Posting&quot;,
 
          &quot;account&quot;: &quot;Assets:Checking&quot;,
 
          &quot;amount&quot;: {
 
            &quot;__type__&quot;: &quot;Amount&quot;,
 
            &quot;amount&quot;: &quot;100&quot;,
 
            &quot;symbol&quot;: &quot;$&quot;
 
          }
 
        }
 
      ]
 
    }
 
}</pre>
 
</div>
 
<p>becomes:</p>
 
<div class="highlight-python"><pre>2013-01-01 Kindly T. Donor
 
  Income:Foo:Donation                                         $ -100
 
  Assets:Checking                                              $ 100</pre>
 
</div>
 
</dd></dl>
 

	
 
<dl class="function">
 
<dt id="accounting.web.transaction_update">
 
<tt class="descclassname">accounting.web.</tt><tt class="descname">transaction_update</tt><big>(</big><em>transaction_id=None</em><big>)</big><a class="headerlink" href="#accounting.web.transaction_update" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</div>
 
<div class="section" id="module-accounting">
 
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-accounting" title="Permalink to this headline">¶</a></h2>
 
</div>
 
</div>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
  <h3><a href="../index.html">Table Of Contents</a></h3>
 
  <ul>
 
<li><a class="reference internal" href="#">accounting package</a><ul>
 
<li><a class="reference internal" href="#subpackages">Subpackages</a><ul>
 
</ul>
 
</li>
 
<li><a class="reference internal" href="#submodules">Submodules</a></li>
 
<li><a class="reference internal" href="#module-accounting.client">accounting.client module</a></li>
 
<li><a class="reference internal" href="#module-accounting.config">accounting.config module</a></li>
 
<li><a class="reference internal" href="#module-accounting.decorators">accounting.decorators module</a></li>
 
<li><a class="reference internal" href="#module-accounting.exceptions">accounting.exceptions module</a></li>
 
<li><a class="reference internal" href="#module-accounting.gtkclient">accounting.gtkclient module</a></li>
 
<li><a class="reference internal" href="#module-accounting.models">accounting.models module</a></li>
 
<li><a class="reference internal" href="#module-accounting.transport">accounting.transport module</a></li>
 
<li><a class="reference internal" href="#module-accounting.web">accounting.web module</a></li>
 
<li><a class="reference internal" href="#module-accounting">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 

	
 
  <h4>Previous topic</h4>
 
  <p class="topless"><a href="../README.html"
 
                        title="previous chapter">The Accounting API</a></p>
 
  <p class="topless"><a href="../restapi.html"
 
                        title="previous chapter">REST API</a></p>
 
  <h4>Next topic</h4>
 
  <p class="topless"><a href="accounting.storage.html"
 
                        title="next chapter">accounting.storage package</a></p>
 
  <h3>This Page</h3>
 
  <ul class="this-page-menu">
 
    <li><a href="../_sources/api/accounting.txt"
 
           rel="nofollow">Show Source</a></li>
 
  </ul>
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.storage.html" title="accounting.storage package"
 
             >next</a> |</li>
 
        <li class="right" >
 
          <a href="../README.html" title="The Accounting API"
 
          <a href="../restapi.html" title="REST API"
 
             >previous</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/api/accounting.storage.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.storage package &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../index.html" />
 
    <link rel="up" title="accounting package" href="accounting.html" />
 
    <link rel="next" title="accounting.storage.sql package" href="accounting.storage.sql.html" />
 
    <link rel="prev" title="accounting package" href="accounting.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.storage.sql.html" title="accounting.storage.sql package"
 
             accesskey="N">next</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.html" title="accounting package"
 
             accesskey="P">previous</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="accounting.html" accesskey="U">accounting package</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <div class="section" id="accounting-storage-package">
 
<h1>accounting.storage package<a class="headerlink" href="#accounting-storage-package" title="Permalink to this headline">¶</a></h1>
 
<div class="section" id="subpackages">
 
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
 
<div class="toctree-wrapper compound">
 
<ul>
 
<li class="toctree-l1"><a class="reference internal" href="accounting.storage.sql.html">accounting.storage.sql package</a><ul>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.storage.sql.html#submodules">Submodules</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.storage.sql.html#module-accounting.storage.sql.models">accounting.storage.sql.models module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.storage.sql.html#module-accounting.storage.sql">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 
</div>
 
</div>
 
<div class="section" id="submodules">
 
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
 
</div>
 
<div class="section" id="module-accounting.storage.ledgercli">
 
<span id="accounting-storage-ledgercli-module"></span><h2>accounting.storage.ledgercli module<a class="headerlink" href="#module-accounting.storage.ledgercli" title="Permalink to this headline">¶</a></h2>
 
<dl class="class">
 
<dt id="accounting.storage.ledgercli.Ledger">
 
<em class="property">class </em><tt class="descclassname">accounting.storage.ledgercli.</tt><tt class="descname">Ledger</tt><big>(</big><em>app=None</em>, <em>ledger_file=None</em>, <em>ledger_bin=None</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/ledgercli.html#Ledger"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.ledgercli.Ledger" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Bases: <a class="reference internal" href="#accounting.storage.Storage" title="accounting.storage.Storage"><tt class="xref py py-class docutils literal"><span class="pre">accounting.storage.Storage</span></tt></a></p>
 
<dl class="method">
 
<dt id="accounting.storage.ledgercli.Ledger.add_transaction">
 
<tt class="descname">add_transaction</tt><big>(</big><em>transaction</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/ledgercli.html#Ledger.add_transaction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.ledgercli.Ledger.add_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Writes a transaction to the ledger file by opening it in &#8216;ab&#8217; mode and
 
writing a ledger transaction based on the
 
<a class="reference internal" href="accounting.html#accounting.models.Transaction" title="accounting.models.Transaction"><tt class="xref py py-class docutils literal"><span class="pre">Transaction</span></tt></a> instance in
 
<tt class="xref py py-data docutils literal"><span class="pre">transaction</span></tt>.</p>
 
</dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.ledgercli.Ledger.assemble_arguments">
 
<tt class="descname">assemble_arguments</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/storage/ledgercli.html#Ledger.assemble_arguments"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.ledgercli.Ledger.assemble_arguments" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Returns a list of arguments suitable for <a class="reference external" href="http://docs.python.org/3.3/library/subprocess.html#subprocess.Popen" title="(in Python v3.3)"><tt class="xref py py-class docutils literal"><span class="pre">subprocess.Popen</span></tt></a>
 
based on <tt class="xref py py-attr docutils literal"><span class="pre">self.ledger_bin</span></tt> and <tt class="xref py py-attr docutils literal"><span class="pre">self.ledger_file</span></tt>.</p>
 
</dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.ledgercli.Ledger.bal">
 
<tt class="descname">bal</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/storage/ledgercli.html#Ledger.bal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.ledgercli.Ledger.bal" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.ledgercli.Ledger.delete_transaction">
 
<tt class="descname">delete_transaction</tt><big>(</big><em>transaction_id</em><big>)</big><a class="headerlink" href="#accounting.storage.ledgercli.Ledger.delete_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Delete a transaction from the ledger file.</p>
 
<p>This method opens the ledger file, loads all lines into memory and
 
looks for the transaction_id, then looks for the bounds of that
 
transaction in the ledger file, removes all lines within the bounds of
 
the transaction and removes them, then writes the lines back to the
 
ledger file.</p>
 
<p>Exceptions:</p>
 
<ul class="simple">
 
<li>RuntimeError: If all boundaries to the transaction are not found</li>
 
<li>TransactionNotFound: If no such transaction_id can be found in
 
<tt class="xref py py-data docutils literal"><span class="pre">self.ledger_file</span></tt></li>
 
</ul>
 
</dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.ledgercli.Ledger.get_process">
 
<tt class="descname">get_process</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/storage/ledgercli.html#Ledger.get_process"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.ledgercli.Ledger.get_process" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Returns <tt class="xref py py-attr docutils literal"><span class="pre">self.ledger_process</span></tt> if it evaluates to <tt class="docutils literal"><span class="pre">True</span></tt>. If
 
<tt class="xref py py-attr docutils literal"><span class="pre">self.ledger_process</span></tt> is not set the result of
 
<a class="reference internal" href="#accounting.storage.ledgercli.Ledger.init_process" title="accounting.storage.ledgercli.Ledger.init_process"><tt class="xref py py-meth docutils literal"><span class="pre">self.init_process()</span></tt></a> is returned.</p>
 
</dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.ledgercli.Ledger.get_transaction">
 
<tt class="descname">get_transaction</tt><big>(</big><em>transaction_id</em><big>)</big><a class="headerlink" href="#accounting.storage.ledgercli.Ledger.get_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.ledgercli.Ledger.get_transactions">
 
<tt class="descname">get_transactions</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/storage/ledgercli.html#Ledger.get_transactions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.ledgercli.Ledger.get_transactions" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
...
 
@@ -216,112 +219,115 @@ the old transaction using <tt class="xref py py-data docutils literal"><span cla
 
<dt id="accounting.storage.Storage.get_account">
 
<tt class="descname">get_account</tt><big>(</big><em>*args</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage.html#Storage.get_account"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.Storage.get_account" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.Storage.get_accounts">
 
<tt class="descname">get_accounts</tt><big>(</big><em>*args</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage.html#Storage.get_accounts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.Storage.get_accounts" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.Storage.get_transaction">
 
<tt class="descname">get_transaction</tt><big>(</big><em>*args</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage.html#Storage.get_transaction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.Storage.get_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.Storage.get_transactions">
 
<tt class="descname">get_transactions</tt><big>(</big><em>*args</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage.html#Storage.get_transactions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.Storage.get_transactions" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.Storage.reverse_transaction">
 
<tt class="descname">reverse_transaction</tt><big>(</big><em>transaction_id</em><big>)</big><a class="headerlink" href="#accounting.storage.Storage.reverse_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.Storage.update_transaction">
 
<tt class="descname">update_transaction</tt><big>(</big><em>transaction</em><big>)</big><a class="headerlink" href="#accounting.storage.Storage.update_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</dd></dl>
 

	
 
<dl class="exception">
 
<dt id="accounting.storage.TransactionNotFound">
 
<em class="property">exception </em><tt class="descclassname">accounting.storage.</tt><tt class="descname">TransactionNotFound</tt><a class="headerlink" href="#accounting.storage.TransactionNotFound" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Bases: <a class="reference internal" href="accounting.html#accounting.exceptions.AccountingException" title="accounting.exceptions.AccountingException"><tt class="xref py py-class docutils literal"><span class="pre">accounting.exceptions.AccountingException</span></tt></a></p>
 
</dd></dl>
 

	
 
</div>
 
</div>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
  <h3><a href="../index.html">Table Of Contents</a></h3>
 
  <ul>
 
<li><a class="reference internal" href="#">accounting.storage package</a><ul>
 
<li><a class="reference internal" href="#subpackages">Subpackages</a><ul>
 
</ul>
 
</li>
 
<li><a class="reference internal" href="#submodules">Submodules</a></li>
 
<li><a class="reference internal" href="#module-accounting.storage.ledgercli">accounting.storage.ledgercli module</a></li>
 
<li><a class="reference internal" href="#module-accounting.storage">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 

	
 
  <h4>Previous topic</h4>
 
  <p class="topless"><a href="accounting.html"
 
                        title="previous chapter">accounting package</a></p>
 
  <h4>Next topic</h4>
 
  <p class="topless"><a href="accounting.storage.sql.html"
 
                        title="next chapter">accounting.storage.sql package</a></p>
 
  <h3>This Page</h3>
 
  <ul class="this-page-menu">
 
    <li><a href="../_sources/api/accounting.storage.txt"
 
           rel="nofollow">Show Source</a></li>
 
  </ul>
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.storage.sql.html" title="accounting.storage.sql package"
 
             >next</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.html" title="accounting package"
 
             >previous</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="accounting.html" >accounting package</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/api/accounting.storage.sql.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting.storage.sql package &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../index.html" />
 
    <link rel="up" title="accounting.storage package" href="accounting.storage.html" />
 
    <link rel="prev" title="accounting.storage package" href="accounting.storage.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.storage.html" title="accounting.storage package"
 
             accesskey="P">previous</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="accounting.html" >accounting package</a> &raquo;</li>
 
          <li><a href="accounting.storage.html" accesskey="U">accounting.storage package</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <div class="section" id="accounting-storage-sql-package">
 
<h1>accounting.storage.sql package<a class="headerlink" href="#accounting-storage-sql-package" title="Permalink to this headline">¶</a></h1>
 
<div class="section" id="submodules">
 
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
 
</div>
 
<div class="section" id="module-accounting.storage.sql.models">
 
<span id="accounting-storage-sql-models-module"></span><h2>accounting.storage.sql.models module<a class="headerlink" href="#module-accounting.storage.sql.models" title="Permalink to this headline">¶</a></h2>
 
<dl class="class">
 
<dt id="accounting.storage.sql.models.Amount">
 
<em class="property">class </em><tt class="descclassname">accounting.storage.sql.models.</tt><tt class="descname">Amount</tt><big>(</big><em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql/models.html#Amount"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.models.Amount" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">flask_sqlalchemy.Model</span></tt></p>
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Amount.amount">
 
<tt class="descname">amount</tt><a class="headerlink" href="#accounting.storage.sql.models.Amount.amount" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.sql.models.Amount.as_dict">
 
<tt class="descname">as_dict</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql/models.html#Amount.as_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.models.Amount.as_dict" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Amount.id">
 
<tt class="descname">id</tt><a class="headerlink" href="#accounting.storage.sql.models.Amount.id" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Amount.symbol">
 
<tt class="descname">symbol</tt><a class="headerlink" href="#accounting.storage.sql.models.Amount.symbol" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</dd></dl>
 

	
 
<dl class="class">
 
<dt id="accounting.storage.sql.models.Posting">
 
<em class="property">class </em><tt class="descclassname">accounting.storage.sql.models.</tt><tt class="descname">Posting</tt><big>(</big><em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql/models.html#Posting"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.models.Posting" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">flask_sqlalchemy.Model</span></tt></p>
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Posting.account">
 
<tt class="descname">account</tt><a class="headerlink" href="#accounting.storage.sql.models.Posting.account" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Posting.amount">
 
<tt class="descname">amount</tt><a class="headerlink" href="#accounting.storage.sql.models.Posting.amount" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Posting.amount_id">
 
<tt class="descname">amount_id</tt><a class="headerlink" href="#accounting.storage.sql.models.Posting.amount_id" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.sql.models.Posting.as_dict">
 
<tt class="descname">as_dict</tt><big>(</big><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql/models.html#Posting.as_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.models.Posting.as_dict" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Posting.id">
 
<tt class="descname">id</tt><a class="headerlink" href="#accounting.storage.sql.models.Posting.id" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Posting.meta">
 
<tt class="descname">meta</tt><a class="headerlink" href="#accounting.storage.sql.models.Posting.meta" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Posting.transaction">
 
<tt class="descname">transaction</tt><a class="headerlink" href="#accounting.storage.sql.models.Posting.transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Posting.transaction_uuid">
 
<tt class="descname">transaction_uuid</tt><a class="headerlink" href="#accounting.storage.sql.models.Posting.transaction_uuid" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</dd></dl>
 

	
 
<dl class="class">
 
<dt id="accounting.storage.sql.models.Transaction">
 
<em class="property">class </em><tt class="descclassname">accounting.storage.sql.models.</tt><tt class="descname">Transaction</tt><big>(</big><em>**kwargs</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql/models.html#Transaction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.models.Transaction" title="Permalink to this definition">¶</a></dt>
...
 
@@ -150,110 +153,113 @@
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Transaction.meta">
 
<tt class="descname">meta</tt><a class="headerlink" href="#accounting.storage.sql.models.Transaction.meta" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Transaction.payee">
 
<tt class="descname">payee</tt><a class="headerlink" href="#accounting.storage.sql.models.Transaction.payee" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="attribute">
 
<dt id="accounting.storage.sql.models.Transaction.uuid">
 
<tt class="descname">uuid</tt><a class="headerlink" href="#accounting.storage.sql.models.Transaction.uuid" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</dd></dl>
 

	
 
</div>
 
<div class="section" id="module-accounting.storage.sql">
 
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-accounting.storage.sql" title="Permalink to this headline">¶</a></h2>
 
<dl class="class">
 
<dt id="accounting.storage.sql.SQLStorage">
 
<em class="property">class </em><tt class="descclassname">accounting.storage.sql.</tt><tt class="descname">SQLStorage</tt><big>(</big><em>app=None</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql.html#SQLStorage"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.SQLStorage" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Bases: <a class="reference internal" href="accounting.storage.html#accounting.storage.Storage" title="accounting.storage.Storage"><tt class="xref py py-class docutils literal"><span class="pre">accounting.storage.Storage</span></tt></a></p>
 
<dl class="method">
 
<dt id="accounting.storage.sql.SQLStorage.add_transaction">
 
<tt class="descname">add_transaction</tt><big>(</big><em>transaction</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql.html#SQLStorage.add_transaction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.SQLStorage.add_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.sql.SQLStorage.get_transactions">
 
<tt class="descname">get_transactions</tt><big>(</big><em>*args</em>, <em>**kw</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql.html#SQLStorage.get_transactions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.SQLStorage.get_transactions" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
<dl class="method">
 
<dt id="accounting.storage.sql.SQLStorage.update_transaction">
 
<tt class="descname">update_transaction</tt><big>(</big><em>transaction</em><big>)</big><a class="reference internal" href="../_modules/accounting/storage/sql.html#SQLStorage.update_transaction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#accounting.storage.sql.SQLStorage.update_transaction" title="Permalink to this definition">¶</a></dt>
 
<dd></dd></dl>
 

	
 
</dd></dl>
 

	
 
</div>
 
</div>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
  <h3><a href="../index.html">Table Of Contents</a></h3>
 
  <ul>
 
<li><a class="reference internal" href="#">accounting.storage.sql package</a><ul>
 
<li><a class="reference internal" href="#submodules">Submodules</a></li>
 
<li><a class="reference internal" href="#module-accounting.storage.sql.models">accounting.storage.sql.models module</a></li>
 
<li><a class="reference internal" href="#module-accounting.storage.sql">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 

	
 
  <h4>Previous topic</h4>
 
  <p class="topless"><a href="accounting.storage.html"
 
                        title="previous chapter">accounting.storage package</a></p>
 
  <h3>This Page</h3>
 
  <ul class="this-page-menu">
 
    <li><a href="../_sources/api/accounting.storage.sql.txt"
 
           rel="nofollow">Show Source</a></li>
 
  </ul>
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="accounting.storage.html" title="accounting.storage package"
 
             >previous</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li>
 
          <li><a href="accounting.html" >accounting package</a> &raquo;</li>
 
          <li><a href="accounting.storage.html" >accounting.storage package</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/api/modules.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>accounting &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    '../',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="../_static/jquery.js"></script>
 
    <script type="text/javascript" src="../_static/underscore.js"></script>
 
    <script type="text/javascript" src="../_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="../index.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <div class="section" id="accounting">
 
<h1>accounting<a class="headerlink" href="#accounting" title="Permalink to this headline">¶</a></h1>
 
<div class="toctree-wrapper compound">
 
<ul>
 
<li class="toctree-l1"><a class="reference internal" href="accounting.html">accounting package</a><ul>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#subpackages">Subpackages</a><ul>
 
<li class="toctree-l3"><a class="reference internal" href="accounting.storage.html">accounting.storage package</a><ul>
 
<li class="toctree-l4"><a class="reference internal" href="accounting.storage.html#subpackages">Subpackages</a></li>
 
<li class="toctree-l4"><a class="reference internal" href="accounting.storage.html#submodules">Submodules</a></li>
 
<li class="toctree-l4"><a class="reference internal" href="accounting.storage.html#module-accounting.storage.ledgercli">accounting.storage.ledgercli module</a></li>
 
<li class="toctree-l4"><a class="reference internal" href="accounting.storage.html#module-accounting.storage">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 
</li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#submodules">Submodules</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.client">accounting.client module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.config">accounting.config module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.decorators">accounting.decorators module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.exceptions">accounting.exceptions module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.gtkclient">accounting.gtkclient module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.models">accounting.models module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.transport">accounting.transport module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting.web">accounting.web module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="accounting.html#module-accounting">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 
</div>
 
</div>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
  <h3>This Page</h3>
 
  <ul class="this-page-menu">
 
    <li><a href="../_sources/api/modules.txt"
 
           rel="nofollow">Show Source</a></li>
 
  </ul>
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="../search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="../genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="../py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="../http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li><a href="../index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/genindex.html
Show inline comments
 

	
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>Index &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    './',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="_static/jquery.js"></script>
 
    <script type="text/javascript" src="_static/underscore.js"></script>
 
    <script type="text/javascript" src="_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="index.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="#" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 

	
 
<h1 id="index">Index</h1>
 

	
 
<div class="genindex-jumpbox">
 
 <a href="#A"><strong>A</strong></a>
 
 | <a href="#B"><strong>B</strong></a>
 
 | <a href="#C"><strong>C</strong></a>
 
 | <a href="#D"><strong>D</strong></a>
 
 | <a href="#G"><strong>G</strong></a>
 
 | <a href="#I"><strong>I</strong></a>
 
 | <a href="#J"><strong>J</strong></a>
 
 | <a href="#L"><strong>L</strong></a>
 
 | <a href="#M"><strong>M</strong></a>
 
 | <a href="#O"><strong>O</strong></a>
 
 | <a href="#P"><strong>P</strong></a>
 
 | <a href="#R"><strong>R</strong></a>
 
 | <a href="#S"><strong>S</strong></a>
 
 | <a href="#T"><strong>T</strong></a>
 
 | <a href="#U"><strong>U</strong></a>
 
 
 
</div>
 
<h2 id="A">A</h2>
 
<table style="width: 100%" class="indextable genindextable"><tr>
 
  <td style="width: 33%" valign="top"><dl>
 
      
 
  <dt><a href="api/accounting.storage.sql.html#accounting.storage.sql.models.Posting.account">account (accounting.storage.sql.models.Posting attribute)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#accounting.models.Account">Account (class in accounting.models)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting">accounting (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting.client">accounting.client (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting.config">accounting.config (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting.decorators">accounting.decorators (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting.exceptions">accounting.exceptions (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting.gtkclient">accounting.gtkclient (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting.models">accounting.models (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.storage.html#module-accounting.storage">accounting.storage (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.storage.html#module-accounting.storage.ledgercli">accounting.storage.ledgercli (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.storage.sql.html#module-accounting.storage.sql">accounting.storage.sql (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.storage.sql.html#module-accounting.storage.sql.models">accounting.storage.sql.models (module)</a>
 
  </dt>
 

	
 
  </dl></td>
 
  <td style="width: 33%" valign="top"><dl>
 
      
 
  <dt><a href="api/accounting.html#module-accounting.transport">accounting.transport (module)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#module-accounting.web">accounting.web (module)</a>
...
 
@@ -546,108 +549,111 @@
 
  </dt>
 

	
 
      <dd><dl>
 
        
 
  <dt><a href="api/accounting.storage.sql.html#accounting.storage.sql.models.Transaction">(class in accounting.storage.sql.models)</a>
 
  </dt>
 

	
 
      </dl></dd>
 
      
 
  <dt><a href="api/accounting.html#accounting.web.transaction_delete">transaction_delete() (in module accounting.web)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#accounting.web.transaction_get">transaction_get() (in module accounting.web)</a>
 
  </dt>
 

	
 
  </dl></td>
 
  <td style="width: 33%" valign="top"><dl>
 
      
 
  <dt><a href="api/accounting.html#accounting.web.transaction_post">transaction_post() (in module accounting.web)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.html#accounting.web.transaction_update">transaction_update() (in module accounting.web)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.storage.sql.html#accounting.storage.sql.models.Posting.transaction_uuid">transaction_uuid (accounting.storage.sql.models.Posting attribute)</a>
 
  </dt>
 

	
 
      
 
  <dt><a href="api/accounting.storage.html#accounting.storage.TransactionNotFound">TransactionNotFound</a>
 
  </dt>
 

	
 
  </dl></td>
 
</tr></table>
 

	
 
<h2 id="U">U</h2>
 
<table style="width: 100%" class="indextable genindextable"><tr>
 
  <td style="width: 33%" valign="top"><dl>
 
      
 
  <dt><a href="api/accounting.storage.html#accounting.storage.ledgercli.Ledger.update_transaction">update_transaction() (accounting.storage.ledgercli.Ledger method)</a>
 
  </dt>
 

	
 
      <dd><dl>
 
        
 
  <dt><a href="api/accounting.storage.html#accounting.storage.Storage.update_transaction">(accounting.storage.Storage method)</a>
 
  </dt>
 

	
 
        
 
  <dt><a href="api/accounting.storage.sql.html#accounting.storage.sql.SQLStorage.update_transaction">(accounting.storage.sql.SQLStorage method)</a>
 
  </dt>
 

	
 
      </dl></dd>
 
  </dl></td>
 
  <td style="width: 33%" valign="top"><dl>
 
      
 
  <dt><a href="api/accounting.storage.sql.html#accounting.storage.sql.models.Transaction.uuid">uuid (accounting.storage.sql.models.Transaction attribute)</a>
 
  </dt>
 

	
 
  </dl></td>
 
</tr></table>
 

	
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 

	
 
   
 

	
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="#" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/http-routingtable.html
Show inline comments
 
new file 100644
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>HTTP Routing Table &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    './',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="_static/jquery.js"></script>
 
    <script type="text/javascript" src="_static/underscore.js"></script>
 
    <script type="text/javascript" src="_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="index.html" />
 
 
 

	
 
    <script type="text/javascript">
 
      DOCUMENTATION_OPTIONS.COLLAPSE_INDEX = true;
 
    </script>
 

	
 

	
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="#" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 

	
 
   <h1>HTTP Routing Table</h1>
 

	
 
   <div class="modindex-jumpbox">
 
   <a href="#cap-/transaction"><strong>/transaction</strong></a>
 
   </div>
 

	
 
   <table class="indextable modindextable" cellspacing="0" cellpadding="2">
 
     <tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr>
 
     <tr class="cap" id="cap-/transaction"><td></td><td>
 
       <strong>/transaction</strong></td><td></td></tr>
 
     <tr>
 
       <td></td>
 
       <td>
 
       <a href="restapi.html#get--transaction"><tt class="xref">GET /transaction</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr>
 
       <td></td>
 
       <td>
 
       <a href="restapi.html#post--transaction"><tt class="xref">POST /transaction</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr>
 
       <td></td>
 
       <td>
 
       <a href="restapi.html#delete--transaction--string-transaction_id-"><tt class="xref">DELETE /transaction/&lt;string:transaction_id&gt;</tt></a></td><td>
 
       <em></em></td></tr>
 
   </table>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="#" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/index.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>Welcome to Accounting API’s documentation! &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    './',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="_static/jquery.js"></script>
 
    <script type="text/javascript" src="_static/underscore.js"></script>
 
    <script type="text/javascript" src="_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="#" />
 
    <link rel="next" title="The Accounting API" href="README.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="README.html" title="The Accounting API"
 
             accesskey="N">next</a> |</li>
 
        <li><a href="#">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <div class="section" id="welcome-to-accounting-api-s-documentation">
 
<h1>Welcome to Accounting API&#8217;s documentation!<a class="headerlink" href="#welcome-to-accounting-api-s-documentation" title="Permalink to this headline">¶</a></h1>
 
<p>Contents:</p>
 
<div class="toctree-wrapper compound">
 
<ul>
 
<li class="toctree-l1"><a class="reference internal" href="README.html">The Accounting API</a><ul>
 
<li class="toctree-l2"><a class="reference internal" href="README.html#dependencies">Dependencies</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="README.html#installation-i-e-development-setup">Installation (i.e. Development Setup)</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="README.html#usage">Usage</a></li>
 
</ul>
 
</li>
 
<li class="toctree-l1"><a class="reference internal" href="restapi.html">REST API</a><ul>
 
<li class="toctree-l2"><a class="reference internal" href="restapi.html#get-transactions">Get transactions</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="restapi.html#add-transactions">Add transactions</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="restapi.html#delete-a-transaction">Delete a transaction</a></li>
 
</ul>
 
</li>
 
<li class="toctree-l1"><a class="reference internal" href="api/accounting.html">accounting package</a><ul>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#subpackages">Subpackages</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#submodules">Submodules</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.client">accounting.client module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.config">accounting.config module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.decorators">accounting.decorators module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.exceptions">accounting.exceptions module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.gtkclient">accounting.gtkclient module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.models">accounting.models module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.transport">accounting.transport module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting.web">accounting.web module</a></li>
 
<li class="toctree-l2"><a class="reference internal" href="api/accounting.html#module-accounting">Module contents</a></li>
 
</ul>
 
</li>
 
</ul>
 
</div>
 
</div>
 
<div class="section" id="indices-and-tables">
 
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
 
<ul class="simple">
 
<li><a class="reference internal" href="genindex.html"><em>Index</em></a></li>
 
<li><a class="reference internal" href="py-modindex.html"><em>Module Index</em></a></li>
 
<li><a class="reference internal" href="search.html"><em>Search Page</em></a></li>
 
</ul>
 
</div>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
  <h3><a href="#">Table Of Contents</a></h3>
 
  <ul>
 
<li><a class="reference internal" href="#">Welcome to Accounting API&#8217;s documentation!</a><ul>
 
</ul>
 
</li>
 
<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
 
</ul>
 

	
 
  <h4>Next topic</h4>
 
  <p class="topless"><a href="README.html"
 
                        title="next chapter">The Accounting API</a></p>
 
  <h3>This Page</h3>
 
  <ul class="this-page-menu">
 
    <li><a href="_sources/index.txt"
 
           rel="nofollow">Show Source</a></li>
 
  </ul>
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="README.html" title="The Accounting API"
 
             >next</a> |</li>
 
        <li><a href="#">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/objects.inv
Show inline comments
 
binary diff not shown
doc/build/html/py-modindex.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>Python Module Index &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    './',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="_static/jquery.js"></script>
 
    <script type="text/javascript" src="_static/underscore.js"></script>
 
    <script type="text/javascript" src="_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="index.html" />
 
 
 

	
 

	
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="#" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 

	
 
   <h1>Python Module Index</h1>
 

	
 
   <div class="modindex-jumpbox">
 
   <a href="#cap-a"><strong>a</strong></a>
 
   </div>
 

	
 
   <table class="indextable modindextable" cellspacing="0" cellpadding="2">
 
     <tr class="pcap"><td></td><td>&nbsp;</td><td></td></tr>
 
     <tr class="cap" id="cap-a"><td></td><td>
 
       <strong>a</strong></td><td></td></tr>
 
     <tr>
 
       <td><img src="_static/minus.png" class="toggler"
 
              id="toggle-1" style="display: none" alt="-" /></td>
 
       <td>
 
       <a href="api/accounting.html#module-accounting"><tt class="xref">accounting</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.client"><tt class="xref">accounting.client</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.config"><tt class="xref">accounting.config</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.decorators"><tt class="xref">accounting.decorators</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.exceptions"><tt class="xref">accounting.exceptions</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.gtkclient"><tt class="xref">accounting.gtkclient</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.models"><tt class="xref">accounting.models</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.storage.html#module-accounting.storage"><tt class="xref">accounting.storage</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.storage.html#module-accounting.storage.ledgercli"><tt class="xref">accounting.storage.ledgercli</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.storage.sql.html#module-accounting.storage.sql"><tt class="xref">accounting.storage.sql</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.storage.sql.html#module-accounting.storage.sql.models"><tt class="xref">accounting.storage.sql.models</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.transport"><tt class="xref">accounting.transport</tt></a></td><td>
 
       <em></em></td></tr>
 
     <tr class="cg-1">
 
       <td></td>
 
       <td>&nbsp;&nbsp;&nbsp;
 
       <a href="api/accounting.html#module-accounting.web"><tt class="xref">accounting.web</tt></a></td><td>
 
       <em></em></td></tr>
 
   </table>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="#" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/restapi.html
Show inline comments
 
new file 100644
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>REST API &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    './',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="_static/jquery.js"></script>
 
    <script type="text/javascript" src="_static/underscore.js"></script>
 
    <script type="text/javascript" src="_static/doctools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="index.html" />
 
    <link rel="next" title="accounting package" href="api/accounting.html" />
 
    <link rel="prev" title="The Accounting API" href="README.html" /> 
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="api/accounting.html" title="accounting package"
 
             accesskey="N">next</a> |</li>
 
        <li class="right" >
 
          <a href="README.html" title="The Accounting API"
 
             accesskey="P">previous</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <div class="section" id="rest-api">
 
<h1>REST API<a class="headerlink" href="#rest-api" title="Permalink to this headline">¶</a></h1>
 
<div class="section" id="get-transactions">
 
<h2>Get transactions<a class="headerlink" href="#get-transactions" title="Permalink to this headline">¶</a></h2>
 
<dl class="get">
 
<dt id="get--transaction">
 
<tt class="descname">GET </tt><tt class="descname">/transaction</tt><a class="headerlink" href="#get--transaction" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Get all transactions</p>
 
<p><strong>Example request</strong></p>
 
<div class="highlight-http"><div class="highlight"><pre><span class="nf">GET</span> <span class="nn">/transaction</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
 
<span class="na">Host</span><span class="o">:</span> <span class="l">accounting.example</span>
 
<span class="na">Accept</span><span class="o">:</span> <span class="l">application/json</span>
 
</pre></div>
 
</div>
 
<p><strong>Example response</strong></p>
 
<div class="highlight-http"><div class="highlight"><pre><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
 
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
 

	
 
<span class="p">{</span>
 
  <span class="nt">&quot;transactions&quot;</span><span class="p">:</span> <span class="p">[</span>
 
    <span class="p">{</span>
 
      <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Transaction&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;date&quot;</span><span class="p">:</span> <span class="s2">&quot;2010-01-01&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;id&quot;</span><span class="p">:</span> <span class="s2">&quot;Ids can be anything&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{},</span>
 
      <span class="nt">&quot;payee&quot;</span><span class="p">:</span> <span class="s2">&quot;Kindly T. Donor&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;postings&quot;</span><span class="p">:</span> <span class="p">[</span>
 
        <span class="p">{</span>
 
          <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Posting&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;account&quot;</span><span class="p">:</span> <span class="s2">&quot;Income:Foo:Donation&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Amount&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="s2">&quot;-100&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;symbol&quot;</span><span class="p">:</span> <span class="s2">&quot;$&quot;</span>
 
          <span class="p">},</span>
 
          <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;Invoice&quot;</span><span class="p">:</span> <span class="s2">&quot;Projects/Foo/Invoices/Invoice20100101.pdf&quot;</span>
 
          <span class="p">}</span>
 
        <span class="p">},</span>
 
        <span class="p">{</span>
 
          <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Posting&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;account&quot;</span><span class="p">:</span> <span class="s2">&quot;Assets:Checking&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Amount&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="s2">&quot;100&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;symbol&quot;</span><span class="p">:</span> <span class="s2">&quot;$&quot;</span>
 
          <span class="p">},</span>
 
          <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{}</span>
 
        <span class="p">}</span>
 
      <span class="p">]</span>
 
    <span class="p">},</span>
 
    <span class="p">{</span>
 
      <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Transaction&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;date&quot;</span><span class="p">:</span> <span class="s2">&quot;2011-03-15&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;id&quot;</span><span class="p">:</span> <span class="s2">&quot;but mind you if they collide.&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{},</span>
 
      <span class="nt">&quot;payee&quot;</span><span class="p">:</span> <span class="s2">&quot;Another J. Donor&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;postings&quot;</span><span class="p">:</span> <span class="p">[</span>
 
        <span class="p">{</span>
 
          <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Posting&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;account&quot;</span><span class="p">:</span> <span class="s2">&quot;Income:Foo:Donation&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Amount&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="s2">&quot;-400&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;symbol&quot;</span><span class="p">:</span> <span class="s2">&quot;$&quot;</span>
 
          <span class="p">},</span>
 
          <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;Approval&quot;</span><span class="p">:</span> <span class="s2">&quot;Projects/Foo/earmark-record.txt&quot;</span>
 
          <span class="p">}</span>
 
        <span class="p">},</span>
 
        <span class="p">{</span>
 
          <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Posting&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;account&quot;</span><span class="p">:</span> <span class="s2">&quot;Assets:Checking&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Amount&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="s2">&quot;400&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;symbol&quot;</span><span class="p">:</span> <span class="s2">&quot;$&quot;</span>
 
          <span class="p">},</span>
 
          <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{}</span>
 
        <span class="p">}</span>
 
      <span class="p">]</span>
 
    <span class="p">},</span>
 
  <span class="p">]</span>
 
<span class="p">}</span>
 
</pre></div>
 
</div>
 
</dd></dl>
 

	
 
</div>
 
<div class="section" id="add-transactions">
 
<h2>Add transactions<a class="headerlink" href="#add-transactions" title="Permalink to this headline">¶</a></h2>
 
<dl class="post">
 
<dt id="post--transaction">
 
<tt class="descname">POST </tt><tt class="descname">/transaction</tt><a class="headerlink" href="#post--transaction" title="Permalink to this definition">¶</a></dt>
 
<dd><table class="docutils field-list" frame="void" rules="none">
 
<col class="field-name" />
 
<col class="field-body" />
 
<tbody valign="top">
 
<tr class="field-odd field"><th class="field-name" colspan="2">Json Parameters:</th></tr>
 
<tr class="field-odd field"><td>&nbsp;</td><td class="field-body"><ul class="first last simple">
 
<li><strong>transactions</strong> (<em>array</em>) &#8211; A list of Transaction objects to add.</li>
 
</ul>
 
</td>
 
</tr>
 
</tbody>
 
</table>
 
<p><strong>Example request</strong></p>
 
<div class="highlight-http"><div class="highlight"><pre><span class="nf">POST</span> <span class="nn">/transaction</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
 
<span class="na">Host</span><span class="o">:</span> <span class="l">accounting.example</span>
 
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
 
<span class="na">Accept</span><span class="o">:</span> <span class="l">application/json</span>
 

	
 
<span class="p">{</span>
 
  <span class="nt">&quot;transactions&quot;</span><span class="p">:</span> <span class="p">[</span>
 
    <span class="p">{</span>
 
      <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Transaction&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;date&quot;</span><span class="p">:</span> <span class="s2">&quot;2010-01-01&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;id&quot;</span><span class="p">:</span> <span class="s2">&quot;Ids can be anything&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{},</span>
 
      <span class="nt">&quot;payee&quot;</span><span class="p">:</span> <span class="s2">&quot;Kindly T. Donor&quot;</span><span class="p">,</span>
 
      <span class="nt">&quot;postings&quot;</span><span class="p">:</span> <span class="p">[</span>
 
        <span class="p">{</span>
 
          <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Posting&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;account&quot;</span><span class="p">:</span> <span class="s2">&quot;Income:Foo:Donation&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Amount&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="s2">&quot;-100&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;symbol&quot;</span><span class="p">:</span> <span class="s2">&quot;$&quot;</span>
 
          <span class="p">},</span>
 
          <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;Invoice&quot;</span><span class="p">:</span> <span class="s2">&quot;Projects/Foo/Invoices/Invoice20100101.pdf&quot;</span>
 
          <span class="p">}</span>
 
        <span class="p">},</span>
 
        <span class="p">{</span>
 
          <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Posting&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;account&quot;</span><span class="p">:</span> <span class="s2">&quot;Assets:Checking&quot;</span><span class="p">,</span>
 
          <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="p">{</span>
 
            <span class="nt">&quot;__type__&quot;</span><span class="p">:</span> <span class="s2">&quot;Amount&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;amount&quot;</span><span class="p">:</span> <span class="s2">&quot;100&quot;</span><span class="p">,</span>
 
            <span class="nt">&quot;symbol&quot;</span><span class="p">:</span> <span class="s2">&quot;$&quot;</span>
 
          <span class="p">},</span>
 
          <span class="nt">&quot;metadata&quot;</span><span class="p">:</span> <span class="p">{}</span>
 
        <span class="p">}</span>
 
      <span class="p">]</span>
 
    <span class="p">},</span>
 
  <span class="p">]</span>
 
<span class="p">}</span>
 
</pre></div>
 
</div>
 
<p><strong>Example response</strong></p>
 
<div class="highlight-http"><div class="highlight"><pre><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
 
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
 

	
 
<span class="p">{</span>
 
  <span class="nt">&quot;status&quot;</span><span class="p">:</span> <span class="s2">&quot;OK&quot;</span><span class="p">,</span>
 
  <span class="nt">&quot;transaction_ids&quot;</span><span class="p">:</span> <span class="p">[</span>
 
    <span class="s2">&quot;Ids can be anything&quot;</span>
 
  <span class="p">]</span>
 
<span class="p">}</span>
 
</pre></div>
 
</div>
 
</dd></dl>
 

	
 
</div>
 
<div class="section" id="delete-a-transaction">
 
<h2>Delete a transaction<a class="headerlink" href="#delete-a-transaction" title="Permalink to this headline">¶</a></h2>
 
<dl class="delete">
 
<dt id="delete--transaction--string-transaction_id-">
 
<tt class="descname">DELETE </tt><tt class="descname">/transaction/&lt;string:transaction_id&gt;</tt><a class="headerlink" href="#delete--transaction--string-transaction_id-" title="Permalink to this definition">¶</a></dt>
 
<dd><p>Delete the transaction with ID <tt class="xref py py-data docutils literal"><span class="pre">transaction_id</span></tt>.</p>
 
<p><strong>Example request</strong></p>
 
<div class="highlight-http"><div class="highlight"><pre><span class="nf">DELETE</span> <span class="nn">/transaction/123456</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span>
 
<span class="na">Host</span><span class="o">:</span> <span class="l">accounting.example</span>
 
<span class="na">Accept</span><span class="o">:</span> <span class="l">application/json</span>
 
</pre></div>
 
</div>
 
<p><strong>Example response</strong></p>
 
<div class="highlight-http"><div class="highlight"><pre><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span>
 
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">application/json</span>
 

	
 
<span class="p">{</span>
 
  <span class="nt">&quot;status&quot;</span><span class="p">:</span> <span class="s2">&quot;OK&quot;</span>
 
<span class="p">}</span>
 
</pre></div>
 
</div>
 
</dd></dl>
 

	
 
</div>
 
</div>
 

	
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
  <h3><a href="index.html">Table Of Contents</a></h3>
 
  <ul>
 
<li><a class="reference internal" href="#">REST API</a><ul>
 
<li><a class="reference internal" href="#get-transactions">Get transactions</a></li>
 
<li><a class="reference internal" href="#add-transactions">Add transactions</a></li>
 
<li><a class="reference internal" href="#delete-a-transaction">Delete a transaction</a></li>
 
</ul>
 
</li>
 
</ul>
 

	
 
  <h4>Previous topic</h4>
 
  <p class="topless"><a href="README.html"
 
                        title="previous chapter">The Accounting API</a></p>
 
  <h4>Next topic</h4>
 
  <p class="topless"><a href="api/accounting.html"
 
                        title="next chapter">accounting package</a></p>
 
  <h3>This Page</h3>
 
  <ul class="this-page-menu">
 
    <li><a href="_sources/restapi.txt"
 
           rel="nofollow">Show Source</a></li>
 
  </ul>
 
<div id="searchbox" style="display: none">
 
  <h3>Quick search</h3>
 
    <form class="search" action="search.html" method="get">
 
      <input type="text" name="q" />
 
      <input type="submit" value="Go" />
 
      <input type="hidden" name="check_keywords" value="yes" />
 
      <input type="hidden" name="area" value="default" />
 
    </form>
 
    <p class="searchtip" style="font-size: 90%">
 
    Enter search terms or a module, class or function name.
 
    </p>
 
</div>
 
<script type="text/javascript">$('#searchbox').show(0);</script>
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li class="right" >
 
          <a href="api/accounting.html" title="accounting package"
 
             >next</a> |</li>
 
        <li class="right" >
 
          <a href="README.html" title="The Accounting API"
 
             >previous</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/search.html
Show inline comments
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

	
 

	
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    
 
    <title>Search &mdash; Accounting API 0.1-beta documentation</title>
 
    
 
    <link rel="stylesheet" href="_static/pydoctheme.css" type="text/css" />
 
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
 
    
 
    <script type="text/javascript">
 
      var DOCUMENTATION_OPTIONS = {
 
        URL_ROOT:    './',
 
        VERSION:     '0.1-beta',
 
        COLLAPSE_INDEX: false,
 
        FILE_SUFFIX: '.html',
 
        HAS_SOURCE:  true
 
      };
 
    </script>
 
    <script type="text/javascript" src="_static/jquery.js"></script>
 
    <script type="text/javascript" src="_static/underscore.js"></script>
 
    <script type="text/javascript" src="_static/doctools.js"></script>
 
    <script type="text/javascript" src="_static/searchtools.js"></script>
 
    <link rel="top" title="Accounting API 0.1-beta documentation" href="index.html" />
 
  <script type="text/javascript">
 
    jQuery(function() { Search.loadIndex("searchindex.js"); });
 
  </script>
 
  
 
  <script type="text/javascript" id="searchindexloader"></script>
 
   
 

	
 
  </head>
 
  <body>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             accesskey="I">index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>  
 

	
 
    <div class="document">
 
      <div class="documentwrapper">
 
        <div class="bodywrapper">
 
          <div class="body">
 
            
 
  <h1 id="search-documentation">Search</h1>
 
  <div id="fallback" class="admonition warning">
 
  <script type="text/javascript">$('#fallback').hide();</script>
 
  <p>
 
    Please activate JavaScript to enable the search
 
    functionality.
 
  </p>
 
  </div>
 
  <p>
 
    From here you can search these documents. Enter your search
 
    words into the box below and click "search". Note that the search
 
    function will automatically search for all of the words. Pages
 
    containing fewer words won't appear in the result list.
 
  </p>
 
  <form action="" method="get">
 
    <input type="text" name="q" value="" />
 
    <input type="submit" value="search" />
 
    <span id="search-progress" style="padding-left: 10px"></span>
 
  </form>
 
  
 
  <div id="search-results">
 
  
 
  </div>
 

	
 
          </div>
 
        </div>
 
      </div>
 
      <div class="sphinxsidebar">
 
        <div class="sphinxsidebarwrapper">
 
        </div>
 
      </div>
 
      <div class="clearer"></div>
 
    </div>
 
    <div class="related">
 
      <h3>Navigation</h3>
 
      <ul>
 
        <li class="right" style="margin-right: 10px">
 
          <a href="genindex.html" title="General Index"
 
             >index</a></li>
 
        <li class="right" >
 
          <a href="http-routingtable.html" title="HTTP Routing Table"
 
             >routing table</a> |</li>
 
        <li class="right" >
 
          <a href="py-modindex.html" title="Python Module Index"
 
             >modules</a> |</li>
 
        <li><a href="index.html">Accounting API 0.1-beta documentation</a> &raquo;</li> 
 
      </ul>
 
    </div>
 
    <div class="footer">
 
        &copy; Copyright 2013, Joar Wandborg.
 
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.
 
    </div>
 
  </body>
 
</html>
...
 
\ No newline at end of file
doc/build/html/searchindex.js
Show inline comments
 
Search.setIndex({objects:{"":{accounting:[4,0,0,"-"]},"accounting.decorators":{jsonify_exceptions:[4,5,1,""]},"accounting.gtkclient.AccountingApplication":{on_transactions_loaded:[4,1,1,""],on_transaction_refresh_activate:[4,1,1,""],on_transaction_view_cursor_changed:[4,1,1,""],load_ui:[4,1,1,""],on_show_about_activate:[4,1,1,""],on_about_dialog_response:[4,1,1,""]},"accounting.models.Transaction":{generate_id:[4,1,1,""]},"accounting.storage.ledgercli.Ledger":{get_transaction:[2,1,1,""],add_transaction:[2,1,1,""],reg:[2,1,1,""],assemble_arguments:[2,1,1,""],get_process:[2,1,1,""],send_command:[2,1,1,""],bal:[2,1,1,""],delete_transaction:[2,1,1,""],update_transaction:[2,1,1,""],read_until_prompt:[2,1,1,""],init_process:[2,1,1,""],get_transactions:[2,1,1,""],locked_process:[2,1,1,""]},"accounting.storage":{TransactionNotFound:[2,4,1,""],Storage:[2,3,1,""],ledgercli:[2,0,0,"-"],sql:[0,0,0,"-"]},accounting:{models:[4,0,0,"-"],web:[4,0,0,"-"],client:[4,0,0,"-"],decorators:[4,0,0,"-"],transport:[4,0,0,"-"],exceptions:[4,0,0,"-"],config:[4,0,0,"-"],storage:[2,0,0,"-"],gtkclient:[4,0,0,"-"]},"accounting.storage.sql":{models:[0,0,0,"-"],SQLStorage:[0,3,1,""]},"accounting.transport.AccountingEncoder":{"default":[4,1,1,""]},"accounting.storage.sql.SQLStorage":{update_transaction:[0,1,1,""],add_transaction:[0,1,1,""],get_transactions:[0,1,1,""]},"accounting.storage.sql.models.Transaction":{date:[0,2,1,""],as_dict:[0,1,1,""],id:[0,2,1,""],payee:[0,2,1,""],meta:[0,2,1,""],uuid:[0,2,1,""]},"accounting.gtkclient":{indicate_activity_done:[4,5,1,""],indicate_activity:[4,5,1,""],main:[4,5,1,""],AccountingApplication:[4,3,1,""]},"accounting.client.Client":{get_register:[4,1,1,""],simple_transaction:[4,1,1,""],post:[4,1,1,""],get_balance:[4,1,1,""],get:[4,1,1,""]},"accounting.storage.sql.models.Amount":{amount:[0,2,1,""],symbol:[0,2,1,""],as_dict:[0,1,1,""],id:[0,2,1,""]},"accounting.client":{print_transactions:[4,5,1,""],Client:[4,3,1,""],print_balance_accounts:[4,5,1,""],main:[4,5,1,""]},"accounting.web":{index:[4,5,1,""],transaction_get:[4,5,1,""],init_ledger:[4,5,1,""],main:[4,5,1,""],transaction_delete:[4,5,1,""],transaction_post:[4,5,1,""],transaction_update:[4,5,1,""]},"accounting.storage.sql.models.Posting":{meta:[0,2,1,""],as_dict:[0,1,1,""],id:[0,2,1,""],account:[0,2,1,""],transaction:[0,2,1,""],amount:[0,2,1,""],amount_id:[0,2,1,""],transaction_uuid:[0,2,1,""]},"accounting.models":{Amount:[4,3,1,""],Transaction:[4,3,1,""],Account:[4,3,1,""],Posting:[4,3,1,""]},"accounting.transport":{AccountingEncoder:[4,3,1,""],AccountingDecoder:[4,3,1,""]},"accounting.storage.sql.models":{Amount:[0,3,1,""],Transaction:[0,3,1,""],Posting:[0,3,1,""]},"accounting.storage.Storage":{get_transaction:[2,1,1,""],get_account:[2,1,1,""],reverse_transaction:[2,1,1,""],update_transaction:[2,1,1,""],get_transactions:[2,1,1,""],add_transaction:[2,1,1,""],delete_transaction:[2,1,1,""],get_accounts:[2,1,1,""]},"accounting.storage.ledgercli":{main:[2,5,1,""],Ledger:[2,3,1,""]},"accounting.exceptions":{AccountingException:[4,4,1,""]},"accounting.transport.AccountingDecoder":{dict_to_object:[4,1,1,""]}},titleterms:{titl:[],decor:4,api:[3,1],depend:3,sql:0,content:[0,4,2],gtk:3,storag:[0,2],instal:3,usag:3,welcom:1,setup:3,model:[0,4],submodul:[0,4,2],test:[],web:4,config:4,ledgercli:2,ubuntu:3,modul:[0,4,2],gtkclient:4,indic:1,tabl:1,subpackag:[4,2],client:[3,4],develop:3,transport:4,packag:[0,4,2],account:[0,1,2,3,4,5],document:1,except:4,asyncio:[]},objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"],"3":["py","class","Python class"],"4":["py","exception","Python exception"],"5":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:method","2":"py:attribute","3":"py:class","4":"py:exception","5":"py:function"},envversion:43,titles:["accounting.storage.sql package","Welcome to Accounting API&#8217;s documentation!","accounting.storage package","The Accounting API","accounting package","accounting"],filenames:["api/accounting.storage.sql","index","api/accounting.storage","README","api/accounting","api/modules"],terms:{core:3,code:3,contextlib:2,name:4,would:3,sql:[],need:3,incom:4,send_command:2,json:4,within:2,func:4,load:2,found:2,app:[0,2],stdin:2,run:[3,2],argument:2,apt:3,virtualenv:3,jsonify_except:4,yield:2,path:[3,4],parse_json:[],search:1,index:[1,4],method:[3,4,2],amount_id:0,separ:4,handl:2,"_generate_id":4,accountingdecod:4,your:3,should:2,accountingexcept:[4,2],take:[4,2],initi:4,describ:3,section:3,git:3,indicate_activity_don:4,page:1,evalu:2,databas:2,fals:4,"return":[4,2],exampl:[],regist:3,update_transact:[0,2],sort_kei:4,well:3,high:4,make:3,net:3,karma:[],process:2,ensure_ascii:4,ledgercli:[],add_transact:[0,2],version:3,remov:2,npoacct:3,linebreak:[],skipkei:4,statement:2,contextmanag:2,termin:3,simple_transact:4,get_transact:[0,2],context:2,manag:2,debug:[],mkvirtualenv:3,"class":[0,4,2],arg:[0,2],anoth:3,serial:4,balanc:3,mbudd:3,prog:4,unlock:2,instanc:2,payload:4,accountingencod:4,print_transact:4,ledger:[3,4,2],uuid:0,transaction_upd:4,usr:3,get_bal:4,etc:3,blah:[],builtin:[4,2],work:3,request:4,date:[0,4],head:3,ledger_process:2,data:[],x20:2,argv:[4,2],init_process:2,until:2,gitori:3,on_about_dialog_respons:4,logic:4,symbol:[3,0,4],get_account:2,from:[3,2],kindli:4,output:[4,2],get_process:2,jsondecod:4,sourc:[3,0,4,2],transaction_id:[4,2],webservic:4,decod:[],self:2,sudo:3,check_circular:4,current:4,onc:2,currenc:3,"default":4,mean:3,func_or_str:4,python:3,state:4,site:3,donat:4,contain:4,"try":3,environ:3,file:[4,2],usd:3,type:[],simpl:3,balance_report:[],tri:3,post:[0,4],how:3,you:3,januari:3,doe:3,flask_sqlalchemi:0,on_transaction_refresh_activ:4,base:[0,4,2],local:3,creat:2,locked_process:2,metadata:4,"function":3,amount:[0,4],irc:3,banner:2,bound:2,transaction_uuid:0,sinc:2,transaction_delet:4,ppa:3,caller:4,asset:[3,4],conserv:3,pip:3,follow:3,txt:3,annot:4,which:[3,4,2],assemble_argu:2,delet:2,shell:3,check:[3,4,2],requir:[3,4],text:2,"catch":4,insert:3,becom:4,pars:[],sai:3,from_acc:4,ledger_bin:2,discard:2,add:[3,2],on_aboutdialog_clos:[],expens:3,rest:4,recommend:2,wget:[],load_ui:4,out:3,open:2,curl:[],purpos:3,set:[3,2],response_typ:4,combin:2,abc:2,init_ledg:4,before_request:4,subprocess:2,storag:[],main:[4,2],boundari:2,without:2,old:2,avaiabl:3,thi:[3,4,2],ledger_fil:[3,2],transactionnotfound:2,meta:0,json_encod:4,suitabl:2,popen:2,flag:3,get:[3,4],via:[3,4],accountingappl:4,bal:2,generate_id:4,presum:2,pass:2,allow_nan:4,bin:3,servic:3,back:2,want:3,on_transactions_load:4,delete_transact:2,when:2,system:3,freenod:3,json_decod:4,autodetect:3,alreadi:2,list:2,print_balance_account:4,content:[],on_show_about_activ:4,on_transaction_select:[],line:2,channel:3,flask:[3,4],clone:3,to_acc:4,virtualenvwrapp:3,sqlstorag:0,on_refresh_transactions_activ:[],below:3,"__type__":4,transaction_post:4,execut:2,memori:2,applic:[],can:[3,2],serv:3,repositori:3,register_report:[],lock:2,see:3,user:3,ani:4,report:3,also:3,host:4,object:[4,2],end:3,yet:3,accountin:[],transact:[3,0,4,2],paye:[0,4],mode:2,all:[3,2],jsonencod:4,wrap:4,runtimeerror:2,clariti:[],org:3,reg:[4,2],python3:3,none:[0,4,2],command:2,went:3,read_until_prompt:2,http:[],reverse_transact:2,write:[4,2],donor:4,as_dict:0,rent:3,endpoint:4,get_regist:4,"true":[4,2],widget:4,level:4,hello:4,setup:[],have:3,look:2,world:4,foo:4,prompt:[3,2],workon:3,read:2,indicate_act:4,kwarg:0,result:2,dict_to_object:4,on_transaction_view_cursor_chang:4,"new":2,transaction_get:4,updat:[3,2],indent:4,them:2,find:2,log:3}})
...
 
\ No newline at end of file
 
Search.setIndex({envversion:43,titles:["accounting","accounting.storage package","accounting.storage.sql package","The Accounting API","accounting package","Welcome to Accounting API&#8217;s documentation!","REST API"],objtypes:{"0":"http:get","1":"http:delete","2":"http:post","3":"py:module","4":"py:function","5":"py:class","6":"py:method","7":"py:exception","8":"py:attribute"},filenames:["api/modules","api/accounting.storage","api/accounting.storage.sql","README","api/accounting","index","restapi"],terms:{you:[3,6],manag:1,requir:[3,4],http:6,string:6,print_transact:4,app:[2,1],transaction_upd:4,"class":[2,4,1],parse_json:[],pass:1,alreadi:1,ani:4,site:3,remov:1,contextmanag:1,unlock:1,register_report:[],channel:3,databas:1,setup:[],object:[4,6,1],indicate_act:4,json_decod:4,serial:4,clariti:[],load:1,symbol:[2,3,4,6],on_show_about_activ:4,invoice20100101:6,user:3,base:[2,4,1],them:1,state:4,jsonencod:4,wget:[],mind:6,caller:4,file:[4,1],on_transaction_view_cursor_chang:4,mean:3,before_request:4,apt:3,environ:3,json:[4,6],bal:1,delet:1,handl:1,your:3,should:1,kwarg:2,main:[4,1],result:1,runtimeerror:1,sinc:1,transaction_id:[4,6,1],high:4,response_typ:4,current:4,rent:3,describ:3,how:3,repositori:3,on_transactions_load:4,delete_transact:1,have:3,currenc:3,run:[3,1],payload:4,search:5,record:6,amount_id:2,bin:3,applic:6,januari:3,argument:1,dict_to_object:4,exampl:6,regist:3,fals:4,karma:[],gitori:3,sai:3,donat:[4,6],jsonify_except:4,prompt:[3,1],from:[3,1],autodetect:3,"function":3,hello:4,on_refresh_transactions_activ:[],statement:1,execut:1,well:3,onc:1,content:[],anyth:6,update_transact:[2,1],jsondecod:4,virtualenvwrapp:3,indicate_activity_don:4,method:[3,4,1],log:3,add_transact:[2,1],sqlstorag:2,npoacct:3,on_transaction_refresh_activ:4,lock:1,report:3,name:4,arrai:6,ensure_ascii:4,read_until_prompt:1,read:1,paye:[2,4,6],find:1,list:[6,1],on_aboutdialog_clos:[],check:[3,4,6,1],prog:4,need:3,meta:2,boundari:1,command:1,accept:6,separ:4,linebreak:[],generate_id:4,accountingexcept:[4,1],expens:3,freenod:3,on_transaction_select:[],can:[3,6,1],balance_report:[],servic:3,out:3,respons:6,arg:[2,1],world:4,code:3,statu:6,blah:[],back:1,flask:[3,4],balanc:3,wrap:4,sourc:[2,3,4,1],transaction_uuid:2,via:[3,4],system:3,send_command:1,irc:3,indent:4,func:4,evalu:1,decod:[],git:3,from_acc:4,mode:1,want:3,level:4,shell:3,on_about_dialog_respons:4,abc:1,data:[],anoth:[3,6],request:[4,6],date:[2,4,6],discard:1,follow:3,old:1,ledger:[3,4,1],when:1,host:[4,6],webservic:4,avaiabl:3,context:1,banner:1,usd:3,"try":3,asset:[3,4,6],workon:3,page:5,contain:4,bound:1,"catch":4,until:1,subprocess:1,found:1,transaction_get:4,clone:3,tri:3,stdin:1,net:3,usr:3,transaction_post:4,accountingencod:4,ledger_process:1,logic:4,foo:[4,6],func_or_str:4,head:3,wxampl:[],"new":1,skipkei:4,look:1,locked_process:1,builtin:[4,1],sudo:3,python3:3,local:3,process:1,ppa:3,"return":[4,1],becom:4,curl:[],pdf:6,metadata:[4,6],line:1,serv:3,simpl:3,insert:3,transactionnotfound:1,suitabl:1,core:3,conserv:3,donor:[4,6],accountingappl:4,sort_kei:4,thi:[3,4,1],check_circular:4,transact:[2,3,4,1],accountin:[],python:3,to_acc:4,combin:1,also:3,section:3,mkvirtualenv:3,creat:1,"default":4,org:3,get_account:1,see:3,end:3,init_process:1,collid:6,make:3,type:6,all:[3,6,1],endpoint:4,ledger_fil:[3,1],json_encod:4,rest:4,set:[3,1],load_ui:4,uuid:2,get_transact:[2,1],none:[2,4,1],mbudd:3,annot:4,get_regist:4,pip:3,sql:[],earmark:6,"true":[4,1],storag:[],below:3,accountingdecod:4,"__type__":[4,6],purpos:3,contextlib:1,instanc:1,index:[5,4],debug:[],write:[4,1],init_ledg:4,initi:4,thei:6,went:3,txt:[3,6],add:[3,1],kindli:[4,6],which:[3,4,1],take:[4,1],as_dict:2,pars:[],virtualenv:3,flask_sqlalchemi:2,work:3,version:3,memori:1,argv:[4,1],recommend:1,yield:1,within:1,project:6,ledger_bin:1,etc:3,reg:[4,1],transaction_delet:4,get_bal:4,without:1,text:1,path:[3,4],incom:[4,6],termin:3,flag:3,popen:1,invoic:6,approv:6,x20:1,allow_nan:4,open:1,doe:3,presum:1,get:[3,4],get_process:1,post:[2,4,6],output:[4,1],paramet:6,yet:3,"_generate_id":4,widget:4,self:1,updat:[3,1],ledgercli:[],print_balance_account:4,amount:[2,4,6],assemble_argu:1,simple_transact:4,reverse_transact:1,would:3},objnames:{"0":["http","get","HTTP get"],"1":["http","delete","HTTP delete"],"2":["http","post","HTTP post"],"3":["py","module","Python module"],"4":["py","function","Python function"],"5":["py","class","Python class"],"6":["py","method","Python method"],"7":["py","exception","Python exception"],"8":["py","attribute","Python attribute"]},objects:{"":{accounting:[4,3,0,"-"],"/transaction":[6,2,1,"post--transaction"],"/transaction/<string:transaction_id>":[6,1,1,"delete--transaction--string-transaction_id-"]},"accounting.gtkclient":{indicate_activity_done:[4,4,1,""],indicate_activity:[4,4,1,""],main:[4,4,1,""],AccountingApplication:[4,5,1,""]},"accounting.storage.sql.SQLStorage":{add_transaction:[2,6,1,""],update_transaction:[2,6,1,""],get_transactions:[2,6,1,""]},"accounting.web":{index:[4,4,1,""],transaction_update:[4,4,1,""],transaction_post:[4,4,1,""],transaction_delete:[4,4,1,""],init_ledger:[4,4,1,""],transaction_get:[4,4,1,""],main:[4,4,1,""]},"accounting.storage.ledgercli":{Ledger:[1,5,1,""],main:[1,4,1,""]},"accounting.client":{print_balance_accounts:[4,4,1,""],print_transactions:[4,4,1,""],main:[4,4,1,""],Client:[4,5,1,""]},"accounting.transport":{AccountingDecoder:[4,5,1,""],AccountingEncoder:[4,5,1,""]},"accounting.transport.AccountingEncoder":{"default":[4,6,1,""]},"accounting.storage.Storage":{get_accounts:[1,6,1,""],add_transaction:[1,6,1,""],get_transaction:[1,6,1,""],update_transaction:[1,6,1,""],get_account:[1,6,1,""],delete_transaction:[1,6,1,""],get_transactions:[1,6,1,""],reverse_transaction:[1,6,1,""]},"accounting.gtkclient.AccountingApplication":{on_show_about_activate:[4,6,1,""],on_transaction_refresh_activate:[4,6,1,""],on_transaction_view_cursor_changed:[4,6,1,""],on_transactions_loaded:[4,6,1,""],load_ui:[4,6,1,""],on_about_dialog_response:[4,6,1,""]},"accounting.decorators":{jsonify_exceptions:[4,4,1,""]},"accounting.storage.sql.models.Posting":{transaction:[2,8,1,""],amount_id:[2,8,1,""],as_dict:[2,6,1,""],id:[2,8,1,""],transaction_uuid:[2,8,1,""],account:[2,8,1,""],meta:[2,8,1,""],amount:[2,8,1,""]},"accounting.exceptions":{AccountingException:[4,7,1,""]},accounting:{exceptions:[4,3,0,"-"],storage:[1,3,0,"-"],client:[4,3,0,"-"],web:[4,3,0,"-"],config:[4,3,0,"-"],models:[4,3,0,"-"],gtkclient:[4,3,0,"-"],transport:[4,3,0,"-"],decorators:[4,3,0,"-"]},"accounting.models":{Transaction:[4,5,1,""],Account:[4,5,1,""],Posting:[4,5,1,""],Amount:[4,5,1,""]},"accounting.storage.ledgercli.Ledger":{reg:[1,6,1,""],add_transaction:[1,6,1,""],assemble_arguments:[1,6,1,""],init_process:[1,6,1,""],locked_process:[1,6,1,""],bal:[1,6,1,""],get_process:[1,6,1,""],get_transactions:[1,6,1,""],read_until_prompt:[1,6,1,""],get_transaction:[1,6,1,""],delete_transaction:[1,6,1,""],send_command:[1,6,1,""],update_transaction:[1,6,1,""]},"accounting.storage.sql.models.Amount":{symbol:[2,8,1,""],id:[2,8,1,""],as_dict:[2,6,1,""],amount:[2,8,1,""]},"accounting.client.Client":{get:[4,6,1,""],get_balance:[4,6,1,""],simple_transaction:[4,6,1,""],get_register:[4,6,1,""],post:[4,6,1,""]},"accounting.storage.sql.models":{Transaction:[2,5,1,""],Posting:[2,5,1,""],Amount:[2,5,1,""]},"accounting.storage":{sql:[2,3,0,"-"],ledgercli:[1,3,0,"-"],Storage:[1,5,1,""],TransactionNotFound:[1,7,1,""]},"accounting.storage.sql":{models:[2,3,0,"-"],SQLStorage:[2,5,1,""]},"accounting.transport.AccountingDecoder":{dict_to_object:[4,6,1,""]},"accounting.storage.sql.models.Transaction":{meta:[2,8,1,""],as_dict:[2,6,1,""],id:[2,8,1,""],payee:[2,8,1,""],uuid:[2,8,1,""],date:[2,8,1,""]},"accounting.models.Transaction":{generate_id:[4,6,1,""]}},titleterms:{welcom:5,asyncio:[],sql:2,setup:3,modul:[2,4,1],config:4,ubuntu:3,titl:[],test:[],delet:6,transport:4,packag:[2,4,1],usag:3,except:4,tabl:5,document:5,ledgercli:1,gtkclient:4,instal:3,indic:5,depend:3,decor:4,subpackag:[4,1],storag:[2,1],client:[3,4],model:[2,4],submodul:[2,4,1],gtk:3,content:[2,4,1],rest:6,get:6,web:4,transact:6,account:[1,2,5,0,3,4],api:[3,5,6],develop:3,add:6}})
...
 
\ No newline at end of file
doc/source/conf.py
Show inline comments
 
# -*- coding: utf-8 -*-
 
#
 
# Accounting API documentation build configuration file, created by
 
# sphinx-quickstart on Thu Dec 12 14:02:01 2013.
 
#
 
# This file is execfile()d with the current directory set to its containing dir.
 
#
 
# Note that not all possible configuration values are present in this
 
# autogenerated file.
 
#
 
# All configuration values have a default; values that are commented out
 
# serve to show the default.
 

	
 
import sys, os
 

	
 
# If extensions (or modules to document with autodoc) are in another directory,
 
# add these directories to sys.path here. If the directory is relative to the
 
# documentation root, use os.path.abspath to make it absolute, like shown here.
 
sys.path.insert(0, os.path.abspath('../../'))
 

	
 
# -- General configuration -----------------------------------------------------
 

	
 
# If your documentation needs a minimal Sphinx version, state it here.
 
#needs_sphinx = '1.0'
 

	
 
# Add any Sphinx extension module names here, as strings. They can be extensions
 
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
 
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.viewcode']
 
extensions = [
 
    'sphinx.ext.autodoc',
 
    'sphinx.ext.intersphinx',
 
    'sphinx.ext.todo',
 
    'sphinx.ext.coverage',
 
    'sphinx.ext.viewcode',
 
    'sphinxcontrib.httpdomain'
 
]
 

	
 
# Add any paths that contain templates here, relative to this directory.
 
templates_path = ['_templates']
 

	
 
# The suffix of source filenames.
 
source_suffix = '.rst'
 

	
 
# The encoding of source files.
 
#source_encoding = 'utf-8-sig'
 

	
 
# The master toctree document.
 
master_doc = 'index'
 

	
 
# General information about the project.
 
project = u'Accounting API'
 
copyright = u'2013, Joar Wandborg'
 

	
 
# The version info for the project you're documenting, acts as replacement for
 
# |version| and |release|, also used in various other places throughout the
 
# built documents.
 
#
 
# The short X.Y version.
 
version = '0.1-beta'
 
# The full version, including alpha/beta/rc tags.
 
release = '0.1-beta'
 

	
 
# The language for content autogenerated by Sphinx. Refer to documentation
 
# for a list of supported languages.
 
#language = None
 

	
 
# There are two options for replacing |today|: either, you set today to some
 
# non-false value, then it is used:
 
#today = ''
 
# Else, today_fmt is used as the format for a strftime call.
 
#today_fmt = '%B %d, %Y'
 

	
 
# List of patterns, relative to source directory, that match files and
 
# directories to ignore when looking for source files.
 
exclude_patterns = []
 

	
 
# The reST default role (used for this markup: `text`) to use for all documents.
 
#default_role = None
 

	
 
# If true, '()' will be appended to :func: etc. cross-reference text.
 
#add_function_parentheses = True
 

	
 
# If true, the current module name will be prepended to all description
 
# unit titles (such as .. function::).
 
#add_module_names = True
 

	
 
# If true, sectionauthor and moduleauthor directives will be shown in the
 
# output. They are ignored by default.
 
#show_authors = False
 

	
 
# The name of the Pygments (syntax highlighting) style to use.
 
pygments_style = 'sphinx'
 

	
 
# A list of ignored prefixes for module index sorting.
 
#modindex_common_prefix = []
 

	
 

	
 
# -- Options for HTML output ---------------------------------------------------
 

	
 
# The theme to use for HTML and HTML Help pages.  See the documentation for
 
# a list of builtin themes.
 
html_theme = 'pydoctheme'
 

	
 
# Theme options are theme-specific and customize the look and feel of a theme
 
# further.  For a list of options available for each theme, see the
 
# documentation.
 
#html_theme_options = {}
 

	
 
# Add any paths that contain custom themes here, relative to this directory.
 
html_theme_path = ['_themes']
 

	
 
# The name for this set of Sphinx documents.  If None, it defaults to
 
# "<project> v<release> documentation".
 
#html_title = None
 

	
 
# A shorter title for the navigation bar.  Default is the same as html_title.
 
#html_short_title = None
 

	
 
# The name of an image file (relative to this directory) to place at the top
 
# of the sidebar.
 
#html_logo = None
 

	
 
# The name of an image file (within the static path) to use as favicon of the
 
# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
 
# pixels large.
 
#html_favicon = None
 

	
 
# Add any paths that contain custom static files (such as style sheets) here,
 
# relative to this directory. They are copied after the builtin static files,
 
# so a file named "default.css" will overwrite the builtin "default.css".
 
html_static_path = ['_static']
 

	
doc/source/index.rst
Show inline comments
 
.. Accounting API documentation master file, created by
 
   sphinx-quickstart on Thu Dec 12 14:02:01 2013.
 
   You can adapt this file completely to your liking, but it should at least
 
   contain the root `toctree` directive.
 

	
 
Welcome to Accounting API's documentation!
 
==========================================
 

	
 
Contents:
 

	
 
.. toctree::
 
   :maxdepth: 2
 

	
 
   README
 
   restapi
 
   api/accounting.rst
 

	
 

	
 

	
 
Indices and tables
 
==================
 

	
 
* :ref:`genindex`
 
* :ref:`modindex`
 
* :ref:`search`
doc/source/restapi.rst
Show inline comments
 
new file 100644
 
==========
 
 REST API
 
==========
 

	
 
Get transactions
 
----------------
 

	
 
.. http:get:: /transaction
 

	
 
    Get all transactions
 

	
 
    **Example request**
 

	
 
    .. code-block:: http
 

	
 
        GET /transaction HTTP/1.1
 
        Host: accounting.example
 
        Accept: application/json
 

	
 

	
 
    **Example response**
 

	
 
    .. code-block:: http
 

	
 
        HTTP/1.1 200 OK
 
        Content-Type: application/json
 

	
 
        {
 
          "transactions": [
 
            {
 
              "__type__": "Transaction", 
 
              "date": "2010-01-01", 
 
              "id": "Ids can be anything", 
 
              "metadata": {}, 
 
              "payee": "Kindly T. Donor", 
 
              "postings": [
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Income:Foo:Donation", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "-100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {
 
                    "Invoice": "Projects/Foo/Invoices/Invoice20100101.pdf"
 
                  }
 
                }, 
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Assets:Checking", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {}
 
                }
 
              ]
 
            }, 
 
            {
 
              "__type__": "Transaction", 
 
              "date": "2011-03-15", 
 
              "id": "but mind you if they collide.", 
 
              "metadata": {}, 
 
              "payee": "Another J. Donor", 
 
              "postings": [
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Income:Foo:Donation", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "-400", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {
 
                    "Approval": "Projects/Foo/earmark-record.txt"
 
                  }
 
                }, 
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Assets:Checking", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "400", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {}
 
                }
 
              ]
 
            },
 
          ]
 
        }
 

	
 
Add transactions
 
----------------
 

	
 
.. http:post:: /transaction
 

	
 
    :jsonparam array transactions: A list of Transaction objects to add.
 

	
 
    **Example request**
 

	
 
    .. code-block:: http
 

	
 
        POST /transaction HTTP/1.1
 
        Host: accounting.example
 
        Content-Type: application/json
 
        Accept: application/json
 

	
 
        {
 
          "transactions": [
 
            {
 
              "__type__": "Transaction", 
 
              "date": "2010-01-01", 
 
              "id": "Ids can be anything", 
 
              "metadata": {}, 
 
              "payee": "Kindly T. Donor", 
 
              "postings": [
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Income:Foo:Donation", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "-100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {
 
                    "Invoice": "Projects/Foo/Invoices/Invoice20100101.pdf"
 
                  }
 
                }, 
 
                {
 
                  "__type__": "Posting", 
 
                  "account": "Assets:Checking", 
 
                  "amount": {
 
                    "__type__": "Amount", 
 
                    "amount": "100", 
 
                    "symbol": "$"
 
                  }, 
 
                  "metadata": {}
 
                }
 
              ]
 
            }, 
 
          ]
 
        }
 

	
 
    **Example response**
 

	
 
    .. code-block:: http
 

	
 
        HTTP/1.1 200 OK
 
        Content-Type: application/json
 

	
 
        {
 
          "status": "OK",
 
          "transaction_ids": [
 
            "Ids can be anything"
 
          ]
 
        }
 

	
 

	
 
Delete a transaction
 
--------------------
 

	
 
.. http:delete:: /transaction/<string:transaction_id>
 

	
 
    Delete the transaction with ID :data:`transaction_id`.
 

	
 
    **Example request**
 

	
 
    .. code-block:: http
 

	
 
        DELETE /transaction/123456 HTTP/1.1
 
        Host: accounting.example
 
        Accept: application/json
 

	
 
    **Example response**
 

	
 
    .. code-block:: http
 

	
 
        HTTP/1.1 200 OK
 
        Content-Type: application/json
 

	
 
        {
 
          "status": "OK"
 
        }
0 comments (0 inline, 0 general)