Skip to content

Commit

Permalink
Merge pull request #38 from gmrukwa/develop
Browse files Browse the repository at this point in the history
Release v2.3.17

- Fixes bugs related to data exchange for parallel Pool, as Windows requires manual data sharing.
- Extends interface of `ParallelSampler` and allows to extend it.
  • Loading branch information
gmrukwa committed Jan 13, 2020
2 parents b322f16 + 0b87591 commit 3586b28
Show file tree
Hide file tree
Showing 37 changed files with 500 additions and 265 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
env:
MAJOR: ${{ 2 }}
MINOR: ${{ 3 }}
FIXUP: ${{ 16 }}
FIXUP: ${{ 17 }}
PACKAGE_INIT_FILE: ${{ 'divik/__init__.py' }}
DOCKER_REPO: ${{ 'gmrukwa/divik' }}
IS_ALPHA: ${{ github.event_name == 'pull_request' }}
Expand Down
52 changes: 51 additions & 1 deletion .github/workflows/unittest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Run unit tests
on: push

jobs:
tests:
docker_tests:

runs-on: ubuntu-latest

Expand All @@ -14,3 +14,53 @@ jobs:
run: docker build . --file docker/unittest.dockerfile --tag unittest
env:
ENABLE_SLOW_TESTS: True

windows_tests:

runs-on: windows-latest
strategy:
matrix:
python-version: [ '3.6', '3.7' ]
fail-fast: false
name: Python ${{ matrix.python-version }} Windows tests

steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install -r requirements.txt
- name: Install native lib
run: python dev_setup.py install
- name: Test library
run: python -m unittest discover
env:
ENABLE_SLOW_TESTS: True

macos_tests:

runs-on: macos-latest
strategy:
matrix:
python-version: [ '3.6', '3.7' ]
fail-fast: false
name: Python ${{ matrix.python-version }} MacOS tests

steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install -r requirements.txt
- name: Install native lib
run: python dev_setup.py install
- name: Test library
run: python -m unittest discover
env:
ENABLE_SLOW_TESTS: True
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Python implementation of Divisive iK-means (DiviK) algorithm.
> This section will be further developed soon.
1) [`divik`](divik/_cli/divik.md) - runs DiviK in GAP-only scenario
2) [`dunn-divik`](dunn-divik/_cli/dunn-divik.md) - runs DiviK in GAP & Dunn scenario
2) [`dunn-divik`](dunn-divik/_cli/dunn_divik.md) - runs DiviK in GAP & Dunn scenario
2) [`kmeans`](divik/_cli/auto_kmeans.md) - runs K-means with GAP statistic
3) `linkage` - runs agglomerative clustering
4) [`inspect`](divik/_cli/inspect.md) - visualizes DiviK result
Expand All @@ -40,7 +40,7 @@ docker pull gmrukwa/divik
To install specific version, you can specify it in the command, e.g.:

```bash
docker pull gmrukwa/divik:2.3.16
docker pull gmrukwa/divik:2.3.17
```

## Python package
Expand All @@ -60,7 +60,7 @@ pip install divik
or any stable tagged version, e.g.:

```bash
pip install divik==2.3.16
pip install divik==2.3.17
```

If you want to have compatibility with
Expand Down
16 changes: 6 additions & 10 deletions divik/__init__.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
__version__ = '2.3.16'
__version__ = '2.3.17'

from ._seeding import seeded
from ._utils import DivikResult
from divik import core
from divik import feature_selection
from divik import feature_extraction
from divik import cluster
from divik import sampler
from ._summary import plot, reject_split
from ._gin_compat import (
configurable,
parse_gin_args
)


from .core import configurable
for __estimator in [
feature_extraction.KneePCA,
feature_extraction.LocallyAdjustedRbfSpectralEmbedding,
Expand All @@ -32,14 +29,13 @@
]:
configurable(__estimator)


__all__ = [
"__version__",
"core",
"cluster",
"feature_selection",
"feature_extraction",
"sampler",
"seeded",
"configurable", "parse_gin_args",
'DivikResult',
"plot", "reject_split",
]
2 changes: 1 addition & 1 deletion divik/_cli/_data_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import numpy as np
from scipy import io as scio

import divik._utils as u
import divik.core as u


def _load_mat_with(path: str, backend=scio.loadmat, ignore='__') -> np.ndarray:
Expand Down
2 changes: 1 addition & 1 deletion divik/_cli/_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import pandas as pd
import tqdm

import divik._utils as u
import divik.core as u
from divik import __version__
from divik._cli._data_io import load_data

Expand Down
2 changes: 1 addition & 1 deletion divik/_cli/auto_kmeans.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

from divik.cluster import GAPSearch, KMeans
import divik._cli._utils as scr
import divik._utils as u
import divik.core as u


Segmentations = List[Tuple[u.IntLabels, u.Centroids]]
Expand Down
2 changes: 1 addition & 1 deletion divik/_cli/divik.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from divik.cluster import DiviK
import divik._summary as _smr
import divik._cli._utils as sc
import divik._utils as u
import divik.core as u


def _make_summary(result: typing.Optional[u.DivikResult]):
Expand Down
2 changes: 1 addition & 1 deletion divik/_cli/linkage.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import scipy.io as sio
from skimage.io import imsave
import divik._cli._utils as scr
import divik._utils as u
import divik.core as u


LinkageMatrix = NewType('LinkageMatrix', np.ndarray)
Expand Down
2 changes: 1 addition & 1 deletion divik/_cli/visualize.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from skimage.io import imsave

from divik._cli._data_io import load_data
from divik._utils import visualize
from divik.core import visualize


def parse_args():
Expand Down
40 changes: 0 additions & 40 deletions divik/_gin_compat.py

This file was deleted.

2 changes: 1 addition & 1 deletion divik/_inspect/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import dash
import numpy as np

from divik._utils import DivikResult
from divik.core import DivikResult
from divik._cli._data_io import load_data


Expand Down
53 changes: 0 additions & 53 deletions divik/_seeding.py

This file was deleted.

2 changes: 1 addition & 1 deletion divik/_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

import numpy as np

import divik._utils as u
import divik.core as u


def depth(tree, children_collection_name='subregions'):
Expand Down
83 changes: 0 additions & 83 deletions divik/_utils.py

This file was deleted.

4 changes: 2 additions & 2 deletions divik/cluster/_divik/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
from sklearn.base import BaseEstimator, ClusterMixin, TransformerMixin
from sklearn.utils.validation import check_is_fitted

from divik import _summary as summary, feature_selection as fs, DivikResult
from divik._utils import context_if, normalize_rows, maybe_pool
from divik import _summary as summary, feature_selection as fs
from divik.core import context_if, DivikResult, normalize_rows, maybe_pool


class DiviKBase(BaseEstimator, ClusterMixin, TransformerMixin, metaclass=ABCMeta):
Expand Down

0 comments on commit 3586b28

Please sign in to comment.