Skip to content
This repository has been archived by the owner on Feb 11, 2023. It is now read-only.

Commit

Permalink
cut-out tests
Browse files Browse the repository at this point in the history
* move tests outside package
* update Expt. cls
* fix Ray test
* update docs
* fix pandas conf.
  • Loading branch information
Borda committed Jul 23, 2019
1 parent bc72e94 commit eeb8c2e
Show file tree
Hide file tree
Showing 44 changed files with 271 additions and 181 deletions.
2 changes: 1 addition & 1 deletion .shippable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ install:
- mkdir libs

- pip install -r requirements.txt
- pip install -r requirements-dev.txt
- pip install -r ./tests/requirements.txt
- pip list

script:
Expand Down
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ before_install:
install:
- mkdir libs
- pip install -r requirements.txt
- pip install -r requirements-dev.txt
- pip install -r ./tests/requirements.txt
- pip list

before_script:
Expand All @@ -44,7 +44,7 @@ before_script:
script:
- python setup.py build_ext --inplace
# - pytest imsegm -v --doctest-modules
- nosetests imsegm -v --exe --with-doctest --with-xunit --with-coverage --cover-package=imsegm
- nosetests imsegm tests -v --exe --with-doctest --with-xunit --with-coverage --cover-package=imsegm
- flake8 . --ignore=E402,E731 --max-line-length=100
- python setup.py install

Expand Down
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ include setup.*
exclude *.yml
# Exclude testing
exclude pytest.*
recursive-exclude tests *
exclude tests

# Exclude experiments
exclude */*.sh
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ We utilise (un)supervised segmentation according to given training examples or s
```bash
python experiments_segmentation/run_segm_slic_model_graphcut.py \
-l ./data_images/langerhans_islets/list_lang-isl_imgs-annot.csv -i "" \
--cdf experiments_segmentation/sample_config.yml \
-cfg experiments_segmentation/sample_config.yml \
-o ./results -n langIsl --nb_classes 3 --visual --nb_workers 2
```
OR specified on particular path:
Expand Down
6 changes: 3 additions & 3 deletions circle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ references:
sudo apt-get update
sudo apt-get install tk-dev pkg-config python-dev python-tk
sudo pip install --upgrade pip setuptools
sudo pip install -r requirements-dev.txt
sudo pip install -r ./tests/requirements.txt
sudo pip install -U backports.functools_lru_cache # required for matplotlib @py2
pip install -r requirements.txt --user
pip list
Expand All @@ -19,7 +19,7 @@ references:
name: Testing and Formating
command: |
unset DISPLAY
coverage run --source imsegm -m py.test imsegm -v --doctest-modules --junitxml=test-reports/pytest_junit.xml
coverage run --source imsegm -m py.test imsegm tests -v --doctest-modules --junitxml=test-reports/pytest_junit.xml
python setup.py check -m -s
flake8 . --ignore=E402,E731 --max-line-length=100
Expand All @@ -38,7 +38,7 @@ references:
command: |
sudo apt-get install pandoc
sudo pip install -r docs/requirements.txt
# sphinx-apidoc -o ./docs/source ./imsegm **/tests/* --force --follow-links
# sphinx-apidoc -o ./docs/source ./imsegm ./tests/* --force --follow-links
cd docs; make html
jobs:
Expand Down
3 changes: 2 additions & 1 deletion docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ sphinx>=1.4
recommonmark # fails with badges
m2r # fails with multi-line text
nbsphinx
pandoc
pandoc
docutils<0.15 # higher version breaks py2
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@
def run_apidoc(_):
for pkg in PACKAGES:
argv = ['-e', '-o', PATH_HERE, os.path.join(PATH_HERE, PATH_ROOT, pkg),
'**/tests/*', '--force']
'tests/*', '--force']
try:
# Sphinx 1.7+
from sphinx.ext import apidoc
Expand Down
8 changes: 4 additions & 4 deletions experiments_ovary_centres/run_center_candidate_training.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
NAME_YAML_PARAMS = 'configuration.yaml'
NAME_DUMP_TRAIN_DATA = 'dump_training_data.npz'

NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)
# position is label in loaded segm and nb are out labels
LUT_ANNOT_CENTER_RELABEL = [0, 0, -1, 1]
CROSS_VAL_LEAVE_OUT_SEARCH = 0.2
Expand Down Expand Up @@ -149,7 +149,7 @@ def arg_parse_params(params):
help='name of the experiment', default='ovary')
parser.add_argument('-cfg', '--path_config', type=str, required=False,
help='path to the configuration', default=None)
parser.add_argument('--nb_workers', type=int, required=False, default=NB_THREADS,
parser.add_argument('--nb_workers', type=int, required=False, default=NB_WORKERS,
help='number of processes in parallel')
params.update(vars(parser.parse_args()))
paths = {}
Expand Down Expand Up @@ -445,7 +445,7 @@ def wrapper_draw_export_slic_centers(args):
return export_show_image_points_labels(*args)


def dataset_load_images_segms_compute_features(params, df_paths, nb_workers=NB_THREADS):
def dataset_load_images_segms_compute_features(params, df_paths, nb_workers=NB_WORKERS):
""" create whole dataset composed from loading input data, computing features
and label points by label whether its positive or negative center candidate
Expand Down Expand Up @@ -502,7 +502,7 @@ def dataset_load_images_segms_compute_features(params, df_paths, nb_workers=NB_T


def export_dataset_visual(path_output, dict_imgs, dict_segms, dict_slics,
dict_points, dict_labels, nb_workers=NB_THREADS):
dict_points, dict_labels, nb_workers=NB_WORKERS):
""" visualise complete training dataset by marking labeld points
over image and input segmentation
Expand Down
2 changes: 1 addition & 1 deletion experiments_ovary_centres/run_center_evaluation.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def estimate_eggs_from_info(row_slice, mask_shape):
pos_ant, pos_lat, pos_post = tl_visu.parse_annot_rectangles(row_slice)
list_masks = tl_visu.draw_eggs_rectangle(mask_shape, pos_ant, pos_lat,
pos_post)
mask_eggs = tl_visu.merge_object_masks(list_masks, thr_overlap=0.5)
mask_eggs = tl_visu.merge_object_masks(list_masks, overlap_thr=0.5)

return mask_eggs

Expand Down
6 changes: 3 additions & 3 deletions experiments_ovary_detect/run_cut_segmented_objects.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import imsegm.utilities.data_io as tl_data
import imsegm.utilities.experiments as tl_expt

NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)
PATH_IMAGES = tl_data.update_path(os.path.join('data_images', 'drosophila_ovary_slice'))
PATH_RESULTS = tl_data.update_path('results', absolute=True)
PATHS = {
Expand Down Expand Up @@ -54,7 +54,7 @@ def arg_parse_params(dict_paths):
help='mask by the segmentation', default=1)
parser.add_argument('-bg', '--background', type=int, required=False,
help='using background color', default=None, nargs='+')
parser.add_argument('--nb_workers', type=int, required=False, default=NB_THREADS,
parser.add_argument('--nb_workers', type=int, required=False, default=NB_WORKERS,
help='number of processes in parallel')
args = vars(parser.parse_args())
logging.info('ARG PARAMETERS: \n %r', args)
Expand Down Expand Up @@ -92,7 +92,7 @@ def export_cut_objects(df_row, path_out, padding, use_mask=True, bg_color=None):


def main(dict_paths, padding=0, use_mask=False, bg_color=None,
nb_workers=NB_THREADS):
nb_workers=NB_WORKERS):
""" the main executable
:param dict_paths:
Expand Down
2 changes: 1 addition & 1 deletion experiments_ovary_detect/run_egg_swap_orientation.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

IMAGE_CHANNEL = 0 # image channel for mass extraction

NB_THREADS = max(1, int(mproc.cpu_count() * 0.8))
NB_WORKERS = tl_expt.nb_workers(0.8)
PATH_IMAGES = os.path.join(tl_data.update_path('data_images'),
'drosophila_ovary_slice')
PATH_RESULTS = tl_data.update_path('results', absolute=True)
Expand Down
4 changes: 2 additions & 2 deletions experiments_ovary_detect/run_ellipse_annot_match.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
NAME_CSV_RESULTS = 'info_ovary_images_ellipses.csv'
OVERLAP_THRESHOLD = 0.

NB_THREADS = max(1, int(mproc.cpu_count() * 0.8))
NB_WORKERS = tl_expt.nb_workers(0.8)
PATH_IMAGES = tl_data.update_path(os.path.join('data_images', 'drosophila_ovary_slice'))

DEFAULT_PARAMS = {
Expand Down Expand Up @@ -61,7 +61,7 @@ def arg_parse_params(params):
parser.add_argument('-out', '--path_output', type=str, required=False,
help='path to the output directory',
default=params.get('path_output', None))
parser.add_argument('--nb_workers', type=int, required=False, default=NB_THREADS,
parser.add_argument('--nb_workers', type=int, required=False, default=NB_WORKERS,
help='number of processes in parallel')
arg_params = vars(parser.parse_args())
params.update(arg_params)
Expand Down
2 changes: 1 addition & 1 deletion experiments_ovary_detect/run_ellipse_cut_scale.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
OVERLAP_THRESHOLD = 0.45
NORM_FUNC = np.median # other options - mean, max, ...

NB_THREADS = max(1, int(mproc.cpu_count() * 0.8))
NB_WORKERS = tl_expt.nb_workers(0.8)
PATH_IMAGES = tl_data.update_path(os.path.join('data_images', 'drosophila_ovary_slice'))
PATH_RESULTS = tl_data.update_path('results', absolute=True)

Expand Down
4 changes: 2 additions & 2 deletions experiments_ovary_detect/run_export_user-annot-segm.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import imsegm.utilities.drawing as tl_visu
import imsegm.annotation as seg_annot

NB_THREADS = max(1, int(mproc.cpu_count() * 0.8))
NB_WORKERS = tl_expt.nb_workers(0.8)
PATH_IMAGES = tl_data.update_path(os.path.join('data_images', 'drosophila_ovary_slice'))
PATH_RESULTS = tl_data.update_path('results', absolute=True)
DEFAULT_PARAMS = {
Expand Down Expand Up @@ -77,7 +77,7 @@ def arg_parse_params(params):
parser.add_argument('-out', '--path_output', type=str, required=False,
help='path to the output directory',
default=params['path_output'])
parser.add_argument('--nb_workers', type=int, required=False, default=NB_THREADS,
parser.add_argument('--nb_workers', type=int, required=False, default=NB_WORKERS,
help='number of processes in parallel')
arg_params = vars(parser.parse_args())
params.update(arg_params)
Expand Down
4 changes: 2 additions & 2 deletions experiments_ovary_detect/run_ovary_egg-segmentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
from morphsnakes import morphsnakes, multi_snakes
# from libs import chanvese

NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.8)
NAME_EXPERIMENT = 'experiment_egg-segment'
TYPE_LOAD_IMAGE = '2d_struct'
DIR_VISUAL_POSIX = '___visu'
Expand Down Expand Up @@ -141,7 +141,7 @@ def arg_parse_params(params):
help='name of the experiment', default='ovary')
parser.add_argument('-cfg', '--path_config', type=str, required=False,
help='path to the configuration', default=None)
parser.add_argument('--nb_workers', type=int, required=False, default=NB_THREADS,
parser.add_argument('--nb_workers', type=int, required=False, default=NB_WORKERS,
help='number of processes in parallel')
parser.add_argument('-m', '--methods', type=str, required=False, nargs='+',
help='list of segment. methods', default=None)
Expand Down
6 changes: 3 additions & 3 deletions experiments_ovary_detect/run_ovary_segm_evaluation.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import imsegm.labeling as seg_lbs

EXPORT_VUSIALISATION = False
NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)

NAME_DIR_VISUAL_1 = 'ALL_visualisation-1'
NAME_DIR_VISUAL_2 = 'ALL_visualisation-2'
Expand Down Expand Up @@ -85,7 +85,7 @@ def arg_parse_params(paths):
help='path to the result directory',
default=paths['results'])
parser.add_argument('--nb_workers', type=int, required=False,
default=NB_THREADS, help='number of processes in parallel')
default=NB_WORKERS, help='number of processes in parallel')
parser.add_argument('--visual', required=False, action='store_true',
default=False, help='export visualisations')
arg_params = vars(parser.parse_args())
Expand Down Expand Up @@ -251,7 +251,7 @@ def evaluate_folder(path_dir, dict_paths, export_visual=EXPORT_VUSIALISATION):
return dict_eval


def main(dict_paths, export_visual=EXPORT_VUSIALISATION, nb_workers=NB_THREADS):
def main(dict_paths, export_visual=EXPORT_VUSIALISATION, nb_workers=NB_WORKERS):
""" evaluate all segmentations in experiment folder
:param {str: str} paths: path to all required directories
Expand Down
6 changes: 3 additions & 3 deletions experiments_segmentation/run_compute_stat_annot_segm.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import imsegm.utilities.drawing as tl_visu
import imsegm.classification as seg_clf

NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)
NAME_CVS_OVERALL = 'STATISTIC__%s___Overall.csv'
NAME_CVS_PER_IMAGE = 'STATISTIC__%s___per-Image.csv'
PATH_IMAGES = os.path.join(tl_data.update_path('data_images'),
Expand Down Expand Up @@ -73,7 +73,7 @@ def aparse_params(dict_paths):
help='list of skipped labels from statistic')
parser.add_argument('--nb_workers', type=int, required=False,
help='number of processes in parallel',
default=NB_THREADS)
default=NB_WORKERS)
parser.add_argument('--overlap', type=float, required=False,
help='alpha for segmentation', default=0.2)
parser.add_argument('--relabel', required=False, action='store_true',
Expand Down Expand Up @@ -166,7 +166,7 @@ def stat_single_set(idx_row, drop_labels=None, relabel=False, path_visu='',


def main(dict_paths, visual=True, drop_labels=None, relabel=True,
segm_alpha=1., nb_workers=NB_THREADS):
segm_alpha=1., nb_workers=NB_WORKERS):
""" main evaluation
:param {str: str} dict_paths:
Expand Down
4 changes: 2 additions & 2 deletions experiments_segmentation/run_eval_superpixels.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
from run_segm_slic_model_graphcut import TYPES_LOAD_IMAGE


NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)
PATH_IMAGES = os.path.join(tl_data.update_path('data_images'),
'drosophila_ovary_slice')
PATH_RESULTS = tl_data.update_path('results', absolute=True)
Expand Down Expand Up @@ -78,7 +78,7 @@ def arg_parse_params(params):
default=0.25, help='superpixel regularization')
parser.add_argument('--slico', action='store_true', required=False,
default=False, help='using SLICO (ASLIC)')
parser.add_argument('--nb_workers', type=int, required=False, default=NB_THREADS,
parser.add_argument('--nb_workers', type=int, required=False, default=NB_WORKERS,
help='number of processes in parallel')
params = vars(parser.parse_args())
logging.info('ARG PARAMETERS: \n %r', params)
Expand Down
4 changes: 2 additions & 2 deletions experiments_segmentation/run_segm_slic_classif_graphcut.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
write_skip_file)

NAME_EXPERIMENT = 'experiment_segm-Supervised'
NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)

TYPES_LOAD_IMAGE = ['2d_rgb', '2d_split']
NAME_FIG_LABEL_HISTO = 'fig_histogram_annot_segments.png'
Expand Down Expand Up @@ -604,7 +604,7 @@ def wrapper_filter_labels(name_img_labels_slic_label_hist, label_purity,

def filter_train_with_purity(dict_imgs, dict_labels, dict_label_hist,
label_purity, dict_slics, drop_labels=None,
path_visu=None, nb_workers=NB_THREADS):
path_visu=None, nb_workers=NB_WORKERS):
_w_filter = partial(wrapper_filter_labels, label_purity=label_purity,
drop_labels=drop_labels, path_visu=path_visu)
iter_vals = ((n, dict_imgs[n], dict_labels[n], dict_slics[n],
Expand Down
4 changes: 2 additions & 2 deletions experiments_segmentation/run_segm_slic_model_graphcut.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# sometimes it freeze in "Cython: computing Colour means for image"
seg_fts.USE_CYTHON = False

NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)
TYPES_LOAD_IMAGE = ['2d_rgb', '2d_split']
NAME_DUMP_MODEL = 'estimated_model.npz'
NAME_CSV_ARS_CORES = 'metric_ARS.csv'
Expand Down Expand Up @@ -144,7 +144,7 @@ def arg_parse_params(params):
default=params.get('nb_classes', 2))
parser.add_argument('--nb_workers', type=int, required=False,
help='number of processes in parallel',
default=NB_THREADS)
default=NB_WORKERS)
parser.add_argument('--visual', required=False, action='store_true',
help='export debug visualisations', default=False)
parser.add_argument('--unique', required=False, action='store_true',
Expand Down
4 changes: 2 additions & 2 deletions handling_annotations/run_image_color_quantization.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
import imsegm.annotation as seg_annot

PATH_IMAGES = os.path.join('data_images', 'drosophila_ovary_slice', 'segm_rgb', '*.png')
NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)
THRESHOLD_INVALID_PIXELS = 5e-3


Expand All @@ -51,7 +51,7 @@ def parse_arg_params():
help='percentage of pixels of a color to be removed',
default=THRESHOLD_INVALID_PIXELS)
parser.add_argument('--nb_workers', type=int, required=False,
help='number of jobs in parallel', default=NB_THREADS)
help='number of jobs in parallel', default=NB_WORKERS)
args = vars(parser.parse_args())
p_dir = tl_data.update_path(os.path.dirname(args['path_images']))
assert os.path.isdir(p_dir), 'missing folder: %s' % args['path_images']
Expand Down
4 changes: 2 additions & 2 deletions handling_annotations/run_image_convert_label_color.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
PATH_INPUT = os.path.join('data_images', 'drosophila_ovary_slice', 'segm', '*.png')
PATH_OUTPUT = os.path.join('data_images', 'drosophila_ovary_slice', 'segm_rgb')
NAME_JSON_DICT = 'dictionary_label-color.json'
NB_THREADS = max(1, int(mproc.cpu_count() * 0.9))
NB_WORKERS = tl_expt.nb_workers(0.9)


def parse_arg_params():
Expand All @@ -47,7 +47,7 @@ def parse_arg_params():
parser.add_argument('-clrs', '--path_colors', type=str, required=False,
help='json with colour-label dict', default=None)
parser.add_argument('--nb_workers', type=int, required=False,
help='number of jobs in parallel', default=NB_THREADS)
help='number of jobs in parallel', default=NB_WORKERS)
args = vars(parser.parse_args())
for n in ['path_images', 'path_out']:
p_dir = tl_data.update_path(os.path.dirname(args[n]))
Expand Down

0 comments on commit eeb8c2e

Please sign in to comment.