Skip to content

Commit f8c6449

Browse files
Release v0.0.4 (#34)
* fix the longstanding `plotting.dendrogram` display bug * incorporate `learning` into the `Dendrogram.score_at_point` method in `selection` * added unit tests for `selection` (coverage is roughly 86%) * landing page for docs is `index.html` * modify the documentation structure * update the package metadata
1 parent db28131 commit f8c6449

File tree

7 files changed

+30
-14
lines changed

7 files changed

+30
-14
lines changed

henchman/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111

1212
__author__ = '''Feature Labs Team'''
1313
__email__ = 'team@featurelabs.com'
14-
__version__ = '0.0.3'
14+
__version__ = '0.0.4'

meta.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package:
22
name: henchman
3-
version: "0.0.3"
3+
version: "0.0.4"
44

55
source:
66
path: ../henchman

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.0.3
2+
current_version = 0.0.4
33
commit = True
44
tag = True
55

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@
4949
test_suite='tests',
5050
tests_require=test_requirements,
5151
url='https://github.com/featurelabs/henchman',
52-
version='0.0.3.1',
52+
version='0.0.4',
5353
zip_safe=False,
5454
)

tests/test_selection.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@
1212
from sklearn.ensemble import RandomForestClassifier
1313
from sklearn.metrics import accuracy_score
1414

15+
1516
@pytest.fixture(scope="module")
1617
def Xy():
1718
X = pd.read_csv('./tests/sample_data/sample_fm_enc.csv')
1819
y = X.pop('label')
1920
return X, y
2021

22+
2123
@pytest.fixture(scope="module")
2224
def fit_dend(Xy):
2325
X, y = Xy
@@ -43,25 +45,32 @@ def test_dend_fit(fit_dend):
4345
assert selector.edges is not None
4446
assert selector.graphs is not None
4547

48+
4649
def test_dend_set_params(fit_dend):
4750
threshlist = fit_dend.threshlist
4851
fit_dend.set_params(threshlist=None)
4952

50-
assert fit_dend.threshlist == None
53+
assert fit_dend.threshlist is None
5154
fit_dend.threshlist = threshlist
5255

56+
5357
def test_dend_features_at_step(fit_dend):
5458
assert len(fit_dend.features_at_step(48)) == 79
5559

60+
5661
def test_dend_find_set_of_size(fit_dend, capsys):
5762
assert fit_dend.find_set_of_size(80) == 6
58-
63+
64+
5965
def test_dend_score_at_point(Xy, fit_dend):
6066
X, y = Xy
61-
scores, fit_model = fit_dend.score_at_point(X, y, RandomForestClassifier(random_state=0), accuracy_score, 2)
67+
scores, fit_model = fit_dend.score_at_point(X, y,
68+
RandomForestClassifier(random_state=0),
69+
accuracy_score, 2)
6270
assert len(scores) == 1
6371
assert scores[0] - .866666 < .00001
6472

73+
6574
def test_dend_shuffle_all(fit_dend):
6675
keys_1 = set(fit_dend.graphs[1].keys())
6776
fit_dend.shuffle_all_representatives()
@@ -72,42 +81,46 @@ def test_dend_shuffle_all(fit_dend):
7281
def test_dend_shuffle_score_at_point(Xy, fit_dend):
7382
X, y = Xy
7483
keys_1 = set(fit_dend.graphs[1].keys())
75-
scores, _ = fit_dend.shuffle_score_at_point(X, y, RandomForestClassifier(),
76-
accuracy_score, 2, 2)
84+
scores, _ = fit_dend.shuffle_score_at_point(X, y, RandomForestClassifier(),
85+
accuracy_score, 2, 2)
7786
assert set(fit_dend.graphs[1].keys()) != keys_1
7887
assert len(scores) == 2
7988

89+
8090
def test_dend_transform(Xy, fit_dend, capsys):
8191
X, y = Xy
8292
X_new_1 = fit_dend.transform(X, 99)
8393
out1, _ = capsys.readouterr()
8494
X_new_2 = fit_dend.transform(X, 50)
8595
out2, _ = capsys.readouterr()
86-
96+
8797
assert X_new_1.shape[1] == int(out1[10:12])
8898
assert X_new_2.shape[1] == int(out2[-3:-1])
8999

100+
90101
def test_dend_plot(fit_dend):
91102
show(dendrogram(fit_dend), static=True)
92103
show(dendrogram(fit_dend))
93104

105+
94106
def test_build_edges(capsys):
95107
fake_sel = selection.Dendrogram()
96108
fake_sel.adj = np.asarray(range(501))
97109
fake_sel._build_edges(None)
98110

99111
output, _ = capsys.readouterr()
100112
split_output = output.split('\n')
101-
113+
102114
real_line_1 = 'Calculating more than 500 graphs'
103115
real_line_2 = 'You can pass max_threshes as a kwarg to Dendrogram'
104116
assert split_output[0] == real_line_1
105117
assert split_output[1] == real_line_2
106118

119+
107120
def test_build_graphs_exit():
108121
fake_sel = selection.Dendrogram()
109122
fake_sel.threshlist = [1, 2]
110-
fake_sel.edges = [[(0, 1)], [(1, 2), (0, 1)]]
123+
fake_sel.edges = [[(0, 1)], [(1, 2), (0, 1)]]
111124
fake_sel.graphs = [{0: {0, 1}, 2: {2}}, {0: {0, 1, 2}}]
112125
fake_sel._build_graphs()
113126

tox.ini

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py27, py36, py37, flake8
2+
envlist = flake8, py27, py36, py37
33

44
[travis]
55
python =
@@ -10,7 +10,9 @@ python =
1010
[testenv:flake8]
1111
basepython = python
1212
deps = flake8
13-
commands = flake8 henchman
13+
commands =
14+
flake8 henchman
15+
flake8 tests
1416

1517
[testenv]
1618
setenv =

upload.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
versions="linux-64 win-64 osx-64"
44
make clean
5+
conda build .
56
python setup.py sdist
67
python setup.py bdist_wheel
78
twine upload dist/* -r pypi

0 commit comments

Comments
 (0)