Skip to content

Commit

Permalink
Ver 0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Spencer Hanson committed Nov 21, 2019
1 parent 54224a3 commit 8474527
Show file tree
Hide file tree
Showing 23 changed files with 348 additions and 273 deletions.
Binary file modified docs/build/doctrees/dict_plus.doctree
Binary file not shown.
Binary file modified docs/build/doctrees/environment.pickle
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: bee0f05528e4c929768b87836f8f2361
config: df8744177b5494603140af85747d992b
tags: 645f666f9bcd5a90fca523b33c5a78b7
28 changes: 16 additions & 12 deletions docs/build/html/_modules/dict_plus/dictplus.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>dict_plus.dictplus &#8212; Dictionary Plus 0.1.1 documentation</title>
<title>dict_plus.dictplus &#8212; Dictionary Plus 0.2.0 documentation</title>
<link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
Expand Down Expand Up @@ -39,7 +39,10 @@ <h1>Source code for dict_plus.dictplus</h1><div class="highlight"><pre>


<div class="viewcode-block" id="DictPlus"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.DictPlus">[docs]</a><span class="k">class</span> <span class="nc">DictPlus</span><span class="p">(</span><span class="n">Iterable</span><span class="p">):</span>
<div class="viewcode-block" id="DictPlus.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.DictPlus.__init__">[docs]</a> <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">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">element_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="c1"># def get_element_type(self):</span>
<span class="c1"># return ElementFactory.element(KeyValuePair, DictPlus)</span>

<div class="viewcode-block" id="DictPlus.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.DictPlus.__init__">[docs]</a> <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">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Create a new DictPlus</span>
<span class="sd"> Default element_type is KeyValuePair</span>

Expand All @@ -49,7 +52,9 @@ <h1>Source code for dict_plus.dictplus</h1><div class="highlight"><pre>
<span class="sd"> kwargs: keyword args to include in the dict</span>

<span class="sd"> &quot;&quot;&quot;</span>
<span class="nb">super</span><span class="p">(</span><span class="n">DictPlus</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">element_type</span> <span class="ow">or</span> <span class="n">ElementFactory</span><span class="o">.</span><span class="n">element</span><span class="p">(</span><span class="n">KeyValuePair</span><span class="p">,</span> <span class="n">DictPlus</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>

<span class="c1"># self._elements_type = element_type or ElementFactory.element(KeyValuePair, DictPlus)</span>
<span class="nb">super</span><span class="p">(</span><span class="n">DictPlus</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</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">kwargs</span><span class="p">)</span></div>

<div class="viewcode-block" id="DictPlus.fromkeys"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.DictPlus.fromkeys">[docs]</a> <span class="nd">@staticmethod</span>
<span class="k">def</span> <span class="nf">fromkeys</span><span class="p">(</span><span class="n">sequence</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
Expand Down Expand Up @@ -97,7 +102,7 @@ <h1>Source code for dict_plus.dictplus</h1><div class="highlight"><pre>


<div class="viewcode-block" id="OrderedDictPlus"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.OrderedDictPlus">[docs]</a><span class="k">class</span> <span class="nc">OrderedDictPlus</span><span class="p">(</span><span class="n">OrderedIterable</span><span class="p">):</span>
<div class="viewcode-block" id="OrderedDictPlus.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.OrderedDictPlus.__init__">[docs]</a> <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">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">element_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<div class="viewcode-block" id="OrderedDictPlus.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.OrderedDictPlus.__init__">[docs]</a> <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">kwargs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Create a new OrderedDictPlus, with inital data and element_type defaulting to KeyValuePair,</span>
<span class="sd"> and other keyword args to include in the dict upon creation</span>

Expand All @@ -107,9 +112,8 @@ <h1>Source code for dict_plus.dictplus</h1><div class="highlight"><pre>
<span class="sd"> kwargs: keyword args to include in the dict</span>

<span class="sd"> &quot;&quot;&quot;</span>
<span class="nb">super</span><span class="p">(</span><span class="n">OrderedDictPlus</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">data</span><span class="p">,</span>
<span class="n">element_type</span> <span class="ow">or</span> <span class="n">ElementFactory</span><span class="o">.</span><span class="n">element</span><span class="p">(</span><span class="n">KeyValuePair</span><span class="p">,</span> <span class="n">OrderedDictPlus</span><span class="p">),</span>
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
<span class="c1"># self._elements_type = element_type or ElementFactory.element(KeyValuePair, OrderedDictPlus)</span>
<span class="nb">super</span><span class="p">(</span><span class="n">OrderedDictPlus</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</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">kwargs</span><span class="p">)</span></div>

<div class="viewcode-block" id="OrderedDictPlus.fromkeys"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.OrderedDictPlus.fromkeys">[docs]</a> <span class="nd">@staticmethod</span>
<span class="k">def</span> <span class="nf">fromkeys</span><span class="p">(</span><span class="n">sequence</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
Expand Down Expand Up @@ -152,10 +156,9 @@ <h1>Source code for dict_plus.dictplus</h1><div class="highlight"><pre>


<div class="viewcode-block" id="SortedDictPlus"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.SortedDictPlus">[docs]</a><span class="k">class</span> <span class="nc">SortedDictPlus</span><span class="p">(</span><span class="n">OrderedDictPlus</span><span class="p">):</span>
<div class="viewcode-block" id="SortedDictPlus.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.SortedDictPlus.__init__">[docs]</a> <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">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">element_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="nb">super</span><span class="p">(</span><span class="n">SortedDictPlus</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">data</span><span class="p">,</span>
<span class="n">element_type</span> <span class="ow">or</span> <span class="n">ElementFactory</span><span class="o">.</span><span class="n">element</span><span class="p">(</span><span class="n">KeyValuePair</span><span class="p">,</span> <span class="n">SortedDictPlus</span><span class="p">),</span>
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
<div class="viewcode-block" id="SortedDictPlus.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.dictplus.SortedDictPlus.__init__">[docs]</a> <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">kwargs</span><span class="p">):</span>
<span class="c1"># self._elements_type = element_type or ElementFactory.element(KeyValuePair, SortedDictPlus)</span>
<span class="nb">super</span><span class="p">(</span><span class="n">SortedDictPlus</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</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">kwargs</span><span class="p">)</span></div>

<span class="k">def</span> <span class="nf">_make_index</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Make the internal index for the Dictionary, for custom indexing</span>
Expand Down Expand Up @@ -195,7 +198,7 @@ <h1>Source code for dict_plus.dictplus</h1><div class="highlight"><pre>
<span class="sd"> Element that was inserted</span>

<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">element</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">elements_type</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
<span class="n">element</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_elements_type</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_indexes</span><span class="o">.</span><span class="n">has</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">id</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span><span class="s2">&quot;Key &#39;</span><span class="si">{}</span><span class="s2">&#39; already exists!&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">id</span><span class="p">))</span>

Expand All @@ -218,6 +221,7 @@ <h1>Source code for dict_plus.dictplus</h1><div class="highlight"><pre>
<span class="n">inserted</span> <span class="o">=</span> <span class="nb">len</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">_indexes</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">element</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="n">inserted</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_insert_to_dict_memory</span><span class="p">(</span><span class="n">element</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_update_indexes</span><span class="p">(</span><span class="n">inserted</span><span class="p">)</span> <span class="c1"># Make sure to update the indexes after inserting</span>

<span class="k">return</span> <span class="n">element</span></div></div>
Expand Down
9 changes: 5 additions & 4 deletions docs/build/html/_modules/dict_plus/elements.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>dict_plus.elements &#8212; Dictionary Plus 0.1.1 documentation</title>
<title>dict_plus.elements &#8212; Dictionary Plus 0.2.0 documentation</title>
<link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
Expand Down Expand Up @@ -73,7 +73,7 @@ <h1>Source code for dict_plus.elements</h1><div class="highlight"><pre>
<span class="sd"> Subclasses can give other restrictions to what can and can&#39;t be used</span>
<span class="sd"> &quot;&quot;&quot;</span>

<div class="viewcode-block" id="Element.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.elements.Element.__init__">[docs]</a> <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">_id</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<div class="viewcode-block" id="Element.__init__"><a class="viewcode-back" href="../../dict_plus.html#dict_plus.elements.Element.__init__">[docs]</a> <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">_id</span><span class="o">=</span><span class="n">NoneVal</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="n">NoneVal</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Create a new Element, must include either id and value or just id</span>
<span class="sd"> If just id is used, it will attempt to parse it into self.id and self.value</span>
<span class="sd"> Otherwise, self.id = id and self.value = value</span>
Expand All @@ -83,10 +83,10 @@ <h1>Source code for dict_plus.elements</h1><div class="highlight"><pre>
<span class="sd"> value: Value of the element, required if _id isn&#39;t going to be parsed</span>

<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">_id</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">value</span><span class="p">:</span>
<span class="k">if</span> <span class="n">_id</span> <span class="ow">and</span> <span class="n">value</span> <span class="o">==</span> <span class="n">NoneVal</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parse_object</span><span class="p">(</span><span class="n">_id</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="n">_id</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">if</span> <span class="n">_id</span> <span class="o">==</span> <span class="n">NoneVal</span> <span class="ow">or</span> <span class="n">value</span> <span class="o">==</span> <span class="n">NoneVal</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Invalid args, must provide id and value or object&quot;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">id</span> <span class="o">=</span> <span class="n">_id</span>
<span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">value</span></div>
Expand All @@ -100,6 +100,7 @@ <h1>Source code for dict_plus.elements</h1><div class="highlight"><pre>
<span class="sd"> Examples:</span>
<span class="sd"> So we convert any dict-like values recursively using the typing of the superclass dictionary class type::</span>

<span class="sd"> &gt;&gt;&gt;from dict_plus import DictPlus</span>
<span class="sd"> &gt;&gt;&gt;mydict = DictPlus({&quot;a&quot;: DictPlus({&quot;b&quot;: 1}), &quot;c&quot;: {&quot;d&quot;: 1}, ...})</span>
<span class="sd"> mydict[&quot;c&quot;] == DictPlus({&quot;d&quot;: 1})</span>

Expand Down
2 changes: 1 addition & 1 deletion docs/build/html/_modules/dict_plus/exceptions.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>dict_plus.exceptions &#8212; Dictionary Plus 0.1.1 documentation</title>
<title>dict_plus.exceptions &#8212; Dictionary Plus 0.2.0 documentation</title>
<link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion docs/build/html/_modules/dict_plus/funcs.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>dict_plus.funcs &#8212; Dictionary Plus 0.1.1 documentation</title>
<title>dict_plus.funcs &#8212; Dictionary Plus 0.2.0 documentation</title>
<link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
Expand Down
Loading

0 comments on commit 8474527

Please sign in to comment.