Skip to content

Commit b92e60c

Browse files
committed
clean up types a bit
1 parent 27184b4 commit b92e60c

File tree

6 files changed

+39
-31
lines changed

6 files changed

+39
-31
lines changed

coverage.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ tests/test_threshold_stats.py . [100%]
2020
Name Stmts Miss Cover
2121
--------------------------------------
2222
wvpy/__init__.py 3 0 100%
23-
wvpy/util.py 307 7 98%
23+
wvpy/util.py 309 7 98%
2424
--------------------------------------
25-
TOTAL 310 7 98%
25+
TOTAL 312 7 98%
2626

2727

28-
============================== 14 passed in 7.22s ==============================
28+
============================== 14 passed in 6.89s ==============================

pkg/build/lib/wvpy/util.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Utility functions for teaching data science.
33
"""
44

5-
from typing import Iterable, Tuple
5+
from typing import Iterable, List, Tuple
66

77
import re
88
import numpy
@@ -16,7 +16,7 @@
1616
import itertools
1717
import pandas
1818
import math
19-
from data_algebra.cdata import *
19+
from data_algebra.cdata import RecordMap, RecordSpecification
2020

2121

2222
# noinspection PyPep8Naming
@@ -146,8 +146,8 @@ def matching_roc_area_curve(auc: float) -> dict:
146146
step = 0.01
147147
eval_pts = numpy.arange(0, 1 + step, step)
148148
q_eps = 1e-6
149-
q_low = 0
150-
q_high = 1
149+
q_low = 0.0
150+
q_high = 1.0
151151
while q_low + q_eps < q_high:
152152
q_mid = (q_low + q_high) / 2.0
153153
q_mid_area = numpy.mean(1 - (1 - (1 - eval_pts) ** q_mid) ** (1 / q_mid))
@@ -778,8 +778,8 @@ def threshold_plot(
778778
pred_var: str,
779779
truth_var: str,
780780
truth_target: bool = True,
781-
threshold_range: Tuple[float, float] = (-math.inf, math.inf),
782-
plotvars: Tuple = ("precision", "recall"),
781+
threshold_range: Iterable[float] = (-math.inf, math.inf),
782+
plotvars: Iterable[str] = ("precision", "recall"),
783783
title: str = "Measures as a function of threshold",
784784
*,
785785
show: bool = True,
@@ -820,10 +820,12 @@ def threshold_plot(
820820
if isinstance(plotvars, str):
821821
plotvars = [plotvars]
822822
else:
823-
plotvars = [v for v in plotvars]
823+
plotvars = list(plotvars)
824824
assert isinstance(plotvars, list)
825825
assert len(plotvars) > 0
826826
assert all([isinstance(v, str) for v in plotvars])
827+
threshold_range = list(threshold_range)
828+
assert len(threshold_range) == 2
827829
frame = d[[pred_var, truth_var]].copy()
828830
frame.reset_index(inplace=True, drop=True)
829831
frame["outcol"] = frame[truth_var] == truth_target
19 Bytes
Binary file not shown.

pkg/dist/wvpy-0.2.9.tar.gz

20 Bytes
Binary file not shown.

pkg/docs/wvpy/util.html

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ <h1 class="modulename">
118118
<span class="sd">Utility functions for teaching data science.</span>
119119
<span class="sd">&quot;&quot;&quot;</span>
120120

121-
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Iterable</span><span class="p">,</span> <span class="n">Tuple</span>
121+
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Iterable</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Tuple</span>
122122

123123
<span class="kn">import</span> <span class="nn">re</span>
124124
<span class="kn">import</span> <span class="nn">numpy</span>
@@ -132,7 +132,7 @@ <h1 class="modulename">
132132
<span class="kn">import</span> <span class="nn">itertools</span>
133133
<span class="kn">import</span> <span class="nn">pandas</span>
134134
<span class="kn">import</span> <span class="nn">math</span>
135-
<span class="kn">from</span> <span class="nn">data_algebra.cdata</span> <span class="kn">import</span> <span class="o">*</span>
135+
<span class="kn">from</span> <span class="nn">data_algebra.cdata</span> <span class="kn">import</span> <span class="n">RecordMap</span><span class="p">,</span> <span class="n">RecordSpecification</span>
136136

137137

138138
<span class="c1"># noinspection PyPep8Naming</span>
@@ -262,8 +262,8 @@ <h1 class="modulename">
262262
<span class="n">step</span> <span class="o">=</span> <span class="mf">0.01</span>
263263
<span class="n">eval_pts</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">step</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
264264
<span class="n">q_eps</span> <span class="o">=</span> <span class="mf">1e-6</span>
265-
<span class="n">q_low</span> <span class="o">=</span> <span class="mi">0</span>
266-
<span class="n">q_high</span> <span class="o">=</span> <span class="mi">1</span>
265+
<span class="n">q_low</span> <span class="o">=</span> <span class="mf">0.0</span>
266+
<span class="n">q_high</span> <span class="o">=</span> <span class="mf">1.0</span>
267267
<span class="k">while</span> <span class="n">q_low</span> <span class="o">+</span> <span class="n">q_eps</span> <span class="o">&lt;</span> <span class="n">q_high</span><span class="p">:</span>
268268
<span class="n">q_mid</span> <span class="o">=</span> <span class="p">(</span><span class="n">q_low</span> <span class="o">+</span> <span class="n">q_high</span><span class="p">)</span> <span class="o">/</span> <span class="mf">2.0</span>
269269
<span class="n">q_mid_area</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">eval_pts</span><span class="p">)</span> <span class="o">**</span> <span class="n">q_mid</span><span class="p">)</span> <span class="o">**</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="n">q_mid</span><span class="p">))</span>
@@ -894,8 +894,8 @@ <h1 class="modulename">
894894
<span class="n">pred_var</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
895895
<span class="n">truth_var</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
896896
<span class="n">truth_target</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
897-
<span class="n">threshold_range</span><span class="p">:</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">),</span>
898-
<span class="n">plotvars</span><span class="p">:</span> <span class="n">Tuple</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;precision&quot;</span><span class="p">,</span> <span class="s2">&quot;recall&quot;</span><span class="p">),</span>
897+
<span class="n">threshold_range</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">),</span>
898+
<span class="n">plotvars</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;precision&quot;</span><span class="p">,</span> <span class="s2">&quot;recall&quot;</span><span class="p">),</span>
899899
<span class="n">title</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;Measures as a function of threshold&quot;</span><span class="p">,</span>
900900
<span class="o">*</span><span class="p">,</span>
901901
<span class="n">show</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
@@ -936,10 +936,12 @@ <h1 class="modulename">
936936
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">plotvars</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
937937
<span class="n">plotvars</span> <span class="o">=</span> <span class="p">[</span><span class="n">plotvars</span><span class="p">]</span>
938938
<span class="k">else</span><span class="p">:</span>
939-
<span class="n">plotvars</span> <span class="o">=</span> <span class="p">[</span><span class="n">v</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">plotvars</span><span class="p">]</span>
939+
<span class="n">plotvars</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">plotvars</span><span class="p">)</span>
940940
<span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">plotvars</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span>
941941
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">plotvars</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span>
942942
<span class="k">assert</span> <span class="nb">all</span><span class="p">([</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">plotvars</span><span class="p">])</span>
943+
<span class="n">threshold_range</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">threshold_range</span><span class="p">)</span>
944+
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">threshold_range</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span>
943945
<span class="n">frame</span> <span class="o">=</span> <span class="n">d</span><span class="p">[[</span><span class="n">pred_var</span><span class="p">,</span> <span class="n">truth_var</span><span class="p">]]</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
944946
<span class="n">frame</span><span class="o">.</span><span class="n">reset_index</span><span class="p">(</span><span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">drop</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
945947
<span class="n">frame</span><span class="p">[</span><span class="s2">&quot;outcol&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">frame</span><span class="p">[</span><span class="n">truth_var</span><span class="p">]</span> <span class="o">==</span> <span class="n">truth_target</span>
@@ -1317,8 +1319,8 @@ <h1 class="modulename">
13171319
<span class="n">step</span> <span class="o">=</span> <span class="mf">0.01</span>
13181320
<span class="n">eval_pts</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">step</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
13191321
<span class="n">q_eps</span> <span class="o">=</span> <span class="mf">1e-6</span>
1320-
<span class="n">q_low</span> <span class="o">=</span> <span class="mi">0</span>
1321-
<span class="n">q_high</span> <span class="o">=</span> <span class="mi">1</span>
1322+
<span class="n">q_low</span> <span class="o">=</span> <span class="mf">0.0</span>
1323+
<span class="n">q_high</span> <span class="o">=</span> <span class="mf">1.0</span>
13221324
<span class="k">while</span> <span class="n">q_low</span> <span class="o">+</span> <span class="n">q_eps</span> <span class="o">&lt;</span> <span class="n">q_high</span><span class="p">:</span>
13231325
<span class="n">q_mid</span> <span class="o">=</span> <span class="p">(</span><span class="n">q_low</span> <span class="o">+</span> <span class="n">q_high</span><span class="p">)</span> <span class="o">/</span> <span class="mf">2.0</span>
13241326
<span class="n">q_mid_area</span> <span class="o">=</span> <span class="n">numpy</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">eval_pts</span><span class="p">)</span> <span class="o">**</span> <span class="n">q_mid</span><span class="p">)</span> <span class="o">**</span> <span class="p">(</span><span class="mi">1</span> <span class="o">/</span> <span class="n">q_mid</span><span class="p">))</span>
@@ -2420,8 +2422,8 @@ <h1 class="modulename">
24202422
pred_var: str,
24212423
truth_var: str,
24222424
truth_target: bool = True,
2423-
threshold_range: Tuple[float, float] = (-inf, inf),
2424-
plotvars: Tuple = (&#39;precision&#39;, &#39;recall&#39;),
2425+
threshold_range: Iterable[float] = (-inf, inf),
2426+
plotvars: Iterable[str] = (&#39;precision&#39;, &#39;recall&#39;),
24252427
title: str = &#39;Measures as a function of threshold&#39;,
24262428
*,
24272429
show: bool = True
@@ -2435,8 +2437,8 @@ <h1 class="modulename">
24352437
<span class="n">pred_var</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
24362438
<span class="n">truth_var</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
24372439
<span class="n">truth_target</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
2438-
<span class="n">threshold_range</span><span class="p">:</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">),</span>
2439-
<span class="n">plotvars</span><span class="p">:</span> <span class="n">Tuple</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;precision&quot;</span><span class="p">,</span> <span class="s2">&quot;recall&quot;</span><span class="p">),</span>
2440+
<span class="n">threshold_range</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o">-</span><span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">,</span> <span class="n">math</span><span class="o">.</span><span class="n">inf</span><span class="p">),</span>
2441+
<span class="n">plotvars</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;precision&quot;</span><span class="p">,</span> <span class="s2">&quot;recall&quot;</span><span class="p">),</span>
24402442
<span class="n">title</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;Measures as a function of threshold&quot;</span><span class="p">,</span>
24412443
<span class="o">*</span><span class="p">,</span>
24422444
<span class="n">show</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
@@ -2477,10 +2479,12 @@ <h1 class="modulename">
24772479
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">plotvars</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
24782480
<span class="n">plotvars</span> <span class="o">=</span> <span class="p">[</span><span class="n">plotvars</span><span class="p">]</span>
24792481
<span class="k">else</span><span class="p">:</span>
2480-
<span class="n">plotvars</span> <span class="o">=</span> <span class="p">[</span><span class="n">v</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">plotvars</span><span class="p">]</span>
2482+
<span class="n">plotvars</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">plotvars</span><span class="p">)</span>
24812483
<span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">plotvars</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span>
24822484
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">plotvars</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span>
24832485
<span class="k">assert</span> <span class="nb">all</span><span class="p">([</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">plotvars</span><span class="p">])</span>
2486+
<span class="n">threshold_range</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">threshold_range</span><span class="p">)</span>
2487+
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">threshold_range</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span>
24842488
<span class="n">frame</span> <span class="o">=</span> <span class="n">d</span><span class="p">[[</span><span class="n">pred_var</span><span class="p">,</span> <span class="n">truth_var</span><span class="p">]]</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
24852489
<span class="n">frame</span><span class="o">.</span><span class="n">reset_index</span><span class="p">(</span><span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">drop</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
24862490
<span class="n">frame</span><span class="p">[</span><span class="s2">&quot;outcol&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">frame</span><span class="p">[</span><span class="n">truth_var</span><span class="p">]</span> <span class="o">==</span> <span class="n">truth_target</span>

0 commit comments

Comments
 (0)